{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/headless/node_modules/strophe.js/src/md5.js","webpack:///./src/headless/node_modules/strophe.js/src/utils.js","webpack:///./src/headless/node_modules/strophe.js/src/core.js","webpack:///./node_modules/strophe.js/src/md5.js","webpack:///./node_modules/strophe.js/src/sha1.js","webpack:///./node_modules/strophe.js/src/utils.js","webpack:///./node_modules/strophe.js/src/core.js","webpack:///./node_modules/sizzle/dist/sizzle.js","webpack:///./src/headless/node_modules/strophe.js/src/strophe.js","webpack:///./node_modules/dayjs/dayjs.min.js","webpack:///./node_modules/lodash-es/_root.js","webpack:///./src/headless/node_modules/strophe.js/src/sha1.js","webpack:///./node_modules/lodash/escape.js","webpack:///./src/headless/node_modules/strophe.js/src/shims.js","webpack:///./node_modules/strophe.js/src/shims.js","webpack:///./node_modules/abab/index.js","webpack:///./node_modules/lodash/_root.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/lodash-es/_nodeUtil.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/core-js/library/modules/_wks.js","webpack:///./node_modules/xss/dist/xss.js","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash-es/isBuffer.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/strophe.js/src/strophe.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/localforage/dist/localforage.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/bootstrap.native/dist/bootstrap-native.js","webpack:///./node_modules/urijs/src/URI.js","webpack:///./node_modules/lodash/includes.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/core-js/library/modules/_iterators.js","webpack:///./node_modules/lodash/lodash.js","webpack:///./node_modules/lodash/each.js","webpack:///./node_modules/lodash/extend.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/xmldom/dom-parser.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/_createCtor.js","webpack:///./node_modules/lodash/_replaceHolders.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash-es/_freeGlobal.js","webpack:///./src/templates/form_input.html","webpack:///./src/templates/form_username.html","webpack:///./src/lodash.noconflict.js","webpack:///./node_modules/jed/jed.js","webpack:///./src/headless/node_modules/strophe.js/src/websocket.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///./node_modules/lodash/toInteger.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/lodash/_baseCreate.js","webpack:///./node_modules/lodash/_LazyWrapper.js","webpack:///./node_modules/lodash/_baseLodash.js","webpack:///./node_modules/lodash/_getHolder.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/core-js/library/modules/_to-iobject.js","webpack:///./node_modules/core-js/library/modules/_to-integer.js","webpack:///./node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/babel-runtime/core-js/promise.js","webpack:///./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/library/modules/_new-promise-capability.js","webpack:///./node_modules/lodash/values.js","webpack:///./node_modules/lodash/partial.js","webpack:///./node_modules/sprintf-js/src/sprintf.js","webpack:///./node_modules/xmldom/dom.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_arrayEach.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/keysIn.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/lodash/isString.js","webpack:///./node_modules/lodash/_baseSetData.js","webpack:///./node_modules/lodash/_metaMap.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/lodash/_createHybrid.js","webpack:///./node_modules/lodash/_composeArgs.js","webpack:///./node_modules/lodash/_composeArgsRight.js","webpack:///./node_modules/lodash/_createRecurry.js","webpack:///./node_modules/lodash/_getData.js","webpack:///./node_modules/lodash/_LodashWrapper.js","webpack:///./node_modules/lodash/_copyArray.js","webpack:///./node_modules/lodash/_setData.js","webpack:///./node_modules/lodash/_setWrapToString.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/lodash/_baseProperty.js","webpack:///./node_modules/localforage-webextensionstorage-driver/driver.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/core-js/library/modules/_to-object.js","webpack:///./node_modules/core-js/library/modules/_object-keys.js","webpack:///./node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/core-js/library/modules/_uid.js","webpack:///./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/library/modules/_iter-define.js","webpack:///./node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/core-js/library/modules/_classof.js","webpack:///./node_modules/core-js/library/modules/_species-constructor.js","webpack:///./node_modules/core-js/library/modules/_task.js","webpack:///./node_modules/core-js/library/modules/_perform.js","webpack:///./node_modules/core-js/library/modules/_promise-resolve.js","webpack:///./src/headless/node_modules/strophe.js/src/bosh.js","webpack:///./node_modules/urijs/src/punycode.js","webpack:///./node_modules/urijs/src/IPv6.js","webpack:///./node_modules/urijs/src/SecondLevelDomains.js","webpack:///./node_modules/strophe.js/src/websocket.js","webpack:///./node_modules/lodash-es/stubFalse.js","webpack:///./node_modules/lodash-es/_cloneBuffer.js","webpack:///./node_modules/dayjs/plugin/advancedFormat.js","webpack:///./node_modules/lodash/drop.js","webpack:///./node_modules/lodash/isBoolean.js","webpack:///./node_modules/lodash/isNil.js","webpack:///./node_modules/lodash/pickBy.js","webpack:///./node_modules/lodash/size.js","webpack:///./node_modules/localforage-webextensionstorage-driver/sync.js","webpack:///./node_modules/localforage-webextensionstorage-driver/local.js","webpack:///filesize.js","webpack:///./src/templates/form_captcha.html","webpack:///./src/templates/form_checkbox.html","webpack:///./src/templates/form_select.html","webpack:///./src/templates/form_textarea.html","webpack:///./src/templates/form_url.html","webpack:///./src/templates/select_option.html","webpack:///./node_modules/filesize/lib/filesize.min.js","webpack:///./src/templates/controlbox_toggle.html","webpack:///./src/templates/dragresize.html","webpack:///./src/templates/room_description.html","webpack:///./node_modules/favico.js-slevomat/favico.js","webpack:///./src/templates/register_panel.html","webpack:///./src/templates/registration_form.html","webpack:///./src/templates/registration_request.html","webpack:///./src/templates/group_header.html","webpack:///./src/templates/pending_contact.html","webpack:///./src/templates/requesting_contact.html","webpack:///./src/templates/roster.html","webpack:///./src/templates/roster_item.html","webpack:///./src/entry.js","webpack:///./src/headless/polyfill.js","webpack:///./node_modules/ws/browser.js","webpack:///./node_modules/xmldom/sax.js","webpack:///./node_modules/abab/lib/atob.js","webpack:///./node_modules/abab/lib/btoa.js","webpack:///./node_modules/lodash/_baseSlice.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/forEach.js","webpack:///./node_modules/lodash/_baseEach.js","webpack:///./node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_createBaseEach.js","webpack:///./node_modules/lodash/_castFunction.js","webpack:///./node_modules/lodash/assignIn.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/_baseKeysIn.js","webpack:///./node_modules/lodash/_nativeKeysIn.js","webpack:///./node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/lodash/_baseValues.js","webpack:///./node_modules/lodash/_createWrap.js","webpack:///./node_modules/lodash/_createBind.js","webpack:///./node_modules/lodash/_createCurry.js","webpack:///./node_modules/lodash/_countHolders.js","webpack:///./node_modules/lodash/_isLaziable.js","webpack:///./node_modules/lodash/noop.js","webpack:///./node_modules/lodash/_getFuncName.js","webpack:///./node_modules/lodash/_realNames.js","webpack:///./node_modules/lodash/wrapperLodash.js","webpack:///./node_modules/lodash/_wrapperClone.js","webpack:///./node_modules/lodash/_getWrapDetails.js","webpack:///./node_modules/lodash/_insertWrapDetails.js","webpack:///./node_modules/lodash/_updateWrapDetails.js","webpack:///./node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/lodash/_reorder.js","webpack:///./node_modules/lodash/_createPartial.js","webpack:///./node_modules/lodash/_mergeData.js","webpack:///./node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/lodash/_baseMatches.js","webpack:///./node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/_getMatchData.js","webpack:///./node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/lodash/hasIn.js","webpack:///./node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/lodash/_hasPath.js","webpack:///./node_modules/lodash/property.js","webpack:///./node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/lodash/_basePickBy.js","webpack:///./node_modules/lodash/_baseSet.js","webpack:///./node_modules/lodash/_getAllKeysIn.js","webpack:///./node_modules/lodash/_getSymbolsIn.js","webpack:///./node_modules/lodash/_getPrototype.js","webpack:///./node_modules/lodash/_stringSize.js","webpack:///./node_modules/lodash/_asciiSize.js","webpack:///./node_modules/lodash/_hasUnicode.js","webpack:///./node_modules/lodash/_unicodeSize.js","webpack:///./node_modules/babel-runtime/helpers/defineProperty.js","webpack:///./node_modules/babel-runtime/core-js/object/define-property.js","webpack:///./node_modules/core-js/library/fn/object/define-property.js","webpack:///./node_modules/core-js/library/modules/es6.object.define-property.js","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/babel-runtime/core-js/object/keys.js","webpack:///./node_modules/core-js/library/fn/object/keys.js","webpack:///./node_modules/core-js/library/modules/es6.object.keys.js","webpack:///./node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/library/modules/_object-sap.js","webpack:///./node_modules/babel-runtime/regenerator/index.js","webpack:///./node_modules/babel-runtime/node_modules/regenerator-runtime/runtime-module.js","webpack:///./node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/babel-runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/core-js/library/fn/promise.js","webpack:///./node_modules/core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/library/modules/_string-at.js","webpack:///./node_modules/core-js/library/modules/_redefine.js","webpack:///./node_modules/core-js/library/modules/_iter-create.js","webpack:///./node_modules/core-js/library/modules/_object-create.js","webpack:///./node_modules/core-js/library/modules/_object-dps.js","webpack:///./node_modules/core-js/library/modules/_object-gpo.js","webpack:///./node_modules/core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/library/modules/_iter-step.js","webpack:///./node_modules/core-js/library/modules/es6.promise.js","webpack:///./node_modules/core-js/library/modules/_an-instance.js","webpack:///./node_modules/core-js/library/modules/_for-of.js","webpack:///./node_modules/core-js/library/modules/_iter-call.js","webpack:///./node_modules/core-js/library/modules/_is-array-iter.js","webpack:///./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/library/modules/_invoke.js","webpack:///./node_modules/core-js/library/modules/_microtask.js","webpack:///./node_modules/core-js/library/modules/_user-agent.js","webpack:///./node_modules/core-js/library/modules/_redefine-all.js","webpack:///./node_modules/core-js/library/modules/_set-species.js","webpack:///./node_modules/core-js/library/modules/_iter-detect.js","webpack:///./node_modules/core-js/library/modules/es7.promise.finally.js","webpack:///./node_modules/core-js/library/modules/es7.promise.try.js","webpack:///./node_modules/localforage-webextensionstorage-driver/utils.js","webpack:///./src/headless/node_modules/strophe.js/src/worker-websocket.js","webpack:///./src/i18n lazy ^\\.\\/.*\\/LC_MESSAGES\\/converse\\.po$ namespace object","webpack:///./node_modules/dayjs/locale lazy ^\\.\\/.*$ namespace object","webpack:///./node_modules/lodash/_escapeHtmlChar.js","webpack:///./node_modules/lodash/_basePropertyOf.js","webpack:///./node_modules/strophe.js/src/bosh.js","webpack:///./node_modules/strophe.js/node_modules/ws/browser.js","webpack:///./node_modules/strophe.js/src/worker-websocket.js","webpack:///./sass/converse.scss?3567","webpack:///./sass/converse.scss","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./node_modules/lodash-es/_listCacheClear.js","webpack:///./node_modules/lodash-es/eq.js","webpack:///./node_modules/lodash-es/_assocIndexOf.js","webpack:///./node_modules/lodash-es/_listCacheDelete.js","webpack:///./node_modules/lodash-es/_listCacheGet.js","webpack:///./node_modules/lodash-es/_listCacheHas.js","webpack:///./node_modules/lodash-es/_listCacheSet.js","webpack:///./node_modules/lodash-es/_ListCache.js","webpack:///./node_modules/lodash-es/_stackClear.js","webpack:///./node_modules/lodash-es/_stackDelete.js","webpack:///./node_modules/lodash-es/_stackGet.js","webpack:///./node_modules/lodash-es/_stackHas.js","webpack:///./node_modules/lodash-es/_Symbol.js","webpack:///./node_modules/lodash-es/_getRawTag.js","webpack:///./node_modules/lodash-es/_objectToString.js","webpack:///./node_modules/lodash-es/_baseGetTag.js","webpack:///./node_modules/lodash-es/isObject.js","webpack:///./node_modules/lodash-es/isFunction.js","webpack:///./node_modules/lodash-es/_coreJsData.js","webpack:///./node_modules/lodash-es/_isMasked.js","webpack:///./node_modules/lodash-es/_toSource.js","webpack:///./node_modules/lodash-es/_baseIsNative.js","webpack:///./node_modules/lodash-es/_getValue.js","webpack:///./node_modules/lodash-es/_getNative.js","webpack:///./node_modules/lodash-es/_Map.js","webpack:///./node_modules/lodash-es/_nativeCreate.js","webpack:///./node_modules/lodash-es/_hashClear.js","webpack:///./node_modules/lodash-es/_hashDelete.js","webpack:///./node_modules/lodash-es/_hashGet.js","webpack:///./node_modules/lodash-es/_hashHas.js","webpack:///./node_modules/lodash-es/_hashSet.js","webpack:///./node_modules/lodash-es/_Hash.js","webpack:///./node_modules/lodash-es/_mapCacheClear.js","webpack:///./node_modules/lodash-es/_isKeyable.js","webpack:///./node_modules/lodash-es/_getMapData.js","webpack:///./node_modules/lodash-es/_mapCacheDelete.js","webpack:///./node_modules/lodash-es/_mapCacheGet.js","webpack:///./node_modules/lodash-es/_mapCacheHas.js","webpack:///./node_modules/lodash-es/_mapCacheSet.js","webpack:///./node_modules/lodash-es/_MapCache.js","webpack:///./node_modules/lodash-es/_stackSet.js","webpack:///./node_modules/lodash-es/_Stack.js","webpack:///./node_modules/lodash-es/_arrayEach.js","webpack:///./node_modules/lodash-es/_defineProperty.js","webpack:///./node_modules/lodash-es/_baseAssignValue.js","webpack:///./node_modules/lodash-es/_assignValue.js","webpack:///./node_modules/lodash-es/_copyObject.js","webpack:///./node_modules/lodash-es/_baseTimes.js","webpack:///./node_modules/lodash-es/isObjectLike.js","webpack:///./node_modules/lodash-es/_baseIsArguments.js","webpack:///./node_modules/lodash-es/isArguments.js","webpack:///./node_modules/lodash-es/isArray.js","webpack:///./node_modules/lodash-es/_isIndex.js","webpack:///./node_modules/lodash-es/isLength.js","webpack:///./node_modules/lodash-es/_baseIsTypedArray.js","webpack:///./node_modules/lodash-es/_baseUnary.js","webpack:///./node_modules/lodash-es/isTypedArray.js","webpack:///./node_modules/lodash-es/_arrayLikeKeys.js","webpack:///./node_modules/lodash-es/_isPrototype.js","webpack:///./node_modules/lodash-es/_overArg.js","webpack:///./node_modules/lodash-es/_nativeKeys.js","webpack:///./node_modules/lodash-es/_baseKeys.js","webpack:///./node_modules/lodash-es/isArrayLike.js","webpack:///./node_modules/lodash-es/keys.js","webpack:///./node_modules/lodash-es/_baseAssign.js","webpack:///./node_modules/lodash-es/_nativeKeysIn.js","webpack:///./node_modules/lodash-es/_baseKeysIn.js","webpack:///./node_modules/lodash-es/keysIn.js","webpack:///./node_modules/lodash-es/_baseAssignIn.js","webpack:///./node_modules/lodash-es/_copyArray.js","webpack:///./node_modules/lodash-es/_arrayFilter.js","webpack:///./node_modules/lodash-es/stubArray.js","webpack:///./node_modules/lodash-es/_getSymbols.js","webpack:///./node_modules/lodash-es/_copySymbols.js","webpack:///./node_modules/lodash-es/_arrayPush.js","webpack:///./node_modules/lodash-es/_getPrototype.js","webpack:///./node_modules/lodash-es/_getSymbolsIn.js","webpack:///./node_modules/lodash-es/_copySymbolsIn.js","webpack:///./node_modules/lodash-es/_baseGetAllKeys.js","webpack:///./node_modules/lodash-es/_getAllKeys.js","webpack:///./node_modules/lodash-es/_getAllKeysIn.js","webpack:///./node_modules/lodash-es/_DataView.js","webpack:///./node_modules/lodash-es/_Promise.js","webpack:///./node_modules/lodash-es/_Set.js","webpack:///./node_modules/lodash-es/_WeakMap.js","webpack:///./node_modules/lodash-es/_getTag.js","webpack:///./node_modules/lodash-es/_initCloneArray.js","webpack:///./node_modules/lodash-es/_Uint8Array.js","webpack:///./node_modules/lodash-es/_cloneArrayBuffer.js","webpack:///./node_modules/lodash-es/_cloneDataView.js","webpack:///./node_modules/lodash-es/_cloneRegExp.js","webpack:///./node_modules/lodash-es/_cloneSymbol.js","webpack:///./node_modules/lodash-es/_cloneTypedArray.js","webpack:///./node_modules/lodash-es/_initCloneByTag.js","webpack:///./node_modules/lodash-es/_baseCreate.js","webpack:///./node_modules/lodash-es/_initCloneObject.js","webpack:///./node_modules/lodash-es/_baseIsMap.js","webpack:///./node_modules/lodash-es/isMap.js","webpack:///./node_modules/lodash-es/_baseIsSet.js","webpack:///./node_modules/lodash-es/isSet.js","webpack:///./node_modules/lodash-es/_baseClone.js","webpack:///./node_modules/lodash-es/cloneDeep.js","webpack:///./node_modules/lodash-es/isString.js","webpack:///./node_modules/localforage/src/utils/executeCallback.js","webpack:///./node_modules/localforage/src/utils/getCallback.js","webpack:///./node_modules/localforage/src/utils/normalizeKey.js","webpack:///./node_modules/localforage/src/utils/createBlob.js","webpack:///./node_modules/localforage/src/utils/serializer.js","webpack:///./node_modules/@converse/skeletor/src/drivers/sessionStorage.js","webpack:///./node_modules/@converse/skeletor/src/storage.js","webpack:///./node_modules/lodash-es/isPlainObject.js","webpack:///./node_modules/lodash-es/isElement.js","webpack:///./src/headless/log.js","webpack:///./src/headless/node_modules/pluggable.js/src/pluggable.js","webpack:///./node_modules/lodash-es/create.js","webpack:///./node_modules/lodash-es/identity.js","webpack:///./node_modules/lodash-es/_apply.js","webpack:///./node_modules/lodash-es/_overRest.js","webpack:///./node_modules/lodash-es/constant.js","webpack:///./node_modules/lodash-es/_baseSetToString.js","webpack:///./node_modules/lodash-es/_shortOut.js","webpack:///./node_modules/lodash-es/_setToString.js","webpack:///./node_modules/lodash-es/_baseRest.js","webpack:///./node_modules/lodash-es/_isIterateeCall.js","webpack:///./node_modules/lodash-es/_createAssigner.js","webpack:///./node_modules/lodash-es/assignIn.js","webpack:///./node_modules/lodash-es/_baseHas.js","webpack:///./node_modules/lodash-es/isSymbol.js","webpack:///./node_modules/lodash-es/_isKey.js","webpack:///./node_modules/lodash-es/memoize.js","webpack:///./node_modules/lodash-es/_memoizeCapped.js","webpack:///./node_modules/lodash-es/_stringToPath.js","webpack:///./node_modules/lodash-es/_arrayMap.js","webpack:///./node_modules/lodash-es/_baseToString.js","webpack:///./node_modules/lodash-es/toString.js","webpack:///./node_modules/lodash-es/_castPath.js","webpack:///./node_modules/lodash-es/_toKey.js","webpack:///./node_modules/lodash-es/_hasPath.js","webpack:///./node_modules/lodash-es/has.js","webpack:///./node_modules/lodash-es/result.js","webpack:///./node_modules/@converse/skeletor/src/helpers.js","webpack:///./node_modules/lodash-es/isEmpty.js","webpack:///./node_modules/lodash-es/toNumber.js","webpack:///./node_modules/lodash-es/toFinite.js","webpack:///./node_modules/lodash-es/toInteger.js","webpack:///./node_modules/lodash-es/before.js","webpack:///./node_modules/lodash-es/once.js","webpack:///./node_modules/lodash-es/uniqueId.js","webpack:///./node_modules/@converse/skeletor/src/events.js","webpack:///./node_modules/lodash-es/clone.js","webpack:///./node_modules/lodash-es/defaults.js","webpack:///./node_modules/lodash-es/_baseDelay.js","webpack:///./node_modules/lodash-es/defer.js","webpack:///./node_modules/lodash-es/_basePropertyOf.js","webpack:///./node_modules/lodash-es/_escapeHtmlChar.js","webpack:///./node_modules/lodash-es/escape.js","webpack:///./node_modules/lodash-es/_createBaseFor.js","webpack:///./node_modules/lodash-es/_baseFor.js","webpack:///./node_modules/lodash-es/_baseForOwn.js","webpack:///./node_modules/lodash-es/_baseInverter.js","webpack:///./node_modules/lodash-es/_createInverter.js","webpack:///./node_modules/lodash-es/invert.js","webpack:///./node_modules/lodash-es/_setCacheAdd.js","webpack:///./node_modules/lodash-es/_setCacheHas.js","webpack:///./node_modules/lodash-es/_SetCache.js","webpack:///./node_modules/lodash-es/_arraySome.js","webpack:///./node_modules/lodash-es/_cacheHas.js","webpack:///./node_modules/lodash-es/_equalArrays.js","webpack:///./node_modules/lodash-es/_mapToArray.js","webpack:///./node_modules/lodash-es/_setToArray.js","webpack:///./node_modules/lodash-es/_equalByTag.js","webpack:///./node_modules/lodash-es/_equalObjects.js","webpack:///./node_modules/lodash-es/_baseIsEqualDeep.js","webpack:///./node_modules/lodash-es/_baseIsEqual.js","webpack:///./node_modules/lodash-es/isEqual.js","webpack:///./node_modules/lodash-es/_baseIsMatch.js","webpack:///./node_modules/lodash-es/_isStrictComparable.js","webpack:///./node_modules/lodash-es/_getMatchData.js","webpack:///./node_modules/lodash-es/_matchesStrictComparable.js","webpack:///./node_modules/lodash-es/_baseMatches.js","webpack:///./node_modules/lodash-es/_baseGet.js","webpack:///./node_modules/lodash-es/get.js","webpack:///./node_modules/lodash-es/_baseHasIn.js","webpack:///./node_modules/lodash-es/hasIn.js","webpack:///./node_modules/lodash-es/_baseMatchesProperty.js","webpack:///./node_modules/lodash-es/_baseProperty.js","webpack:///./node_modules/lodash-es/_basePropertyDeep.js","webpack:///./node_modules/lodash-es/property.js","webpack:///./node_modules/lodash-es/_baseIteratee.js","webpack:///./node_modules/lodash-es/iteratee.js","webpack:///./node_modules/lodash-es/last.js","webpack:///./node_modules/lodash-es/_baseSlice.js","webpack:///./node_modules/lodash-es/_parent.js","webpack:///./node_modules/lodash-es/_baseUnset.js","webpack:///./node_modules/lodash-es/_customOmitClone.js","webpack:///./node_modules/lodash-es/_isFlattenable.js","webpack:///./node_modules/lodash-es/_baseFlatten.js","webpack:///./node_modules/lodash-es/flatten.js","webpack:///./node_modules/lodash-es/_flatRest.js","webpack:///./node_modules/lodash-es/omit.js","webpack:///./node_modules/lodash-es/_baseSet.js","webpack:///./node_modules/lodash-es/_basePickBy.js","webpack:///./node_modules/lodash-es/_basePick.js","webpack:///./node_modules/lodash-es/pick.js","webpack:///./node_modules/@converse/skeletor/src/model.js","webpack:///./node_modules/lodash-es/compact.js","webpack:///./src/headless/utils/core.js","webpack:///./src/headless/utils/stanza.js","webpack:///./node_modules/lodash-es/_arrayAggregator.js","webpack:///./node_modules/lodash-es/_createBaseEach.js","webpack:///./node_modules/lodash-es/_baseEach.js","webpack:///./node_modules/lodash-es/_baseAggregator.js","webpack:///./node_modules/lodash-es/_createAggregator.js","webpack:///./node_modules/lodash-es/countBy.js","webpack:///./node_modules/lodash-es/_baseFindIndex.js","webpack:///./node_modules/lodash-es/_baseIsNaN.js","webpack:///./node_modules/lodash-es/_strictIndexOf.js","webpack:///./node_modules/lodash-es/_baseIndexOf.js","webpack:///./node_modules/lodash-es/_arrayIncludes.js","webpack:///./node_modules/lodash-es/_arrayIncludesWith.js","webpack:///./node_modules/lodash-es/_baseDifference.js","webpack:///./node_modules/lodash-es/isArrayLikeObject.js","webpack:///./node_modules/lodash-es/difference.js","webpack:///./node_modules/lodash-es/_arrayEvery.js","webpack:///./node_modules/lodash-es/_baseEvery.js","webpack:///./node_modules/lodash-es/every.js","webpack:///./node_modules/lodash-es/findIndex.js","webpack:///./node_modules/lodash-es/findLastIndex.js","webpack:///./node_modules/lodash-es/groupBy.js","webpack:///./node_modules/lodash-es/indexOf.js","webpack:///./node_modules/lodash-es/keyBy.js","webpack:///./node_modules/lodash-es/_strictLastIndexOf.js","webpack:///./node_modules/lodash-es/lastIndexOf.js","webpack:///./node_modules/lodash-es/_baseSome.js","webpack:///./node_modules/lodash-es/some.js","webpack:///./node_modules/lodash-es/_baseMap.js","webpack:///./node_modules/lodash-es/_baseSortBy.js","webpack:///./node_modules/lodash-es/_compareAscending.js","webpack:///./node_modules/lodash-es/_compareMultiple.js","webpack:///./node_modules/lodash-es/_baseOrderBy.js","webpack:///./node_modules/lodash-es/sortBy.js","webpack:///./node_modules/@converse/skeletor/src/collection.js","webpack:///./src/headless/connection.js","webpack:///./node_modules/lit-html/lib/dom.js","webpack:///./node_modules/lit-html/lib/template.js","webpack:///./node_modules/lit-html/lib/modify-template.js","webpack:///./node_modules/lit-html/lib/directive.js","webpack:///./node_modules/lit-html/lib/part.js","webpack:///./node_modules/lit-html/lib/template-instance.js","webpack:///./node_modules/lit-html/lib/template-result.js","webpack:///./node_modules/lit-html/lib/parts.js","webpack:///./node_modules/lit-html/lib/template-factory.js","webpack:///./node_modules/lit-html/lib/render.js","webpack:///./node_modules/lit-html/lib/default-template-processor.js","webpack:///./node_modules/lit-html/lit-html.js","webpack:///./node_modules/lit-html/lib/shady-render.js","webpack:///./node_modules/lit-element/lib/updating-element.js","webpack:///./node_modules/lit-element/lib/decorators.js","webpack:///./node_modules/lit-element/lib/css-tag.js","webpack:///./node_modules/lit-element/lit-element.js","webpack:///./src/components/element.js","webpack:///./node_modules/@converse/skeletor/src/history.js","webpack:///./node_modules/lodash-es/_baseIsRegExp.js","webpack:///./node_modules/lodash-es/isRegExp.js","webpack:///./node_modules/@converse/skeletor/src/router.js","webpack:///./node_modules/lodash-es/now.js","webpack:///./node_modules/lodash-es/debounce.js","webpack:///./node_modules/lodash-es/_baseInvoke.js","webpack:///./node_modules/lodash-es/invoke.js","webpack:///./src/headless/converse-core.js","webpack:///./src/headless/converse-adhoc.js","webpack:///./node_modules/lodash-es/_createFind.js","webpack:///./node_modules/lodash-es/find.js","webpack:///./node_modules/lodash-es/isMatch.js","webpack:///./src/headless/converse-chat.js","webpack:///./src/headless/converse-disco.js","webpack:///./src/headless/emoji_regexes.js","webpack:///./src/headless/converse-emoji.js","webpack:///./node_modules/lodash-es/_baseZipObject.js","webpack:///./node_modules/lodash-es/zipObject.js","webpack:///./node_modules/lodash-es/_baseIntersection.js","webpack:///./node_modules/lodash-es/_castArrayLikeObject.js","webpack:///./node_modules/lodash-es/intersection.js","webpack:///./src/headless/utils/muc.js","webpack:///./src/headless/utils/form.js","webpack:///./src/headless/utils/parse-helpers.js","webpack:///./src/headless/converse-muc.js","webpack:///./src/headless/converse-bookmarks.js","webpack:///./src/headless/converse-bosh.js","webpack:///./src/headless/converse-caps.js","webpack:///./src/headless/converse-carbons.js","webpack:///./src/headless/converse-chatboxes.js","webpack:///./src/headless/converse-headlines.js","webpack:///./src/headless/converse-rsm.js","webpack:///./src/headless/converse-mam.js","webpack:///./src/headless/converse-ping.js","webpack:///./src/headless/converse-pubsub.js","webpack:///./node_modules/lodash-es/isNumber.js","webpack:///./node_modules/lodash-es/isNaN.js","webpack:///./src/headless/converse-status.js","webpack:///./node_modules/lodash-es/propertyOf.js","webpack:///./node_modules/lodash-es/_baseSum.js","webpack:///./node_modules/lodash-es/sum.js","webpack:///./src/headless/converse-roster.js","webpack:///./src/headless/converse-smacks.js","webpack:///./src/headless/converse-vcard.js","webpack:///./src/headless/headless.js","webpack:///./src/i18n/index.js","webpack:///./src/converse-registry.js","webpack:///./src/converse-autocomplete.js","webpack:///./src/templates/bookmarks_list.js","webpack:///./src/templates/muc_bookmark_form.js","webpack:///./node_modules/@converse/skeletor/src/view.js","webpack:///./node_modules/lodash-es/invokeMap.js","webpack:///./src/converse-bookmark-views.js","webpack:///./src/templates/alert.js","webpack:///./src/templates/buttons.js","webpack:///./src/templates/alert_modal.js","webpack:///./src/templates/prompt.js","webpack:///./src/converse-modal.js","webpack:///./src/templates/image_modal.js","webpack:///./src/modals/image.js","webpack:///./node_modules/lit-html/directives/until.js","webpack:///./src/templates/directives/styling.js","webpack:///./src/shared/message/styling.js","webpack:///./src/shared/message/text.js","webpack:///./src/templates/directives/body.js","webpack:///./src/components/message-body.js","webpack:///./src/templates/audio.js","webpack:///./src/templates/file.js","webpack:///./src/templates/directives/image.js","webpack:///./src/templates/image.js","webpack:///./src/templates/video.js","webpack:///./src/utils/html.js","webpack:///./src/dom-navigator.js","webpack:///./src/components/dropdown.js","webpack:///./src/components/message-actions.js","webpack:///./src/templates/message_versions_modal.js","webpack:///./src/modals/message-versions.js","webpack:///./src/templates/avatar.js","webpack:///./src/templates/directives/avatar.js","webpack:///./src/templates/chat_message.js","webpack:///./src/templates/spinner.js","webpack:///./src/components/message.js","webpack:///./src/templates/new_day.js","webpack:///./node_modules/lit-html/directives/repeat.js","webpack:///./src/components/message-history.js","webpack:///./node_modules/lit-html/directives/unsafe-html.js","webpack:///./src/components/chat_content.js","webpack:///./src/components/icons.js","webpack:///./src/components/help_messages.js","webpack:///./src/templates/emoji_picker.js","webpack:///./src/components/emoji-picker-content.js","webpack:///./src/components/emoji-picker.js","webpack:///./src/components/toolbar.js","webpack:///./src/components/converse.js","webpack:///./src/templates/background_logo.js","webpack:///./node_modules/lit-html/directives/unsafe-svg.js","webpack:///./src/components/font-awesome.js","webpack:///./src/templates/converse.js","webpack:///./node_modules/lodash-es/drop.js","webpack:///./node_modules/lodash-es/_baseFilter.js","webpack:///./node_modules/lodash-es/filter.js","webpack:///./node_modules/lodash-es/head.js","webpack:///./node_modules/lodash-es/_castFunction.js","webpack:///./node_modules/lodash-es/forEach.js","webpack:///./node_modules/lodash-es/_baseValues.js","webpack:///./node_modules/lodash-es/values.js","webpack:///./node_modules/lodash-es/includes.js","webpack:///./node_modules/lodash-es/initial.js","webpack:///./node_modules/lodash-es/map.js","webpack:///./node_modules/lodash-es/_baseExtremum.js","webpack:///./node_modules/lodash-es/_baseGt.js","webpack:///./node_modules/lodash-es/max.js","webpack:///./node_modules/lodash-es/_baseLt.js","webpack:///./node_modules/lodash-es/min.js","webpack:///./node_modules/lodash-es/_arrayReduce.js","webpack:///./node_modules/lodash-es/_baseReduce.js","webpack:///./node_modules/lodash-es/reduce.js","webpack:///./node_modules/lodash-es/_arrayReduceRight.js","webpack:///./node_modules/lodash-es/_baseForRight.js","webpack:///./node_modules/lodash-es/_baseForOwnRight.js","webpack:///./node_modules/lodash-es/_baseEachRight.js","webpack:///./node_modules/lodash-es/reduceRight.js","webpack:///./node_modules/lodash-es/negate.js","webpack:///./node_modules/lodash-es/reject.js","webpack:///./node_modules/lodash-es/rest.js","webpack:///./node_modules/lodash-es/_baseRandom.js","webpack:///./node_modules/lodash-es/_arraySample.js","webpack:///./node_modules/lodash-es/_baseSample.js","webpack:///./node_modules/lodash-es/sample.js","webpack:///./node_modules/lodash-es/_shuffleSelf.js","webpack:///./node_modules/lodash-es/_arrayShuffle.js","webpack:///./node_modules/lodash-es/_baseShuffle.js","webpack:///./node_modules/lodash-es/shuffle.js","webpack:///./node_modules/lodash-es/_asciiSize.js","webpack:///./node_modules/lodash-es/_hasUnicode.js","webpack:///./node_modules/lodash-es/_unicodeSize.js","webpack:///./node_modules/lodash-es/_stringSize.js","webpack:///./node_modules/lodash-es/size.js","webpack:///./node_modules/lodash-es/tail.js","webpack:///./node_modules/lodash-es/take.js","webpack:///./node_modules/lodash-es/_iteratorToArray.js","webpack:///./node_modules/lodash-es/_asciiToArray.js","webpack:///./node_modules/lodash-es/_unicodeToArray.js","webpack:///./node_modules/lodash-es/_stringToArray.js","webpack:///./node_modules/lodash-es/toArray.js","webpack:///./node_modules/lodash-es/without.js","webpack:///./node_modules/@converse/skeletor/src/overview.js","webpack:///./src/converse-chatboxviews.js","webpack:///./src/templates/chatbox.js","webpack:///./src/templates/chatbox_head.js","webpack:///./src/templates/chatbox_message_form.js","webpack:///./src/templates/toolbar.js","webpack:///./src/templates/user_details_modal.js","webpack:///./src/converse-chatview.js","webpack:///./node_modules/haunted/lib/interface.js","webpack:///./node_modules/haunted/lib/symbols.js","webpack:///./node_modules/haunted/lib/state.js","webpack:///./node_modules/haunted/lib/scheduler.js","webpack:///./node_modules/haunted/lib/component.js","webpack:///./node_modules/haunted/lib/hook.js","webpack:///./node_modules/haunted/lib/create-effect.js","webpack:///./node_modules/haunted/lib/use-effect.js","webpack:///./node_modules/haunted/lib/use-context.js","webpack:///./node_modules/haunted/lib/create-context.js","webpack:///./node_modules/haunted/lib/use-memo.js","webpack:///./node_modules/haunted/lib/use-callback.js","webpack:///./node_modules/haunted/lib/use-layout-effect.js","webpack:///./node_modules/haunted/lib/use-state.js","webpack:///./node_modules/haunted/lib/use-reducer.js","webpack:///./node_modules/haunted/lib/use-ref.js","webpack:///./node_modules/haunted/lib/core.js","webpack:///./node_modules/haunted/lib/virtual.js","webpack:///./node_modules/haunted/lib/lit-haunted.js","webpack:///./node_modules/haunted/lib/haunted.js","webpack:///./src/components/brand-heading.js","webpack:///./src/templates/controlbox.js","webpack:///./src/templates/login_panel.js","webpack:///./src/converse-controlbox.js","webpack:///./src/converse-dragresize.js","webpack:///./src/converse-singleton.js","webpack:///./src/converse-fullscreen.js","webpack:///./src/converse-mam-views.js","webpack:///./src/templates/trimmed_chat.js","webpack:///./src/components/minimized_chat.js","webpack:///./src/templates/chats_panel.js","webpack:///./src/converse-minimize.js","webpack:///./src/components/autocomplete.js","webpack:///./src/templates/occupant.js","webpack:///./src/templates/muc_sidebar.js","webpack:///./src/components/muc-sidebar.js","webpack:///./src/templates/add_chatroom_modal.js","webpack:///./src/modals/add-muc.js","webpack:///./src/templates/muc_invite_modal.js","webpack:///./src/modals/muc-invite.js","webpack:///./src/templates/list_chatrooms_modal.js","webpack:///./src/modals/muc-list.js","webpack:///./src/templates/moderator_tools_modal.js","webpack:///./src/modals/moderator-tools.js","webpack:///./src/templates/chatroom_details_modal.js","webpack:///./src/modals/muc-details.js","webpack:///./src/templates/chatroom.js","webpack:///./src/templates/muc_bottom_panel.js","webpack:///./src/templates/muc_destroyed.js","webpack:///./src/templates/muc_disconnect.js","webpack:///./src/templates/chatroom_head.js","webpack:///./src/templates/muc_nickname_form.js","webpack:///./src/templates/muc_config_form.js","webpack:///./src/templates/muc_password_form.js","webpack:///./src/templates/room_panel.js","webpack:///./src/converse-muc-views.js","webpack:///./src/templates/headline_list.js","webpack:///./src/templates/headline_panel.js","webpack:///./src/converse-headlines-view.js","webpack:///./src/converse-notification.js","webpack:///./src/components/adhoc-commands.js","webpack:///./src/templates/user_settings_modal.js","webpack:///./src/modals/user-settings.js","webpack:///./src/templates/chat_status_modal.js","webpack:///./src/templates/profile.js","webpack:///./src/components/image_picker.js","webpack:///./src/templates/profile_modal.js","webpack:///./src/converse-profile.js","webpack:///./node_modules/lodash-es/concat.js","webpack:///./node_modules/lodash-es/_baseRange.js","webpack:///./node_modules/lodash-es/_createRange.js","webpack:///./node_modules/lodash-es/range.js","webpack:///./src/converse-omemo.js","webpack:///./src/converse-push.js","webpack:///./src/converse-register.js","webpack:///./src/templates/rooms_list.js","webpack:///./src/converse-roomslist.js","webpack:///./src/templates/add_contact_modal.js","webpack:///./src/templates/roster_filter.js","webpack:///./src/converse-rosterview.js","webpack:///./src/converse.js"],"names":["safe_add","x","y","lsw","msw","bit_rol","num","cnt","str2binl","str","Error","bin","i","length","charCodeAt","binl2str","String","fromCharCode","binl2hex","binarray","hex_tab","charAt","md5_cmn","q","a","b","s","t","md5_ff","c","d","md5_gg","md5_hh","md5_ii","core_md5","len","olda","oldb","oldc","oldd","MD5","hexdigest","hash","utils","utf16to8","out","addCookies","cookies","cookieName","Object","prototype","hasOwnProperty","call","expires","domain","path","cookieObj","isObj","cookieValue","escape","unescape","value","document","cookie","$build","name","attrs","Strophe","Builder","$msg","$iq","$pres","VERSION","NS","HTTPBIND","BOSH","CLIENT","AUTH","ROSTER","PROFILE","DISCO_INFO","DISCO_ITEMS","MUC","SASL","STREAM","FRAMING","BIND","SESSION","STANZAS","XHTML_IM","XHTML","tags","attributes","css","validTag","tag","validAttribute","attribute","validCSS","style","Status","ERROR","CONNECTING","CONNFAIL","AUTHENTICATING","AUTHFAIL","CONNECTED","DISCONNECTED","DISCONNECTING","ATTACHED","REDIRECT","CONNTIMEOUT","BINDREQUIRED","ATTACHFAIL","ErrorCondition","BAD_FORMAT","CONFLICT","MISSING_JID_NODE","NO_AUTH_MECH","UNKNOWN_REASON","LogLevel","DEBUG","INFO","WARN","FATAL","ElementType","NORMAL","TEXT","CDATA","FRAGMENT","TIMEOUT","SECONDARY_TIMEOUT","addNamespace","forEachChild","elem","elemName","func","childNodes","childNode","nodeType","isTagEqual","el","tagName","_xmlGenerator","xmlGenerator","shims","xmlElement","node","createElement","arguments","arg","appendChild","xmlTextNode","sort","attr","undefined","setAttribute","k","xmlescape","text","replace","xmlunescape","createTextNode","xmlHtmlNode","html","parser","parseFromString","ActiveXObject","async","loadXML","getText","nodeValue","copyElement","nodeName","createHtml","toLowerCase","getAttribute","cssText","cssAttrs","split","j","cssName","cssValue","push","join","e","createDocumentFragment","escapeNode","unescapeNode","getNodeFromJid","jid","indexOf","getDomainFromJid","bare","getBareJidFromJid","parts","splice","getResourceFromJid","_handleError","stack","fatal","sourceURL","handler","line","message","fileName","lineNumber","log","level","msg","console","error","debug","info","warn","serialize","tree","names","Array","keys","map","result","reduce","n","getNamedItem","child","_requestId","_connectionPlugins","addConnectionPlugin","ptype","constructor","xmlns","nodeTree","toString","up","parentNode","root","moreattrs","removeAttribute","cnode","impNode","xmlGen","importNode","newElem","h","fragment","innerHTML","xhtml","Handler","ns","type","id","from","options","matchBare","matchBareFromJid","user","getNamespace","elNamespace","ignoreNamespaceFragment","namespaceMatch","nsMatch","isMatch","elem_type","isArray","run","TimedHandler","period","lastCalled","Date","getTime","reset","Connection","service","setProtocol","features","_sasl_data","do_bind","do_session","mechanisms","timedHandlers","handlers","removeTimeds","removeHandlers","addTimeds","addHandlers","protocolErrorHandlers","_idleTimeout","_disconnectTimeout","authenticated","connected","disconnecting","do_authentication","paused","restored","_data","_uniqueId","_sasl_success_handler","_sasl_failure_handler","_sasl_challenge_handler","maxRetries","setTimeout","_onIdle","registerSASLMechanisms","F","init","proto","protocol","worker","_proto","WorkerWebsocket","Websocket","Bosh","_reset","_requests","pause","resume","getUniqueId","suffix","uuid","r","Math","random","v","addProtocolErrorHandler","status_code","callback","connect","pass","wait","hold","route","authcid","authzid","connect_callback","_changeConnectStatus","_connect","attach","sid","rid","wind","_attach","restore","_sessionCachingSupported","_restore","JSON","sessionStorage","setItem","removeItem","xmlInput","xmlOutput","rawInput","data","rawOutput","nextValidRid","send","_queueData","_send","flush","clearTimeout","sendPresence","errback","timeout","timeoutHandler","addHandler","stanza","deleteTimedHandler","addTimedHandler","deleteHandler","sendIQ","iqtype","element","_sendRestart","thand","handRef","hand","SASLAnonymous","SASLExternal","SASLOAuthBearer","SASLXOAuth2","SASLPlain","SASLSHA1","forEach","m","registerSASLMechanism","Mechanism","mechanism","mechname","disconnect","reason","pres","_addSysTimedHandler","_onDisconnectTimeout","bind","_disconnect","_abortAllRequests","_doDisconnect","status","condition","plugin","statusChanged","err","_dataRecv","req","raw","_reqToData","strip","pop","_emptyQueue","cond","conflict","getElementsByTagName","UNKOWN_REASON","newList","_connect_cb","_callback","bodyWrap","conncheck","hasFeatures","getElementsByTagNameNS","_no_auth_received","matched","textContent","filter","authenticate","sortMechanismsByPriority","higher","priority","swap","_attemptSASLAuth","_attemptLegacyAuth","mechanism_found","test","_addSysHandler","_sasl_success_cb","_sasl_failure_cb","_sasl_challenge_cb","_sasl_mechanism","onStart","request_auth_exchange","isClientFirst","response","onChallenge","btoa","challenge","atob","_onLegacyAuthIQResult","iq","_auth2_cb","serverSignature","success","attribMatch","matches","match","onSuccess","streamfeature_handlers","wrapper","_onStreamFeaturesAfterSASL","explicitResourceBinding","_onResourceBindResultIQ","resource","jidNode","_establishSession","_onSessionResultIQ","onFailure","now","since","SASLMechanism","connection","_connection","auth_str","test_cnonce","cnonce","nonce","salt","iter","Hi","U","U_old","responseText","authMessage","substr","SHA1","core_hmac_sha1","binb2str","clientKey","serverKey","str_hmac_sha1","clientSignature","str_sha1","b64_hmac_sha1","b64_sha1","core_sha1","w","olde","rol","sha1_ft","sha1_kt","key","bkey","str2binb","ipad","opad","concat","mask","binb2b64","tab","triplet","global","strophe","getWebSocketImplementation","WebSocketImplementation","WebSocket","require","getDOMParserImplementation","DOMParserImplementation","DOMParser","_getIEXmlDom","docStrings","doc","getDummyXMLDOMDocument","DOMImplementation","createDocument","implementation","documentMode","factory","module","exports","define","punycode","IPv6","SLD","_URI","URI","url","base","_urlSupplied","_baseSupplied","TypeError","location","href","absoluteTo","isInteger","version","p","hasOwn","escapeRegEx","string","getType","slice","obj","filterArrayValues","lookup","_match","arrayContains","list","_type","arraysEqual","one","two","l","trimSlashes","trim_expression","_parts","username","password","hostname","urn","port","query","preventInvalidHostname","duplicateQueryParameters","escapeQuerySpace","protocol_expression","idn_expression","punycode_expression","ip4_expression","ip6_expression","find_uri_expression","findUri","start","end","trim","parens","defaultPorts","http","https","ftp","gopher","ws","wss","hostProtocols","invalid_hostname_characters","domAttributes","getDomAttribute","escapeForDumbFirefox36","strictEncodeURIComponent","encodeURIComponent","encode","decode","decodeURIComponent","iso8859","unicode","characters","pathname","expression","reserved","urnpath","encodeQuery","escaped","decodeQuery","_part","generateAccessor","_group","generateSegmentedPathFunction","_sep","_codingFuncName","_innerCodingFuncName","actualCodingFunc","segments","decodePath","decodeUrnPath","recodePath","recodeUrnPath","encodeReserved","parse","pos","substring","parseAuthority","parseHost","bracketPos","firstColon","firstSlash","nextColon","ensureValidHostname","ensureValidPort","parseUserinfo","lastIndexOf","shift","parseQuery","items","splits","build","requireAbsolutePath","buildAuthority","buildHost","buildUserinfo","buildQuery","unique","buildQueryParameter","addQuery","setQuery","removeQuery","hasQuery","withinArray","_key","_booly","Boolean","op","joinPaths","input","nonEmptySegments","_segments","segment","uri","normalize","commonPath","min","withinString","_start","_end","_trim","_parens","_attributeOpen","lastIndex","exec","index","ignoreHtml","attributeOpen","max","search","parensEnd","parensMatch","parensMatchEnd","ignore","hasHostname","hasProtocol","rejectEmptyHostname","toASCII","Number","noConflict","removeAll","unconflicted","URITemplate","SecondLevelDomains","deferBuild","_deferred_build","_string","clone","valueOf","generateSimpleAccessor","generatePrefixAccessor","res","_object","src","is","what","ip","ip4","ip6","sld","idn","relative","has","_protocol","_port","_hostname","scheme","origin","authority","host","userinfo","subdomain","sub","RegExp","tld","get","ReferenceError","directory","filename","decodePathSegment","mutatedDirectory","normalizePath","separator","absolute","unshift","segmentCoded","setSearch","addSearch","removeSearch","hasSearch","normalizeProtocol","normalizeQuery","normalizeFragment","normalizeHostname","normalizePort","best","_path","_was_relative","_leadingParents","_parent","_pos","normalizePathname","normalizeSearch","normalizeHash","readable","toUnicode","qp","kv","resolved","properties","basedir","relativeTo","relativeParts","baseParts","common","relativePath","basePath","parents","equals","one_map","two_map","checked","one_query","two_query","_","_conn","new_service","window","_buildStream","_checkStreamError","connectstatus","errors","errorString","_closeSocket","socket","onopen","_onOpen","onerror","_onError","onclose","_onClose","onmessage","_onInitialMessage","_handleStreamStart","ver","streamStart","documentElement","parsedMessage","see_uri","isSecureRedirect","_replaceMessageHandler","_streamWrap","_onMessage","readyState","CLOSED","close","closeString","code","rawStanza","firstChild","startString","re","not_string","not_bool","not_type","not_primitive","number","numeric_arg","json","not_json","modulo","placeholder","key_access","index_access","sign","sprintf","sprintf_format","sprintf_parse","vsprintf","fmt","argv","apply","parse_tree","cursor","tree_length","output","ph","pad","pad_character","pad_length","is_positive","param_no","Function","isNaN","parseInt","stringify","width","precision","parseFloat","toExponential","toFixed","toPrecision","toUpperCase","pad_char","repeat","align","sprintf_cache","create","_fmt","arg_names","field_list","replacement_field","field_match","SyntaxError","Request","sends","xmlData","origFunc","date","NaN","abort","dead","age","timeDead","xhr","_newXHR","getResponse","responseXML","querySelector","XMLHttpRequest","overrideMimeType","onreadystatechange","floor","inactivity","lastResponseHeaders","_buildBody","keepalive","_cacheSession","body","_onRequestStateChange","_throttledRequestHandler","session","getItem","typ","_sendTerminate","_callProtocolErrorHandlers","reqStatus","_getRequestStatus","err_callback","HTTP","_hitError","time_elapsed","def","getAllResponseHeaders","valid_request","too_many_retries","_removeRequest","reqIs0","reqIs1","_restartRequest","_processRequest","primary_timeout","secondary_timeout","server_error","content_type","contentType","open","sync","setRequestHeader","withCredentials","e2","sendFunc","customHeaders","headers","header","backoff","pow","abs","freeExports","freeModule","freeGlobal","self","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","RangeError","array","fn","mapDomain","labels","encoded","ucs2decode","counter","extra","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","inputLength","bias","basic","oldi","baseMinusT","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","_IPv6","bestPresentation","address","_address","total","_best","_current","current","inzeroes","_SecondLevelDomains","tldOffset","sldOffset","sldList","symbol","iec","bits","bytes","jedec","fullform","filesize","ceil","full","fullforms","locale","localeOptions","neg","round","unix","spacer","standard","symbols","descriptor","val","exponent","toLocaleString","partial","opt","plugins","converse","add","initialize","settings","load","assets_path","__webpack_public_path__","CustomEvent","event","params","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","Event","includes","endsWith","searchString","position","subjectString","startsWith","splitOnce","components","lmap","SharedWorker","postMessage","_messageHandler","ev","_onWorkerMessage","_attachCallback","method_name","executeCallback","promise","then","getCallback","normalizeKey","createBlob","Blob","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","builder","append","getBlob","BASE_CHARS","BLOB_TYPE_PREFIX","BLOB_TYPE_PREFIX_REGEX","SERIALIZED_MARKER","SERIALIZED_MARKER_LENGTH","TYPE_ARRAYBUFFER","TYPE_BLOB","TYPE_INT8ARRAY","TYPE_UINT8ARRAY","TYPE_UINT8CLAMPEDARRAY","TYPE_INT16ARRAY","TYPE_INT32ARRAY","TYPE_UINT16ARRAY","TYPE_UINT32ARRAY","TYPE_FLOAT32ARRAY","TYPE_FLOAT64ARRAY","TYPE_SERIALIZED_MARKER_LENGTH","stringToBuffer","serializedString","bufferLength","encoded1","encoded2","encoded3","encoded4","buffer","ArrayBuffer","Uint8Array","bufferToString","base64String","valueType","marker","fileReader","FileReader","onload","readAsArrayBuffer","deserialize","blobType","matcher","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","localforageSerializer","serializer","isSessionStorageValid","_getKeyPrefix","defaultConfig","keyPrefix","storeName","dbInfo","_initStorage","_defaultConfig","clear","ready","iterate","iterator","keyPrefixLength","iterationNumber","itemKey","originalValue","Promise","resolve","reject","dropInstance","currentConfig","config","sessionStorageWrapper","_driver","_support","S4","guid","Storage","localStorage","isString","storeInitialized","initStore","store","localForage","LOCALSTORAGE","catch","removed_keys","all","that","localSync","method","model","resp","errorMessage","new_attributes","collection","cloneDeep","original_attributes","find","findAll","update","destroy","getStorageSize","__name__","removeCollectionReference","ids","getItemName","addCollectionReference","new_id","save","toJSON","set","idAttribute","item","sessionStorageInitialized","LEVELS","logger","assign","noop","setLogLevel","loglevel","isElement","outerHTML","prefix","toISOString","PluginSocket","plugged","__super__","initialized_plugins","extend","wrappedOverride","super_method","default_super","drop","_overrideAttribute","overrides","wrapped_function","_extendObject","each","loadPluginDependencies","dependencies","dep","initializePlugin","throwUndefinedDependencyError","strict_plugin_dependencies","applyOverrides","override","allowed_plugins","isBoolean","enabled","isFunction","isNil","registerPlugin","initializePlugins","whitelist","blacklist","size","pickBy","values","enable","object","attrname","ref","NotImplementedError","inherits","protoProps","staticProps","parent","getResolveablePromise","isResolved","isPending","isRejected","urlError","wrapError","context","trigger","methodMap","patch","delete","read","getSyncMethod","dataType","processData","textStatus","errorThrown","ajax","fetch","Events","eventSplitter","_listening","eventsApi","iteratee","events","opts","on","_events","onApi","ctx","listening","listeners","_listeners","interop","listenTo","_listenId","uniqueId","listeningTo","_listeningTo","Listening","tryCatchOn","count","off","offApi","stopListening","isEmpty","cleanup","remaining","once","onceMap","listenToOnce","offer","_once","args","triggerApi","objEvents","allEvents","triggerEvents","a1","a2","a3","listener","unbind","Model","preinitialize","cid","cidPrefix","default_attrs","defaults","changed","validationError","pairs","entries","invert","pick","omit","_validate","unset","silent","changes","changing","_changing","_previousAttributes","prev","isEqual","_pending","hasChanged","changedAttributes","diff","old","previous","previousAttributes","serverAttrs","validate","return_promise","isNew","defer","isValid","u","Element","parserErrorNS","namespaceURI","getJIDFromURI","toStanza","firstElementChild","getLongestSubstring","candidates","reducer","accumulator","current_value","prefixMentions","begin","isValidJID","compact","isValidMUCJID","isSameBareJID","jid1","jid2","isSameDomain","isNewMessage","sizzle","MAM","DELAY","shouldCreateMessage","isEmptyMessage","shouldCreateGroupchatMessage","nick","is_tombstone","isOnlyChatStateNotification","isOnlyMessageDeliveryReceipt","isChatRoom","isErrorObject","o","isErrorStanza","isForbiddenError","isServiceUnavailableError","merge","first","second","isObject","getOuterWidth","include_margin","offsetWidth","getComputedStyle","marginLeft","marginRight","stringToElement","div","matchesSelector","selector","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","oMatchesSelector","queryChildren","contains","checker","acc","isOfType","isInstance","not","rootContains","head","HTMLElement","createFragmentFromText","markup","frag","tmp","isPersistableModel","browserStorage","interpolate","onMultipleEvents","triggered","safeSave","siblingIndex","previousElementSibling","getCurrentWord","delineator","selectionEnd","word","isMentionBoundary","replaceCurrentWord","new_value","caret","current_word","last","mention_boundary","selection_end","triggerEvent","initEvent","dispatchEvent","getSelectValues","select","iLen","selected","formatFingerprint","fp","idx","appendArrayBuffer","buffer1","buffer2","byteLength","arrayBufferToHex","ab","arrayBufferToString","TextDecoder","stringToArrayBuffer","TextEncoder","arrayBufferToBase64","byte","base64ToArrayBuffer","b64","binary_string","getRandomInt","placeCaretAtEnd","textarea","activeElement","focus","setSelectionRange","scrollTop","clearTimers","interval","clearInterval","waitUntil","max_wait","check_delay","timeout_err","max_wait_timeout","setInterval","err_msg","trace","getSpoilerAttributes","spoiler","SPOILER","getOutOfBandAttributes","xform","OUTOFBAND","getCorrectionAttributes","original_stanza","MESSAGE_CORRECT","replace_id","msgid","delay","time","dayjs","getEncryptionAttributes","_converse","encrypted","OMEMO","api","device_id","omemo_store","isValidReceiptRequest","sender","is_carbon","is_archived","RECEIPTS","getReceiptId","receipt","getChatState","CHATSTATES","isCarbon","CARBONS","getStanzaIDs","sids","SID","sid_attrs","by_jid","bare_jid","origin_id","getModerationAttributes","fastening","FASTEN","applies_to_id","moderated","MODERATE","retracted","RETRACT","tombstone","getRetractionAttributes","getReferences","REFERENCE","rejectMessage","getErrorAttributes","StanzaParseError","rejectUnencapsulatedForward","bare_forward","FORWARD","from_jid","st","isHeadline","isServerMessage","getChatMarker","MARKERS","isArchived","getAttributes","getAttributeNames","parseMessage","to_jid","to_resource","from_bare_jid","is_me","is_headline","is_server_message","contact","contact_jid","contacts","STYLING","nickname","emojis","isOnlyEmojis","hook","parseMUCMessage","chatbox","occupants","findOccupant","from_muc","parseMUCPresence","children","show","MUC_USER","affiliation","role","states","VCARDUPDATE","image_hash","MUC_HATS","Collection","models","comparator","setOptions","remove","addOptions","insert","at","tail","singular","removed","_removeModels","added","merged","_isModel","toAdd","toMerge","toRemove","modelMap","sortable","sortAttr","existing","_prepareModel","_addReference","orderChanged","some","clearStore","_removeReference","previousModels","thisArg","every","pred","difference","sortBy","keyBy","countBy","f","groupBy","fromIndex","findLastIndex","findIndex","cb","initialValue","reduceRight","toArray","_byId","modelId","where","findWhere","predicate","pluck","callbackOpts","CollectionIterator","ITERATOR_VALUES","ITERATOR_KEYS","ITERATOR_KEYSVALUES","_onModelEvent","prevId","$$iterator","Symbol","kind","_collection","_kind","_index","next","done","BOSH_WAIT","debouncedReconnect","debounce","reconnect","generateResource","onDomainDiscovered","xrd","bosh_links","ws_links","bosh_methods","ws_methods","discoverConnectionMethods","onConnectStatusChanged","__","setConnectionStatus","RECONNECTING","reconnecting","tearDown","login","onConnected","setUserJID","setDisconnectionCause","cause","disconnection_cause","disconnection_reason","connfeedback","finishDisconnection","clearSession","onDisconnected","ANONYMOUS","LOGOUT","CONNECTION_STATUS","worker_attach_promise","send_initial_presence","feedback","isType","hasResumed","restoreWorkerSession","MockConnection","sent_stanzas","IQ_stanzas","IQ_ids","mock","no_connection_on_bind","CustomElement","LitElement","createRenderRoot","disconnectedCallback","History","checkUrl","history","routeStripper","rootStripper","pathStripper","started","atRoot","getSearch","matchRoot","decodeFragment","rootPath","decodeURI","getHash","getPath","getFragment","_usePushState","_wantsHashChange","hashChange","_hasHashChange","_useHashChange","_wantsPushState","pushState","_hasPushState","navigate","iframe","display","tabIndex","iWindow","insertBefore","contentWindow","addEventListener","_checkUrlInterval","loadUrl","stop","removeEventListener","removeChild","decodedFragment","title","_updateHash","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","escapeRegExp","isRegExp","_routeToRegExp","_extractParameters","execute","optional","param","advancedFormat","TimeoutError","CORE_PLUGINS","DEFAULT_SETTINGS","allow_non_roster_messaging","authentication","auto_login","auto_reconnect","blacklisted_plugins","clear_cache_on_logout","connection_options","credentials_url","discover_connection_methods","geouri_regex","geouri_replacement","i18n","idle_presence_timeout","locales","persistent_store","singleton","view_mode","websocket_url","whitelisted_plugins","templates","promises","STATUS_WEIGHTS","EXTERNAL","LOGIN","OPENED","PREBIND","STANZA_TIMEOUT","SUCCESS","FAILURE","DEFAULT_IMAGE_TYPE","DEFAULT_IMAGE","TIMEOUTS","PAUSED","INACTIVE","ACTIVE","COMPOSING","GONE","PRIVATE_CHAT_TYPE","CHATROOMS_TYPE","HEADLINES_TYPE","CONTROLBOX_TYPE","default_connection_options","router","isTestEnv","initialization_settings","bosh_service_url","VERSION_NAME","pluggable","user_settings","initSettings","allowed_settings","assignIn","initUserSettings","fetched","createStore","conn_status","synchronous","automatic","initConnection","bosh_plugin","restoreBOSHSession","startNewPreboundBOSHSession","credentials","attemptNonPreboundSession","logout","complete","replacePromise","listen","getModel","fallback","allowed_keys","allowed_site_settings","updated_settings","existing_promise","isUniView","initSessionStorage","storage","createInstance","initPersistentStorage","defineDriver","localDriver","setDriver","syncDriver","INDEXEDDB","getDefaultStore","is_non_persistent","initPlugins","initClientConfig","onUserActivity","unloadevent","everySecondTrigger","getLoginCredentials","navigator","getLoginCredentialsFromBrowser","shouldClearCache","XMPPConnection","setUpXMLLogging","initSession","is_shared_session","saveJIDtoSession","fetchLoginCredentials","creds","unregisterGlobalEventHandlers","saveWindowState","state","event_map","hidden","windowState","registerGlobalEventHandlers","ConnectionFeedback","setUnloadEvent","CHAT_STATES","keycodes","TAB","ENTER","SHIFT","CTRL","ALT","ESCAPE","LEFT_ARROW","UP_ARROW","RIGHT_ARROW","DOWN_ARROW","FORWARD_SLASH","AT","META","META_RIGHT","disco","own","IDLE","invoke","stanza_utils","env","parseForCommands","ADHOC","adhoc_api","adhoc","getCommands","commands","ModelWithContact","rosterContactAdded","setRosterContact","Message","checkValidity","initialized","uploadFile","setTimerForEphemeralMessage","setTimer","ephemeral_timer","safeDestroy","isEphemeral","mayBeRetracted","is_own_message","getDisplayName","vcard","getMessageText","isMeCommand","sendSlotRequestStanza","file","HTTPUPLOAD","getRequestSlotURL","slot","DONE","upload","lengthComputable","loaded","Messages","ChatBox","messagesCollection","initNotifications","initMessages","presence","presences","sendChatState","fetchMessages","getMessagesCacheKey","messages","createMessageStanza","notifications","afterMessagesFetched","fetched_flag","handleErrorMessageStanza","shouldShowErrorMessage","getMessageReferencedByError","new_attrs","error_condition","error_text","error_type","retraction_id","createMessage","queueMessage","msg_chain","onMessage","getDuplicateMessage","updateMessage","handleReceipt","handleChatMarker","handleRetraction","setEditable","chat_state","handleCorrection","handleUnreadMessage","clearMessages","announceReconnection","onReconnection","room_jids","auto_join_rooms","auto_join","createMessageFromError","retry_event_id","getOldestMessage","getMostRecentMessage","getUpdatedMessageAttributes","setChatState","chat_state_timeout","isSameUser","findDanglingRetraction","reverse","retracted_id","moderated_by","RETRACTION_ATTRIBUTES","retraction_attrs","older_versions","queries","getStanzaIdQueryAttrs","getOriginIdQueryAttrs","getMessageBodyQueryAttrs","msgs","is_encrypted","retractOwnMessage","sendRetractionMessage","HINTS","sendMarkerForMessage","sendMarker","msg_type","to_bare_jid","to","is_markable","marker_id","field_name","sendReceiptStanza","receipt_stanza","is_valid_receipt_request","receipt_id","reference","getOutgoingMessageAttributes","spoiler_hint","is_spoiler","httpToGeoUri","shortnamesToUnicode","xmppstatus","send_time","editable","sendMessage","references","is_only_emojis","allowed","sendFiles","files","dataforms","max_file_size","slot_request_url","maybeShow","force","chatboxes","isHidden","isScrolledUp","clearUnreadMsgCounter","handleErrorMessage","handleMessageStanza","has_body","chats","registerMessageHandlers","autoJoinChats","openChat","jids","fullname","chat","_get","DiscoEntity","waitUntilFeaturesDiscovered","onFeatureAdded","fields","onFieldAdded","identities","fetchFeatures","DiscoEntities","getIdentity","category","hasFeature","feature","entity","field","ignore_cache","queryInfo","store_id","onInfo","onDiscoItems","disco_entities","queryForItems","querySelectorAll","identity","XFORM","form","fetchEntities","addClientFeatures","ROSTERX","initStreamFeatures","stream_features","populateStreamFeatures","notifyStreamFeaturesAdded","_identities","_features","onDiscoInfoRequest","iqresult","lang","initializeDisco","stream","getFeature","entities","supports","refresh","refreshFeatures","getFeatures","getFields","ASCII_REGEX","ASCII_REPLACE_REGEX","CODEPOINTS_REGEX","ASCII_LIST","toCodePoint","unicode_surrogates","fromCodePoint","codepoint","convert","part","hi","lo","arr","Set","getTonedEmojis","toned","people","person","sn","convertASCII2Emoji","entire","m1","m2","m3","unescapeHTML","getEmojiMarkup","unicode_only","add_title_wrapper","emoji","shortname","cp","by_sn","getShortnameReferences","matchAll","shortnames_regex","parseStringForEmojis","UFE0Fg","U200D","offset","icon_id","getCodePointReferences","getEmojisByAtrribute","addEmojisMarkup","___","EmojiPicker","emojis_by_attribute","shortnamesToEmojis","words","refs","all_variants","default","cat","shortnames","getShortNames","initialized_promise","muc_utils","computeAffiliationsDelta","exclude_existing","remove_absentees","new_list","old_list","new_jids","old_jids","parseMemberListIQ","MUC_ADMIN","webForm2xForm","helpers","escapeRegexChars","char","escapeCharacters","escapeRegexString","findFirstMatchInArray","localeCompare","sensitivity","reduceReferences","updated_text","reduceTextFromReferences","ROLES","AFFILIATIONS","MUC_TRAFFIC_STATES","MUC_ROLE_CHANGES","ACTION_INFO_CODES","MUC_ROLE_WEIGHTS","MUC_NICK_CHANGED_CODE","ROOM_FEATURES","ROOMSTATUS","NICKNAME_REQUIRED","PASSWORD_REQUIRED","ENTERED","DESTROYED","ChatBoxes","ChatRoom","muc","info_messages","new_nickname_messages","disconnect_messages","openRoom","rooms","getDefaultMUCNickname","getNickname","openChatRoom","ChatRoomMessage","setOccupant","mayBeModerated","canModerateMessages","debouncedRejoin","onOccupantRemoved","occupant","onOccupantAdded","MUCSession","ChatRoomMessages","rejoin","initOccupants","initDiscoModels","registerHandlers","restoreSession","onConnectionStatusChanged","onOccupantShowChanged","createAffiliationChangeMessage","createRoleChangeMessage","restoreFromCache","isJoined","fetchOccupants","clearCache","refreshDiscoInfo","getAndPersistNickname","getRoomJIDAndNick","isMember","updateNotifications","fetchMembers","MUC_REGISTER","registerNickname","zipObject","ChatRoomOccupants","chatroom","handleAffiliationChangedMessage","createInfoMessages","fetchFeaturesIfConfigurationChanged","room_jid","presence_handler","onPresence","message_handler","affiliation_message_handler","invitesAllowed","getOwnAffiliation","sendTimedMessage","retractOtherMessage","sendRetractionIQ","sendDestroyIQ","new_jid","MUC_OWNER","leave","exit_msg","disco_entity","getOwnOccupant","isModerator","getAllKnownNicknames","getAllKnownNicknamesRegex","longNickString","escapedLongNickString","getOccupantByJID","getOccupantByNickname","parseTextForReferences","mentions_regex","getMatchingNickname","uriFromNickname","getOccupant","encodeURI","matchToReference","at_sign_index","regex","mentions","updated_message","updated_references","original_message","getOwnRole","directInvite","recipient","updateMemberLists","invitation","getDiscoInfo","getDiscoInfoFields","getDiscoInfoFeatures","fieldname","mam_enabled","setAffiliation","members","sendAffiliationIQ","addFieldValue","autoConfigureChatRoom","fetchRoomConfiguration","configArray","sendConfiguration","member","setAffiliations","affiliations","setRole","onError","nickname_or_jid","getOccupantsWithRole","getOccupantsSortedBy","getOccupantsWithAffiliation","getAffiliationList","all_affiliations","aff_lists","old_members","getReservedNick","identity_el","required_fields","parentElement","updateOccupantsOnPresence","codes","bare_jid1","bare_jid2","resource1","resource2","occupant1","occupant2","isSubjectHidden","toggleSubjectHiddenState","muc_jid","handleSubjectChange","subject","thread","author","is_delayed","prev_msg","setSubject","ignorableCSN","isOwnMessage","stanza_id_keys","received","ping","PING","rejoinIfNecessary","findDanglingModeration","stanza_id","moderated_id","handleModeration","MODERATION_ATTRIBUTES","moderation_attrs","removeNotification","actor","actors_per_state","existing_actors","actors_per_chat_state","actors_per_traffic_state","actors_per_role_change","is_marker","handleModifyError","setDisconnectionMessage","handleDisconnection","is_self","disconnection_codes","intersection","disconnected","getActionInfoMessage","previous_affiliation","current_affiliation","previous_role","createInfoMessage","onNicknameClash","del","onErrorPresence","moved_jid","onOwnPresence","old_status","locked_room","isUserMentioned","num_unread","ChatRoomOccupant","onAvatarChanged","vcards","isSelf","role1","role2","nick1","nick2","getAutoFetchedAffiliationLists","affs","new_members","known_affiliations","new_nicks","removed_members","RoomsPanelModel","setDomain","onDirectMUCInvitation","x_el","roster","confirm","registerDirectInvitationHandler","autoJoinRooms","onWindowStateChanged","room","groupchats","disconnectChatRooms","using_websocket","handleBookmarksPush","PUBSUB","BOOKMARKS","bookmarks","createBookmarksFromStanza","bookmark","getNicknameFromBookmark","allow_bookmarks","allow_public_bookmarks","muc_respect_autojoin","Bookmark","Bookmarks","bm","openBookmarkedRoom","markRoomAsBookmarked","markRoomAsUnbookmarked","sendBookmarkStanza","cache_key","groupchat","fetchBookmarks","deferred","fetchBookmarksFromServer","createBookmark","onBookmarkError","alert","onBookmarksReceived","onBookmarksReceivedError","sel","getUnopenedBookmarks","BookmarksList","checkBookmarksSupport","initBookmarks","BOSH_SESSION_ID","prebind_url","initBOSHSession","bosh_session","tokens","propertySort","property","generateVerificationString","S","createCapsNode","CAPS","XMPPStatus","constructPresence","enableCarbons","carbons_iq","message_carbons","onChatBoxesFetched","createChatBox","HeadlinesBox","onHeadlineMessage","registerHeadlineHandler","headlines","RSM_QUERY_PARAMETERS","toNumber","RSM_TYPES","isUndefined","RSM_ATTRIBUTES","RSM","getQueryParameters","parseXMLResult","xml","toXML","before","after","MAMEnabledChat","fetchNewestMessages","disable_mam","most_recent_msg","fetchArchivedMessages","handleMAMResult","page_direction","is_muc","event_id","mam_jid","archive","rsm","archived_messages_page_size","message_archiving","message_archiving_timeout","onMAMError","onMAMPreferences","preference","default_pref","getMAMPrefsFromFeature","prefs","preMUCJoinMAMFetch","view","supported","queryid","iq_result","fin","lastStanzaDate","ping_interval","pong","registerPongHandler","registerPingHandler","strict_options","PUBSUB_ERROR","auto_away","auto_xa","csi_waiting_time","default_state","getFullname","status_message","idle","idle_since","setSeconds","getSeconds","idle_seconds","sendCSI","stat","CSI","inactive","auto_changed_status","onEverySecond","registerIntervalHandler","onStatusInitialized","initStatus","HEADER_CURRENT_CONTACTS","HEADER_PENDING_CONTACTS","HEADER_REQUESTING_CONTACTS","HEADER_UNGROUPED","HEADER_UNREAD","HEADER_WEIGHTS","registerPresenceHandler","unregisterPresenceHandler","presence_ref","presenceHandler","rejectPresenceSubscription","sendInitialPresence","populateRoster","rostergroups","fetchRosterGroups","fetchRosterContacts","Resource","Resources","Presence","resources","onResourcesChanged","hpr","getHighestPriorityResource","addResource","propertyOf","removeResource","Presences","RosterContact","setPresence","getFilterCriteria","criteria","subscribe","NICK","ackSubscribe","ackUnsubscribe","removeFromRoster","unauthorize","authorize","subscription","RosterContacts","contact1","contact2","status1","status2","name1","name2","registerRosterHandler","registerRosterXHandler","onRosterPush","subscribeToSuggestedItems","fetchFromServer","addAndSubscribe","groups","addContactToRoster","sendContactAddIQ","g","subscribeBack","getNumOnlineContacts","ignored","sum","updateContact","rosterVersioningSupported","ask","createRequestingContact","user_data","handleIncomingSubscription","handleOwnPresence","presence_type","RosterGroup","description","RosterGroups","WEIGHTS","special_groups","a_is_special","b_is_special","a_header","b_header","updateUnreadCounter","clearPresences","initRoster","_getter","isStreamManagementSupported","SM","handleAck","handled","last_known_handled","unacked_stanzas","sendAck","stanzaHandler","initSessionData","resetSessionData","saveSessionData","onFailedStanza","resendUnackedStanzas","stanzas","onResumedStanza","sendResumeStanza","previous_id","sendEnableStanza","smacks_handlers","enableStreamManagement","conn","onStanzaSent","stanza_string","max_unacked","VCard","VCards","onVCardData","image","crypto","subtle","digest","createStanza","vcard_el","VCARD","getVCard","setVCardOnModel","getVCardForChatroomOccupant","setVCardOnMUCMessage","initVCardCollection","clearVCardsSession","email","image_type","isSame","detectLocale","library_check","userLanguage","isLocaleAvailable","languages","browserLanguage","language","systemLanguage","isConverseLocale","supported_locales","getLocale","preferred_locale","isSupportedByLibrary","available","sublocale","fetchTranslations","dayjs_locale","jed_instance","Jed","available_locales","preferred","translate","registry","register","customElements","elements","FILTER_CONTAINS","regExpEscape","FILTER_STARTSWITH","SORT_BY_LENGTH","SORT_BY_QUERY_POSITION","label","Infinity","ITEM","txt","getElement","expr","isMention","ac_triggers","Suggestion","lenth","AutoComplete","is_opened","hasClass","container","ul","bindEvents","hasAttribute","auto_evaluate","evaluate","onMouseDown","onMouseOver","_list","disabled","opened","insertValue","suggestion","match_current_word","auto_first","goto","offsetTop","clientHeight","suggestions","auto_completing","li","ancestor","target","button","preventDefault","onKeyDown","keyCode","stopPropagation","selecting","contains_trigger","include_triggers","min_chars","max_items","bookmark_item","info_remove_bookmark","open_title","is_hidden","removeBookmark","desc_bookmarks","label_bookmarks","toggleBookmarksList","toggle_state","i18n_heading","i18n_autojoin","i18n_cancel","i18n_name","i18n_nick","i18n_submit","onSubmit","onCancel","paddedLt","ElementProto","View","_domEvents","viewOptions","_ensureElement","delegateEventSplitter","$","render","beforeRender","toHTML","afterRender","_removeElement","undelegateEvents","setElement","_setElement","delegateEvents","delegate","eventName","els","srcElement","delegateTarget","undelegate","_createElement","className","_setAttributes","hide_open_bookmarks","removeBookmarkViaEvent","invokeMap","addBookmarkViaEvent","chatboxviews","renderBookmarkForm","bookmarkableChatRoomView","setBookmarkState","hideChatRoomContents","bookmark_form","MUCBookmarkForm","container_el","insertAdjacentElement","showElement","toggleBookmark","ChatRoomView","chatroomview","tpl_muc_bookmark_form","closeBookmarkForm","onBookmarkFormSubmitted","closeForm","BookmarksView","list_model","insertIntoControlBox","tpl_bookmarks_list","controlboxview","replaceChild","icon_el","slideIn","classList","slideOut","initBookmarkViews","bookmarksview","buttons","bookmarked","data_promise","modal_close_button","modal_header_close_button","tpl_field","challenge_failed","required","BootstrapModal","label_id","insertIntoDOM","Modal","bootstrap","modal","backdrop","keyboard","removeClass","trigger_el","switchTab","addClass","tpl_alert_component","removeElement","Confirm","confirmation","tpl_prompt","close_handler_registered","onConfimation","form_data","FormData","hide","Alert","tpl_alert_modal","prompt","tpl_image_modal","height","transform","addTemplates","payload","renderer","MessageText","until","renderStylingDirectiveBody","directive","setValue","styling_directives","styling_map","dont_escape","styling_templates","isValidDirective","opening","getDirective","isDirectiveEnd","dtype","getDirectiveLength","isQuoteDirective","getDirectiveAndLength","getDirectiveTemplate","template","containsDirectives","tpl_mention_with_nick","mention","tpl_mention","show_images","onImgLoad","onImgClick","addHyperlinks","objs","parse_options","url_obj","url_text","filtered_url","filterQueryParamsFromURL","addTemplateResult","isImageURL","isImageDomainAllowed","convertToImageTag","convertUrlToHyperlink","addMapURLs","addEmojis","addMentions","addStyling","slice_end","trimMeMessage","addReferences","marshall","replaceText","MessageBodyRenderer","component","chatview","was_scrolled_up","scrollDownOnImageLoad","scrollDown","showImageModal","renderBodyText","MessageBody","is_me_message","image_modal","ImageModal","label_download","renderImage","onLoad","onClick","isURLWithImageExtension","commit","APPROVED_URL_PROTOCOLS","getAutoCompleteProperty","new_password","XFORM_TYPE_MAP","slideOutWrapup","overflow","getURI","checkTLS","checkFileTypes","types","ext","isAudioURL","isVideoURL","show_images_inline","image_domain","getFileName","renderAudioURL","tpl_audio","renderImageURL","tpl_file","renderFileURL","getOOBURLMarkup","tpl_video","applyDragResistance","default_value","resistance","calculateElementHeight","offsetHeight","getNextElement","next_el","nextElementSibling","getPreviousElement","prev_el","getFirstChildElement","first_el","getLastChildElement","last_el","lastElementChild","toggleClass","getElementFromTemplateResult","tr","hideElement","nextUntil","sibling_el","innerText","escapeHTML","tpl_image","convertURIoHyperlink","urlAsTyped","normalized_url","pretty_url","visible_url","isProtocolApproved","safeProtocolsList","isUrlValid","urlString","URL","http_url","paramsArray","parsed_uri","replacement","slideInAllElements","duration","slideToggleElement","cancelAnimationFrame","end_height","converse_disable_effects","steps","draw","requestAnimationFrame","original_height","afterAnimationEnds","isInDOM","isVisible","getClientRects","fadeIn","xForm2webForm","option","tpl_select_option","tpl_form_select","tpl_form_textarea","tpl_form_checkbox","tpl_form_url","tpl_form_username","tpl_form_captcha","tpl_form_input","fixed_username","inViewport","rect","getBoundingClientRect","top","left","bottom","innerHeight","right","innerWidth","absoluteOffsetTop","offsetParent","absoluteOffsetLeft","offsetLeft","DOMNavigator","DIRECTION","down","home","DEFAULTS","getSelector","jump_to_picked","jump_to_picked_direction","jump_to_picked_selector","onSelected","getClosestElement","getDistance","curr","current_distance","distance","scroll_container","keydownHandler","getElements","handleKeydown","disable","unselect","domNavigator","direction","elementsAfter","elementsBefore","scrollTo","inScrollContainerViewport","scrollLeft","clientWidth","shiftKey","which","BaseDropdown","firstUpdated","menu","dropdown","toggleMenu","handleKeyUp","composedPath","hideMenu","blur","showMenu","enableArrowNavigation","DropdownList","icon_classes","initArrowNavigation","MessageActions","correcting","message_type","is_retracted","renderActions","getActionsDropdownItem","button_class","icon_class","i18n_text","onMessageEditButtonClicked","onMessageRetractButtonClicked","may_be_moderated","retractable","format","tpl_message_versions_modal","getImgHref","classes","renderAvatar","tpl_avatar","i18n_new_messages","is_first_unread","getExtraMessageClasses","shouldShowAvatar","getAvatarData","renderAvatarByline","edited","pretty_time","renderRetraction","renderMessageText","has_mentions","hats","is_spoiler_visible","moderation_reason","occupant_affiliation","occupant_role","oob_url","progress","show_spinner","tpl_spinner","renderFileProgress","renderInfoMessage","renderChatMessage","connectedCallback","getDerivedMessageProps","requestUpdate","updated","isodate","i18n_retry","data_name","data_value","onRetryClicked","i18n_uploading","tpl_chat_message","image_data","isFollowup","prev_model","isBefore","extra_classes","getRetractionText","retracted_by_mod","mod","modname","retraction_text","i18n_edited","i18n_show","is_groupchat_message","i18n_show_less","tpl_spoiler_hint","toggleSpoilerMessage","spoiler_classes","showMessageVersionsModal","message_versions_modal","MessageVersionsModal","datestring","i18n_no_history","tpl_message","pretty_type","getDayIndicator","isAfter","day_date","startOf","tpl_new_day","getHats","allowed_hats","hat","vcard_roles","muc_role","muc_affiliation","affiliation_role_hats","is_groupchat","MessageHistory","renderMessage","day","ChatContent","xss","filterXSS","unsafeHTML","ConverseIcon","color","class_name","styles","getSource","getStyles","ChatHelp","chat_type","renderHelpMessage","emoji_category","current_category","emoji_category_labels","onCategoryPicked","emoji_picker_header","cats","sn2Emoji","emoji_item","shouldBeHidden","insertEmoji","tpl_search_results","i18n_search_results","search_results","emojis_for_category","tpl_all_emojis","skintone_emoji","skintone","current_skintone","onSkintonePicked","tpl_emoji_picker","i18n_search","skintones","onSearchInputKeyDown","onSearchInputBlurred","onSearchInputFocus","render_emojis","EmojiPickerContent","props","initIntersectionObserver","IntersectionObserver","observer","threshold","setCategoryOnVisibilityChange","observe","intersection_with_selected","intersectionRatio","isIntersecting","preserve_scroll","insertIntoTextArea","onModelChanged","_search_results","debouncedFilter","registerEvents","chooseCategory","emitFocused","chooseSkinTone","getTonedShortname","updateSearchResults","setScrollPosition","heading","old_query","onGlobalKeyDown","_onGlobalKeyDown","onEnterPressed","setCategoryForElement","old_category","onEmojiReceivedFromPicker","emoji_keypress_handled","emitBlurred","disableArrowNavigation","default_selector","EmojiDropdown","initModel","init_promise","ChatToolbar","composing_spoiler","hidden_occupants","message_limit","show_call_button","show_emoji_button","show_occupants_toggle","show_send_button","show_spoiler_button","show_toolbar","i18n_send_message","getButtons","i18n_start_call","toggleCall","i18n_chars_remaining","getSpoilerButton","http_upload_promise","is_supported","getHTTPUploadButton","i18n_hide_occupants","i18n_show_occupants","toggleOccupants","i18n_choose_file","toggleFileUpload","onFileSelection","i18n_toggle_spoiler","toggleComposeSpoilerMessage","spoilers_promise","results","click","ConverseRoot","insertInto","FontAwesome","unsafeSVG","Overview","views","getAll","xget","methods","initial","rest","sample","shuffle","take","without","OrderedListView","listItems","sortEvent","sortImmediatelyOnAdd","listSelector","ItemView","subviewIndex","sortEventually","sortAndPositionAllItems","removeView","createItemView","item_view","list_el","AvatarMixin","avatar_el","ViewWithAvatar","ChatBoxViews","removeChat","bg","getElementById","tpl_background_logo","tpl_converse","row_el","insertRowColumn","closeAllChatBoxes","onChatBoxViewsInitialized","calculateViewportHeightUnit","vh","setProperty","chatviews","maintainScrollTop","markScrolled","i18n_profile","avatar_data","tpl_standalone_btns","standalone_btns","avatar","display_name","dropdown_btns","unread_msgs","label_spoiler_hint","hint_value","composing_spoile","label_message","message_value","device_fingerprint","i18n_trusted","i18n_untrusted","device","fingerprint","fingerprints","i18n_fingerprints","i18n_no_devices","devices","devicelist","remove_button","i18n_remove_contact","removeContact","i18n_address","i18n_email","i18n_full_name","i18n_nickname","i18n_refresh","i18n_role","i18n_url","allow_contact_removal","is_roster_contact","ChatBoxView","is_chatroom","initDebounced","renderMessageForm","onStatusMessageChanged","renderHeading","onPresenceChanged","onMessageAdded","renderChatHistory","maybeScrollDown","renderNotifications","renderHelpMessages","_markScrolled","debouncedScrollDown","renderChatContent","tpl_chatbox","content","msgs_container","help_container","showNewMessagesIndicator","getNotifications","getHelpMessages","msgs_by_ref","tpl_chat_content","msg_models","renderToolbar","getToolbarOptions","tpl_toolbar","form_container","tpl_chatbox_message_form","showControlBox","showUserDetailsModal","user_details_modal","UserDetailsModal","onDragOver","onDrop","dataTransfer","tpl","generateHeadingTemplate","getHeadingStandaloneButton","promise_or_data","a_class","i18n_title","getHeadingDropdownItem","vcard_json","heading_btns","getHeadingButtons","standalone","tpl_chatbox_head","new_own_msg","behavior","scrollHeight","onScrolledDown","addSpinner","clearSpinner","markFollowups","previous_el","parseMessageForCommands","onFormSubmitted","message_text","hint_el","is_command","updateCharCounter","chars","onPaste","clipboardData","getData","autocompleteInPicker","emoji_dropdown","emoji_picker","selectionStart","autocompleting","ac_position","onKeyUp","ctrlKey","altKey","metaKey","onEscapePressed","editEarlierMessage","editLaterMessage","getOwnMessages","retraction_warning","currently_correcting","unsent_text","candidate","inputChanged","relatedTarget","textarea_el","getElementsByClassName","maybeFocus","afterShown","hideNewMessagesIndicator","new_msgs_indicator","scrolled","is_at_bottom","viewUnreadMessages","registerContactEventHandlers","tpl_user_details_modal","refreshContact","refresh_icon","ConverseBrandHeading","is_fullscreen","version_name","sticky_controlbox","trust_checkbox","i18n_hint_trusted","password_input","i18n_password","register_link","i18n_create_account","i18n_hint_no_account","show_register_link","allow_registration","auth_fields","i18n_login","i18n_xmpp_address","placeholder_username","show_trust_checkbox","form_fields","i18n_disconnected","i18n_anon_login","conn_feedback_subject","conn_feedback_class","conn_feedback_message","connection_status","CONNECTION_STATUS_CSS_CLASS","PRETTY_CONNECTION_STATUS","REPORTABLE_STATUSES","ControlBox","allow_logout","allow_user_trust_override","default_domain","locked_domain","show_controlbox_by_default","addControlBox","ControlBoxView","controlboxtoggle","ControlBoxToggle","ensureClosedState","tpl_result","tpl_controlbox","renderLoginPanel","renderControlBoxPane","loginpanel","LoginPanel","LoginPanelModel","panes","initPopovers","controlbox_pane","ControlBoxPane","onControlBoxToggleHidden","showHelpMessages","feedback_class","pretty_status","tpl_login_panel","Popover","jid_element","setCustomValidity","last_part","tpl_controlbox_toggle","controlbox","closed","Controlbox","renderDragResizeHandles","flyout","tpl_dragresize","setWidth","HeadlinesBoxView","initDragResize","setDimensions","dragResizable","debouncedSetDimensions","min_width","min_height","prev_pageY","prev_pageX","resizeChatBox","resizing","pageY","setChatBoxHeight","pageX","setChatBoxWidth","adjustToViewport","flyout_el","viewport_width","viewport_height","onStartVerticalResize","onStartHorizontalResize","onStartDiagonalResize","onMouseMove","onMouseUp","chatview_avatar_height","chatview_avatar_width","oldest_message","i18n_tooltip","MinimizedChat","tpl_trimmed_chat","maximize","toggle","num_minimized","collapsed","minimize","isNewMessageHidden","minimizableChatBox","minimizableChatBoxView","onMaximized","onMinimized","onMinimizedChanged","chatTrimmer","getChatBoxWidth","getShownChats","getMinimizedWidth","minimized_el","minimized_chats","getBoxesWidth","newchat","newchat_width","memo","trimChats","shown_chats","body_width","oldest_chat","getOldestMaximizedChat","exclude_ids","MinimizedChatsToggle","MinimizedChats","initToggle","minchats","tpl_chats_panel","initMinimizedChats","addMinimizeButtonToChat","addMinimizeButtonToMUC","debouncedTrimChats","AutoCompleteComponent","triggers","auto_complete","getAutoCompleteList","occupant_title","i18n_moderator_hint","i18n_participant_hint","i18n_visitor_hint","spaced_jid","hint_occupant","i18n_owner","i18n_admin","i18n_member","i18n_moderator","i18n_visitor","hint_show","PRETTY_CHAT_STATUS","i18n_occupant_hint","i18n_participants","occupant_tpls","tpl_occupant","MUCSidebar","tpl_muc_sidebar","shouldShow","setVisibility","nickname_input","i18n_required_field","i18n_join","i18n_enter","label_room_address","muc_roomid_policy_error_msg","chatroom_placeholder","muc_roomid_policy_hint","br","em","locked_muc_nickname","muc_domain","tpl_add_chatroom_modal","parseRoomDataFromEvent","checkRoomidPolicy","locked_muc_domain","roomid","roomdomain","i18n_invite","i18n_invite_heading","i18n_jid_placeholder","i18n_error_message","i18n_invite_label","i18n_reason","submitInviteForm","invalid_invite_jid","initInviteWidget","tpl_muc_invite_modal","invite_auto_complete","i18n_query","i18n_server_address","submitForm","setDomainFromEvent","server_placeholder","tpl_item","i18n_info_title","i18n_open_title","toggleRoomInfo","i18n_list_chatrooms","show_form","loading_items","spinner","feedback_text","insertRoomInfo","insertAdjacentHTML","tpl_room_description","parent_el","div_el","onDomainChange","updateRoomsList","tpl_list_chatrooms_modal","showRooms","onRoomsFound","setNick","getRoleHelpText","getAffiliationHelpText","aff","role_option","affiliation_option","tpl_set_role_form","i18n_change_role","i18n_new_role","assignRole","assignable_roles","role_list_item","toggleForm","tpl_set_affiliation_form","i18n_change_affiliation","i18n_new_affiliation","assignAffiliation","assignable_affiliations","affiliation_list_item","tpl_navigation","i18n_affiliation","i18n_moderator_tools","i18n_no_users_with_aff","i18n_no_users_with_role","i18n_filter","i18n_show_users","i18n_helptext_role","i18n_helptext_affiliation","show_both_tabs","queryable_roles","queryable_affiliations","queryAffiliation","users_with_affiliation","affiliations_filter","filterAffiliationResults","loading_users_with_affiliation","queryRole","users_with_role","roles_filter","filterRoleResults","loading_users_with_role","shouldFetchAffiliationsList","tpl_moderator_tools_modal","getAssignableAffiliations","getAssignableRoles","modtools_disable_query","auto_fetched_affs","form_class","current_role","i18n_topic","i18n_topic_author","i18n_archiving","i18n_archiving_help","i18n_desc","i18n_features","i18n_hidden","i18n_hidden_help","i18n_members_help","i18n_members_only","i18n_moderated","i18n_moderated_help","i18n_no_pass_help","i18n_no_password_required","i18n_not_anonymous","i18n_not_anonymous_help","i18n_not_moderated","i18n_not_moderated_help","i18n_online_users","i18n_open","i18n_open_help","i18n_password_help","i18n_password_protected","i18n_persistent","i18n_persistent_help","i18n_public","i18n_semi_anon","i18n_semi_anon_help","i18n_temporary","i18n_temporary_help","num_occupants","passwordprotected","unsecured","public_room","membersonly","persistent","temporary","nonanonymous","semianonymous","unmoderated","tpl_chatroom_details_modal","sidebar_hidden","tpl_can_edit","i18n_not_allowed","entered","can_edit","tpl_moved","i18n_moved","i18n_non_existent","i18n_hide_topic","i18n_bookmarked","show_subject","subject_hidden","nickname_validation_message","i18n_save","submitConfigForm","instructions","closeConfigForm","submitPassword","validation_message","heading_chatrooms","title_list_rooms","title_new_room","OWNER_COMMANDS","ADMIN_COMMANDS","MODERATOR_COMMANDS","VISITOR_COMMANDS","COMMAND_TO_ROLE","COMMAND_TO_AFFILIATION","onSidebarToggle","getAndRenderConfigurationForm","renderBottomPanel","onOccupantAffiliationChanged","onOccupantRoleChanged","showJoinOrLeaveNotification","shouldShowSidebar","tpl_chatroom","showSpinner","actors","actors_str","last_actor","setting","disabled_commands","getAllowedCommands","tpl_muc_bottom_panel","initMentionAutoComplete","onStartResizeOccupants","sidebar_el","resizeSidebarView","element_position","occupants_width","calculateSidebarWidth","current_mouse_position","is_minimum","is_maximum","flex","room_width","getAutoCompleteListItem","img","dataUri","mention_auto_complete","submitNickname","showModeratorToolsModal","verifyRoles","modtools_modal","ModeratorToolsModal","showRoomDetailsModal","room_details_modal","RoomDetailsModal","showChatStateNotification","showInviteModal","toggleTopic","allowed_commands","tpl_chatroom_head","muc_invite_modal","MUCInviteModal","renderNicknameForm","renderPasswordForm","hideSpinner","showDisconnectMessage","showDestroyedMessage","visible_toolbar_buttons","toggle_occupants","hideOccupants","roles","show_error","verifyAffiliations","validateRoleOrAffiliationChangeArgs","command","getNickOrJIDFromCommandArgs","nick_or_jid","required_affiliations","onCommandError","getReason","required_roles","newjid","renderConfigurationForm","config_form","MUCConfigForm","tpl_muc_nickname_form","form_el","renderAfterTransition","password_form","MUCPasswordForm","tpl_muc_destroyed","switch_el","tpl_muc_disconnect","getPreviousJoinOrLeaveNotification","today","dataset","leavejoin","joinleave","RoomsPanel","tpl_room_panel","showAddRoomModal","add_room_modal","AddMUCModal","showMUCListModal","muc_list_modal","MUCListModal","renderRoomsPanel","viewWithRoomsPanel","roomspanel","getRoomsPanel","password_protected","tpl_muc_config_form","inputs","config_array","tpl_muc_password_form","setMUCDomain","setMUCDomainFromDisco","featureAdded","fetchAndSetMUCDomain","openChatRoomFromURIClicked","addView","roomviews","tpl_headline_box","headlinebox","headlineboxes","heading_headline","tpl_headline_list","info_close","label_personal_message","HeadlinesPanel","renderIfHeadline","tpl_headline_panel","openHeadline","renderHeadlinesPanel","viewWithHeadlinesPanel","headlinepanel","supports_html5_notification","Favico","favicon","updateUnreadFavicon","animation","badge","chatstate_notification_blacklist","notification_delay","notification_icon","notify_all_room_messages","notify_nicknames_without_references","play_sounds","show_chat_state_notifications","show_desktop_notifications","show_tab_notifications","sounds_path","shouldNotifyOfGroupMessage","notify_all","is_mentioned","is_referenced","is_not_mine","should_notify_user","isMessageToHiddenChat","shouldNotifyOfMessage","playSoundNotification","Audio","audioOgg","canPlayOgg","canPlayType","play","audioMp3","canPlayMp3","areDesktopNotificationsEnabled","Notification","permission","showMessageNotification","is_error","roster_item","full_from_jid","onclick","chat_status","icon","showContactRequestNotification","showFeedbackNotification","klass","handleChatStateNotification","handleMessageNotification","handleContactRequestNotification","handleFeedback","requestPermission","tpl_command_form","i18n_hide","i18n_run","runCommand","alert_type","hideCommandForm","tpl_command","toggleCommandForm","showform","tpl_adhoc","i18n_choose_service","i18n_choose_service_instructions","i18n_commands_found","i18n_fetch_commands","i18n_no_commands_found","fetchCommands","cmd","fetchCommandForm","cmd_el","sessionid","AdHocCommands","i18n_about","i18n_commands","i18n_modal_title","first_subtitle","second_subtitle","show_client_info","allow_adhoc_commands","tpl_user_settings_modal","modal_title","label_online","label_busy","label_away","label_xa","placeholder_status_message","label_save","i18n_logout","i18n_change_status","i18n_details","show_settings_button","showUserSettingsModal","i18n_alt_avatar","ImagePicker","openFileSelection","updateFilePreview","reader","onloadend","readAsDataURL","current_device","device_with_fingerprint","i18n_fingerprint_checkbox_label","device_without_fingerprint","i18n_device_without_fingerprint","device_item","device_list","i18n_other_devices","i18n_other_devices_label","i18n_remove_devices","i18n_select_all","other_devices","omemo_page","i18n_fingerprint","i18n_generate","heading_profile","i18n_fullname","i18n_jid","i18n_role_help","i18n_omemo","navigation","ProfileModal","tpl_profile_modal","tabs","Tab","setVCard","image_file","readAsBinaryString","ChatStatusModal","tpl_chat_status_modal","clearStatusMessage","roster_filter","XMPPStatusView","tpl_profile","getPrettyStatus","showProfileModal","profile_modal","showStatusChangeModal","status_modal","user_settings_modal","UserSettingsModal","logOut","xmppstatusview","UNDECIDED","TRUSTED","UNTRUSTED","TAG_LENGTH","KEY_ALGO","IQError","parseEncryptedMessage","prekey","decryptPrekeyWhisperMessage","decryptWhisperMessage","onChatBoxesInitialized","checkOMEMOSupported","onChatInitialized","omemo","encryptMessage","plaintext","iv","getRandomValues","generateKey","algo","encrypt","ciphertext","exported_key","exportKey","decryptMessage","key_obj","importKey","cipher","decrypt","getSessionCipher","libsignal","SignalProtocolAddress","SessionCipher","handleDecryptedWhisperMessage","key_and_tag","devicelists","getDeviceList","_devices_promise","getDecryptionErrorAttributes","session_cipher","decryptPreKeyWhisperMessage","generateMissingPreKeys","publishBundle","from_real_jid","addKeysToMessageStanza","dicts","parseBundle","bundle_el","signed_prekey_public_el","signed_prekey_signature_el","prekeys","generateFingerprint","bundle","getBundle","getDevicesForContact","fetchDevices","generateDeviceID","existing_ids","KeyHelper","generateRegistrationId","buildSession","sessionBuilder","SessionBuilder","getRandomPreKey","processPreKey","identity_key","signed_prekey","public_key","signature","getSession","loadSession","updateBundleFromStanza","items_el","OMEMO_BUNDLES","updateDevicesFromStanza","OMEMO_DEVICELIST","device_selector","device_ids","removed_ids","publishCurrentDevice","registerPEPPushHandler","restoreOMEMOSession","OMEMOStore","fetchSession","fetchDeviceLists","fetchOwnDevices","own_devicelist","initOMEMO","DeviceLists","contactHasOMEMOSupport","toggleOMEMO","toolbar_el","getOMEMOToolbarButton","i18n_plaintext","i18n_encrypted","OMEMOEnabledChatBox","encryptKey","handleMessageSendError","err_msgs","user_facing","debouncedRender","selectAll","sibling","removeSelectedFingerprints","removeOwnDevices","generateOMEMODeviceBundle","generate","toggleDeviceTrust","radio","getBundlesAndBuildSessions","createOMEMOMessageStanza","NUM_PREKEYS","generateFingerprints","getDeviceForContact","no_devices_err","collections","their_devices","own_devices","sessions","Direction","SENDING","RECEIVING","getIdentityKeyPair","keypair","privKey","pubKey","getLocalRegistrationId","isTrustedIdentity","identifier","trusted","loadIdentityKey","saveIdentity","fromString","getName","b64_idkey","getPreKeys","loadPreKey","key_id","storePreKey","key_pair","removePreKey","loadSignedPreKey","keyId","storeSignedPreKey","spk","keyPair","removeSignedPreKey","storeSession","record","removeSession","removeAllSessions","pubsub","publish","missing_keys","range","generatePreKey","marshalled_keys","generateBundle","identity_keypair","generateIdentityKeyPair","generateSignedPreKey","_setup_promise","Device","fetchBundleFromServer","publish_el","Devices","DeviceList","onDevicesFound","fetchDevicesFromServer","getOwnDeviceId","publishDevices","disablePushAppServer","push_app_server","PUSH","enablePushAppServer","secret","enablePush","push_enabled","enabled_services","disabled_services","onChatBoxAdded","REGIFAIL","REGISTERED","NOTACCEPTABLE","renderRegistrationPanel","showLoginOrRegisterForm","registerpanel","RegisterPanel","login_panel","setActiveForm","registerHooks","tpl_register_panel","fetchRegistrationForm","connect_cb","_registering","getRegistrationFields","showValidationError","onRegistrationFields","REGISTER","setFields","renderRegistrationForm","urls","registered","form_type","onFormSubmission","submitRegistrationForm","onProviderChosen","domain_input","domain_name","renderRegistrationRequest","clearRegistrationForm","tpl_registration_request","giveFeedback","abortRegistration","renderLegacyRegistrationForm","tpl_registration_form","flash","reportErrors","renderProviderChoiceForm","has_empty_inputs","xml_nodes","_onRegisterIQ","_setFieldsFromXForm","_setFieldsFromLegacy","_var","i18n_add_bookmark","i18n_remove_bookmark","addBookmark","room_item","i18n_leave_room","unread_indicator","currently_open","closeRoom","i18n_desc_rooms","toggleRoomsList","RoomsList","RoomsListView","renderIfChatRoom","renderIfRelevantChange","tpl_rooms_list","initRoomsListView","rooms_list_view","i18n_contact_placeholder","i18n_add","i18n_new_contact","xhr_user_search_url","visible","submitFilter","changeTypeFilter","filter_type","title_contact_filter","title_group_filter","title_status_filter","filter_text","liveFilter","clearFilter","changeChatStateFilter","label_any","label_unread_messages","label_chatty","label_offline","STATUSES","AddContactModal","label_nickname","tpl_add_contact_modal","initXHRAutoComplete","initJIDAutoComplete","jid_input","jid_auto_complete","initXHRFetch","name_auto_complete","input_el","validateSubmission","afterSubmission","addContactFromForm","RosterFilter","RosterFilterView","tpl_roster_filter","shouldBeVisible","isActive","RosterContactView","highlight","mayBeShown","requesting","classes_to_remove","tpl_pending_contact","tpl_requesting_contact","rosterview","renderRosterItem","status_icon","tpl_roster_item","chatStatus","acceptRequest","declineRequest","RosterGroupView","onRemove","onContactGroupChange","tpl_group_header","contacts_el","collapse","filterOutContacts","shown","contact_view","getFilterMatches","sticky_groups","filter_view","in_this_group","in_this_overview","RosterView","onContactAdded","onContactChange","updateFilter","addRosterContact","createRosterFilter","tpl_roster","allow_contact_requests","roster_el","showAddContactModal","add_contact_modal","syncContacts","addContactToGroup","addExistingContact","getGroup","highlightRosterItem","insertRoster","initRosterView","groupview","WHITELISTED_PLUGINS","templateSettings"],"mappings":";QAAA;QACA;QACA;QACA;;;QAGA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;;;QAGA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;;;QAIA;QACA;QACA,yCAAyC,4hKAA4hK;QACrkK;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA;;;;;;;;;;;;;;;;;;;;;;;ACrMA;;;;;;;;;AAQA;;;;AAIA;;;;AAIA,MAAMA,QAAQ,GAAG,UAAUC,CAAV,EAAaC,CAAb,EAAgB;AAC7B,QAAMC,GAAG,G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EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,kCAAkC,IAAI;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,0BAA0B;AAC1B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA,gBAAgB,IAAI;;AAEpB;AACA;;AAEA;;AAEA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS;;AAET;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ,6BAA6B;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,eAAe;;AAEf,SAAS;;AAET;AACA,QAAQ,iCAAiC;AACzC,QAAQ,oBAAoB;AAC5B,QAAQ,sCAAsC;AAC9C,QAAQ;AACR,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,6DAA6D;;AAE7D;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA,8DAA8D;;AAE9D;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,8CAA8C;;AAE9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,iEAAiE,UAAU;AAC3E,sCAAsC,2BAA2B;AACjE;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,UAAU;AACpB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,cAAc;AACxB;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA,YAAY,uEAAuE;AACnF;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,4DAA4D;;AAE5D;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,QAAQ,SAAS;AACjB;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iDAAiD;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA,iDAAiD;AACjD,UAAU,4CAA4C;AACtD;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK,IAA0C;AAC/C,CAAC,mCAAQ;AACT;AACA,EAAE;AAAA,oGAAE;;AAEJ;AACA,CAAC,MAAM,EAIN;;AAED;;AAEA,CAAC;;;;;;;;AC76ED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAEAmB,MA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A;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAEc,iEAAQ,EAAC;;;;;;;;AC7BxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA,YAAY,mBAAO,CAAC,GAAW;AAC/B,UAAU,mBAAO,CAAC,GAAQ;AAC1B,aAAa,mBAAO,CAAC,EAAW;AAChC;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;ACVA,oCAAY,kBAAkB,gBAAgB,UAAU,UAAU,0CAA0C,gBAAgB,OAAC,OAAO,oBAAoB,8CAA8C,kCAAkC,YAAY,YAAY,mCAAmC,iBAAiB,eAAe,sBAAsB,oBAAoB,kDAAkD,WAAW,YAAY,SAAS,SAAS,KAAK;AAC7c;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA,sCAAsC,2BAA2B;AACjE;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,4CAA4C;AAC5C,sCAAsC;AACtC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,yBAAyB;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO,UAAU;AAC5B,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,qCAAqC;AACxC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA,CAAC,EAAE,WAAW;AACd;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ,QAAQ,OAAO;AACf,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA,cAAc,gCAAgC;AAC9C;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,oDAAoD;AAC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AACtC,oCAAoC;AACpC,mCAAmC;AACnC,mCAAmC;AACnC,kCAAkC;AAClC,oCAAoC;AACpC,oCAAoC;AACpC,8BAA8B;AAC9B,mCAAmC;AACnC,8BAA8B;AAC9B,4BAA4B;AAC5B,mCAAmC;AACnC,iCAAiC;AACjC,mCAAmC;AACnC,gCAAgC;AAChC,iCAAiC;AACjC,oCAAoC;AACpC,oCAAoC;AACpC,+BAA+B;;AAE/B;AACA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,wBAAwB;AAC3B;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA,YAAY;AACZ;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK,kBAAkB;AACvB;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,YAAY;AACf;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,GAAG,EAAE,GAAG;;;AAGT;AACA;AACA,mC;;;;;;ACzlDA,6BAA6B;AAC7B,uCAAuC;;;;;;;ACDvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC9BA;AAAA;AAA8B;AACS;;AAEvC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,wDAAI;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6DAAS;;AAE3B,iEAAQ,EAAC;;;;;;;;ACrCxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAEAd,MAAM,CAAC5b,MAAP,GAAgB6b,qDAAA,CAAgB7b,MAAhC;AACA4b,MAAM,CAACtb,GAAP,GAAaub,qDAAA,CAAgBvb,GAA7B;AACAsb,MAAM,CAACvb,IAAP,GAAcwb,qDAAA,CAAgBxb,IAA9B;AACAub,MAAM,CAACrb,KAAP,GAAesb,qDAAA,CAAgBtb,KAA/B;AACAqb,MAAM,CAACzb,OAAP,GAAiB0b,qDAAA,CAAgB1b,OAAjC;AAEA;AAEO,MAAM;AAAEwa;AAAF,IAAekB,kDAArB,C;;;;;;;ACfP,aAAa,mBAAO,CAAC,EAAW;AAChC,gBAAgB,mBAAO,CAAC,GAAc;AACtC,qBAAqB,mBAAO,CAAC,GAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,eAAe,mBAAO,CAAC,GAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChBA,eAAe,mBAAO,CAAC,EAAc;AACrC;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,IAAsD,EAAE,mBAAmB,KAAK,UAAoO,CAAC,aAAa,0BAA0B,0BAA0B,gBAAgB,UAAU,UAAU,0CAA0C,gBAAgB,OAAC,OAAO,oBAAoB,8CAA8C,qCAAqC,YAAY,YAAY,mCAAmC,iBAAiB,gBAAgB,sBAAsB,oBAAoB,0CAA0C,YAAY,WAAW,YAAY,SAAS,GAAG;AAClzB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,qIAAqI;AACtI,CAAC,GAAG;AACJ;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,CAAC,EAAE,MAAM;AACT;AACA;AACA;AACA;AACA;;AAEA,CAAC,qIAAqI;AACtI,CAAC,EAAE,MAAM;AACT;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB;AACrB,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA,iBAAiB;AACjB,mGAAmG;AACnG;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA,iBAAiB;AACjB,mGAAmG;AACnG;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mCAAmC,YAAY;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB,qBAAqB;AACrB,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC,yBAAyB;AAC5D;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,yBAAyB;AACxD;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,aAAa;AACb,SAAS;AACT;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;;AAEA;AACA,0EAA0E,SAAS;AACnF;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,QAAQ;AACrD;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,iDAAiD,QAAQ;AACzD;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA,mEAAmE;AACnE;;AAEA,6CAA6C;AAC7C;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA,6EAA6E;;AAE7E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2DAA2D,SAAS;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yEAAyE,WAAW;AACpF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;;AAEA;;AAEA,CAAC,EAAE,MAAM,EAAE,GAAG;AACd,CAAC;;;;;;;;;AChvFD,iBAAiB,mBAAO,CAAC,EAAc;AACvC,eAAe,mBAAO,CAAC,EAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA,aAAa,mBAAO,CAAC,EAAW;AAChC,WAAW,mBAAO,CAAC,EAAS;AAC5B,UAAU,mBAAO,CAAC,EAAQ;AAC1B,WAAW,mBAAO,CAAC,EAAS;AAC5B,UAAU,mBAAO,CAAC,EAAQ;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB;;;;;;;AC7DA,SAAS,mBAAO,CAAC,EAAc;AAC/B,iBAAiB,mBAAO,CAAC,GAAkB;AAC3C,iBAAiB,mBAAO,CAAC,EAAgB;AACzC;AACA,CAAC;AACD;AACA;AACA;;;;;;;ACPA;AACA,kBAAkB,mBAAO,CAAC,EAAU;AACpC,iCAAiC,QAAQ,mBAAmB,UAAU,EAAE,EAAE;AAC1E,CAAC;;;;;;;ACHD,oBAAoB,mBAAO,CAAC,EAAkB;AAC9C,eAAe,mBAAO,CAAC,GAAa;AACpC,kBAAkB,mBAAO,CAAC,EAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpCA;AACA;AACA,MAAM,IAA0C;AAChD;AACA,IAAI,iCAAO,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AACvB,GAAG,MAAM,YAeN;AACH,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yDAAyD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,2CAA2C;AAC3C;AACA,KAAK;;AAEL;AACA,0DAA0D;AAC1D;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,+CAA+C;AAC/C;AACA;AACA,gCAAgC;AAChC,eAAe,4BAA4B,kCAAkC;AAC7E,6GAA6G,gBAAgB;AAC7H;AACA,OAAO,gCAAgC;AACvC,eAAe,4BAA4B,kCAAkC;AAC7E,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,uDAAuD;AACvD;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;;AAEP;AACA,KAAK;AACL;AACA;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,KAAK;AACL,qDAAqD;AACrD;AACA,8DAA8D,mCAAmC,EAAE;AACnG,wCAAwC,kCAAkC,EAAE;AAC5E,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,KAAK;AACL,uDAAuD;AACvD,+BAA+B,qDAAqD;AACpF;AACA;AACA;AACA,yDAAyD,uFAAuF;AAChJ,4BAA4B,2DAA2D;AACvF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yGAAyG;AACzG;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;AACA,sDAAsD;AACtD,kCAAkC;AAClC;AACA,SAAS,OAAO;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO,sDAAsD;AAC7D,gCAAgC;AAChC;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,oGAAoG,EAAE;AACxI;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+B;AACA;AACA;AACA,OAAO;AACP,kC;AACA;AACA;AACA,OAAO;AACP;AACA,qIAAqI;;AAErI,6BAA6B;;AAE7B;AACA;;AAEA,6BAA6B;;AAE7B;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA,qEAAqE;AACrE,uEAAuE;AACvE;AACA;;AAEA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,uEAAuE;;AAEvE;AACA,gDAAgD,MAAM;AACtD;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB,EAAE;AACnD,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,yCAAyC;AACzC;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA,O;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA,qCAAqC;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,aAAa,E;AACvD,YAAY,aAAa;AACzB;AACA;AACA,0C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,kF;AACA,OAAO;;AAEP;AACA;AACA;AACA,8C;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,QAAQ;AAC3G;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,wCAAwC,qBAAqB;AAC7D,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,sG;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uCAAuC,EAAE;AACvE;;AAEA;AACA;;AAEA;AACA;AACA,wDAAwD,QAAQ,E;AAChE,YAAY,QAAQ;AACpB;;AAEA;AACA,yCAAyC;AACzC,6DAA6D;AAC7D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,0CAA0C;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C,gBAAgB,EAAE;;AAE7D,mBAAmB,QAAQ,EAAE;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA,OAAO;AACP,sCAAsC;AACtC;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0C;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,aAAa,OAAO;AAC5D;AACA;AACA,8DAA8D;;AAE9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,+DAA+D;;AAE/D;AACA;AACA,kC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D,kBAAkB,6BAA6B,+BAA+B;AAC9E,UAAU,2BAA2B;AACrC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oDAAoD;;AAEpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,qBAAqB,gB;AACrB,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,kEAAkE;;AAElE,kD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,yE;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,aAAa,E;AAC1C,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,wCAAwC;AACxC;AACA;AACA,iCAAiC,yCAAyC;AAC1E,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,mCAAmC;AACnC;AACA;AACA,WAAW;AACX,kCAAkC;AAClC,sEAAsE;AACtE;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,2C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS,OAAO,eAAe,E;AAC/B;;AAEA,sBAAsB;;AAEtB;AACA,8B;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;AACA,6DAA6D;AAC7D,iC;AACA;;AAEA;AACA;AACA;AACA;AACA,8C;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO,OAAO,eAAe;AAC7B;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA,uBAAuB,uDAAuD;AAC9E;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wFAAwF;AACxF,qFAAqF;AACrF,+DAA+D;;AAE/D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oDAAoD;;AAEpD;AACA;AACA;AACA,uBAAuB;AACvB,OAAO;AACP;AACA,mIAAmI;;AAEnI,kDAAkD;AAClD;AACA;AACA;AACA,oC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA,2F;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,qBAAqB,aAAa,E;AAClC,YAAY,aAAa;AACzB;;AAEA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;AAIA;AACA;AACA;AACA,yCAAyC,KAAK;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA,uCAAuC,KA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C,EAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA,eAAe,mBAAO,CAAC,EAAc;AACrC,qBAAqB,mBAAO,CAAC,GAAmB;AAChD,kBAAkB,mBAAO,CAAC,GAAiB;AAC3C;;AAEA,YAAY,mBAAO,CAAC,EAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;;;;;;;ACFA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;AACA,2DAA2D;;AAE3D;AACA,+CAA+C;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB,yBAAyB;AACzB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,MAAM,aAAa,OAAO;;AAEpD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,EAAE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,eAAe;AACf;;AAEA;AACA;AACA,UAAU;AACV,SAAS;AACT,SAAS;AACT,WAAW;AACX,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,KAA0B;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,EAAE;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA,cAAc,2BAA2B;AACzC;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B,EAAE;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,EAAE;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,QAAQ;AACvB;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,6BAA6B;AAC5C,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,gBAAgB;AAChB,OAAO;;AAEP;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,mBAAmB;AAClC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,gBAAgB,QAAQ;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,gBAAgB,QAAQ;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,eAAe,OAAO,WAAW;AACjC,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO,WAAW;AACjC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO,WAAW;AACjC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+CAA+C;AACpF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,eAAe,MAAM;AACrB;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,oEAAoE;AACpE;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,eAAe,MAAM;AACrB;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,MAAM;AACrB;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,wCAAwC;AACxC,+DAA+D;AAC/D,iEAAiE;AACjE;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,GAAG,SAAS,KAAK,SAAS;AAC3D,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,uBAAuB,iBAAiB,GAAG,iBAAiB;AAC5D;AACA,mCAAmC,iBAAiB;AACpD,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,oCAAoC;AAC9C,UAAU,qCAAqC;AAC/C,UAAU;AACV;AACA;AACA,4CAA4C,kBAAkB,EAAE;AAChE;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,qCAAqC;AAC/C,UAAU,qCAAqC;AAC/C,UAAU;AACV;AACA;AACA,uCAAuC,kBAAkB,EAAE;AAC3D;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,UAAU,qCAAqC;AAC/C,UAAU,qCAAqC;AAC/C,UAAU;AACV;AACA;AACA,uCAAuC,2BAA2B,EAAE;AACpE;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,UAAU,oCAAoC;AAC9C,UAAU,qCAAqC;AAC/C,UAAU;AACV;AACA;AACA,2CAA2C,4BAA4B,EAAE;AACzE;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,SAAS,KAAK,SAAS,GAAG,SAAS;AAC7D,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,uBAAuB,iBAAiB,GAAG,iBAAiB;AAC5D,sBAAsB,iBAAiB,GAAG,iBAAiB;AAC3D;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,qBAAqB,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;AAClE;AACA,4BAA4B,SAAS,GAAG,SAAS;AACjD;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,qBAAqB,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB;AAC9E;AACA,8BAA8B,iBAAiB;AAC/C;AACA,eAAe,iBAAiB,GAAG,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,qBAAqB;AACpC,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C;AACA,iCAAiC,SAAS,eAAe,YAAY,EAAE;AACvE;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C;AACA,qCAAqC,SAAS,eAAe,YAAY,EAAE;AAC3E;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,oCAAoC;AAC9C,UAAU,qCAAqC;AAC/C,UAAU;AACV;AACA;AACA,4CAA4C,kBAAkB,EAAE;AAChE;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,qCAAqC;AAC/C,UAAU,qCAAqC;AAC/C,UAAU;AACV;AACA;AACA,uCAAuC,kBAAkB,EAAE;AAC3D;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS,KAAK,SAAS,GAAG,SAAS;AACtD,eAAe,SAAS,GAAG,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,uBAAuB,iBAAiB,GAAG,iBAAiB;AAC5D,sBAAsB,iBAAiB,GAAG,iBAAiB;AAC3D;AACA;AACA,eAAe,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB;AACxE;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS,GAAG,SAAS,GAAG,SAAS;AACnD,eAAe,SAAS,GAAG,SAAS;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,uBAAuB,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB;AAChF;AACA;AACA,eAAe,iBAAiB,GAAG,iBAAiB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS,KAAK,SAAS,GAAG,SAAS;AACpD,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,uBAAuB,iBAAiB,GAAG,iBAAiB;AAC5D,sBAAsB,iBAAiB,GAAG,iBAAiB;AAC3D;AACA;AACA,eAAe,iBAAiB,GAAG,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,cAAc,OAAO,QAAQ,SAAS,GAAG,SAAS,GAAG;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,UAAU,+BAA+B;AACzC,UAAU,+BAA+B;AACzC,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB,QAAQ,OAAO,SAAS,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,8BAA8B;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,UAAU,8BAA8B;AACxC,UAAU;AACV;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,gBAAgB,OAAO;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,+CAA+C;AACzD,UAAU;AACV;AACA;AACA;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,UAAU,8CAA8C;AACxD,UAAU;AACV;AACA;AACA,oCAAoC,kBAAkB,EAAE;AACxD;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA,UAAU,+CAA+C;AACzD,UAAU,gDAAgD;AAC1D,UAAU;AACV;AACA;AACA,kCAAkC,mBAAmB,EAAE;AACvD;AACA;AACA;AACA,sBAAsB,2BAA2B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,sBAAsB;AACrC;AACA,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,UAAU,4BAA4B;AACtC,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR,cAAc,OAAO,4BAA4B,QAAQ,8BAA8B;AACvF;AACA;AACA,cAAc,UAAU,4BAA4B,YAAY,8BAA8B;AAC9F;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA,UAAU,mBAAmB;AAC7B,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,qCAAqC;AACpD;AACA,eAAe,SAAS;AACxB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,8BAA8B;AACxC,UAAU,8BAA8B;AACxC,UAAU,8BAA8B;AACxC,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,gDAAgD;AAC1D,UAAU,+CAA+C;AACzD,UAAU;AACV;AACA;AACA,uCAAuC,iBAAiB,EAAE;AAC1D;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,cAAc,iBAAiB,EAAE;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA,QAAQ,IAAI;AACZ,cAAc,8BAA8B;AAC5C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,UAAU,+CAA+C;AACzD,UAAU;AACV;AACA;AACA,oCAAoC,kBAAkB,EAAE;AACxD;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,gBAAgB,OAAO;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,mCAAmC;AAC7C,UAAU;AACV;AACA;AACA;AACA,sBAAsB,oCAAoC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,yBAAyB;AACxC;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,8BAA8B;AACxC,UAAU,8BAA8B;AACxC,UAAU,8BAA8B;AACxC,UAAU;AACV;AACA;AACA,qCAAqC,eAAe,EAAE;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,oBAAoB,iCAAiC;AACrD,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO,YAAY;AAClC,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,kDAAkD,kBAAkB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,KAAK;AACpB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,KAAK;AACpB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,yBAAyB;AACxC;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,qBAAqB;AACpC,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO,YAAY;AAClC,eAAe,QAAQ;AACvB;AACA,eAAe,QAAQ;AACvB;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,6BAA6B,mBAAmB,cAAc,EAAE,EAAE;AAClE;AACA;AACA,6BAA6B,mBAAmB,cAAc,EAAE,EAAE;AAClE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,iCAAiC,kBAAkB,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA,kDAAkD,kBAAkB,EAAE;AACtE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,0BAA0B,SAAS;AACnC;AACA;AACA,0BAA0B,SAAS;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,MAAM;AACvB;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,cAAc;AACd;AACA,iBAAiB,SAAS;AAC1B,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,cAAc;AACd;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS,GAAG,SAAS,GAAG,SAAS;AAClD,cAAc;AACd;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS,GAAG,SAAS,GAAG,SAAS;AAClD,cAAc;AACd;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qBAAqB;AACpC,iBAAiB,MAAM;AACvB;AACA;AACA,qBAAqB,QAAQ,OAAO,SAAS,EAAE;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS,GAAG,SAAS;AACpD,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,uBAAuB,OAAO,SAAS,EAAE,GAAG,OAAO,iBAAiB,EAAE;AACtE,cAAc,OAAO,iBAAiB;AACtC;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD,qBAAqB,6BAA6B;AAClD,qBAAqB;AACrB;AACA;AACA,qCAAqC,mBAAmB,EAAE;AAC1D;AACA;AACA;AACA,yBAAyB,2BAA2B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD,qBAAqB,6BAA6B;AAClD,qBAAqB;AACrB;AACA;AACA,yCAAyC,mBAAmB,EAAE;AAC9D;AACA;AACA;AACA,6BAA6B,4BAA4B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA,qBAAqB,QAAQ,OAAO,SAAS,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB,OAAO,SAAS;AACrC,6BAA6B,gBAAgB,SAAS,GAAG;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA,8BAA8B,gBAAgB,SAAS,GAAG;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,QAAQ;AACR,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,KAAK;AACpB,iBAAiB,EAAE;AACnB;AACA;AACA,qBAAqB,QAAQ,OAAO,oBAAoB,EAAE;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA,QAAQ;AACR,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD,qBAAqB;AACrB;AACA;AACA,uCAAuC,cAAc,EAAE;AACvD,cAAc,2BAA2B;AACzC;AACA;AACA;AACA,cAAc,2BAA2B;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,gBAAgB,SAAS,GAAG,SAAS;AACrC;AACA;AACA;AACA,gBAAgB,SAAS,GAAG,SAAS;AACrC;AACA;AACA;AACA,cAAc,QAAQ,iBAAiB,GAAG,iBAAiB;AAC3D;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,KAAK;;AAEL;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qBAAqB;AACpC,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qBAAqB;AACpC,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;AACd;AACA;AACA,gCAAgC;AAChC,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA,qBAAqB,QAAQ,OAAO,+BAA+B,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB,QAAQ,OAAO,SAAS,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO,WAAW;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA,QAAQ,IAAI;AACZ,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB,QAAQ,OAAO,SAAS,EAAE;AAC/C;AACA;AACA;AACA;AACA,cAAc,QAAQ,QAAQ,EAAE;AAChC;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,QAAQ,EAAE;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB,QAAQ,OAAO,SAAS,EAAE;AAC/C;AACA,iDAAiD,cAAc,EAAE;AACjE;AACA;AACA;AACA,iDAAiD,sBAAsB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO,WAAW;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B,eAAe,gBAAgB;AAC/B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO,YAAY;AAClC,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,gBAAgB,OAAO;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC,qBAAqB,UAAU;AAC/B;AACA;AACA,sEAAsE,2BAA2B,EAAE;AACnG,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA,4DAA4D;AAC5D,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA,qDAAqD,2BAA2B,EAAE;AAClF,wCAAwC,aAAa,eAAe,EAAE;AACtE,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA,wDAAwD,qCAAqC;AAC7F;AACA;AACA;AACA;AACA,0DAA0D,qBAAqB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD,0CAA0C,QAAQ;AAClD,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B,mCAAmC;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA,4CAA4C;;AAE5C;AACA,uDAAuD;AACvD;AACA;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,+BAA+B,iCAAiC;AAChE,cAAc;AACd;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO,YAAY;AAClC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC,aAAa,QAAQ,QAAQ,UAAU,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,KAAK;AACpB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qBAAqB;AACpC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B,UAAU;AACV;AACA;AACA,qCAAqC,mBAAmB,cAAc,EAAE,EAAE;AAC1E,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA,eAAe,SAAS,GAAG,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,UAAU,8CAA8C;AACxD,UAAU;AACV;AACA;AACA;AACA,mCAAmC,mCAAmC;AACtE,eAAe,8CAA8C;AAC7D;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,UAAU,yBAAyB;AACnC,UAAU;AACV;AACA;AACA,oCAAoC,iBAAiB;AACrD,eAAe,yBAAyB;AACxC;AACA;AACA,gDAAgD,SAAS,cAAc,SAAS;AAChF,eAAe,yBAAyB,GAAG,yBAAyB;AACpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,UAAU,yBAAyB;AACnC,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,eAAe,yBAAyB,GAAG,yBAAyB;AACpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,UAAU,OAAO,qBAAqB,EAAE;AACxC,UAAU,OAAO,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB,eAAe,OAAO,YAAY;AAClC,eAAe,QAAQ;AACvB,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB,GAAG,iBAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,qDAAqD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS,GAAG,SAAS;AAC3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,UAAU,OAAO,SAAS,EAAE;AAC5B,UAAU,OAAO,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C;AACA,qCAAqC,YAAY,EAAE;AACnD,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;AACpE;AACA,sCAAsC,YAAY,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C;AACA,qCAAqC,YAAY,EAAE;AACnD,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;AACpE;AACA,qCAAqC,YAAY,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK,MAAM,iBAAiB;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,4DAA4D;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yCAAyC;AACtE;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA,MAAM,IAA0E;AAChF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,mCAAO;AACX;AACA,KAAK;AAAA,oGAAC;AACN;AACA;AACA,OAAO,EASJ;AACH,CAAC;;;;;;;;ACxwhBD,iBAAiB,mBAAO,CAAC,GAAW;;;;;;;ACApC,iBAAiB,mBAAO,CAAC,GAAY;;;;;;;ACArC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;ACrBA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,mBAAmB;AAC/D;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA,gCAAgC;AAChC;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,CAAC;;AAED,kHAAkH;AAClH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;;AAED;AACA,iBAAiB,mBAAO,CAAC,GAAO;AAChC,qDAAqD,mBAAO,CAAC,EAAO;AACpE,yBAAyB,mBAAO,CAAC,EAAO;AACxC;AACA;;;;;;;AC1PA,iBAAiB,mBAAO,CAAC,EAAe;AACxC,mBAAmB,mBAAO,CAAC,EAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA,WAAW,mBAAO,CAAC,EAAS;;AAE5B;AACA;;AAEA;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpCA,iBAAiB,mBAAO,CAAC,EAAe;AACxC,eAAe,mBAAO,CAAC,EAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA,qBAAqB,mBAAO,CAAC,GAAmB;AAChD,sBAAsB,mBAAO,CAAC,GAAoB;AAClD,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,mBAAmB,mBAAO,CAAC,GAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA,SAAS,mBAAO,CAAC,EAAM;;AAEvB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA,gBAAgB,mBAAO,CAAC,EAAc;;AAEtC;AACA;;AAEA;;;;;;;ACLA,gBAAgB,mBAAO,CAAC,GAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA,cAAc,mBAAO,CAAC,EAAW;AACjC,YAAY,mBAAO,CAAC,EAAU;AAC9B,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,eAAe,mBAAO,CAAC,GAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;AACA,gBAAgB,mBAAO,CAAC,EAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnBA;AACA;AACA;AACA;;;;;;;ACHA,uBAAuB;AACvB;AACA;AACA;;;;;;;ACHA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;ACJA,iBAAiB,mBAAO,CAAC,EAAe;AACxC,eAAe,mBAAO,CAAC,EAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACpCA;AACA;;AAEe,mEAAU,EAAC;;;;;;;;ACH1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAAL,iGAAO,CAAC,uBAAD,CAAD,mCAAa,UAAUuP,CAAV,EAAa;AAC5B,SAAOA,CAAC,CAACrF,UAAF,EAAP;AACH,CAFK;AAAA,oGAAN,C;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6DAA6D,iBAAiB;AAC9E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,aAAa;AACb;AACA;AACA,+DAA+D,UAAU,EAAE;AAC3E;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;;AAEA,OAAO;AACP,oCAAoC;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB,gCAAgC;AAC3E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,yBAAyB;AACzB;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C,qDAAqD;AACrD,8CAA8C;AAC9C,yFAAyF;AACzF,2FAA2F;AAC3F,4CAA4C;AAC5C,iGAAiG;AACjG,0CAA0C;AAC1C,6CAA6C;AAC7C,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY;AACZ,qBAAqB;AACrB;;AAEA,uCAAuC;AACvC,kCAAkC;AAClC;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,yBAAyB,EAAE;AACzC,MAAM;AACN,WAAW,6KAA6K;AACxL,aAAa,kIAAkI;AAC/I;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA,CAAC;AACD,SAAS,mCAAmC,EAAE,MAAM,EAAE,sGAAsG,EAAE,gCAAgC,EAAE,6HAA6H,EAAE,6HAA6H,EAAE,QAAQ,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,wGAAwG,EAAE,uGAAuG,EAAE,uHAAuH,EAAE,uHAAuH,EAAE,iHAAiH,EAAE,iHAAiH,EAAE,iHAAiH,EAAE,iHAAiH,EAAE,iHAAiH,EAAE,6HAA6H,EAAE,6HAA6H,EAAE,6HAA6H,EAAE,gCAAgC,EAAE,uHAAuH;AACtzE,iBAAiB,QAAQ;AACzB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA,6DAA6D;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB,4HAA4H;AACjJ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC;AACpC,4BAA4B;AAC5B;AACA;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;AACH;;AAEA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qBAAqB,2CAA2C;AAChE;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW,yEAAyE,cAAc;AACtH;AACA;AACA,CAAC;AACD;;AAEA;AACA,MAAM,IAA8B;AACpC,QAAQ,KAA6B;AACrC;AACA;AACA;AACA;AACA,OAAO,EAQJ;;AAEH,CAAC;;;;;;;;AClgCD;AAAA;AAAA;;;;;;;AAOA;AAEA;AACA;AAGA;;;;;;;AAOA;;;;;;;;;;;;AAWA/mB,qDAAO,CAACoP,SAAR,GAAoB,MAAMA,SAAN,CAAgB;AAEhC;;;;;;;;;;AAUAjF,aAAW,CAAE8O,UAAF,EAAc;AACrB,SAAKoT,KAAL,GAAapT,UAAb;AACA,SAAK9D,KAAL,GAAa,SAAb;AAEA,UAAMrI,OAAO,GAAGm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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA,eAAe,mBAAO,CAAC,EAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,EAAe;AACxC,iBAAiB,mBAAO,CAAC,EAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACTA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACZA,gBAAgB,mBAAO,CAAC,EAAc;AACtC,WAAW,mBAAO,CAAC,EAAS;;AAE5B;AACA;;AAEA;;;;;;;ACNA,oBAAoB,mBAAO,CAAC,GAAkB;AAC9C,qBAAqB,mBAAO,CAAC,GAAmB;AAChD,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,kBAAkB,mBAAO,CAAC,GAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA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DJ;AAaH,OA3CI,MA4CA;AACD,cAAM,IAAI2Z,WAAJ,CAAgB,kCAAhB,CAAN;AACH;;AACDL,UAAI,GAAGA,IAAI,CAACxO,SAAL,CAAe9K,KAAK,CAAC,CAAD,CAAL,CAASxb,MAAxB,CAAP;AACH;;AACD,WAAO40B,aAAa,CAAC3B,GAAD,CAAb,GAAqBG,UAA5B;AACH;AAED;;;;AAGA;;;AACA,MAAI,IAAJ,EAAoC;AAChClT,WAAO,CAAC,SAAD,CAAP,GAAqB2S,OAArB;AACA3S,WAAO,CAAC,UAAD,CAAP,GAAsB8S,QAAtB;AACH;;AACD,MAAI,OAAOnD,MAAP,KAAkB,WAAtB,EAAmC;AAC/BA,UAAM,CAAC,SAAD,CAAN,GAAoBgD,OAApB;AACAhD,UAAM,CAAC,UAAD,CAAN,GAAqBmD,QAArB;;AAEA,QAAI,IAAJ,EAAmD;AAC/C7S,yCAAO,YAAW;AACd,eAAO;AACH,qBAAW0S,OADR;AAEH,sBAAYG;AAFT,SAAP;AAIH,OALK;AAAA,oGAAN;AAMH;AACJ;AACD;;AACH,CApOA,EAAD,C,CAoOK,sB;;;;;;ACtOL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB,YAAY,QAAQ;AAChF,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kLAAkL;AAClL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;;AAGA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,EAAE;AACF,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,yBAAyB;AACzB,0BAA0B;AAC1B,2BAA2B;AAC3B,4BAA4B;AAC5B,+BAA+B;AAC/B;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,SAAS;AACT;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;AAIA,cAAc,MAAM;AACpB;AACA;AACA;AACA,4BAA4B,gDAAgD;AAC5E,IAAI;AACJ,4BAA4B,oCAAoC;AAChE;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gCAAgC;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,SAAS;AACV;;AAEA;AACA;AACA;AACA;;;;;;;AC3tCA;AACA;;AAEA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,GAAc;AACtC,kBAAkB,mBAAO,CAAC,EAAe;AACzC,cAAc,mBAAO,CAAC,EAAW;AACjC,eAAe,mBAAO,CAAC,GAAY;AACnC,cAAc,mBAAO,CAAC,EAAY;AAClC,mBAAmB,mBAAO,CAAC,GAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChDA,sBAAsB,mBAAO,CAAC,GAAoB;AAClD,mBAAmB,mBAAO,CAAC,EAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;ACnCA,yDAAW,mBAAO,CAAC,EAAS;AAC5B,gBAAgB,mBAAO,CAAC,GAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACrCA,uBAAuB,mBAAO,CAAC,GAAqB;AACpD,gBAAgB,mBAAO,CAAC,GAAc;AACtC,eAAe,mBAAO,CAAC,GAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,iBAAiB,mBAAO,CAAC,GAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACjBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA,sBAAsB,mBAAO,CAAC,GAAoB;AAClD,SAAS,mBAAO,CAAC,EAAM;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA,qBAAqB,mBAAO,CAAC,GAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;;;;;;;ACxBA,gBAAgB,mBAAO,CAAC,EAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;ACVA;AACA;;A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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3FA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,QAAQ;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,QAAQ;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxCA,iBAAiB,mBAAO,CAAC,GAAe;AACxC,cAAc,mBAAO,CAAC,GAAY;AAClC,sBAAsB,mBAAO,CAAC,GAAoB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,MAAM;AACjB;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvDA,cAAc,mBAAO,CAAC,GAAY;AAClC,WAAW,mBAAO,CAAC,GAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;ACdA,iBAAiB,mBAAO,CAAC,EAAe;AACxC,iBAAiB,mBAAO,CAAC,EAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,eAAe,mBAAO,CAAC,GAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;;AAEA;;;;;;;ACnBA,qBAAqB,mBAAO,CAAC,GAAmB;AAChD,wBAAwB,mBAAO,CAAC,GAAsB;AACtD,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,wBAAwB,mBAAO,CAAC,GAAsB;;AAEtD;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA,gBAAgB,mBAAO,CAAC,EAAc;AACtC,iBAAiB,mBAAO,CAAC,GAAe;AACxC,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,eAAe,mBAAO,CAAC,GAAa;AACpC,eAAe,mBAAO,CAAC,GAAa;AACpC,eAAe,mBAAO,CAAC,GAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA,sBAAsB,mBAAO,CAAC,GAAoB;AAClD,mBAAmB,mBAAO,CAAC,EAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA,eAAe,mBAAO,CAAC,GAAa;AACpC,gBAAgB,mBAAO,CAAC,GAAc;AACtC,eAAe,mBAAO,CAAC,GAAa;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnFA,gBAAgB,mBAAO,CAAC,GAAc;AACtC,cAAc,mBAAO,CAAC,EAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,gBAAgB,mBAAO,CAAC,GAAa;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA,eAAe,mBAAO,CAAC,GAAa;AACpC,UAAU,mBAAO,CAAC,EAAQ;AAC1B,cAAc,mBAAO,CAAC,GAAY;AAClC,UAAU,mBAAO,CAAC,GAAQ;AAC1B,cAAc,mBAAO,CAAC,GAAY;AAClC,iBAAiB,mBAAO,CAAC,EAAe;AACxC,eAAe,mBAAO,CAAC,GAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzDA,eAAe,mBAAO,CAAC,EAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA,mBAAmB,mBAAO,CAAC,GAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACba;;AAEb;AACA;AACA,CAAC;;AAED,uBAAuB,mBAAO,CAAC,GAAsC;;AAErE;;AAEA,YAAY,mBAAO,CAAC,GAAmC;;AAEvD;;AAEA,mBAAmB,mBAAO,CAAC,GAA2B;;AAEtD;;AAEA,yBAAyB,mBAAO,CAAC,GAAwC;;AAEzE;;AAEA,eAAe,mBAAO,CAAC,EAA+B;;AAEtD;;AAEA;;AAEA,aAAa,mBAAO,CAAC,GAAS;;AAE9B,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,0BAA0B;AAC1B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;;AAEnF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,C;;;;;;AC7QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA,cAAc,mBAAO,CAAC,EAAY;AAClC;AACA;AACA;;;;;;;ACJA;AACA,YAAY,mBAAO,CAAC,GAAyB;AAC7C,kBAAkB,mBAAO,CAAC,GAAkB;;AAE5C;AACA;AACA;;;;;;;ACNA;AACA,gBAAgB,mBAAO,CAAC,EAAe;AACvC;AACA;AACA,2DAA2D;AAC3D;;;;;;;ACLA,WAAW,mBAAO,CAAC,EAAS;AAC5B,aAAa,mBAAO,CAAC,EAAW;AAChC;AACA,kDAAkD;;AAElD;AACA,qEAAqE;AACrE,CAAC;AACD;AACA,QAAQ,mBAAO,CAAC,EAAY;AAC5B;AACA,CAAC;;;;;;;ACXD;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;;;;;;;;ACHa;AACb,cAAc,mBAAO,CAAC,EAAY;AAClC,cAAc,mBAAO,CAAC,EAAW;AACjC,eAAe,mBAAO,CAAC,GAAa;AACpC,WAAW,mBAAO,CAAC,EAAS;AAC5B,gBAAgB,mBAAO,CAAC,EAAc;AACtC,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,qBAAqB,mBAAO,CAAC,EAAsB;AACnD,qBAAqB,mBAAO,CAAC,GAAe;AAC5C,eAAe,mBAAO,CAAC,EAAQ;AAC/B,8CAA8C;AAC9C;AACA;AACA;;AAEA,8BAA8B,aAAa;;AAE3C;AACA;AACA;AACA;AACA;AACA,yCAAyC,oCAAoC;AAC7E,6CAA6C,oCAAoC;AACjF,KAAK,4BAA4B,oCAAoC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;ACpEA,eAAe,mBAAO,CAAC,EAAW;AAClC;;;;;;;ACDA;AACA,UAAU,mBAAO,CAAC,EAAQ;AAC1B,UAAU,mBAAO,CAAC,EAAQ;AAC1B;AACA,2BAA2B,kBAAkB,EAAE;;AAE/C;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AACA,eAAe,mBAAO,CAAC,EAAc;AACrC,gBAAgB,mBAAO,CAAC,EAAe;AACvC,cAAc,mBAAO,CAAC,EAAQ;AAC9B;AACA;AACA;AACA;AACA;;;;;;;ACRA,UAAU,mBAAO,CAAC,EAAQ;AAC1B,aAAa,mBAAO,CAAC,GAAW;AAChC,WAAW,mBAAO,CAAC,GAAS;AAC5B,UAAU,mBAAO,CAAC,EAAe;AACjC,aAAa,mBAAO,CAAC,EAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mBAAO,CAAC,EAAQ;AACtB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnFA;AACA;AACA,YAAY;AACZ,GAAG;AACH,YAAY;AACZ;AACA;;;;;;;ACNA,eAAe,mBAAO,CAAC,EAAc;AACrC,eAAe,mBAAO,CAAC,EAAc;AACrC,2BAA2B,mBAAO,CAAC,EAA2B;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AAAA;AAAA;;;;;;;AAOA;AAEA;AACA;AAGA;;;;;;;;AAOA1vB,qDAAO,CAAC8xB,OAAR,GAAkB,MAAMA,OAAN,CAAc;AAE5B;;;;;;;;;;AAUA3nB,aAAW,CAAEhG,IAAF,EAAQE,IAAR,EAAc2M,GAAd,EAAmB+gB,KAAnB,EAA0B;AACjC,SAAKvmB,EAAL,GAAU,EAAExL,qDAAO,CAAC+J,UAApB;AACA,SAAKioB,OAAL,GAAe7tB,IAAf;AACA,SAAK0N,IAAL,GAAY7R,qDAAO,CAACoJ,SAAR,CAAkBjF,IAAlB,CAAZ,CAHiC,CAIjC;AACA;;AACA,SAAK8tB,QAAL,GAAgB5tB,IAAhB;AACA,SAAKA,IAAL,GAAYA,IAAZ;AACA,SAAK2M,GAAL,GAAWA,GAAX;AACA,SAAKkhB,IAAL,GAAYC,GAAZ;AACA,SAAKJ,KAAL,GAAaA,KAAK,IAAI,CAAtB;AACA,SAAKK,KAAL,GAAa,KAAb;AACA,SAAKC,IAAL,GAAY,IAAZ;;AAEA,SAAKC,GAAL,GAAW,YAAY;AACnB,UAAI,CAAC,KAAKJ,IAAV,EAAgB;AAAE,eAAO,CAAP;AAAW;;AAC7B,YAAMpZ,GAAG,GAAG,IAAIpM,IAAJ,EAAZ;AACA,aAAO,CAACoM,GAAG,GAAG,KAAKoZ,IAAZ,IAAoB,IAA3B;AACH,KAJD;;AAKA,SAAKK,QAAL,GAAgB,YAAY;AACxB,UAAI,CAAC,KAAKF,IAAV,EAAgB;AAAE,eAAO,CAAP;AAAW;;AAC7B,YAAMvZ,GAAG,GAAG,IAAIpM,IAAJ,EAAZ;AACA,aAAO,CAACoM,GAAG,GAAG,KAAKuZ,IAAZ,IAAoB,IAA3B;AACH,KAJD;;AAKA,SAAKG,GAAL,GAAW,KAAKC,OAAL,EAAX;AACH;AAED;;;;;;;;;;;;;;;AAaAC,aAAW,GAAI;AACX,QAAI1tB,IAAI,GAAG,IAAX;;AACA,QAAI,KAAKwtB,GAAL,CAASG,WAAT,IAAwB,KAAKH,GAAL,CAASG,WAAT,CAAqBjF,eAAjD,EAAkE;AAC9D1oB,UAAI,GAAG,KAAKwtB,GAAL,CAASG,WAAT,CAAqBjF,eAA5B;;AACA,UAAI1oB,IAAI,CAACL,OAAL,KAAiB,aAArB,EAAoC;AAChC3E,6DAAO,CAACgJ,KAAR,CAAc,2BAAd;AACAhJ,6DAAO,CAACgJ,KAAR,CAAc,mBAAmB,KAAKwpB,GAAL,CAAS5Y,YAA1C;AACA5Z,6DAAO,CAACgJ,KAAR,CAAc,kBACAhJ,qDAAO,CAACoJ,SAAR,CAAkB,KAAKopB,GAAL,CAASG,WAA3B,CADd;AAEA,cAAM,IAAIp2B,KAAJ,CAAU,aAAV,CAAN;AACH;AACJ,KATD,MASO,IAAI,KAAKi2B,GAAL,CAAS5Y,YAAb,EAA2B;AAC9B;AACA5Z,2DAAO,CAACiJ,KAAR,CAAc,+EAAd;AACAjE,UAAI,GAAG,IAAIiX,wDAAJ,GAAgB9V,eAAhB,CAAgC,KAAKqsB,GAAL,CAAS5Y,YAAzC,EAAuD,iBAAvD,EAA0E8T,eAAjF;;AACA,UAAI,CAAC1oB,IAAL,EAAW;AACP,cAAM,IAAIzI,KAAJ,CAAU,4BAAV,CAAN;AACH,OAFD,MAEO,IAAIyI,IAAI,CAAC4tB,aAAL,CAAmB,aAAnB,CAAJ,EAAuC;AAC1C5yB,6DAAO,CAACgJ,KAAR,CAAc,gCAAgChE,IAAI,CAAC4tB,aAAL,CAAmB,aAAnB,EAAkCzc,WAAhF;AACAnW,6DAAO,CAACgJ,KAAR,CAAc,mBAAmB,KAAKwpB,GAAL,CAAS5Y,YAA1C;AACA,cAAM5Q,KAAK,GAAG,IAAIzM,KAAJ,EAAd;AACAyM,aAAK,CAAClJ,IAAN,GAAaE,qDAAO,CAAC+C,cAAR,CAAuBC,UAApC;AACA,cAAMgG,KAAN;AACH;AACJ;;AACD,WAAOhE,IAAP;AACH;AAED;;;;;;;;;;AAQAytB,SAAO,GAAI;AACP,QAAID,GAAG,GAAG,IAAV;;AACA,QAAIjG,MAAM,CAACsG,cAAX,EAA2B;AACvBL,SAAG,GAAG,IAAIK,cAAJ,EAAN;;AACA,UAAIL,GAAG,CAACM,gBAAR,EAA0B;AACtBN,WAAG,CAACM,gBAAJ,CAAqB,yBAArB;AACH;AACJ,KALD,MAKO,IAAIvG,MAAM,CAACnmB,aAAX,EAA0B;AAC7BosB,SAAG,GAAG,IAAIpsB,aAAJ,CAAkB,mBAAlB,CAAN;AACH,KATM,CAUP;;;AACAosB,OAAG,CAACO,kBAAJ,GAAyB,KAAK1uB,IAAL,CAAUiQ,IAAV,CAAe,IAAf,EAAqB,IAArB,CAAzB;AACA,WAAOke,GAAP;AACH;;AArG2B,CAAhC;AAwGA;;;;;;;AAOA;;;;;;;;AAQA;;;;;;;;;;AASAxyB,qDAAO,CAACqP,IAAR,GAAe,MAAMA,IAAN,CAAW;AAEtBlF,aAAW,CAAE8O,UAAF,EAAc;AACrB,SAAKoT,KAAL,GAAapT,UAAb;AACA;;AACA,SAAKjI,GAAL,GAAWlB,IAAI,CAACkjB,KAAL,CAAWljB,IAAI,CAACC,MAAL,KAAgB,UAA3B,CAAX;AACA;;AACA,SAAKgB,GAAL,GAAW,IAAX,CALqB,CAOrB;;AACA,SAAKR,IAAL,GAAY,CAAZ;AACA,SAAKD,IAAL,GAAY,EAAZ;AACA,SAAKic,MAAL,GAAc,CAAd;AACA,SAAKI,MAAL,GAAc,CAAd;AACA,SAAKsG,UAAL,GAAkB,IAAlB;AAEA,SAAKC,mBAAL,GAA2B,IAA3B;AACA,SAAK3jB,SAAL,GAAiB,EAAjB;AACH;AAED;;;;;;;;AAMA4jB,YAAU,GAAI;AACV,UAAMtd,QAAQ,GAAGhW,4DAAM,CAAC,MAAD,EAAS;AAC5B,aAAO,KAAKmR,GAAL,EADqB;AAE5B,eAAShR,qDAAO,CAACM,EAAR,CAAWC;AAFQ,KAAT,CAAvB;;AAIA,QAAI,KAAKwQ,GAAL,KAAa,IAAjB,EAAuB;AACnB8E,cAAQ,CAAC9V,KAAT,CAAe;AAAC,eAAO,KAAKgR;AAAb,OAAf;AACH;;AACD,QAAI,KAAKsb,KAAL,CAAW3gB,OAAX,CAAmB0nB,SAAnB,IAAgC,KAAK/G,KAAL,CAAWjb,wBAAX,EAApC,EAA2E;AACvE,WAAKiiB,aAAL;AACH;;AACD,WAAOxd,QAAP;AACH;AAED;;;;;;;AAKAvG,QAAM,GAAI;AACN,SAAK0B,GAAL,GAAWlB,IAAI,CAACkjB,KAAL,CAAWljB,IAAI,CAACC,MAAL,KAAgB,UAA3B,CAAX;AACA,SAAKgB,GAAL,GAAW,IAAX;AACA,SAAK4b,MAAL,GAAc,CAAd;;AACA,QAAI,KAAKN,KAAL,CAAWjb,wBAAX,EAAJ,EAA2C;AACvCmb,YAAM,CAAChb,cAAP,CAAsBE,UAAtB,CAAiC,sBAAjC;AACH;;AAED,SAAK4a,KAAL,CAAWta,YAAX,CAAwB,KAAKf,GAA7B;AACH;AAED;;;;;;;AAKAH,UAAQ,CAAEP,IAAF,EAAQC,IAAR,EAAcC,KAAd,EAAqB;AACzB,SAAKF,IAAL,GAAYA,IAAI,IAAI,KAAKA,IAAzB;AACA,SAAKC,IAAL,GAAYA,IAAI,IAAI,KAAKA,IAAzB;AACA,SAAKoc,MAAL,GAAc,CAAd;;AAEA,UAAM2G,IAAI,GAAG,KAAKH,UAAL,GAAkBpzB,KAAlB,CAAwB;AACjC,YAAM,KAAKssB,KAAL,CAAWltB,MADgB;AAEjC,kBAAY,IAFqB;AAGjC,cAAQ,KAAKmR,IAHoB;AAIjC,cAAQ,KAAKC,IAJoB;AAKjC,iBAAW,yBALsB;AAMjC,aAAO,KAN0B;AAOjC,sBAAgB,KAPiB;AAQjC,oBAAcvQ,qDAAO,CAACM,EAAR,CAAWE;AARQ,KAAxB,CAAb;;AAUA,QAAIgQ,KAAJ,EAAU;AACN8iB,UAAI,CAACvzB,KAAL,CAAW;AAAC,iBAASyQ;AAAV,OAAX;AACH;;AAED,UAAMmF,WAAW,GAAG,KAAK0W,KAAL,CAAW1W,WAA/B;;AACA,SAAKpG,SAAL,CAAenI,IAAf,CACI,IAAIpH,qDAAO,CAAC8xB,OAAZ,CACIwB,IAAI,CAACjqB,IAAL,EADJ,EAEI,KAAKkqB,qBAAL,CAA2Bjf,IAA3B,CAAgC,IAAhC,EAAsCqB,WAAW,CAACrB,IAAZ,CAAiB,KAAK+X,KAAtB,CAAtC,CAFJ,EAGIiH,IAAI,CAACjqB,IAAL,GAAYxC,YAAZ,CAAyB,KAAzB,CAHJ,CADJ;;AAOA,SAAK2sB,wBAAL;AACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBAtiB,SAAO,CAAEvJ,GAAF,EAAOoJ,GAAP,EAAYC,GAAZ,EAAiBb,QAAjB,EAA2BG,IAA3B,EAAiCC,IAAjC,EAAuCU,IAAvC,EAA6C;AAChD,SAAKob,KAAL,CAAW1kB,GAAX,GAAiBA,GAAjB;AACA,SAAKoJ,GAAL,GAAWA,GAAX;AACA,SAAKC,GAAL,GAAWA,GAAX;AAEA,SAAKqb,KAAL,CAAW1b,gBAAX,GAA8BR,QAA9B;AACA,SAAKkc,KAAL,CAAWltB,MAAX,GAAoBa,qDAAO,CAAC6H,gBAAR,CAAyB,KAAKwkB,KAAL,CAAW1kB,GAApC,CAApB;AACA,SAAK0kB,KAAL,CAAWve,aAAX,GAA2B,IAA3B;AACA,SAAKue,KAAL,CAAWte,SAAX,GAAuB,IAAvB;AAEA,SAAKuC,IAAL,GAAYA,IAAI,IAAI,KAAKA,IAAzB;AACA,SAAKC,IAAL,GAAYA,IAAI,IAAI,KAAKA,IAAzB;AACA,SAAKgc,MAAL,GAActb,IAAI,IAAI,KAAKsb,MAA3B;;AAEA,SAAKF,KAAL,CAAWzb,oBAAX,CAAgC5Q,qDAAO,CAACiC,MAAR,CAAeS,QAA/C,EAAyD,IAAzD;AACH;AAED;;;;;;;;;;;;;;;;;;;;;AAmBA2O,UAAQ,CAAE1J,GAAF,EAAOwI,QAAP,EAAiBG,IAAjB,EAAuBC,IAAvB,EAA6BU,IAA7B,EAAmC;AACvC,UAAMwiB,OAAO,GAAGniB,IAAI,CAACwR,KAAL,CAAWyJ,MAAM,CAAChb,cAAP,CAAsBmiB,OAAtB,CAA8B,sBAA9B,CAAX,CAAhB;;AACA,QAAI,OAAOD,OAAP,KAAmB,WAAnB,IACOA,OAAO,KAAK,IADnB,IAEOA,OAAO,CAACziB,GAFf,IAGOyiB,OAAO,CAAC1iB,GAHf,IAIO0iB,OAAO,CAAC9rB,GAJf,KAKY,OAAOA,GAAP,KAAe,WAAf,IACAA,GAAG,KAAK,IADR,IAEA3H,qDAAO,CAAC+H,iBAAR,CAA0B0rB,OAAO,CAAC9rB,GAAlC,MAA2C3H,qDAAO,CAAC+H,iBAAR,CAA0BJ,GAA1B,CAF3C,IAGA;AACA;AACE3H,yDAAO,CAAC0H,cAAR,CAAuBC,GAAvB,MAAgC,IAAjC,IAA2C3H,qDAAO,CAAC6H,gBAAR,CAAyB4rB,OAAO,CAAC9rB,GAAjC,MAA0CA,GAVlG,CAAJ,EAYE;AACE,WAAK0kB,KAAL,CAAWle,QAAX,GAAsB,IAAtB;;AACA,WAAK+C,OAAL,CAAauiB,OAAO,CAAC9rB,GAArB,EAA0B8rB,OAAO,CAAC1iB,GAAlC,EAAuC0iB,OAAO,CAACziB,GAA/C,EAAoDb,QAApD,EAA8DG,IAA9D,EAAoEC,IAApE,EAA0EU,IAA1E;AACH,KAfD,MAeO;AACH,YAAMjI,KAAK,GAAG,IAAIzM,KAAJ,CAAU,mCAAV,CAAd;AACAyM,WAAK,CAAClJ,IAAN,GAAa,qBAAb;AACA,YAAMkJ,KAAN;AACH;AACJ;AAED;;;;;;;;;AAOAqqB,eAAa,GAAI;AACb,QAAI,KAAKhH,KAAL,CAAWve,aAAf,EAA8B;AAC1B,UAAI,KAAKue,KAAL,CAAW1kB,GAAX,IAAkB,KAAKqJ,GAAvB,IAA8B,KAAKD,GAAvC,EAA4C;AACxCwb,cAAM,CAAChb,cAAP,CAAsBC,OAAtB,CAA8B,sBAA9B,EAAsDF,IAAI,CAACqf,SAAL,CAAe;AACjE,iBAAO,KAAKtE,KAAL,CAAW1kB,GAD+C;AAEjE,iBAAO,KAAKqJ,GAFqD;AAGjE,iBAAO,KAAKD;AAHqD,SAAf,CAAtD;AAKH;AACJ,KARD,MAQO;AACHwb,YAAM,CAAChb,cAAP,CAAsBE,UAAtB,CAAiC,sBAAjC;AACH;AACJ;AAED;;;;;;;;;AAOAkE,aAAW,CAAEE,QAAF,EAAY;AACnB,UAAM8d,GAAG,GAAG9d,QAAQ,CAAChP,YAAT,CAAsB,MAAtB,CAAZ;;AACA,QAAI8sB,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAK,WAA5B,EAAyC;AACrC;AACA,UAAIre,IAAI,GAAGO,QAAQ,CAAChP,YAAT,CAAsB,WAAtB,CAAX;AACA7G,2DAAO,CAACgJ,KAAR,CAAc,6BAA6BsM,IAA3C;AACA,YAAMC,QAAQ,GAAGM,QAAQ,CAACL,oBAAT,CAA8B,UAA9B,CAAjB;;AACA,UAAIF,IAAI,KAAK,IAAb,EAAmB;AACf,YAAIA,IAAI,KAAK,qBAAT,IAAkCC,QAAQ,CAAC7Y,MAAT,GAAkB,CAAxD,EAA2D;AACvD4Y,cAAI,GAAG,UAAP;AACH;;AACD,aAAK+W,KAAL,CAAWzb,oBAAX,CAAgC5Q,qDAAO,CAACiC,MAAR,CAAeG,QAA/C,EAAyDkT,IAAzD;AACH,OALD,MAKO;AACH,aAAK+W,KAAL,CAAWzb,oBAAX,CAAgC5Q,qDAAO,CAACiC,MAAR,CAAeG,QAA/C,EAAyD,SAAzD;AACH;;AACD,WAAKiqB,KAAL,CAAW5X,aAAX,CAAyBa,IAAzB;;AACA,aAAOtV,qDAAO,CAACiC,MAAR,CAAeG,QAAtB;AACH,KAjBkB,CAmBnB;AACA;;;AACA,QAAI,CAAC,KAAK2O,GAAV,EAAe;AACX,WAAKA,GAAL,GAAW8E,QAAQ,CAAChP,YAAT,CAAsB,KAAtB,CAAX;AACH;;AACD,UAAMoK,IAAI,GAAG4E,QAAQ,CAAChP,YAAT,CAAsB,UAAtB,CAAb;;AACA,QAAIoK,IAAJ,EAAU;AAAE,WAAKsb,MAAL,GAAcmE,QAAQ,CAACzf,IAAD,EAAO,EAAP,CAAtB;AAAmC;;AAC/C,UAAMV,IAAI,GAAGsF,QAAQ,CAAChP,YAAT,CAAsB,MAAtB,CAAb;;AACA,QAAI0J,IAAJ,EAAU;AAAE,WAAKA,IAAL,GAAYmgB,QAAQ,CAACngB,IAAD,EAAO,EAAP,CAApB;AAAiC;;AAC7C,UAAMD,IAAI,GAAGuF,QAAQ,CAAChP,YAAT,CAAsB,MAAtB,CAAb;;AACA,QAAIyJ,IAAJ,EAAU;AAAE,WAAKA,IAAL,GAAYogB,QAAQ,CAACpgB,IAAD,EAAO,EAAP,CAApB;AAAiC;;AAC7C,UAAM2iB,UAAU,GAAGpd,QAAQ,CAAChP,YAAT,CAAsB,YAAtB,CAAnB;;AACA,QAAIosB,UAAJ,EAAgB;AAAE,WAAKA,UAAL,GAAkBvC,QAAQ,CAACuC,UAAD,EAAa,EAAb,CAA1B;AAA6C;AAClE;AAED;;;;;;;;AAMA1e,aAAW,CAAEJ,IAAF,EAAQ;AACf,SAAKyf,cAAL,CAAoBzf,IAApB;AACH;AAED;;;;;;;AAKAM,eAAa,GAAI;AACb,SAAK1D,GAAL,GAAW,IAAX;AACA,SAAKC,GAAL,GAAWlB,IAAI,CAACkjB,KAAL,CAAWljB,IAAI,CAACC,MAAL,KAAgB,UAA3B,CAAX;;AACA,QAAI,KAAKsc,KAAL,CAAWjb,wBAAX,EAAJ,EAA2C;AACvCmb,YAAM,CAAChb,cAAP,CAAsBE,UAAtB,CAAiC,sBAAjC;AACH;;AAED,SAAK4a,KAAL,CAAWta,YAAX,CAAwB,KAAKf,GAA7B;AACH;AAED;;;;;;;;AAMAqE,aAAW,GAAI;AACX,WAAO,KAAK9F,SAAL,CAAe7S,MAAf,KAA0B,CAAjC;AACH;AAED;;;;;;;;AAMAm3B,4BAA0B,CAAE7e,GAAF,EAAO;AAC7B,UAAM8e,SAAS,GAAGzkB,IAAI,CAAC0kB,iBAAL,CAAuB/e,GAAvB,CAAlB;;AACA,UAAMgf,YAAY,GAAG,KAAK3H,KAAL,CAAW1e,qBAAX,CAAiCsmB,IAAjC,CAAsCH,SAAtC,CAArB;;AACA,QAAIE,YAAJ,EAAkB;AACdA,kBAAY,CAAC/0B,IAAb,CAAkB,IAAlB,EAAwB60B,SAAxB;AACH;AACJ;AAED;;;;;;;;;;;;AAUAI,WAAS,CAAEJ,SAAF,EAAa;AAClB,SAAKnH,MAAL;AACA3sB,yDAAO,CAACmJ,IAAR,CAAa,8BAA8B2qB,SAA9B,GACA,sBADA,GACyB,KAAKnH,MAD3C;;AAEA,QAAI,KAAKA,MAAL,GAAc,CAAlB,EAAqB;AACjB,WAAKN,KAAL,CAAWhY,oBAAX;AACH;AACJ;AAED;;;;;;;AAKA4B,mBAAiB,CAAE9F,QAAF,EAAY;AACzBnQ,yDAAO,CAACmJ,IAAR,CAAa,yDACA,0CADb;;AAEA,QAAIgH,QAAJ,EAAc;AACVA,cAAQ,GAAGA,QAAQ,CAACmE,IAAT,CAAc,KAAK+X,KAAnB,CAAX;AACH,KAFD,MAEO;AACHlc,cAAQ,GAAG,KAAKkc,KAAL,CAAW1W,WAAX,CAAuBrB,IAAvB,CAA4B,KAAK+X,KAAjC,CAAX;AACH;;AACD,UAAMiH,IAAI,GAAG,KAAKH,UAAL,EAAb;;AACA,SAAK5jB,SAAL,CAAenI,IAAf,CACI,IAAIpH,qDAAO,CAAC8xB,OAAZ,CACIwB,IAAI,CAACjqB,IAAL,EADJ,EAEI,KAAKkqB,qBAAL,CAA2Bjf,IAA3B,CAAgC,IAAhC,EAAsCnE,QAAtC,CAFJ,EAGImjB,IAAI,CAACjqB,IAAL,GAAYxC,YAAZ,CAAyB,KAAzB,CAHJ,CADJ;;AAOA,SAAK2sB,wBAAL;AACH;AAED;;;;;;;AAKAnf,sBAAoB,GAAI;AACpB,SAAKG,iBAAL;AACH;AAED;;;;;AAGAA,mBAAiB,GAAI;AACjB,WAAO,KAAKjF,SAAL,CAAe7S,MAAf,GAAwB,CAA/B,EAAkC;AAC9B,YAAMsY,GAAG,GAAG,KAAKzF,SAAL,CAAe6F,GAAf,EAAZ;;AACAJ,SAAG,CAACod,KAAJ,GAAY,IAAZ;AACApd,SAAG,CAACwd,GAAJ,CAAQJ,KAAR;;AACApd,SAAG,CAACwd,GAAJ,CAAQO,kBAAR,GAA6B,YAAY,CAAE,CAA3C;AACH;AACJ;AAED;;;;;;;AAKApkB,SAAO,GAAI;AACP,UAAMkD,IAAI,GAAG,KAAKwa,KAAL,CAAWje,KAAxB,CADO,CAEP;;AACA,QAAI,KAAKie,KAAL,CAAWve,aAAX,IAA4B,KAAKyB,SAAL,CAAe7S,MAAf,KAA0B,CAAtD,IACAmV,IAAI,CAACnV,MAAL,KAAgB,CADhB,IACqB,CAAC,KAAK2vB,KAAL,CAAWre,aADrC,EACoD;AAChDhO,2DAAO,CAACiJ,KAAR,CAAc,sDAAd;AACA4I,UAAI,CAACzK,IAAL,CAAU,IAAV;AACH;;AAED,QAAI,KAAKilB,KAAL,CAAWne,MAAf,EAAuB;AACnB;AACH;;AAED,QAAI,KAAKqB,SAAL,CAAe7S,MAAf,GAAwB,CAAxB,IAA6BmV,IAAI,CAACnV,MAAL,GAAc,CAA/C,EAAkD;AAC9C,YAAM42B,IAAI,GAAG,KAAKH,UAAL,EAAb;;AACA,WAAK,IAAI12B,CAAC,GAAC,CAAX,EAAcA,CAAC,GAACoV,IAAI,CAACnV,MAArB,EAA6BD,CAAC,EAA9B,EAAkC;AAC9B,YAAIoV,IAAI,CAACpV,CAAD,CAAJ,KAAY,IAAhB,EAAsB;AAClB,cAAIoV,IAAI,CAACpV,CAAD,CAAJ,KAAY,SAAhB,EAA2B;AACvB62B,gBAAI,CAACvzB,KAAL,CAAW;AACP,oBAAM,KAAKssB,KAAL,CAAWltB,MADV;AAEP,0BAAY,IAFL;AAGP,8BAAgB,MAHT;AAIP,4BAAca,qDAAO,CAACM,EAAR,CAAWE;AAJlB,aAAX;AAMH,WAPD,MAOO;AACH8yB,gBAAI,CAAC1oB,KAAL,CAAWiH,IAAI,CAACpV,CAAD,CAAf,EAAoB8N,EAApB;AACH;AACJ;AACJ;;AACD,aAAO,KAAK8hB,KAAL,CAAWje,KAAlB;AACA,WAAKie,KAAL,CAAWje,KAAX,GAAmB,EAAnB;;AACA,WAAKmB,SAAL,CAAenI,IAAf,CACI,IAAIpH,qDAAO,CAAC8xB,OAAZ,CACIwB,IAAI,CAACjqB,IAAL,EADJ,EAEI,KAAKkqB,qBAAL,CAA2Bjf,IAA3B,CAAgC,IAAhC,EAAsC,KAAK+X,KAAL,CAAWtX,SAAX,CAAqBT,IAArB,CAA0B,KAAK+X,KAA/B,CAAtC,CAFJ,EAGIiH,IAAI,CAACjqB,IAAL,GAAYxC,YAAZ,CAAyB,KAAzB,CAHJ,CADJ;;AAOA,WAAK2sB,wBAAL;AACH;;AAED,QAAI,KAAKjkB,SAAL,CAAe7S,MAAf,GAAwB,CAA5B,EAA+B;AAC3B,YAAMy3B,YAAY,GAAG,KAAK5kB,SAAL,CAAe,CAAf,EAAkB+iB,GAAlB,EAArB;;AACA,UAAI,KAAK/iB,SAAL,CAAe,CAAf,EAAkB8iB,IAAlB,KAA2B,IAA/B,EAAqC;AACjC,YAAI,KAAK9iB,SAAL,CAAe,CAAf,EAAkBgjB,QAAlB,KACAziB,IAAI,CAACkjB,KAAL,CAAWhzB,qDAAO,CAACgE,iBAAR,GAA4B,KAAKsM,IAA5C,CADJ,EACuD;AACnD,eAAKkjB,wBAAL;AACH;AACJ;;AACD,UAAIW,YAAY,GAAGrkB,IAAI,CAACkjB,KAAL,CAAWhzB,qDAAO,CAAC+D,OAAR,GAAkB,KAAKuM,IAAlC,CAAnB,EAA4D;AACxDtQ,6DAAO,CAACmJ,IAAR,CAAa,aACA,KAAKoG,SAAL,CAAe,CAAf,EAAkB/D,EADlB,GAEA,mBAFA,GAEsBsE,IAAI,CAACkjB,KAAL,CAAWhzB,qDAAO,CAAC+D,OAAR,GAAkB,KAAKuM,IAAlC,CAFtB,GAGA,8BAHb;;AAIA,aAAKkjB,wBAAL;AACH;AACJ;AACJ;AAED;;;;;;;;;;;AASA,SAAOO,iBAAP,CAA0B/e,GAA1B,EAA+Bof,GAA/B,EAAoC;AAChC,QAAIN,SAAJ;;AACA,QAAI9e,GAAG,CAACwd,GAAJ,CAAQvE,UAAR,KAAuB,CAA3B,EAA8B;AAC1B,UAAI;AACA6F,iBAAS,GAAG9e,GAAG,CAACwd,GAAJ,CAAQ9d,MAApB;AACH,OAFD,CAEE,OAAOpN,CAAP,EAAU;AACR;AACA;AACAtH,6DAAO,CAACgJ,KAAR,CACI,0DACA,aADA,GACgB8qB,SAFpB;AAGH;AACJ;;AACD,QAAI,OAAOA,SAAP,KAAsB,WAA1B,EAAuC;AACnCA,eAAS,GAAG,OAAOM,GAAP,KAAe,QAAf,GAA0BA,GAA1B,GAAgC,CAA5C;AACH;;AACD,WAAON,SAAP;AACH;AAED;;;;;;;;;;;;;;AAYAP,uBAAqB,CAAElvB,IAAF,EAAQ2Q,GAAR,EAAa;AAC9BhV,yDAAO,CAACiJ,KAAR,CAAc,gBAAc+L,GAAG,CAACxJ,EAAlB,GAAqB,GAArB,GAAyBwJ,GAAG,CAAC+c,KAA7B,GACA,oBADA,GACqB/c,GAAG,CAACwd,GAAJ,CAAQvE,UAD3C;;AAEA,QAAIjZ,GAAG,CAACod,KAAR,EAAe;AACXpd,SAAG,CAACod,KAAJ,GAAY,KAAZ;AACA;AACH;;AACD,QAAIpd,GAAG,CAACwd,GAAJ,CAAQvE,UAAR,KAAuB,CAA3B,EAA8B;AAC1B;AACA;AACH;;AACD,UAAM6F,SAAS,GAAGzkB,IAAI,CAAC0kB,iBAAL,CAAuB/e,GAAvB,CAAlB;;AACA,SAAKke,mBAAL,GAA2Ble,GAAG,CAACwd,GAAJ,CAAQ6B,qBAAR,EAA3B;;AACA,QAAI,KAAKhI,KAAL,CAAWre,aAAX,IAA4B8lB,SAAS,IAAI,GAA7C,EAAkD;AAC9C,WAAKI,SAAL,CAAeJ,SAAf;;AACA,WAAKD,0BAAL,CAAgC7e,GAAhC;;AACA;AACH;;AAED,UAAMsf,aAAa,GAAGR,SAAS,GAAG,CAAZ,IAAiBA,SAAS,GAAG,GAAnD;AACA,UAAMS,gBAAgB,GAAGvf,GAAG,CAAC+c,KAAJ,GAAY,KAAK1F,KAAL,CAAW5d,UAAhD;;AACA,QAAI6lB,aAAa,IAAIC,gBAArB,EAAuC;AACnC;AACA,WAAKC,cAAL,CAAoBxf,GAApB;;AACAhV,2DAAO,CAACiJ,KAAR,CAAc,gBAAc+L,GAAG,CAACxJ,EAAlB,GAAqB,wBAAnC;AACH;;AAED,QAAIsoB,SAAS,KAAK,GAAlB,EAAuB;AACnB;AACA,YAAMW,MAAM,GAAI,KAAKllB,SAAL,CAAe,CAAf,MAAsByF,GAAtC;AACA,YAAM0f,MAAM,GAAI,KAAKnlB,SAAL,CAAe,CAAf,MAAsByF,GAAtC,CAHmB,CAInB;AACA;AACA;AACA;;AACA,UAAI0f,MAAM,IACLD,MAAM,IAAI,KAAKllB,SAAL,CAAe7S,MAAf,GAAwB,CAAlC,IACG,KAAK6S,SAAL,CAAe,CAAf,EAAkB+iB,GAAlB,KAA0BxiB,IAAI,CAACkjB,KAAL,CAAWhzB,qDAAO,CAACgE,iBAAR,GAA4B,KAAKsM,IAA5C,CAFlC,EAEsF;AAClF,aAAKqkB,eAAL,CAAqB,CAArB;AACH;;AACD,WAAKtI,KAAL,CAAWta,YAAX,CAAwB+U,MAAM,CAAC9R,GAAG,CAAChE,GAAL,CAAN,GAAkB,CAA1C;;AACAhR,2DAAO,CAACiJ,KAAR,CAAc,gBAAc+L,GAAG,CAACxJ,EAAlB,GAAqB,GAArB,GAAyBwJ,GAAG,CAAC+c,KAA7B,GAAmC,UAAjD;AACA1tB,UAAI,CAAC2Q,GAAD,CAAJ,CAfmB,CAeR;;AACX,WAAK2X,MAAL,GAAc,CAAd;AACH,KAjBD,MAiBO,IAAImH,SAAS,KAAK,CAAd,IACCA,SAAS,IAAI,GAAb,IAAoBA,SAAS,GAAG,GADjC,IAEAA,SAAS,IAAI,KAFjB,EAEwB;AAC3B;AACA9zB,2DAAO,CAACgJ,KAAR,CAAc,gBAAcgM,GAAG,CAACxJ,EAAlB,GAAqB,GAArB,GAAyBwJ,GAAG,CAAC+c,KAA7B,GAAmC,SAAnC,GAA6C+B,SAA7C,GAAuD,WAArE;;AACA,WAAKI,SAAL,CAAeJ,SAAf;;AACA,WAAKD,0BAAL,CAAgC7e,GAAhC;;AACA,UAAI8e,SAAS,IAAI,GAAb,IAAoBA,SAAS,GAAG,GAApC,EAAyC;AACrC,aAAKzH,KAAL,CAAWzb,oBAAX,CAAgC5Q,qDAAO,CAACiC,MAAR,CAAeQ,aAA/C,EAA8D,IAA9D;;AACA,aAAK4pB,KAAL,CAAW5X,aAAX;AACH;AACJ,KAXM,MAWA;AACHzU,2DAAO,CAACgJ,KAAR,CAAc,gBAAcgM,GAAG,CAACxJ,EAAlB,GAAqB,GAArB,GAAyBwJ,GAAG,CAAC+c,KAA7B,GAAmC,SAAnC,GAA6C+B,SAA7C,GAAuD,WAArE;AACH;;AAED,QAAI,CAACQ,aAAD,IAAkB,CAACC,gBAAvB,EAAyC;AACrC,WAAKf,wBAAL;AACH,KAFD,MAEO,IAAIe,gBAAgB,IAAI,CAAC,KAAKlI,KAAL,CAAWte,SAApC,EAA+C;AAClD,WAAKse,KAAL,CAAWzb,oBAAX,CAAgC5Q,qDAAO,CAACiC,MAAR,CAAeG,QAA/C,EAAyD,WAAzD;AACH;AACJ;AAED;;;;;;;;;;;AASAwyB,iBAAe,CAAEn4B,CAAF,EAAK;AAChB,QAAIuY,GAAG,GAAG,KAAKzF,SAAL,CAAe9S,CAAf,CAAV;;AACA,UAAMq3B,SAAS,GAAGzkB,IAAI,CAAC0kB,iBAAL,CAAuB/e,GAAvB,EAA4B,CAAC,CAA7B,CAAlB,CAFgB,CAIhB;;;AACA,QAAIA,GAAG,CAAC+c,KAAJ,GAAY,KAAK1F,KAAL,CAAW5d,UAA3B,EAAuC;AACnC,WAAK4d,KAAL,CAAWhY,oBAAX;;AACA;AACH;;AACD,UAAM8f,YAAY,GAAGnf,GAAG,CAACsd,GAAJ,EAArB;AACA,UAAMuC,eAAe,GAAI,CAACpE,KAAK,CAAC0D,YAAD,CAAN,IAAwBA,YAAY,GAAGrkB,IAAI,CAACkjB,KAAL,CAAWhzB,qDAAO,CAAC+D,OAAR,GAAkB,KAAKuM,IAAlC,CAAhE;AACA,UAAMwkB,iBAAiB,GAAI9f,GAAG,CAACqd,IAAJ,KAAa,IAAb,IAAqBrd,GAAG,CAACud,QAAJ,KAAiBziB,IAAI,CAACkjB,KAAL,CAAWhzB,qDAAO,CAACgE,iBAAR,GAA4B,KAAKsM,IAA5C,CAAjE;AACA,UAAMykB,YAAY,GAAI/f,GAAG,CAACwd,GAAJ,CAAQvE,UAAR,KAAuB,CAAvB,KAA6B6F,SAAS,GAAG,CAAZ,IAAiBA,SAAS,IAAI,GAA3D,CAAtB;;AAEA,QAAIe,eAAe,IAAIC,iBAAnB,IAAwCC,YAA5C,EAA0D;AACtD,UAAID,iBAAJ,EAAuB;AACnB90B,6DAAO,CAACgJ,KAAR,mBAAyB,KAAKuG,SAAL,CAAe9S,CAAf,EAAkB+O,EAA3C;AACH;;AACDwJ,SAAG,CAACod,KAAJ,GAAY,IAAZ;AACApd,SAAG,CAACwd,GAAJ,CAAQJ,KAAR,GALsD,CAMtD;;AACApd,SAAG,CAACwd,GAAJ,CAAQO,kBAAR,GAA6B,YAAY,CAAE,CAA3C;;AACA,WAAKxjB,SAAL,CAAe9S,CAAf,IAAoB,IAAIuD,qDAAO,CAAC8xB,OAAZ,CAAoB9c,GAAG,CAACgd,OAAxB,EAAiChd,GAAG,CAACid,QAArC,EAA+Cjd,GAAG,CAAChE,GAAnD,EAAwDgE,GAAG,CAAC+c,KAA5D,CAApB;AACA/c,SAAG,GAAG,KAAKzF,SAAL,CAAe9S,CAAf,CAAN;AACH;;AAED,QAAIuY,GAAG,CAACwd,GAAJ,CAAQvE,UAAR,KAAuB,CAA3B,EAA8B;AAC1BjuB,2DAAO,CAACiJ,KAAR,CAAc,gBAAc+L,GAAG,CAACxJ,EAAlB,GAAqB,GAArB,GAAyBwJ,GAAG,CAAC+c,KAA7B,GAAmC,UAAjD;;AAEA,UAAI;AACA,cAAMiD,YAAY,GAAG,KAAK3I,KAAL,CAAW3gB,OAAX,CAAmBupB,WAAnB,IAAkC,yBAAvD;AACAjgB,WAAG,CAACwd,GAAJ,CAAQ0C,IAAR,CAAa,MAAb,EAAqB,KAAK7I,KAAL,CAAWvf,OAAhC,EAAyC,KAAKuf,KAAL,CAAW3gB,OAAX,CAAmBypB,IAAnB,GAA0B,KAA1B,GAAkC,IAA3E;;AACA,YAAI,OAAOngB,GAAG,CAACwd,GAAJ,CAAQ4C,gBAAf,KAAoC,WAAxC,EAAqD;AACjD;AACApgB,aAAG,CAACwd,GAAJ,CAAQ4C,gBAAR,CAAyB,cAAzB,EAAyCJ,YAAzC;AACH;;AACD,YAAI,KAAK3I,KAAL,CAAW3gB,OAAX,CAAmB2pB,eAAvB,EAAwC;AACpCrgB,aAAG,CAACwd,GAAJ,CAAQ6C,eAAR,GAA0B,IAA1B;AACH;AACJ,OAVD,CAUE,OAAOC,EAAP,EAAW;AACTt1B,6DAAO,CAACgJ,KAAR,CAAc,sBAAsBssB,EAAE,CAAChrB,QAAH,EAApC;;AACA,YAAI,CAAC,KAAK+hB,KAAL,CAAWte,SAAhB,EAA2B;AACvB,eAAKse,KAAL,CAAWzb,oBAAX,CAAgC5Q,qDAAO,CAACiC,MAAR,CAAeG,QAA/C,EAAyD,aAAzD;AACH;;AACD,aAAKiqB,KAAL,CAAWpY,UAAX;;AACA;AACH,OApByB,CAsB1B;AACA;;;AACA,YAAMshB,QAAQ,GAAG,MAAM;AACnBvgB,WAAG,CAACkd,IAAJ,GAAW,IAAIxlB,IAAJ,EAAX;;AACA,YAAI,KAAK2f,KAAL,CAAW3gB,OAAX,CAAmB8pB,aAAvB,EAAqC;AACjC,gBAAMC,OAAO,GAAG,KAAKpJ,KAAL,CAAW3gB,OAAX,CAAmB8pB,aAAnC;;AACA,eAAK,MAAME,MAAX,IAAqBD,OAArB,EAA8B;AAC1B,gBAAI32B,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCw2B,OAArC,EAA8CC,MAA9C,CAAJ,EAA2D;AACvD1gB,iBAAG,CAACwd,GAAJ,CAAQ4C,gBAAR,CAAyBM,MAAzB,EAAiCD,OAAO,CAACC,MAAD,CAAxC;AACH;AACJ;AACJ;;AACD1gB,WAAG,CAACwd,GAAJ,CAAQxgB,IAAR,CAAagD,GAAG,CAACnD,IAAjB;AACH,OAXD,CAxB0B,CAqC1B;AACA;;;AACA,UAAImD,GAAG,CAAC+c,KAAJ,GAAY,CAAhB,EAAmB;AACf;AACA;AACA,cAAM4D,OAAO,GAAG7lB,IAAI,CAAC0V,GAAL,CAAS1V,IAAI,CAACkjB,KAAL,CAAWhzB,qDAAO,CAAC+D,OAAR,GAAkB,KAAKuM,IAAlC,CAAT,EACOR,IAAI,CAAC8lB,GAAL,CAAS5gB,GAAG,CAAC+c,KAAb,EAAoB,CAApB,CADP,IACiC,IADjD;AAEArjB,kBAAU,CAAC,YAAW;AAClB;AACA6mB,kBAAQ;AACX,SAHS,EAGPI,OAHO,CAAV;AAIH,OATD,MASO;AACHJ,gBAAQ;AACX;;AAEDvgB,SAAG,CAAC+c,KAAJ;;AAEA,UAAI,KAAK1F,KAAL,CAAW1a,SAAX,KAAyB3R,qDAAO,CAAC6M,UAAR,CAAmB9N,SAAnB,CAA6B4S,SAA1D,EAAqE;AACjE,YAAIqD,GAAG,CAACgd,OAAJ,CAAYtrB,QAAZ,KAAyB,KAAKyO,KAA9B,IAAuCH,GAAG,CAACgd,OAAJ,CAAY1tB,UAAZ,CAAuB5H,MAAlE,EAA0E;AACtE,eAAK2vB,KAAL,CAAW1a,SAAX,CAAqBqD,GAAG,CAACgd,OAAJ,CAAY1tB,UAAZ,CAAuB,CAAvB,CAArB;AACH,SAFD,MAEO;AACH,eAAK+nB,KAAL,CAAW1a,SAAX,CAAqBqD,GAAG,CAACgd,OAAzB;AACH;AACJ;;AACD,UAAI,KAAK3F,KAAL,CAAWva,SAAX,KAAyB9R,qDAAO,CAAC6M,UAAR,CAAmB9N,SAAnB,CAA6B+S,SAA1D,EAAqE;AACjE,aAAKua,KAAL,CAAWva,SAAX,CAAqBkD,GAAG,CAACnD,IAAzB;AACH;AACJ,KAhED,MAgEO;AACH7R,2DAAO,CAACiJ,KAAR,CAAc,uBACCxM,CAAC,KAAK,CAAN,GAAU,OAAV,GAAoB,QADrB,IAEA,6BAFA,GAGAuY,GAAG,CAACwd,GAAJ,CAAQvE,UAHtB;AAIH;AACJ;AAED;;;;;;;;AAMAuG,gBAAc,CAAExf,GAAF,EAAO;AACjBhV,yDAAO,CAACiJ,KAAR,CAAc,kBAAd;;AACA,SAAK,IAAIxM,CAAC,GAAC,KAAK8S,SAAL,CAAe7S,MAAf,GAAwB,CAAnC,EAAsCD,CAAC,IAAE,CAAzC,EAA4CA,CAAC,EAA7C,EAAiD;AAC7C,UAAIuY,GAAG,KAAK,KAAKzF,SAAL,CAAe9S,CAAf,CAAZ,EAA+B;AAC3B,aAAK8S,SAAL,CAAetH,MAAf,CAAsBxL,CAAtB,EAAyB,CAAzB;AACH;AACJ,KANgB,CAOjB;;;AACAuY,OAAG,CAACwd,GAAJ,CAAQO,kBAAR,GAA6B,YAAY,CAAE,CAA3C;;AACA,SAAKS,wBAAL;AACH;AAED;;;;;;;;AAMAmB,iBAAe,CAAEl4B,CAAF,EAAK;AAChB,UAAMuY,GAAG,GAAG,KAAKzF,SAAL,CAAe9S,CAAf,CAAZ;;AACA,QAAIuY,GAAG,CAACqd,IAAJ,KAAa,IAAjB,EAAuB;AACnBrd,SAAG,CAACqd,IAAJ,GAAW,IAAI3lB,IAAJ,EAAX;AACH;;AACD,SAAKkoB,eAAL,CAAqBn4B,CAArB;AACH;AAED;;;;;;;;;;;;;;AAYAyY,YAAU,CAAEF,GAAF,EAAO;AACb,QAAI;AACA,aAAOA,GAAG,CAAC0d,WAAJ,EAAP;AACH,KAFD,CAEE,OAAOprB,CAAP,EAAU;AACR,UAAIA,CAAC,CAACmB,OAAF,KAAc,aAAlB,EAAiC;AAAE,cAAMnB,CAAN;AAAU;;AAC7C,WAAK+kB,KAAL,CAAWpY,UAAX,CAAsB,qBAAtB;AACH;AACJ;AAED;;;;;;;;;AAOA2f,gBAAc,CAAEzf,IAAF,EAAQ;AAClBnU,yDAAO,CAACiJ,KAAR,CAAc,2BAAd;;AACA,UAAMqqB,IAAI,GAAG,KAAKH,UAAL,GAAkBpzB,KAAlB,CAAwB;AAACwL,UAAI,EAAE;AAAP,KAAxB,CAAb;;AACA,QAAI4I,IAAJ,EAAU;AACNmf,UAAI,CAAC1oB,KAAL,CAAWuJ,IAAI,CAAC9K,IAAL,EAAX;AACH;;AACD,UAAM2L,GAAG,GAAG,IAAIhV,qDAAO,CAAC8xB,OAAZ,CACRwB,IAAI,CAACjqB,IAAL,EADQ,EAER,KAAKkqB,qBAAL,CAA2Bjf,IAA3B,CAAgC,IAAhC,EAAsC,KAAK+X,KAAL,CAAWtX,SAAX,CAAqBT,IAArB,CAA0B,KAAK+X,KAA/B,CAAtC,CAFQ,EAGRiH,IAAI,CAACjqB,IAAL,GAAYxC,YAAZ,CAAyB,KAAzB,CAHQ,CAAZ;;AAKA,SAAK0I,SAAL,CAAenI,IAAf,CAAoB4N,GAApB;;AACA,SAAKwe,wBAAL;AACH;AAED;;;;;;;AAKAthB,OAAK,GAAI;AACLE,gBAAY,CAAC,KAAKia,KAAL,CAAWze,YAAZ,CAAZ;;AACA,SAAK4lB,wBAAL;;AACA,SAAKnH,KAAL,CAAWze,YAAX,GAA0Bc,UAAU,CAAC,MAAM,KAAK2d,KAAL,CAAW1d,OAAX,EAAP,EAA6B,GAA7B,CAApC;AACH;AAED;;;;;;AAIAsE,cAAY,GAAI;AACZ,SAAKugB,wBAAL;;AACAphB,gBAAY,CAAC,KAAKia,KAAL,CAAWze,YAAZ,CAAZ;AACH;AAED;;;;;;;;;AAOA4lB,0BAAwB,GAAI;AACxB,QAAI,CAAC,KAAKjkB,SAAV,EAAqB;AACjBvP,2DAAO,CAACiJ,KAAR,CAAc,0CACA,oBADd;AAEH,KAHD,MAGO;AACHjJ,2DAAO,CAACiJ,KAAR,CAAc,0CACA,KAAKsG,SAAL,CAAe7S,MADf,GACwB,WADtC;AAEH;;AAED,QAAI,CAAC,KAAK6S,SAAN,IAAmB,KAAKA,SAAL,CAAe7S,MAAf,KAA0B,CAAjD,EAAoD;AAChD;AACH;;AAED,QAAI,KAAK6S,SAAL,CAAe7S,MAAf,GAAwB,CAA5B,EAA+B;AAC3B,WAAKk4B,eAAL,CAAqB,CAArB;AACH;;AAED,QAAI,KAAKrlB,SAAL,CAAe7S,MAAf,GAAwB,CAAxB,IACAoT,IAAI,CAAC+lB,GAAL,CAAS,KAAKtmB,SAAL,CAAe,CAAf,EAAkByB,GAAlB,GACA,KAAKzB,SAAL,CAAe,CAAf,EAAkByB,GAD3B,IACkC,KAAKub,MAF3C,EAEmD;AAC/C,WAAKqI,eAAL,CAAqB,CAArB;AACH;AACJ;;AA/uBqB,CAA1B;AAmvBA;;;;;;;;;;;;AAWA50B,qDAAO,CAACqP,IAAR,CAAatQ,SAAb,CAAuBoW,KAAvB,GAA+B,IAA/B,C;;;;;;ACl5BA;AACA;;AAAE,WAAS1K,IAAT,EAAe;AAEhB;AACA,MAAIqrB,WAAW,GAAG,SAA8BlZ,OAA9B,IACjB,CAACA,OAAO,CAACpY,QADQ,IACIoY,OADtB;AAEA,MAAImZ,UAAU,GAAG,SAA6BpZ,MAA7B,IAChB,CAACA,MAAM,CAACnY,QADQ,IACImY,MADrB;AAEA,MAAIqZ,UAAU,GAAG,OAAOva,MAAP,IAAiB,QAAjB,IAA6BA,MAA9C;;AACA,MACCua,UAAU,CAACva,MAAX,KAAsBua,UAAtB,IACAA,UAAU,CAACzJ,MAAX,KAAsByJ,UADtB,IAEAA,UAAU,CAACC,IAAX,KAAoBD,UAHrB,EAIE;AACDvrB,QAAI,GAAGurB,UAAP;AACA;AAED;;;;;;;AAKA,MAAIlZ,QAAJ;;AAEA;AACAoZ,QAAM,GAAG,UAHT;AAAA,MAGqB;;AAErB;AACA9Y,MAAI,GAAG,EANP;AAAA,MAOA+Y,IAAI,GAAG,CAPP;AAAA,MAQAC,IAAI,GAAG,EARP;AAAA,MASAC,IAAI,GAAG,EATP;AAAA,MAUAC,IAAI,GAAG,GAVP;AAAA,MAWAC,WAAW,GAAG,EAXd;AAAA,MAYAC,QAAQ,GAAG,GAZX;AAAA,MAYgB;AAChBC,WAAS,GAAG,GAbZ;AAAA,MAaiB;;AAEjB;AACAC,eAAa,GAAG,OAhBhB;AAAA,MAiBAC,aAAa,GAAG,cAjBhB;AAAA,MAiBgC;AAChCC,iBAAe,GAAG,2BAlBlB;AAAA,MAkB+C;;AAE/C;AACAjK,QAAM,GAAG;AACR,gBAAY,iDADJ;AAER,iBAAa,gDAFL;AAGR,qBAAiB;AAHT,GArBT;;AA2BA;AACAkK,eAAa,GAAGzZ,IAAI,GAAG+Y,IA5BvB;AAAA,MA6BAnD,KAAK,GAAGljB,IAAI,CAACkjB,KA7Bb;AAAA,MA8BA8D,kBAAkB,GAAGj6B,MAAM,CAACC,YA9B5B;;AAgCA;AACAie,KAjCA;AAmCA;;AAEA;;;;;;;AAMA,WAAS/R,KAAT,CAAeuC,IAAf,EAAqB;AACpB,UAAM,IAAIwrB,UAAJ,CAAepK,MAAM,CAACphB,IAAD,CAArB,CAAN;AACA;AAED;;;;;;;;;;AAQA,WAAS9B,GAAT,CAAautB,KAAb,EAAoBC,EAApB,EAAwB;AACvB,QAAIv6B,MAAM,GAAGs6B,KAAK,CAACt6B,MAAnB;AACA,QAAIgN,MAAM,GAAG,EAAb;;AACA,WAAOhN,MAAM,EAAb,EAAiB;AAChBgN,YAAM,CAAChN,MAAD,CAAN,GAAiBu6B,EAAE,CAACD,KAAK,CAACt6B,MAAD,CAAN,CAAnB;AACA;;AACD,WAAOgN,MAAP;AACA;AAED;;;;;;;;;;;;AAUA,WAASwtB,SAAT,CAAmBlZ,MAAnB,EAA2BiZ,EAA3B,EAA+B;AAC9B,QAAIjvB,KAAK,GAAGgW,MAAM,CAAChX,KAAP,CAAa,GAAb,CAAZ;AACA,QAAI0C,MAAM,GAAG,EAAb;;AACA,QAAI1B,KAAK,CAACtL,MAAN,GAAe,CAAnB,EAAsB;AACrB;AACA;AACAgN,YAAM,GAAG1B,KAAK,CAAC,CAAD,CAAL,GAAW,GAApB;AACAgW,YAAM,GAAGhW,KAAK,CAAC,CAAD,CAAd;AACA,KAR6B,CAS9B;;;AACAgW,UAAM,GAAGA,MAAM,CAACnY,OAAP,CAAe+wB,eAAf,EAAgC,MAAhC,CAAT;AACA,QAAIO,MAAM,GAAGnZ,MAAM,CAAChX,KAAP,CAAa,GAAb,CAAb;AACA,QAAIowB,OAAO,GAAG3tB,GAAG,CAAC0tB,MAAD,EAASF,EAAT,CAAH,CAAgB5vB,IAAhB,CAAqB,GAArB,CAAd;AACA,WAAOqC,MAAM,GAAG0tB,OAAhB;AACA;AAED;;;;;;;;;;;;;;;AAaA,WAASC,UAAT,CAAoBrZ,MAApB,EAA4B;AAC3B,QAAIiS,MAAM,GAAG,EAAb;AAAA,QACIqH,OAAO,GAAG,CADd;AAAA,QAEI56B,MAAM,GAAGshB,MAAM,CAACthB,MAFpB;AAAA,QAGIgD,KAHJ;AAAA,QAII63B,KAJJ;;AAKA,WAAOD,OAAO,GAAG56B,MAAjB,EAAyB;AACxBgD,WAAK,GAAGse,MAAM,CAACrhB,UAAP,CAAkB26B,OAAO,EAAzB,CAAR;;AACA,UAAI53B,KAAK,IAAI,MAAT,IAAmBA,KAAK,IAAI,MAA5B,IAAsC43B,OAAO,GAAG56B,MAApD,EAA4D;AAC3D;AACA66B,aAAK,GAAGvZ,MAAM,CAACrhB,UAAP,CAAkB26B,OAAO,EAAzB,CAAR;;AACA,YAAI,CAACC,KAAK,GAAG,MAAT,KAAoB,MAAxB,EAAgC;AAAE;AACjCtH,gBAAM,CAAC7oB,IAAP,CAAY,CAAC,CAAC1H,KAAK,GAAG,KAAT,KAAmB,EAApB,KAA2B63B,KAAK,GAAG,KAAnC,IAA4C,OAAxD;AACA,SAFD,MAEO;AACN;AACA;AACAtH,gBAAM,CAAC7oB,IAAP,CAAY1H,KAAZ;AACA43B,iBAAO;AACP;AACD,OAXD,MAWO;AACNrH,cAAM,CAAC7oB,IAAP,CAAY1H,KAAZ;AACA;AACD;;AACD,WAAOuwB,MAAP;AACA;AAED;;;;;;;;;;AAQA,WAASuH,UAAT,CAAoBR,KAApB,EAA2B;AAC1B,WAAOvtB,GAAG,CAACutB,KAAD,EAAQ,UAASt3B,KAAT,EAAgB;AACjC,UAAIuwB,MAAM,GAAG,EAAb;;AACA,UAAIvwB,KAAK,GAAG,MAAZ,EAAoB;AACnBA,aAAK,IAAI,OAAT;AACAuwB,cAAM,IAAI6G,kBAAkB,CAACp3B,KAAK,KAAK,EAAV,GAAe,KAAf,GAAuB,MAAxB,CAA5B;AACAA,aAAK,GAAG,SAASA,KAAK,GAAG,KAAzB;AACA;;AACDuwB,YAAM,IAAI6G,kBAAkB,CAACp3B,KAAD,CAA5B;AACA,aAAOuwB,MAAP;AACA,KATS,CAAH,CASJ5oB,IATI,CASC,EATD,CAAP;AAUA;AAED;;;;;;;;;;;AASA,WAASowB,YAAT,CAAsBC,SAAtB,EAAiC;AAChC,QAAIA,SAAS,GAAG,EAAZ,GAAiB,EAArB,EAAyB;AACxB,aAAOA,SAAS,GAAG,EAAnB;AACA;;AACD,QAAIA,SAAS,GAAG,EAAZ,GAAiB,EAArB,EAAyB;AACxB,aAAOA,SAAS,GAAG,EAAnB;AACA;;AACD,QAAIA,SAAS,GAAG,EAAZ,GAAiB,EAArB,EAAyB;AACxB,aAAOA,SAAS,GAAG,EAAnB;AACA;;AACD,WAAOta,IAAP;AACA;AAED;;;;;;;;;;;;;AAWA,WAASua,YAAT,CAAsBC,KAAtB,EAA6BC,IAA7B,EAAmC;AAClC;AACA;AACA,WAAOD,KAAK,GAAG,EAAR,GAAa,MAAMA,KAAK,GAAG,EAAd,CAAb,IAAkC,CAACC,IAAI,IAAI,CAAT,KAAe,CAAjD,CAAP;AACA;AAED;;;;;;;AAKA,WAASC,KAAT,CAAeC,KAAf,EAAsBC,SAAtB,EAAiCC,SAAjC,EAA4C;AAC3C,QAAIvyB,CAAC,GAAG,CAAR;AACAqyB,SAAK,GAAGE,SAAS,GAAGjF,KAAK,CAAC+E,KAAK,GAAGzB,IAAT,CAAR,GAAyByB,KAAK,IAAI,CAAnD;AACAA,SAAK,IAAI/E,KAAK,CAAC+E,KAAK,GAAGC,SAAT,CAAd;;AACA;AAAK;AAAyBD,SAAK,GAAGlB,aAAa,GAAGT,IAAhB,IAAwB,CAA9D,EAAiE1wB,CAAC,IAAI0X,IAAtE,EAA4E;AAC3E2a,WAAK,GAAG/E,KAAK,CAAC+E,KAAK,GAAGlB,aAAT,CAAb;AACA;;AACD,WAAO7D,KAAK,CAACttB,CAAC,GAAG,CAACmxB,aAAa,GAAG,CAAjB,IAAsBkB,KAAtB,IAA+BA,KAAK,GAAG1B,IAAvC,CAAL,CAAZ;AACA;AAED;;;;;;;;;AAOA,WAASjV,MAAT,CAAgB6D,KAAhB,EAAuB;AACtB;AACA,QAAIgL,MAAM,GAAG,EAAb;AAAA,QACIiI,WAAW,GAAGjT,KAAK,CAACvoB,MADxB;AAAA,QAEIgC,GAFJ;AAAA,QAGIjC,CAAC,GAAG,CAHR;AAAA,QAIImN,CAAC,GAAG4sB,QAJR;AAAA,QAKI2B,IAAI,GAAG5B,WALX;AAAA,QAMI6B,KANJ;AAAA,QAOInxB,CAPJ;AAAA,QAQIgf,KARJ;AAAA,QASIoS,IATJ;AAAA,QAUI3d,CAVJ;AAAA,QAWIhV,CAXJ;AAAA,QAYIkyB,KAZJ;AAAA,QAaIp6B,CAbJ;;AAcI;AACA86B,cAfJ,CAFsB,CAmBtB;AACA;AACA;;AAEAF,SAAK,GAAGnT,KAAK,CAACvB,WAAN,CAAkB+S,SAAlB,CAAR;;AACA,QAAI2B,KAAK,GAAG,CAAZ,EAAe;AACdA,WAAK,GAAG,CAAR;AACA;;AAED,SAAKnxB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGmxB,KAAhB,EAAuB,EAAEnxB,CAAzB,EAA4B;AAC3B;AACA,UAAIge,KAAK,CAACtoB,UAAN,CAAiBsK,CAAjB,KAAuB,IAA3B,EAAiC;AAChC+B,aAAK,CAAC,WAAD,CAAL;AACA;;AACDinB,YAAM,CAAC7oB,IAAP,CAAY6d,KAAK,CAACtoB,UAAN,CAAiBsK,CAAjB,CAAZ;AACA,KAlCqB,CAoCtB;AACA;;;AAEA,SAAKgf,KAAK,GAAGmS,KAAK,GAAG,CAAR,GAAYA,KAAK,GAAG,CAApB,GAAwB,CAArC,EAAwCnS,KAAK,GAAGiS,WAAhD;AAA6D;AAA2B;AAEvF;AACA;AACA;AACA;AACA;AACA,WAAKG,IAAI,GAAG57B,CAAP,EAAUie,CAAC,GAAG,CAAd,EAAiBhV,CAAC,GAAG0X,IAA1B;AAAgC;AAAoB1X,OAAC,IAAI0X,IAAzD,EAA+D;AAE9D,YAAI6I,KAAK,IAAIiS,WAAb,EAA0B;AACzBlvB,eAAK,CAAC,eAAD,CAAL;AACA;;AAED4uB,aAAK,GAAGH,YAAY,CAACxS,KAAK,CAACtoB,UAAN,CAAiBspB,KAAK,EAAtB,CAAD,CAApB;;AAEA,YAAI2R,KAAK,IAAIxa,IAAT,IAAiBwa,KAAK,GAAG5E,KAAK,CAAC,CAACkD,MAAM,GAAGz5B,CAAV,IAAeie,CAAhB,CAAlC,EAAsD;AACrD1R,eAAK,CAAC,UAAD,CAAL;AACA;;AAEDvM,SAAC,IAAIm7B,KAAK,GAAGld,CAAb;AACAld,SAAC,GAAGkI,CAAC,IAAIyyB,IAAL,GAAYhC,IAAZ,GAAoBzwB,CAAC,IAAIyyB,IAAI,GAAG/B,IAAZ,GAAmBA,IAAnB,GAA0B1wB,CAAC,GAAGyyB,IAAtD;;AAEA,YAAIP,KAAK,GAAGp6B,CAAZ,EAAe;AACd;AACA;;AAED86B,kBAAU,GAAGlb,IAAI,GAAG5f,CAApB;;AACA,YAAIkd,CAAC,GAAGsY,KAAK,CAACkD,MAAM,GAAGoC,UAAV,CAAb,EAAoC;AACnCtvB,eAAK,CAAC,UAAD,CAAL;AACA;;AAED0R,SAAC,IAAI4d,UAAL;AAEA;;AAED55B,SAAG,GAAGuxB,MAAM,CAACvzB,MAAP,GAAgB,CAAtB;AACAy7B,UAAI,GAAGL,KAAK,CAACr7B,CAAC,GAAG47B,IAAL,EAAW35B,GAAX,EAAgB25B,IAAI,IAAI,CAAxB,CAAZ,CApCuF,CAsCvF;AACA;;AACA,UAAIrF,KAAK,CAACv2B,CAAC,GAAGiC,GAAL,CAAL,GAAiBw3B,MAAM,GAAGtsB,CAA9B,EAAiC;AAChCZ,aAAK,CAAC,UAAD,CAAL;AACA;;AAEDY,OAAC,IAAIopB,KAAK,CAACv2B,CAAC,GAAGiC,GAAL,CAAV;AACAjC,OAAC,IAAIiC,GAAL,CA7CuF,CA+CvF;;AACAuxB,YAAM,CAAChoB,MAAP,CAAcxL,CAAC,EAAf,EAAmB,CAAnB,EAAsBmN,CAAtB;AAEA;;AAED,WAAO4tB,UAAU,CAACvH,MAAD,CAAjB;AACA;AAED;;;;;;;;;AAOA,WAAS9O,MAAT,CAAgB8D,KAAhB,EAAuB;AACtB,QAAIrb,CAAJ;AAAA,QACImuB,KADJ;AAAA,QAEIQ,cAFJ;AAAA,QAGIC,WAHJ;AAAA,QAIIL,IAJJ;AAAA,QAKIlxB,CALJ;AAAA,QAMI2M,CANJ;AAAA,QAOIxW,CAPJ;AAAA,QAQIsI,CARJ;AAAA,QASIlI,CATJ;AAAA,QAUIi7B,YAVJ;AAAA,QAWIxI,MAAM,GAAG,EAXb;;AAYI;AACAiI,eAbJ;;AAcI;AACAQ,yBAfJ;AAAA,QAgBIJ,UAhBJ;AAAA,QAiBIK,OAjBJ,CADsB,CAoBtB;;AACA1T,SAAK,GAAGoS,UAAU,CAACpS,KAAD,CAAlB,CArBsB,CAuBtB;;AACAiT,eAAW,GAAGjT,KAAK,CAACvoB,MAApB,CAxBsB,CA0BtB;;AACAkN,KAAC,GAAG4sB,QAAJ;AACAuB,SAAK,GAAG,CAAR;AACAI,QAAI,GAAG5B,WAAP,CA7BsB,CA+BtB;;AACA,SAAKtvB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGixB,WAAhB,EAA6B,EAAEjxB,CAA/B,EAAkC;AACjCwxB,kBAAY,GAAGxT,KAAK,CAAChe,CAAD,CAApB;;AACA,UAAIwxB,YAAY,GAAG,IAAnB,EAAyB;AACxBxI,cAAM,CAAC7oB,IAAP,CAAY0vB,kBAAkB,CAAC2B,YAAD,CAA9B;AACA;AACD;;AAEDF,kBAAc,GAAGC,WAAW,GAAGvI,MAAM,CAACvzB,MAAtC,CAvCsB,CAyCtB;AACA;AAEA;;AACA,QAAI87B,WAAJ,EAAiB;AAChBvI,YAAM,CAAC7oB,IAAP,CAAYqvB,SAAZ;AACA,KA/CqB,CAiDtB;;;AACA,WAAO8B,cAAc,GAAGL,WAAxB,EAAqC;AAEpC;AACA;AACA,WAAKtkB,CAAC,GAAGsiB,MAAJ,EAAYjvB,CAAC,GAAG,CAArB,EAAwBA,CAAC,GAAGixB,WAA5B,EAAyC,EAAEjxB,CAA3C,EAA8C;AAC7CwxB,oBAAY,GAAGxT,KAAK,CAAChe,CAAD,CAApB;;AACA,YAAIwxB,YAAY,IAAI7uB,CAAhB,IAAqB6uB,YAAY,GAAG7kB,CAAxC,EAA2C;AAC1CA,WAAC,GAAG6kB,YAAJ;AACA;AACD,OATmC,CAWpC;AACA;;;AACAC,2BAAqB,GAAGH,cAAc,GAAG,CAAzC;;AACA,UAAI3kB,CAAC,GAAGhK,CAAJ,GAAQopB,KAAK,CAAC,CAACkD,MAAM,GAAG6B,KAAV,IAAmBW,qBAApB,CAAjB,EAA6D;AAC5D1vB,aAAK,CAAC,UAAD,CAAL;AACA;;AAED+uB,WAAK,IAAI,CAACnkB,CAAC,GAAGhK,CAAL,IAAU8uB,qBAAnB;AACA9uB,OAAC,GAAGgK,CAAJ;;AAEA,WAAK3M,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGixB,WAAhB,EAA6B,EAAEjxB,CAA/B,EAAkC;AACjCwxB,oBAAY,GAAGxT,KAAK,CAAChe,CAAD,CAApB;;AAEA,YAAIwxB,YAAY,GAAG7uB,CAAf,IAAoB,EAAEmuB,KAAF,GAAU7B,MAAlC,EAA0C;AACzCltB,eAAK,CAAC,UAAD,CAAL;AACA;;AAED,YAAIyvB,YAAY,IAAI7uB,CAApB,EAAuB;AACtB;AACA,eAAKxM,CAAC,GAAG26B,KAAJ,EAAWryB,CAAC,GAAG0X,IAApB;AAA0B;AAAoB1X,WAAC,IAAI0X,IAAnD,EAAyD;AACxD5f,aAAC,GAAGkI,CAAC,IAAIyyB,IAAL,GAAYhC,IAAZ,GAAoBzwB,CAAC,IAAIyyB,IAAI,GAAG/B,IAAZ,GAAmBA,IAAnB,GAA0B1wB,CAAC,GAAGyyB,IAAtD;;AACA,gBAAI/6B,CAAC,GAAGI,CAAR,EAAW;AACV;AACA;;AACDm7B,mBAAO,GAAGv7B,CAAC,GAAGI,CAAd;AACA86B,sBAAU,GAAGlb,IAAI,GAAG5f,CAApB;AACAyyB,kBAAM,CAAC7oB,IAAP,CACC0vB,kBAAkB,CAACa,YAAY,CAACn6B,CAAC,GAAGm7B,OAAO,GAAGL,UAAf,EAA2B,CAA3B,CAAb,CADnB;AAGAl7B,aAAC,GAAG41B,KAAK,CAAC2F,OAAO,GAAGL,UAAX,CAAT;AACA;;AAEDrI,gBAAM,CAAC7oB,IAAP,CAAY0vB,kBAAkB,CAACa,YAAY,CAACv6B,CAAD,EAAI,CAAJ,CAAb,CAA9B;AACA+6B,cAAI,GAAGL,KAAK,CAACC,KAAD,EAAQW,qBAAR,EAA+BH,cAAc,IAAIC,WAAjD,CAAZ;AACAT,eAAK,GAAG,CAAR;AACA,YAAEQ,cAAF;AACA;AACD;;AAED,QAAER,KAAF;AACA,QAAEnuB,CAAF;AAEA;;AACD,WAAOqmB,MAAM,CAAC5oB,IAAP,CAAY,EAAZ,CAAP;AACA;AAED;;;;;;;;;;;;;AAWA,WAAS4jB,SAAT,CAAmBhG,KAAnB,EAA0B;AACzB,WAAOiS,SAAS,CAACjS,KAAD,EAAQ,UAASjH,MAAT,EAAiB;AACxC,aAAO0Y,aAAa,CAAC7f,IAAd,CAAmBmH,MAAnB,IACJoD,MAAM,CAACpD,MAAM,CAACE,KAAP,CAAa,CAAb,EAAgBtX,WAAhB,EAAD,CADF,GAEJoX,MAFH;AAGA,KAJe,CAAhB;AAKA;AAED;;;;;;;;;;;;;AAWA,WAAS6I,OAAT,CAAiB5B,KAAjB,EAAwB;AACvB,WAAOiS,SAAS,CAACjS,KAAD,EAAQ,UAASjH,MAAT,EAAiB;AACxC,aAAO2Y,aAAa,CAAC9f,IAAd,CAAmBmH,MAAnB,IACJ,SAASmD,MAAM,CAACnD,MAAD,CADX,GAEJA,MAFH;AAGA,KAJe,CAAhB;AAKA;AAED;;AAEA;;;AACAlB,UAAQ,GAAG;AACV;;;;;AAKA,eAAW,OAND;;AAOV;;;;;;;AAOA,YAAQ;AACP,gBAAUua,UADH;AAEP,gBAAUG;AAFH,KAdE;AAkBV,cAAUpW,MAlBA;AAmBV,cAAUD,MAnBA;AAoBV,eAAW0F,OApBD;AAqBV,iBAAaoE;AArBH,GAAX;AAwBA;AACA;AACA;;AACA,MACC,IADD,EAIE;AACDpO,uCAAmB,YAAW;AAC7B,aAAOC,QAAP;AACA,KAFK;AAAA,oGAAN;AAGA,GARD,MAQO,EAaN;AAED,CAnhBC,EAmhBA,IAnhBA,CAAD,C;;;;;;;ACDD;;;;;;;;;;;;;AAcC,WAAUrS,IAAV,EAAgBiS,OAAhB,EAAyB;AACxB,eADwB,CAExB;;AACA,MAAI,SAA8BC,MAAM,CAACC,OAAzC,EAAkD;AAChD;AACAD,UAAM,CAACC,OAAP,GAAiBF,OAAO,EAAxB;AACD,GAHD,MAGO,IAAI,IAAJ,EAAgD;AACrD;AACAG,wCAAOH,OAAD;AAAA;AAAA;AAAA;AAAA,oGAAN;AACD,GAHM,MAGA,EAGN;AACF,CAbA,EAaC,IAbD,EAaO,UAAUjS,IAAV,EAAgB;AACtB;AAEA;;;;;;AAQA;;AACA,MAAImuB,KAAK,GAAGnuB,IAAI,IAAIA,IAAI,CAACsS,IAAzB;;AAEA,WAAS8b,gBAAT,CAA0BC,OAA1B,EAAmC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,QAAIC,QAAQ,GAAGD,OAAO,CAAClyB,WAAR,EAAf;;AACA,QAAI4b,QAAQ,GAAGuW,QAAQ,CAAC/xB,KAAT,CAAe,GAAf,CAAf;;AACA,QAAItK,MAAM,GAAG8lB,QAAQ,CAAC9lB,MAAtB;AACA,QAAIs8B,KAAK,GAAG,CAAZ,CAdiC,CAgBjC;;AACA,QAAIxW,QAAQ,CAAC,CAAD,CAAR,KAAgB,EAAhB,IAAsBA,QAAQ,CAAC,CAAD,CAAR,KAAgB,EAAtC,IAA4CA,QAAQ,CAAC,CAAD,CAAR,KAAgB,EAAhE,EAAoE;AAClE;AACA;AACAA,cAAQ,CAACmB,KAAT;AACAnB,cAAQ,CAACmB,KAAT;AACD,KALD,MAKO,IAAInB,QAAQ,CAAC,CAAD,CAAR,KAAgB,EAAhB,IAAsBA,QAAQ,CAAC,CAAD,CAAR,KAAgB,EAA1C,EAA8C;AACnD;AACA;AACAA,cAAQ,CAACmB,KAAT;AACD,KAJM,MAIA,IAAInB,QAAQ,CAAC9lB,MAAM,GAAG,CAAV,CAAR,KAAyB,EAAzB,IAA+B8lB,QAAQ,CAAC9lB,MAAM,GAAG,CAAV,CAAR,KAAyB,EAA5D,EAAgE;AACrE;AACA8lB,cAAQ,CAACpN,GAAT;AACD;;AAED1Y,UAAM,GAAG8lB,QAAQ,CAAC9lB,MAAlB,CA/BiC,CAiCjC;;AACA,QAAI8lB,QAAQ,CAAC9lB,MAAM,GAAG,CAAV,CAAR,CAAqBkL,OAArB,CAA6B,GAA7B,MAAsC,CAAC,CAA3C,EAA8C;AAC5C;AACAoxB,WAAK,GAAG,CAAR;AACD,KArCgC,CAuCjC;;;AACA,QAAIjW,GAAJ;;AACA,SAAKA,GAAG,GAAG,CAAX,EAAcA,GAAG,GAAGrmB,MAApB,EAA4BqmB,GAAG,EAA/B,EAAmC;AACjC,UAAIP,QAAQ,CAACO,GAAD,CAAR,KAAkB,EAAtB,EAA0B;AACxB;AACD;AACF;;AAED,QAAIA,GAAG,GAAGiW,KAAV,EAAiB;AACfxW,cAAQ,CAACva,MAAT,CAAgB8a,GAAhB,EAAqB,CAArB,EAAwB,MAAxB;;AACA,aAAOP,QAAQ,CAAC9lB,MAAT,GAAkBs8B,KAAzB,EAAgC;AAC9BxW,gBAAQ,CAACva,MAAT,CAAgB8a,GAAhB,EAAqB,CAArB,EAAwB,MAAxB;AACD;AACF,KApDgC,CAsDjC;;;AACA,QAAIoC,SAAJ;;AACA,SAAK,IAAI1oB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGu8B,KAApB,EAA2Bv8B,CAAC,EAA5B,EAAgC;AAC9B0oB,eAAS,GAAG3C,QAAQ,CAAC/lB,CAAD,CAAR,CAAYuK,KAAZ,CAAkB,EAAlB,CAAZ;;AACA,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAApB,EAAwBA,CAAC,EAAzB,EAA6B;AAC3B,YAAIke,SAAS,CAAC,CAAD,CAAT,KAAiB,GAAjB,IAAwBA,SAAS,CAACzoB,MAAV,GAAmB,CAA/C,EAAkD;AAChDyoB,mBAAS,CAACld,MAAV,CAAiB,CAAjB,EAAmB,CAAnB;AACD,SAFD,MAEO;AACL;AACD;AACF;;AAEDua,cAAQ,CAAC/lB,CAAD,CAAR,GAAc0oB,SAAS,CAAC9d,IAAV,CAAe,EAAf,CAAd;AACD,KAnEgC,CAqEjC;;;AACA,QAAIkjB,IAAI,GAAG,CAAC,CAAZ;AACA,QAAI0O,KAAK,GAAG,CAAZ;AACA,QAAIC,QAAQ,GAAG,CAAf;AACA,QAAIC,OAAO,GAAG,CAAC,CAAf;AACA,QAAIC,QAAQ,GAAG,KAAf,CA1EiC,CA2EjC;;AAEA,SAAK38B,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGu8B,KAAhB,EAAuBv8B,CAAC,EAAxB,EAA4B;AAC1B,UAAI28B,QAAJ,EAAc;AACZ,YAAI5W,QAAQ,CAAC/lB,CAAD,CAAR,KAAgB,GAApB,EAAyB;AACvBy8B,kBAAQ,IAAI,CAAZ;AACD,SAFD,MAEO;AACLE,kBAAQ,GAAG,KAAX;;AACA,cAAIF,QAAQ,GAAGD,KAAf,EAAsB;AACpB1O,gBAAI,GAAG4O,OAAP;AACAF,iBAAK,GAAGC,QAAR;AACD;AACF;AACF,OAVD,MAUO;AACL,YAAI1W,QAAQ,CAAC/lB,CAAD,CAAR,KAAgB,GAApB,EAAyB;AACvB28B,kBAAQ,GAAG,IAAX;AACAD,iBAAO,GAAG18B,CAAV;AACAy8B,kBAAQ,GAAG,CAAX;AACD;AACF;AACF;;AAED,QAAIA,QAAQ,GAAGD,KAAf,EAAsB;AACpB1O,UAAI,GAAG4O,OAAP;AACAF,WAAK,GAAGC,QAAR;AACD;;AAED,QAAID,KAAK,GAAG,CAAZ,EAAe;AACbzW,cAAQ,CAACva,MAAT,CAAgBsiB,IAAhB,EAAsB0O,KAAtB,EAA6B,EAA7B;AACD;;AAEDv8B,UAAM,GAAG8lB,QAAQ,CAAC9lB,MAAlB,CA1GiC,CA4GjC;;AACA,QAAIgN,MAAM,GAAG,EAAb;;AACA,QAAI8Y,QAAQ,CAAC,CAAD,CAAR,KAAgB,EAApB,EAAyB;AACvB9Y,YAAM,GAAG,GAAT;AACD;;AAED,SAAKjN,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGC,MAAhB,EAAwBD,CAAC,EAAzB,EAA6B;AAC3BiN,YAAM,IAAI8Y,QAAQ,CAAC/lB,CAAD,CAAlB;;AACA,UAAIA,CAAC,KAAKC,MAAM,GAAG,CAAnB,EAAsB;AACpB;AACD;;AAEDgN,YAAM,IAAI,GAAV;AACD;;AAED,QAAI8Y,QAAQ,CAAC9lB,MAAM,GAAG,CAAV,CAAR,KAAyB,EAA7B,EAAiC;AAC/BgN,YAAM,IAAI,GAAV;AACD;;AAED,WAAOA,MAAP;AACD;;AAED,WAASqd,UAAT,GAAsB;AACpB;AACA,QAAItc,IAAI,CAACsS,IAAL,KAAc,IAAlB,EAAwB;AACtBtS,UAAI,CAACsS,IAAL,GAAY6b,KAAZ;AACD;;AAED,WAAO,IAAP;AACD;;AAED,SAAO;AACLrO,QAAI,EAAEsO,gBADD;AAEL9R,cAAU,EAAEA;AAFP,GAAP;AAID,CA1KA,CAAD,C;;;;;;ACdA;;;;;;;;;;;;;AAcC,WAAUtc,IAAV,EAAgBiS,OAAhB,EAAyB;AACxB,eADwB,CAExB;;AACA,MAAI,SAA8BC,MAAM,CAACC,OAAzC,EAAkD;AAChD;AACAD,UAAM,CAACC,OAAP,GAAiBF,OAAO,EAAxB;AACD,GAHD,MAGO,IAAI,IAAJ,EAAgD;AACrD;AACAG,wCAAOH,OAAD;AAAA;AAAA;AAAA;AAAA,oGAAN;AACD,GAHM,MAGA,EAGN;AACF,CAbA,EAaC,IAbD,EAaO,UAAUjS,IAAV,EAAgB;AACtB,eADsB,CAGtB;;AACA,MAAI4uB,mBAAmB,GAAG5uB,IAAI,IAAIA,IAAI,CAAC0c,kBAAvC;;AAEA,MAAInK,GAAG,GAAG;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACAwB,QAAI,EAAE;AACJ,YAAK,uBADD;AAEJ,YAAK,sCAFD;AAGJ,YAAK,uBAHD;AAIJ,YAAK,2BAJD;AAKJ,YAAK,qBALD;AAMJ,YAAK,uCAND;AAOJ,YAAK,eAPD;AAQJ,YAAK,oCARD;AASJ,YAAK,0DATD;AAUJ,YAAK,4CAVD;AAWJ,YAAK,mCAXD;AAYJ,YAAK,uBAZD;AAaJ,YAAK,sCAbD;AAcJ,YAAK,+PAdD;AAeJ,YAAK,uBAfD;AAgBJ,YAAK,kBAhBD;AAiBJ,YAAK,6CAjBD;AAkBJ,YAAK,mCAlBD;AAmBJ,YAAK,8HAnBD;AAoBJ,YAAK,+BApBD;AAqBJ,YAAK,0BArBD;AAsBJ,YAAK,mEAtBD;AAuBJ,YAAK,2CAvBD;AAwBJ,YAAK,oCAxBD;AAyBJ,YAAK,4CAzBD;AA0BJ,YAAK,wCA1BD;AA2BJ,YAAK,yCA3BD;AA4BJ,YAAK,uBA5BD;AA6BJ,YAAK,qCA7BD;AA8BJ,YAAK,wCA9BD;AA+BJ,YAAK,yBA/BD;AAgCJ,YAAK,qCAhCD;AAiCJ,YAAK,cAjCD;AAkCJ,YAAK,uBAlCD;AAmCJ,YAAK,sBAnCD;AAoCJ,YAAK,2BApCD;AAqCJ,YAAK,+BArCD;AAsCJ,YAAK,uBAtCD;AAuCJ,YAAK,2BAvCD;AAwCJ,YAAK,wLAxCD;AAyCJ,YAAK,+BAzCD;AA0CJ,YAAK,kCA1CD;AA2CJ,YAAK,0DA3CD;AA4CJ,YAAK,6BA5CD;AA6CJ,YAAK,qCA7CD;AA8CJ,YAAK,WA9CD;AA+CJ,YAAK,cA/CD;AAgDJ,YAAK,oCAhDD;AAiDJ,YAAK,8BAjDD;AAkDJ,YAAK,kCAlDD;AAmDJ,YAAK,+BAnDD;AAoDJ,YAAK,2CApDD;AAqDJ,YAAK,uFArDD;AAsDJ,YAAK,mBAtDD;AAuDJ,YAAK,yKAvDD;AAwDJ,YAAK,uBAxDD;AAyDJ,YAAK,uBAzDD;AA0DJ,YAAK,2BA1DD;AA2DJ,YAAK,uBA3DD;AA4DJ,YAAK,8DA5DD;AA6DJ,YAAK,uBA7DD;AA8DJ,YAAK,uCA9DD;AA+DJ,YAAK,sCA/DD;AAgEJ,YAAK,6BAhED;AAiEJ,YAAK,WAjED;AAkEJ,YAAK,kCAlED;AAmEJ,YAAK,kCAnED;AAoEJ,YAAK,oCApED;AAqEJ,YAAK,8BArED;AAsEJ,YAAK,eAtED;AAuEJ,YAAK,uBAvED;AAwEJ,YAAK,uBAxED;AAyEJ,YAAK,kEAzED;AA0EJ,YAAK,6CA1ED;AA2EJ,YAAK,uBA3ED;AA4EJ,YAAK,oCA5ED;AA6EJ,YAAK,kDA7ED;AA8EJ,YAAK,6CA9ED;AA+EJ,YAAK,qCA/ED;AAgFJ,YAAK,2BAhFD;AAiFJ,YAAK,gCAjFD;AAkFJ,YAAK,wDAlFD;AAmFJ,YAAK,mCAnFD;AAoFJ,YAAK,iCApFD;AAqFJ,YAAK,uDArFD;AAsFJ,YAAK,mLAtFD;AAuFJ,YAAK,0DAvFD;AAwFJ,YAAK,+BAxFD;AAyFJ,YAAK,wBAzFD;AA0FJ,YAAK,kDA1FD;AA2FJ,YAAK,wBA3FD;AA4FJ,YAAK,uBA5FD;AA6FJ,YAAK,uBA7FD;AA8FJ,YAAK,8BA9FD;AA+FJ,YAAK,uBA/FD;AAgGJ,YAAK,yEAhGD;AAiGJ,YAAK,uBAjGD;AAkGJ,YAAK,aAlGD;AAmGJ,YAAK,8EAnGD;AAoGJ,YAAK,8FApGD;AAqGJ,YAAK,8CArGD;AAsGJ,YAAK,4BAtGD;AAuGJ,YAAK,qBAvGD;AAwGJ,YAAK,UAxGD;AAyGJ,YAAK,0EAzGD;AA0GJ,YAAK,8CA1GD;AA2GJ,YAAK,qCA3GD;AA4GJ,YAAK,2BA5GD;AA6GJ,YAAK,2BA7GD;AA8GJ,YAAK,gBA9GD;AA+GJ,YAAK,8wBA/GD;AAgHJ,YAAK,sCAhHD;AAiHJ,YAAK,mCAjHD;AAkHJ,YAAK,mCAlHD;AAmHJ,YAAK,6EAnHD;AAoHJ,YAAK,+BApHD;AAqHJ,YAAK,mCArHD;AAsHJ,YAAK,gCAtHD;AAuHJ,YAAK,yBAvHD;AAwHJ,YAAK,mEAxHD;AAyHJ,YAAK,sGAzHD;AA0HJ,YAAK,kBA1HD;AA2HJ,YAAK,6UA3HD;AA4HJ,YAAK,yBA5HD;AA6HJ,YAAK,gKA7HD;AA8HJ,YAAK,wBA9HD;AA+HJ,YAAK,2BA/HD;AAgIJ,YAAK,uCAhID;AAiIJ,YAAK,sBAjID;AAkIJ,YAAK,uDAlID;AAmIJ,YAAK,iCAnID;AAoIJ,YAAK,qBApID;AAqIJ,YAAK,6IArID;AAsIJ,YAAK,iCAtID;AAuIJ;AACA,aAAO,4DAxIH;AAyIJ,aAAO,cAzIH;AA0IJ,aAAO,IA1IH;AA2IJ,YAAM;AA3IF,KARE;AAqJR;AACA;AACA;AACA;AACA;AACA8J,OAAG,EAAE,UAASnpB,MAAT,EAAiB;AACpB,UAAIm6B,SAAS,GAAGn6B,MAAM,CAACukB,WAAP,CAAmB,GAAnB,CAAhB;;AACA,UAAI4V,SAAS,IAAI,CAAb,IAAkBA,SAAS,IAAKn6B,MAAM,CAACzC,MAAP,GAAc,CAAlD,EAAsD;AACpD,eAAO,KAAP;AACD;;AACD,UAAI68B,SAAS,GAAGp6B,MAAM,CAACukB,WAAP,CAAmB,GAAnB,EAAwB4V,SAAS,GAAC,CAAlC,CAAhB;;AACA,UAAIC,SAAS,IAAI,CAAb,IAAkBA,SAAS,IAAKD,SAAS,GAAC,CAA9C,EAAkD;AAChD,eAAO,KAAP;AACD;;AACD,UAAIE,OAAO,GAAGxc,GAAG,CAACwB,IAAJ,CAASrf,MAAM,CAAC+e,KAAP,CAAaob,SAAS,GAAC,CAAvB,CAAT,CAAd;;AACA,UAAI,CAACE,OAAL,EAAc;AACZ,eAAO,KAAP;AACD;;AACD,aAAOA,OAAO,CAAC5xB,OAAR,CAAgB,MAAMzI,MAAM,CAAC+e,KAAP,CAAaqb,SAAS,GAAC,CAAvB,EAA0BD,SAA1B,CAAN,GAA6C,GAA7D,KAAqE,CAA5E;AACD,KAxKO;AAyKRxR,MAAE,EAAE,UAAS3oB,MAAT,EAAiB;AACnB,UAAIm6B,SAAS,GAAGn6B,MAAM,CAACukB,WAAP,CAAmB,GAAnB,CAAhB;;AACA,UAAI4V,SAAS,IAAI,CAAb,IAAkBA,SAAS,IAAKn6B,MAAM,CAACzC,MAAP,GAAc,CAAlD,EAAsD;AACpD,eAAO,KAAP;AACD;;AACD,UAAI68B,SAAS,GAAGp6B,MAAM,CAACukB,WAAP,CAAmB,GAAnB,EAAwB4V,SAAS,GAAC,CAAlC,CAAhB;;AACA,UAAIC,SAAS,IAAI,CAAjB,EAAoB;AAClB,eAAO,KAAP;AACD;;AACD,UAAIC,OAAO,GAAGxc,GAAG,CAACwB,IAAJ,CAASrf,MAAM,CAAC+e,KAAP,CAAaob,SAAS,GAAC,CAAvB,CAAT,CAAd;;AACA,UAAI,CAACE,OAAL,EAAc;AACZ,eAAO,KAAP;AACD;;AACD,aAAOA,OAAO,CAAC5xB,OAAR,CAAgB,MAAMzI,MAAM,CAAC+e,KAAP,CAAa,CAAb,EAAgBob,SAAhB,CAAN,GAAmC,GAAnD,KAA2D,CAAlE;AACD,KAvLO;AAwLRnQ,OAAG,EAAE,UAAShqB,MAAT,EAAiB;AACpB,UAAIm6B,SAAS,GAAGn6B,MAAM,CAACukB,WAAP,CAAmB,GAAnB,CAAhB;;AACA,UAAI4V,SAAS,IAAI,CAAb,IAAkBA,SAAS,IAAKn6B,MAAM,CAACzC,MAAP,GAAc,CAAlD,EAAsD;AACpD,eAAO,IAAP;AACD;;AACD,UAAI68B,SAAS,GAAGp6B,MAAM,CAACukB,WAAP,CAAmB,GAAnB,EAAwB4V,SAAS,GAAC,CAAlC,CAAhB;;AACA,UAAIC,SAAS,IAAI,CAAb,IAAkBA,SAAS,IAAKD,SAAS,GAAC,CAA9C,EAAkD;AAChD,eAAO,IAAP;AACD;;AACD,UAAIE,OAAO,GAAGxc,GAAG,CAACwB,IAAJ,CAASrf,MAAM,CAAC+e,KAAP,CAAaob,SAAS,GAAC,CAAvB,CAAT,CAAd;;AACA,UAAI,CAACE,OAAL,EAAc;AACZ,eAAO,IAAP;AACD;;AACD,UAAIA,OAAO,CAAC5xB,OAAR,CAAgB,MAAMzI,MAAM,CAAC+e,KAAP,CAAaqb,SAAS,GAAC,CAAvB,EAA0BD,SAA1B,CAAN,GAA6C,GAA7D,IAAoE,CAAxE,EAA2E;AACzE,eAAO,IAAP;AACD;;AACD,aAAOn6B,MAAM,CAAC+e,KAAP,CAAaqb,SAAS,GAAC,CAAvB,CAAP;AACD,KAzMO;AA0MRxS,cAAU,EAAE,YAAU;AACpB,UAAItc,IAAI,CAAC0c,kBAAL,KAA4B,IAAhC,EAAsC;AACpC1c,YAAI,CAAC0c,kBAAL,GAA0BkS,mBAA1B;AACD;;AACD,aAAO,IAAP;AACD;AA/MO,GAAV;AAkNA,SAAOrc,GAAP;AACD,CAtOA,CAAD,C;;;;;;;ACdA;AAAA;AAAA;;;;;;;AAOA;AAEA;AACA;AAGA;;;;;;;AAOA;;;;;;;;;;;;AAWAhd,qDAAO,CAACoP,SAAR,GAAoB,MAAMA,SAAN,CAAgB;AAEhC;;;;;;;;;;AAUAjF,aAAW,CAAE8O,UAAF,EAAc;AACrB,SAAKoT,KAAL,GAAapT,UAAb;AACA,SAAK9D,KAAL,GAAa,SAAb;AAEA,UAAMrI,OAAO,GAAGmM,UAAU,CAACnM,OAA3B;;AACA,QAAIA,OAAO,CAAClF,OAAR,CAAgB,KAAhB,MAA2B,CAA3B,IAAgCkF,OAAO,CAAClF,OAAR,CAAgB,MAAhB,MAA4B,CAAhE,EAAmE;AAC/D;AACA;AACA,UAAI0kB,WAAW,GAAG,EAAlB;;AACA,UAAIrT,UAAU,CAACvN,OAAX,CAAmBsD,QAAnB,KAAgC,IAAhC,IAAwCud,MAAM,CAAC/O,QAAP,CAAgBxO,QAAhB,KAA6B,QAAzE,EAAmF;AAC/Esd,mBAAW,IAAI,IAAf;AACH,OAFD,MAEO;AACHA,mBAAW,IAAI,KAAf;AACH;;AAEDA,iBAAW,IAAI,QAAQC,MAAM,CAAC/O,QAAP,CAAgBqL,IAAvC;;AACA,UAAI/b,OAAO,CAAClF,OAAR,CAAgB,GAAhB,MAAyB,CAA7B,EAAgC;AAC5B0kB,mBAAW,IAAIC,MAAM,CAAC/O,QAAP,CAAgBiE,QAAhB,GAA2B3U,OAA1C;AACH,OAFD,MAEO;AACHwf,mBAAW,IAAIxf,OAAf;AACH;;AACDmM,gBAAU,CAACnM,OAAX,GAAqBwf,WAArB;AACH;AACJ;AAED;;;;;;;;AAMAE,cAAY,GAAI;AACZ,WAAO3sB,4DAAM,CAAC,MAAD,EAAS;AAClB,eAASG,qDAAO,CAACM,EAAR,CAAWY,OADF;AAElB,YAAM,KAAKmrB,KAAL,CAAWltB,MAFC;AAGlB,iBAAW;AAHO,KAAT,CAAb;AAKH;AAED;;;;;;;;;;;AASAstB,mBAAiB,CAAE5W,QAAF,EAAY6W,aAAZ,EAA2B;AACxC,QAAIC,MAAJ;;AACA,QAAI9W,QAAQ,CAACG,sBAAb,EAAqC;AACjC2W,YAAM,GAAG9W,QAAQ,CAACG,sBAAT,CAAgChW,qDAAO,CAACM,EAAR,CAAWW,MAA3C,EAAmD,OAAnD,CAAT;AACH,KAFD,MAEO;AACH0rB,YAAM,GAAG9W,QAAQ,CAACL,oBAAT,CAA8B,cAA9B,CAAT;AACH;;AACD,QAAImX,MAAM,CAACjwB,MAAP,KAAkB,CAAtB,EAAyB;AACrB,aAAO,KAAP;AACH;;AAED,UAAMsM,KAAK,GAAG2jB,MAAM,CAAC,CAAD,CAApB;AAEA,QAAIhY,SAAS,GAAG,EAAhB;AACA,QAAI/O,IAAI,GAAG,EAAX;AAEA,UAAM0F,EAAE,GAAG,qCAAX;;AACA,SAAK,IAAI7O,CAAC,GAAC,CAAX,EAAcA,CAAC,GAACuM,KAAK,CAAC1E,UAAN,CAAiB5H,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC1C,YAAM6K,CAAC,GAAG0B,KAAK,CAAC1E,UAAN,CAAiB7H,CAAjB,CAAV;;AACA,UAAI6K,CAAC,CAACT,YAAF,CAAe,OAAf,MAA4ByE,EAAhC,EAAoC;AAChC;AACH;;AAAC,UAAIhE,CAAC,CAACZ,QAAF,KAAe,MAAnB,EAA2B;AACzBd,YAAI,GAAG0B,CAAC,CAAC6O,WAAT;AACH,OAFC,MAEK;AACHxB,iBAAS,GAAGrN,CAAC,CAACZ,QAAd;AACH;AACJ;;AAED,QAAIkmB,WAAW,GAAG,0BAAlB;;AACA,QAAIjY,SAAJ,EAAe;AACXiY,iBAAW,IAAIjY,SAAf;AACH,KAFD,MAEO;AACHiY,iBAAW,IAAI,SAAf;AACH;;AACD,QAAIhnB,IAAJ,EAAU;AACNgnB,iBAAW,IAAI,QAAQhnB,IAAvB;AACH;;AACD5F,yDAAO,CAACgJ,KAAR,CAAc4jB,WAAd,EArCwC,CAuCxC;;AACA,SAAKP,KAAL,CAAWzb,oBAAX,CAAgC8b,aAAhC,EAA+C/X,SAA/C;;AACA,SAAK0X,KAAL,CAAW5X,aAAX;;AACA,WAAO,IAAP;AACH;AAED;;;;;;;;AAMAnF,QAAM,GAAI;AAAE;AACR;AACH;AAED;;;;;;;;AAMAuB,UAAQ,GAAI;AACR;AACA,SAAKgc,YAAL;;AACA,SAAKC,MAAL,GAAc,IAAIjR,wDAAJ,CAAc,KAAKwQ,KAAL,CAAWvf,OAAzB,EAAkC,MAAlC,CAAd;;AACA,SAAKggB,MAAL,CAAYC,MAAZ,GAAqB,MAAM,KAAKC,OAAL,EAA3B;;AACA,SAAKF,MAAL,CAAYG,OAAZ,GAAuB3lB,CAAD,IAAO,KAAK4lB,QAAL,CAAc5lB,CAAd,CAA7B;;AACA,SAAKwlB,MAAL,CAAYK,OAAZ,GAAuB7lB,CAAD,IAAO,KAAK8lB,QAAL,CAAc9lB,CAAd,CAA7B,CANQ,CAOR;;;AACA,SAAKwlB,MAAL,CAAYO,SAAZ,GAAyB5kB,OAAD,IAAa,KAAK6kB,iBAAL,CAAuB7kB,OAAvB,CAArC;AACH;AAED;;;;;;;;;;AAQAkN,aAAW,CAAEE,QAAF,EAAY;AACnB,UAAM7M,KAAK,GAAG,KAAKyjB,iBAAL,CAAuB5W,QAAvB,EAAiC7V,qDAAO,CAACiC,MAAR,CAAeG,QAAhD,CAAd;;AACA,QAAI4G,KAAJ,EAAW;AACP,aAAOhJ,qDAAO,CAACiC,MAAR,CAAeG,QAAtB;AACH;AACJ;AAED;;;;;;;;;;AAQAmrB,oBAAkB,CAAE9kB,OAAF,EAAW;AACzB,QAAIO,KAAK,GAAG,KAAZ,CADyB,CAGzB;;AACA,UAAMsC,EAAE,GAAG7C,OAAO,CAAC5B,YAAR,CAAqB,OAArB,CAAX;;AACA,QAAI,OAAOyE,EAAP,KAAc,QAAlB,EAA4B;AACxBtC,WAAK,GAAG,2BAAR;AACH,KAFD,MAEO,IAAIsC,EAAE,KAAKtL,qDAAO,CAACM,EAAR,CAAWY,OAAtB,EAA+B;AAClC8H,WAAK,GAAG,8BAA8BsC,EAAtC;AACH;;AAED,UAAMkiB,GAAG,GAAG/kB,OAAO,CAAC5B,YAAR,CAAqB,SAArB,CAAZ;;AACA,QAAI,OAAO2mB,GAAP,KAAe,QAAnB,EAA6B;AACzBxkB,WAAK,GAAG,6BAAR;AACH,KAFD,MAEO,IAAIwkB,GAAG,KAAK,KAAZ,EAAmB;AACtBxkB,WAAK,GAAG,gCAAgCwkB,GAAxC;AACH;;AAED,QAAIxkB,KAAJ,EAAW;AACP,WAAKqjB,KAAL,CAAWzb,oBAAX,CAAgC5Q,qDAAO,CAACiC,MAAR,CAAeG,QAA/C,EAAyD4G,KAAzD;;AACA,WAAKqjB,KAAL,CAAW5X,aAAX;;AACA,aAAO,KAAP;AACH;;AACD,WAAO,IAAP;AACH;AAED;;;;;;;;AAMA6Y,mBAAiB,CAAE7kB,OAAF,EAAW;AACxB,QAAIA,OAAO,CAACoJ,IAAR,CAAajK,OAAb,CAAqB,QAArB,MAAmC,CAAnC,IAAwCa,OAAO,CAACoJ,IAAR,CAAajK,OAAb,CAAqB,OAArB,MAAkC,CAA9E,EAAiF;AAC7E;AACA,YAAMiK,IAAI,GAAGpJ,OAAO,CAACoJ,IAAR,CAAahM,OAAb,CAAqB,kBAArB,EAAyC,EAAzC,CAAb;AACA,UAAIgM,IAAI,KAAK,EAAb,EAAiB;AAEjB,YAAM4b,WAAW,GAAG,IAAIxR,wDAAJ,GAAgB9V,eAAhB,CAAgC0L,IAAhC,EAAsC,UAAtC,EAAkD6b,eAAtE;;AACA,WAAKrB,KAAL,CAAW3a,QAAX,CAAoB+b,WAApB;;AACA,WAAKpB,KAAL,CAAWza,QAAX,CAAoBnJ,OAAO,CAACoJ,IAA5B,EAP6E,CAS7E;;;AACA,UAAI,KAAK0b,kBAAL,CAAwBE,WAAxB,CAAJ,EAA0C;AACtC;AACA,aAAK9X,WAAL,CAAiB8X,WAAjB;AACH;AACJ,KAdD,MAcO,IAAIhlB,OAAO,CAACoJ,IAAR,CAAajK,OAAb,CAAqB,SAArB,MAAoC,CAAxC,EAA2C;AAAE;AAChD;AACA,YAAM+lB,aAAa,GAAG,IAAI1R,wDAAJ,GAAgB9V,eAAhB,CAAgCsC,OAAO,CAACoJ,IAAxC,EAA8C,UAA9C,EAA0D6b,eAAhF,CAF8C,CAG9C;;AACA,WAAKrB,KAAL,CAAW3a,QAAX,CAAoBic,aAApB;;AACA,WAAKtB,KAAL,CAAWza,QAAX,CAAoBnJ,OAAO,CAACoJ,IAA5B;;AACA,YAAM+b,OAAO,GAAGD,aAAa,CAAC9mB,YAAd,CAA2B,eAA3B,CAAhB;;AACA,UAAI+mB,OAAJ,EAAa;AACT,cAAM9gB,OAAO,GAAG,KAAKuf,KAAL,CAAWvf,OAA3B,CADS,CAET;;AACA,cAAM+gB,gBAAgB,GAAI/gB,OAAO,CAAClF,OAAR,CAAgB,MAAhB,KAA2B,CAA3B,IAAgCgmB,OAAO,CAAChmB,OAAR,CAAgB,MAAhB,KAA2B,CAA5D,IAAmEkF,OAAO,CAAClF,OAAR,CAAgB,KAAhB,KAA0B,CAAtH;;AACA,YAAIimB,gBAAJ,EAAsB;AAClB,eAAKxB,KAAL,CAAWzb,oBAAX,CACI5Q,qDAAO,CAACiC,MAAR,CAAeU,QADnB,EAEI,8CAFJ;;AAIA,eAAK0pB,KAAL,CAAWzf,KAAX;;AACA,eAAKyf,KAAL,CAAWvf,OAAX,GAAqB8gB,OAArB;;AACA,eAAK/c,QAAL;AACH;AACJ,OAbD,MAaO;AACH,aAAKwb,KAAL,CAAWzb,oBAAX,CACI5Q,qDAAO,CAACiC,MAAR,CAAeG,QADnB,EAEI,yBAFJ;;AAIA,aAAKiqB,KAAL,CAAW5X,aAAX;AACH;AACJ,KA3BM,MA2BA;AACH,WAAKqZ,sBAAL;;AACA,YAAM9P,MAAM,GAAG,KAAK+P,WAAL,CAAiBtlB,OAAO,CAACoJ,IAAzB,CAAf;;AACA,YAAM1N,IAAI,GAAG,IAAI8X,wDAAJ,GAAgB9V,eAAhB,CAAgC6X,MAAhC,EAAwC,UAAxC,EAAoD0P,eAAjE;;AACA,WAAKrB,KAAL,CAAW1W,WAAX,CAAuBxR,IAAvB,EAA6B,IAA7B,EAAmCsE,OAAO,CAACoJ,IAA3C;AACH;AACJ;AAED;;;;;;;;;AAOAic,wBAAsB,GAAI;AACtB,SAAKhB,MAAL,CAAYO,SAAZ,GAAyBzZ,CAAD,IAAO,KAAKoa,UAAL,CAAgBpa,CAAhB,CAA/B;AACH;AAED;;;;;;;;;;AAQAW,aAAW,CAAEJ,IAAF,EAAQ;AACf,QAAI,KAAK2Y,MAAL,IAAe,KAAKA,MAAL,CAAYmB,UAAZ,KAA2BpS,wDAAS,CAACqS,MAAxD,EAAgE;AAC5D,UAAI/Z,IAAJ,EAAU;AACN,aAAKkY,KAAL,CAAWra,IAAX,CAAgBmC,IAAhB;AACH;;AACD,YAAMga,KAAK,GAAGtuB,4DAAM,CAAC,OAAD,EAAU;AAAE,iBAASG,qDAAO,CAACM,EAAR,CAAWY;AAAtB,OAAV,CAApB;;AACA,WAAKmrB,KAAL,CAAW1a,SAAX,CAAqBwc,KAAK,CAAC9kB,IAAN,EAArB;;AACA,YAAM+kB,WAAW,GAAGpuB,qDAAO,CAACoJ,SAAR,CAAkB+kB,KAAlB,CAApB;;AACA,WAAK9B,KAAL,CAAWva,SAAX,CAAqBsc,WAArB;;AACA,UAAI;AACA,aAAKtB,MAAL,CAAY9a,IAAZ,CAAiBoc,WAAjB;AACH,OAFD,CAEE,OAAO9mB,CAAP,EAAU;AACRtH,6DAAO,CAACmJ,IAAR,CAAa,8BAAb;AACH;AACJ;;AACDuF,cAAU,CAAC,MAAM,KAAK2d,KAAL,CAAW5X,aAAlB,EAAiC,CAAjC,CAAV;AACH;AAED;;;;;;;AAKAA,eAAa,GAAI;AACbzU,yDAAO,CAACiJ,KAAR,CAAc,qCAAd;;AACA,SAAK4jB,YAAL;AACH;AAED;;;;;;AAIAkB,aAAW,CAAErb,MAAF,EAAU;AAAE;AACnB,WAAO,cAAcA,MAAd,GAAuB,YAA9B;AACH;AAGD;;;;;;;AAKAma,cAAY,GAAI;AACZ,QAAI,KAAKC,MAAT,EAAiB;AACb,UAAI;AACA,aAAKA,MAAL,CAAYK,OAAZ,GAAsB,IAAtB;AACA,aAAKL,MAAL,CAAYG,OAAZ,GAAsB,IAAtB;AACA,aAAKH,MAAL,CAAYO,SAAZ,GAAwB,IAAxB;AACA,aAAKP,MAAL,CAAYqB,KAAZ;AACH,OALD,CAKE,OAAO7mB,CAAP,EAAU;AACRtH,6DAAO,CAACiJ,KAAR,CAAc3B,CAAC,CAACmB,OAAhB;AACH;AACJ;;AACD,SAAKqkB,MAAL,GAAc,IAAd;AACH;AAED;;;;;;;;AAMAzX,aAAW,GAAI;AAAE;AACb,WAAO,IAAP;AACH;AAED;;;;;AAGA+X,UAAQ,CAAE9lB,CAAF,EAAK;AACT,QAAI,KAAK+kB,KAAL,CAAWte,SAAX,IAAwB,CAAC,KAAKse,KAAL,CAAWre,aAAxC,EAAuD;AACnDhO,2DAAO,CAACgJ,KAAR,CAAc,+BAAd;;AACA,WAAKqjB,KAAL,CAAW5X,aAAX;AACH,KAHD,MAGO,IAAInN,CAAC,IAAIA,CAAC,CAAC+mB,IAAF,KAAW,IAAhB,IAAwB,CAAC,KAAKhC,KAAL,CAAWte,SAApC,IAAiD,KAAK+e,MAA1D,EAAkE;AACrE;AACA;AACA;AACA;AACA9sB,2DAAO,CAACgJ,KAAR,CAAc,+BAAd;;AACA,WAAKqjB,KAAL,CAAWzb,oBAAX,CACI5Q,qDAAO,CAACiC,MAAR,CAAeG,QADnB,EAEI,wEAFJ;;AAIA,WAAKiqB,KAAL,CAAW5X,aAAX;AACH,KAXM,MAWA;AACHzU,2DAAO,CAACiJ,KAAR,CAAc,kBAAd;AACH;AACJ;AAED;;;;;;;AAKAgN,mBAAiB,CAAE9F,QAAF,EAAY;AACzBnQ,yDAAO,CAACgJ,KAAR,CAAc,2DAAd;;AACA,SAAKqjB,KAAL,CAAWzb,oBAAX,CACI5Q,qDAAO,CAACiC,MAAR,CAAeG,QADnB,EAEIpC,qDAAO,CAAC+C,cAAR,CAAuBI,YAF3B;;AAIA,QAAIgN,QAAJ,EAAc;AACVA,cAAQ,CAAClR,IAAT,CAAc,KAAKotB,KAAnB;AACH;;AACD,SAAKA,KAAL,CAAW5X,aAAX;AACH;AAED;;;;;;;AAKAJ,sBAAoB,GAAI,CAAE,CA/WM,CA+WL;;AAE3B;;;;;AAGAG,mBAAiB,GAAI,CAAE,CApXS,CAoXR;;AAExB;;;;;;;;AAMA0Y,UAAQ,CAAElkB,KAAF,EAAS;AACbhJ,yDAAO,CAACgJ,KAAR,CAAc,qBAAqBA,KAAnC;;AACA,SAAKqjB,KAAL,CAAWzb,oBAAX,CACI5Q,qDAAO,CAACiC,MAAR,CAAeG,QADnB,EAEI,wEAFJ;;AAIA,SAAKmS,WAAL;AACH;AAED;;;;;;;AAKA5F,SAAO,GAAI;AACP,UAAMkD,IAAI,GAAG,KAAKwa,KAAL,CAAWje,KAAxB;;AACA,QAAIyD,IAAI,CAACnV,MAAL,GAAc,CAAd,IAAmB,CAAC,KAAK2vB,KAAL,CAAWne,MAAnC,EAA2C;AACvC,WAAK,IAAIzR,CAAC,GAAC,CAAX,EAAcA,CAAC,GAACoV,IAAI,CAACnV,MAArB,EAA6BD,CAAC,EAA9B,EAAkC;AAC9B,YAAIoV,IAAI,CAACpV,CAAD,CAAJ,KAAY,IAAhB,EAAsB;AAClB,cAAIiW,MAAJ;;AACA,cAAIb,IAAI,CAACpV,CAAD,CAAJ,KAAY,SAAhB,EAA2B;AACvBiW,kBAAM,GAAG,KAAK8Z,YAAL,GAAoBnjB,IAApB,EAAT;AACH,WAFD,MAEO;AACHqJ,kBAAM,GAAGb,IAAI,CAACpV,CAAD,CAAb;AACH;;AACD,gBAAM6xB,SAAS,GAAGtuB,qDAAO,CAACoJ,SAAR,CAAkBsJ,MAAlB,CAAlB;;AACA,eAAK2Z,KAAL,CAAW1a,SAAX,CAAqBe,MAArB;;AACA,eAAK2Z,KAAL,CAAWva,SAAX,CAAqBwc,SAArB;;AACA,eAAKxB,MAAL,CAAY9a,IAAZ,CAAiBsc,SAAjB;AACH;AACJ;;AACD,WAAKjC,KAAL,CAAWje,KAAX,GAAmB,EAAnB;AACH;AACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA4f,YAAU,CAAEvlB,OAAF,EAAW;AACjB,QAAItE,IAAJ,CADiB,CAEjB;;AACA,UAAMgqB,KAAK,GAAG,uDAAd;;AACA,QAAI1lB,OAAO,CAACoJ,IAAR,KAAiBsc,KAArB,EAA4B;AACxB,WAAK9B,KAAL,CAAWza,QAAX,CAAoBuc,KAApB;;AACA,WAAK9B,KAAL,CAAW3a,QAAX,CAAoBjJ,OAApB;;AACA,UAAI,CAAC,KAAK4jB,KAAL,CAAWre,aAAhB,EAA+B;AAC3B,aAAKqe,KAAL,CAAW5X,aAAX;AACH;;AACD;AACH,KAPD,MAOO,IAAIhM,OAAO,CAACoJ,IAAR,CAAawU,MAAb,CAAoB,QAApB,MAAkC,CAAtC,EAAyC;AAC5C;AACAliB,UAAI,GAAG,IAAI8X,wDAAJ,GAAgB9V,eAAhB,CAAgCsC,OAAO,CAACoJ,IAAxC,EAA8C,UAA9C,EAA0D6b,eAAjE;;AACA,UAAI,CAAC,KAAKH,kBAAL,CAAwBppB,IAAxB,CAAL,EAAoC;AAChC;AACH;AACJ,KANM,MAMA;AACH,YAAM0N,IAAI,GAAG,KAAKkc,WAAL,CAAiBtlB,OAAO,CAACoJ,IAAzB,CAAb;;AACA1N,UAAI,GAAG,IAAI8X,wDAAJ,GAAgB9V,eAAhB,CAAgC0L,IAAhC,EAAsC,UAAtC,EAAkD6b,eAAzD;AACH;;AAED,QAAI,KAAKjB,iBAAL,CAAuBtoB,IAAvB,EAA6BnE,qDAAO,CAACiC,MAAR,CAAeC,KAA5C,CAAJ,EAAwD;AACpD;AACH,KAxBgB,CA0BjB;;;AACA,QAAI,KAAKmqB,KAAL,CAAWre,aAAX,IACI7J,IAAI,CAACoqB,UAAL,CAAgB7nB,QAAhB,KAA6B,UADjC,IAEIvC,IAAI,CAACoqB,UAAL,CAAgB1nB,YAAhB,CAA6B,MAA7B,MAAyC,aAFjD,EAEgE;AAC5D,WAAKwlB,KAAL,CAAW3a,QAAX,CAAoBvN,IAApB;;AACA,WAAKkoB,KAAL,CAAWza,QAAX,CAAoB5R,qDAAO,CAACoJ,SAAR,CAAkBjF,IAAlB,CAApB,EAF4D,CAG5D;AACA;;;AACA;AACH;;AACD,SAAKkoB,KAAL,CAAWtX,SAAX,CAAqB5Q,IAArB,EAA2BsE,OAAO,CAACoJ,IAAnC;AACH;AAED;;;;;;;AAKAmb,SAAO,GAAI;AACPhtB,yDAAO,CAACiJ,KAAR,CAAc,gBAAd;;AACA,UAAMgX,KAAK,GAAG,KAAKuM,YAAL,EAAd;;AACA,SAAKH,KAAL,CAAW1a,SAAX,CAAqBsO,KAAK,CAAC5W,IAAN,EAArB;;AAEA,UAAMmlB,WAAW,GAAGxuB,qDAAO,CAACoJ,SAAR,CAAkB6W,KAAlB,CAApB;;AACA,SAAKoM,KAAL,CAAWva,SAAX,CAAqB0c,WAArB;;AACA,SAAK1B,MAAL,CAAY9a,IAAZ,CAAiBwc,WAAjB;AACH;AAED;;;;;;;;;;;;;AAWAtZ,YAAU,CAAExC,MAAF,EAAU;AAAE;AAClB,WAAOA,MAAP;AACH;AAED;;;;;;;AAKAR,OAAK,GAAI;AACL,SAAKma,KAAL,CAAWla,KAAX;AACH;AAED;;;;;;AAIAc,cAAY,GAAI;AACZb,gBAAY,CAAC,KAAKia,KAAL,CAAWze,YAAZ,CAAZ;;AACA,SAAKye,KAAL,CAAW1d,OAAX,CAAmB2F,IAAnB,CAAwB,KAAK+X,KAA7B;AACH;;AA3gB+B,CAApC,C;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,kEAAS,EAAC;;;;;;;;ACjBzB;AAA8B;;AAE9B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,wDAAI;AACjC;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe,oEAAW,EAAC;;;;;;;;AClC3B,eAAe,KAAoD,oBAAoB,SAAiF,CAAC,iBAAiB,aAAa,uBAAuB,6BAA6B,yBAAyB,oCAAoC,2CAA2C,sBAAsB,uHAAuH,IAAI,iBAAiB,UAAU,qCAAqC,gCAAgC,+BAA+B,wCAAwC,sDAAsD,sEAAsE,8CAA8C,8BAA8B,kBAAkB,EAAE,yBAAyB;;;;;;;ACAh5B,gBAAgB,mBAAO,CAAC,GAAc;AACtC,gBAAgB,mBAAO,CAAC,EAAa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA,iBAAiB,mBAAO,CAAC,EAAe;AACxC,mBAAmB,mBAAO,CAAC,EAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxBA,eAAe,mBAAO,CAAC,EAAa;AACpC,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,iBAAiB,mBAAO,CAAC,GAAe;AACxC,mBAAmB,mBAAO,CAAC,GAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;ACpCA,eAAe,mBAAO,CAAC,GAAa;AACpC,aAAa,mBAAO,CAAC,GAAW;AAChC,kBAAkB,mBAAO,CAAC,EAAe;AACzC,eAAe,mBAAO,CAAC,GAAY;AACnC,iBAAiB,mBAAO,CAAC,GAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC7Ca;;AAEb;AACA;AACA,CAAC;;AAED,cAAc,mBAAO,CAAC,GAAU;;AAEhC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,2E;;;;;;;ACZa;;AAEb;AACA;AACA,CAAC;;AAED,cAAc,mBAAO,CAAC,GAAU;;AAEhC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,6E;;;;;;;;;;;ACZA;;AAAA,CASA,UAAW5Q,CAAX,EAAWA;AACT,MAAIne,IAAI,SAAR;AAAA,MACIm8B,IAAS;AACXC,SAAK;AACHC,YAAM,CAAC,GAAD,EAAM,KAAN,EAAa,KAAb,EAAoB,KAApB,EAA2B,KAA3B,EAAkC,KAAlC,EAAyC,KAAzC,EAAgD,KAAhD,EAAuD,KAAvD,CADH;AAEHC,aAAO,CAAC,GAAD,EAAM,KAAN,EAAa,KAAb,EAAoB,KAApB,EAA2B,KAA3B,EAAkC,KAAlC,EAAyC,KAAzC,EAAgD,KAAhD,EAAuD,KAAvD;AAFJ,KADM;AAKXC,WAAO;AACLF,YAAM,CAAC,GAAD,EAAM,IAAN,EAAY,IAAZ,EAAkB,IAAlB,EAAwB,IAAxB,EAA8B,IAA9B,EAAoC,IAApC,EAA0C,IAA1C,EAAgD,IAAhD,CADD;AAELC,aAAO,CAAC,GAAD,EAAM,IAAN,EAAY,IAAZ,EAAkB,IAAlB,EAAwB,IAAxB,EAA8B,IAA9B,EAAoC,IAApC,EAA0C,IAA1C,EAAgD,IAAhD;AAFF;AALI,GADb;AAAA,MAWIE,IAAW;AACbJ,SAAK,CAAC,EAAD,EAAK,MAAL,EAAa,MAAb,EAAqB,MAArB,EAA6B,MAA7B,EAAqC,MAArC,EAA6C,MAA7C,EAAqD,MAArD,EAA6D,MAA7D,CADQ;AAEbG,WAAO,CAAC,EAAD,EAAK,MAAL,EAAa,MAAb,EAAqB,MAArB,EAA6B,MAA7B,EAAqC,MAArC,EAA6C,KAA7C,EAAoD,OAApD,EAA6D,OAA7D;AAFM,GAXf;;AAwBA,WAASE,CAAT,CAAkB50B,CAAlB,EAAkBA;AAChB,QAIIiY,CAJJ;AAAA,QAKIuc,CALJ;AAAA,QAMIK,CANJ;AAAA,QAOIC,CAPJ;AAAA,QAQIC,CARJ;AAAA,QASIC,CATJ;AAAA,QAUIC,CAVJ;AAAA,QAWIC,CAXJ;AAAA,QAaIpK,CAbJ;AAAA,QAcIqK,CAdJ;AAAA,QAeIC,CAfJ;AAAA,QAgBI7Q,CAhBJ;AAAA,QAiBI8Q,CAjBJ;AAAA,QAkBIC,CAlBJ;AAAA,QAmBIC,CAnBJ;AAAA,QAAIC,IAAgC,IAAnBz1B,UAAUxI,MAAS,IAATA,KAA+B8I,CAA/B9I,KAAcwI,UAAU,CAAVA,CAAL,GAAkCA,UAAU,CAAVA,CAAlC,GAAiD,EAArF;AAAA,QACIwE,IAAS,EADb;AAAA,QAEIkxB,IAAM,CAFV;AAAA,QAGItzB,SAAI,CAHR;AAAA,QAYInL,SAAM,CAZV;AAqBA,QAAIs0B,MAAMtrB,CAANsrB,CAAJ,EACE,MAAM,IAAIlT,SAAJ,CAAc,gBAAd,CAAN;AAuCF,WApCAoc,KAA2B,CAA3BA,KAAOgB,EAAWhB,IAAlBA,EACAY,KAA2B,CAA3BA,KAAOI,EAAWJ,IADlBZ,EAEAvc,IAAOud,EAAWvd,IAAXud,IAAmB,CAF1BhB,EAGAW,SAA6B,CAA7BA,KAAQK,EAAWL,KAAnBA,GAAsCK,EAAWL,KAAjDA,GAAyDC,IAAO,CAAPA,GAAW,CAHpEZ,EAIAQ,SAA+B,CAA/BA,KAASQ,EAAWR,MAApBA,GAAwCQ,EAAWR,MAAnDA,GAA4D,EAJ5DR,EAKAS,IAAgBO,EAAWP,aAAXO,IAA4B,EAL5ChB,EAMAjQ,SAAqC,CAArCA,KAAYiR,EAAWjR,SAAvBA,GAA8CiR,EAAWjR,SAAzDA,GAAqE,EANrEiQ,EAOAa,SAA+B,CAA/BA,KAASG,EAAWH,MAApBA,GAAwCG,EAAWH,MAAnDA,GAA4DD,IAAO,EAAPA,GAAY,GAPxEZ,EAQAe,IAAUC,EAAWD,OAAXC,IAAsB,EARhChB,EASAc,IAAoB,MAATrd,CAAS,IAAIud,EAAWF,QAAf,IAAqC,OATzDd,EAUA1J,IAAS0K,EAAW1K,MAAX0K,IAAqB,QAV9BhB,EAWAM,KAA+B,CAA/BA,KAAOU,EAAWb,QAXlBH,EAYAO,IAAYS,EAAWT,SAAXS,YAAgCpxB,KAAhCoxB,GAAwCA,EAAWT,SAAnDS,GAA+D,EAZ3EhB,EAaAryB,SAA4B,CAA5BA,KAAIqzB,EAAWE,QAAfvzB,GAAqCqzB,EAAWE,QAAhDvzB,GAAgDuzB,CAAY,CAb5DlB,EAgBAK,IAAc,IAAP5c,CAAO,GAAI,GAAJ,GAAW,IAhBzBuc,EAgByB,CADzBU,KADAl+B,IAAM2qB,OAAO3hB,CAAP2hB,CACNuT,IAAY,CACa,MAGvBl+B,KAAOA,CAHgB,CAhBzBw9B,EAmBSx9B,EAIE,CAJFA,KAILmL,CAJKnL,IAIOs0B,MAAMnpB,CAANmpB,CAJPt0B,KAIamL,CACpBA,IAAIwI,KAAKkjB,KAALljB,CAAWA,KAAKlH,GAALkH,CAAS3T,CAAT2T,IAAgBA,KAAKlH,GAALkH,CAASkqB,CAATlqB,CAA3BA,CADgBxI,IAGZ,CAPDnL,KAQLmL,IAAI,CARCnL,CAnBTw9B,EAgCQ,IAAJryB,CAAI,KACNA,IAAI,CADE,CAhCRqyB,EAoCe,eAAX1J,CAAW,GACN3oB,CADM,IAKH,MAARnL,CAAQ,IACVuN,EAAO,CAAPA,IAAY,CAAZA,EACAA,EAAO,CAAPA,IAAY6wB,IAAO,EAAPA,GAAYd,EAAOgB,CAAPhB,EAAiBE,IAAO,MAAPA,GAAgB,OAAjCF,EAA0CnyB,CAA1CmyB,CAFd,KAIVmB,IAAMz+B,KAAgB,MAATihB,CAAS,GAAItN,KAAK8lB,GAAL9lB,CAAS,CAATA,EAAgB,KAAJxI,CAAZwI,CAAJ,GAA0BA,KAAK8lB,GAAL9lB,CAAS,GAATA,EAAexI,CAAfwI,CAA1C3T,CAANy+B,EAEIjB,KAGSK,MAFXY,KAAY,CAEDZ,CAHTL,IAGiBryB,IAAI,CAHrBqyB,KAIAiB,KAAYZ,CAAZY,EACAtzB,GALAqyB,CAFJiB,EAWAlxB,EAAO,CAAPA,IAAYod,OAAO8T,EAAI5J,OAAJ4J,CAAgB,IAAJtzB,CAAI,GAAIgzB,CAAJ,GAAY,CAA5BM,CAAP9T,CAXZ8T,EAaIlxB,EAAO,CAAPA,MAAcswB,CAAdtwB,IAAsBpC,IAAI,CAA1BoC,IAA0B,KAA6B,CAA7B,KAAKixB,EAAWE,QAA1CnxB,KACFA,EAAO,CAAPA,IAAY,CAAZA,EACApC,GAFEoC,CAbJkxB,EAkBAlxB,EAAO,CAAPA,IAAqB,OAAT0T,CAAS,IAAY,MAAN9V,CAAN,GAAgBqyB,IAAO,IAAPA,GAAc,IAA9B,GAAqCF,EAAOgB,CAAPhB,EAAiBE,IAAO,MAAPA,GAAgB,OAAjCF,EAA0CnyB,CAA1CmyB,CAlB1DmB,EAoBIL,MACF7wB,EAAO,CAAPA,IAAyB,YAAb+wB,CAAa,GAAU/wB,EAAO,CAAPA,EAAUxM,MAAVwM,CAAiB,CAAjBA,CAAV,GAAoC,IAAJpC,CAAI,GAAIoC,EAAO,CAAPA,EAAU7D,OAAV6D,CAAkB,IAAlBA,EAAwB,EAAxBA,CAAJ,GAAkCA,EAAO,CAAPA,CAA/FA,EAEIpM,EAAEuZ,IAAFvZ,CAAOoM,EAAO,CAAPA,CAAPpM,MACFoM,EAAO,CAAPA,IAAYoG,KAAKkjB,KAALljB,CAAWpG,EAAO,CAAPA,CAAXoG,CAAZpG,EACAA,EAAO,CAAPA,IAAY,EAFVpM,CAHFi9B,CAxBM,GAmCRF,MACF3wB,EAAO,CAAPA,IAAO,CAAMA,EAAO,CAAPA,CADX2wB,CAnCQ,EAwCZ3wB,EAAO,CAAPA,IAAYgxB,EAAQhxB,EAAO,CAAPA,CAARgxB,KAAsBhxB,EAAO,CAAPA,CAxCtB,EAwC6B,CAE1B,CAF0B,KAErCywB,CAFqC,GAGvCzwB,EAAO,CAAPA,IAAYA,EAAO,CAAPA,EAAUoxB,cAAVpxB,EAH2B,GAId,IAAhBywB,EAAOz9B,MAAS,GACzBgN,EAAO,CAAPA,IAAYA,EAAO,CAAPA,EAAUoxB,cAAVpxB,CAAyBywB,CAAzBzwB,EAAiC0wB,CAAjC1wB,CADa,GAEG,IAAnBggB,EAAUhtB,MAAS,KAC5BgN,EAAO,CAAPA,IAAYA,EAAO,CAAPA,EAAUY,QAAVZ,GAAqB7D,OAArB6D,CAA6B,GAA7BA,EAAkCggB,CAAlChgB,CADgB,CA9ClB,EAmDG,YAAXumB,CAAW,GACNvmB,CADM,IAIXuwB,MACFvwB,EAAO,CAAPA,IAAYwwB,EAAU5yB,CAAV4yB,IAAeA,EAAU5yB,CAAV4yB,CAAfA,GAA8BJ,EAASW,CAATX,EAAmBxyB,CAAnBwyB,KAAyBH,IAAO,KAAPA,GAAe,MAAxCG,KAAiE,MAAdpwB,EAAO,CAAPA,CAAc,GAAI,EAAJ,GAAS,GAA1EowB,CADxCG,GAIW,aAAXhK,CAAW,GACN;AACLvwB,aAAOgK,EAAO,CAAPA,CADF;AAEL+vB,cAAQ/vB,EAAO,CAAPA,CAFH;AAGLmxB,gBAAUvzB;AAHL,KADM,GAQRoC,EAAOrC,IAAPqC,CAAY8wB,CAAZ9wB,CAhBQ,CAxDA,CAAf;AA4EFqwB;;AAAAA,IAASgB,OAAThB,GAAmB,UAAUiB,CAAV,EAAUA;AAC3B,WAAO,UAAU71B,CAAV,EAAUA;AACf,aAAO40B,EAAS50B,CAAT40B,EAAciB,CAAdjB,CAAP;AAAqBiB,KADvB;AACuBA,GAFzBjB,EAOuB,QACrBpd,OAAOC,OAAPD,GAAiBod,CADI,GAEM,SAT7BA;AAnKF,EAmLqB,sBAAXxN,MAAW,GAAcA,MAAd,GAAuB9Q,MAnL5C,CATA,C;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACa,aAAa,mBAAmB,KAAK,uHAAuH,QAAQ,wGAAwG,IAAI,sIAAsI,cAAc,6FAA6F,4BAA4B,kDAAkD,qIAAqI,4FAA4F,45BAA45B,kCAAkC,aAAa,sBAAsB,mBAAmB,eAAe,CAAC,KAA2B,kBAAkB,SAAwF,CAAC;AACv8D,wC;;;;;;;ACLA;;;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,+BAA+B;AACnD;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,6BAA6B,EAAE,UAAU,EAAE,UAAU,EAAE;AACvD;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,KAAK;;AAEL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,KAAK,IAA2C;AAChD,EAAE,iCAAO,EAAE,mCAAE;AACb;AACA,GAAG;AAAA,oGAAC;AACJ;AACA;AACA,MAAM,EAMJ;;AAEF,CAAC;;;;;;;AChwBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;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ACA,0BAA0B;AAC1B;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,WAAW;AACX,mBAAmB,MAAM;AACzB;AACA;AACA,wCAAwC;AACxC;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;AAIA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI;AACJ,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,IAAI,KAAK;AACT;AACA;AACA;AACA,wBAAwB;AACxB,yBAAyB;AACzB,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,IAAI;AACJ;;AAEA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,KAAK;AACZ,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,I;AACA;AACA;AACA,sBAAsB;AACtB;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,KAAK;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,yBAAyB;AACzB,EAAE;AACF;AACA,0BAA0B,yBAAyB;AACnD,wBAAwB,uBAAuB;AAC/C,sBAAsB,qBAAqB;AAC3C,oBAAoB,mBAAmB;AACvC,sBAAsB;AACtB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ,uBAAuB,0DAA0D;AACjF;AACA,wBAAwB;AACxB;;;;;AAKA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACvnBa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8DAA8D;AAC9D;AACA;;AAEA;;;;;;;;AChGa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE;AACX;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;ACzDA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA,eAAe,mBAAO,CAAC,GAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzCA,eAAe,mBAAO,CAAC,EAAY;AACnC,eAAe,mBAAO,CAAC,EAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjEA,aAAa,mBAAO,CAAC,EAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,EAAc;AACtC,eAAe,mBAAO,CAAC,GAAa;AACpC,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,cAAc,mBAAO,CAAC,EAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxCA,iBAAiB,mBAAO,CAAC,GAAe;AACxC,qBAAqB,mBAAO,CAAC,GAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;;AAEA;;;;;;;ACbA,cAAc,mBAAO,CAAC,GAAY;AAClC,WAAW,mBAAO,CAAC,EAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACfA,oBAAoB,mBAAO,CAAC,GAAkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;;AAEA;;;;;;;ACfA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA,iBAAiB,mBAAO,CAAC,EAAe;AACxC,mBAAmB,mBAAO,CAAC,EAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,EAAe;AACxC,eAAe,mBAAO,CAAC,EAAY;AACnC,mBAAmB,mBAAO,CAAC,EAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3DA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACbA,+DAAiB,mBAAO,CAAC,EAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;AC7BA,cAAc,mBAAO,CAAC,GAAY;;AAElC;AACA;;AAEA;;;;;;;ACLA,kBAAkB,mBAAO,CAAC,EAAe;;AAEzC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA,eAAe,mBAAO,CAAC,EAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;ACbA,iBAAiB,mBAAO,CAAC,GAAe;AACxC,qBAAqB,mBAAO,CAAC,GAAmB;AAChD,aAAa,mBAAO,CAAC,GAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,UAAU;AACV;AACA;AACA;AACA,CAAC;;AAED;;;;;;;ACvCA,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,sBAAsB,mBAAO,CAAC,GAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO,WAAW;AAC7B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvCA,iBAAiB,mBAAO,CAAC,EAAc;AACvC,eAAe,mBAAO,CAAC,GAAa;AACpC,eAAe,mBAAO,CAAC,EAAY;AACnC,eAAe,mBAAO,CAAC,GAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9CA,iBAAiB,mBAAO,CAAC,GAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA,WAAW,mBAAO,CAAC,EAAS;;AAE5B;AACA;;AAEA;;;;;;;ACLA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;ACZA,eAAe,mBAAO,CAAC,GAAa;AACpC,qBAAqB,mBAAO,CAAC,GAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;ACpCA,YAAY,mBAAO,CAAC,EAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnCA,eAAe,mBAAO,CAAC,GAAY;AACnC,qBAAqB,mBAAO,CAAC,GAAmB;AAChD,eAAe,mBAAO,CAAC,EAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA,SAAS,mBAAO,CAAC,EAAM;AACvB,kBAAkB,mBAAO,CAAC,EAAe;AACzC,cAAc,mBAAO,CAAC,EAAY;AAClC,eAAe,mBAAO,CAAC,EAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA,eAAe,mBAAO,CAAC,EAAY;AACnC,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,mBAAmB,mBAAO,CAAC,GAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvBA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA,eAAe,mBAAO,CAAC,EAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;AClBA,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,iBAAiB,mBAAO,CAAC,GAAe;AACxC,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,oBAAoB,mBAAO,CAAC,GAAkB;AAC9C,cAAc,mBAAO,CAAC,GAAY;AAClC,gBAAgB,mBAAO,CAAC,GAAc;AACtC,cAAc,mBAAO,CAAC,GAAY;AAClC,sBAAsB,mBAAO,CAAC,GAAoB;AAClD,gBAAgB,mBAAO,CAAC,EAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzGA,iBAAiB,mBAAO,CAAC,EAAe;AACxC,WAAW,mBAAO,CAAC,EAAS;;AAE5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA,YAAY,mBAAO,CAAC,EAAU;AAC9B,iBAAiB,mBAAO,CAAC,EAAe;AACxC,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,oBAAoB,mBAAO,CAAC,GAAkB;AAC9C,gBAAgB,mBAAO,CAAC,EAAc;AACtC,qBAAqB,mBAAO,CAAC,EAAmB;AAChD,WAAW,mBAAO,CAAC,EAAS;;AAE5B;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7CA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA,kBAAkB,mBAAO,CAAC,EAAgB;AAC1C,cAAc,mBAAO,CAAC,GAAY;AAClC,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,aAAa,mBAAO,CAAC,GAAiB;;AAEtC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChBA,gBAAgB,mBAAO,CAAC,GAAc;;AAEtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;;AAEA;;;;;;;ACHA,kBAAkB,mBAAO,CAAC,EAAgB;AAC1C,oBAAoB,mBAAO,CAAC,GAAkB;AAC9C,iBAAiB,mBAAO,CAAC,EAAe;AACxC,cAAc,mBAAO,CAAC,EAAW;AACjC,mBAAmB,mBAAO,CAAC,EAAgB;AAC3C,mBAAmB,mBAAO,CAAC,GAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;AClJA,kBAAkB,mBAAO,CAAC,EAAgB;AAC1C,oBAAoB,mBAAO,CAAC,GAAkB;AAC9C,gBAAgB,mBAAO,CAAC,GAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChBA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;;;;;;;ACtBA,gBAAgB,mBAAO,CAAC,EAAc;AACtC,oBAAoB,mBAAO,CAAC,GAAkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,GAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChBA,gBAAgB,mBAAO,CAAC,GAAc;AACtC,cAAc,mBAAO,CAAC,EAAY;;AAElC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA,YAAY,mBAAO,CAAC,EAAU;AAC9B,iBAAiB,mBAAO,CAAC,EAAe;AACxC,WAAW,mBAAO,CAAC,EAAS;;AAE5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1CA,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,uBAAuB,mBAAO,CAAC,GAAqB;AACpD,qBAAqB,mBAAO,CAAC,EAAmB;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACzFA,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,0BAA0B,mBAAO,CAAC,GAAwB;AAC1D,eAAe,mBAAO,CAAC,EAAY;AACnC,cAAc,mBAAO,CAAC,EAAW;AACjC,eAAe,mBAAO,CAAC,GAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,8BAA8B,mBAAO,CAAC,GAA4B;;AAElE;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA,YAAY,mBAAO,CAAC,GAAU;AAC9B,kBAAkB,mBAAO,CAAC,GAAgB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,EAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA,mBAAmB,mBAAO,CAAC,EAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;AClBA,mBAAmB,mBAAO,CAAC,EAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACfA,mBAAmB,mBAAO,CAAC,EAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA,gBAAgB,mBAAO,CAAC,EAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACbA,gBAAgB,mBAAO,CAAC,EAAc;AACtC,UAAU,mBAAO,CAAC,EAAQ;AAC1B,eAAe,mBAAO,CAAC,EAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjCA,WAAW,mBAAO,CAAC,GAAS;AAC5B,gBAAgB,mBAAO,CAAC,EAAc;AACtC,UAAU,mBAAO,CAAC,EAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA,gBAAgB,mBAAO,CAAC,GAAc;AACtC,iBAAiB,mBAAO,CAAC,GAAe;AACxC,cAAc,mBAAO,CAAC,GAAY;AAClC,cAAc,mBAAO,CAAC,GAAY;AAClC,cAAc,mBAAO,CAAC,GAAY;;AAElC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA,mBAAmB,mBAAO,CAAC,EAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChBA,mBAAmB,mBAAO,CAAC,EAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA,mBAAmB,mBAAO,CAAC,EAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA,mBAAmB,mBAAO,CAAC,EAAiB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA,iBAAiB,mBAAO,CAAC,EAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA,iBAAiB,mBAAO,CAAC,EAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,EAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,EAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA,YAAY,mBAAO,CAAC,GAAU;AAC9B,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,iBAAiB,mBAAO,CAAC,GAAe;AACxC,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,aAAa,mBAAO,CAAC,GAAW;AAChC,cAAc,mBAAO,CAAC,EAAW;AACjC,eAAe,mBAAO,CAAC,GAAY;AACnC,mBAAmB,mBAAO,CAAC,GAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClFA,eAAe,mBAAO,CAAC,EAAa;AACpC,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,kBAAkB,mBAAO,CAAC,GAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;AC1BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACZA,aAAa,mBAAO,CAAC,EAAW;AAChC,iBAAiB,mBAAO,CAAC,GAAe;AACxC,SAAS,mBAAO,CAAC,EAAM;AACvB,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,iBAAiB,mBAAO,CAAC,GAAe;AACxC,iBAAiB,mBAAO,CAAC,GAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/GA,WAAW,mBAAO,CAAC,EAAS;;AAE5B;AACA;;AAEA;;;;;;;ACLA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;ACjBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,GAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzFA,qBAAqB,mBAAO,CAAC,GAAmB;AAChD,iBAAiB,mBAAO,CAAC,GAAe;AACxC,WAAW,mBAAO,CAAC,EAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxBA,gBAAgB,mBAAO,CAAC,EAAc;AACtC,WAAW,mBAAO,CAAC,EAAS;;AAE5B;AACA;;AAEA;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,EAAc;AACtC,WAAW,mBAAO,CAAC,EAAS;;AAE5B;AACA;;AAEA;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,EAAc;AACtC,WAAW,mBAAO,CAAC,EAAS;;AAE5B;AACA;;AAEA;;;;;;;ACNA,yBAAyB,mBAAO,CAAC,GAAuB;AACxD,WAAW,mBAAO,CAAC,EAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;ACvBA,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,UAAU,mBAAO,CAAC,GAAO;AACzB,YAAY,mBAAO,CAAC,GAAS;AAC7B,YAAY,mBAAO,CAAC,EAAU;AAC9B,yBAAyB,mBAAO,CAAC,GAAuB;AACxD,8BAA8B,mBAAO,CAAC,GAA4B;AAClE,YAAY,mBAAO,CAAC,EAAU;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA,cAAc,mBAAO,CAAC,EAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA,oBAAoB,mBAAO,CAAC,GAAkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;;;;;AC1BA,cAAc,mBAAO,CAAC,GAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;;;;;ACzBA,eAAe,mBAAO,CAAC,EAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACxEA,aAAa,mBAAO,CAAC,EAAW;AAChC,eAAe,mBAAO,CAAC,EAAa;AACpC,cAAc,mBAAO,CAAC,EAAW;AACjC,eAAe,mBAAO,CAAC,EAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,GAAc;AACtC,cAAc,mBAAO,CAAC,GAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gBAAgB,SAAS,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjCA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACZA,eAAe,mBAAO,CAAC,EAAa;AACpC,kBAAkB,mBAAO,CAAC,EAAe;AACzC,cAAc,mBAAO,CAAC,EAAW;AACjC,cAAc,mBAAO,CAAC,EAAY;AAClC,eAAe,mBAAO,CAAC,EAAY;AACnC,YAAY,mBAAO,CAAC,EAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtCA,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,uBAAuB,mBAAO,CAAC,GAAqB;AACpD,YAAY,mBAAO,CAAC,EAAU;AAC9B,YAAY,mBAAO,CAAC,EAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,OAAO,SAAS,EAAE;AACxB,MAAM,OAAO,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA,cAAc,mBAAO,CAAC,EAAY;;AAElC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACfA,cAAc,mBAAO,CAAC,EAAY;AAClC,cAAc,mBAAO,CAAC,GAAY;AAClC,eAAe,mBAAO,CAAC,EAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,eAAe,mBAAO,CAAC,EAAa;AACpC,cAAc,mBAAO,CAAC,EAAY;AAClC,eAAe,mBAAO,CAAC,EAAY;AACnC,YAAY,mBAAO,CAAC,EAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClDA,qBAAqB,mBAAO,CAAC,GAAmB;AAChD,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,aAAa,mBAAO,CAAC,GAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;AChBA,gBAAgB,mBAAO,CAAC,GAAc;AACtC,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,iBAAiB,mBAAO,CAAC,GAAe;AACxC,gBAAgB,mBAAO,CAAC,GAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxBA,cAAc,mBAAO,CAAC,GAAY;;AAElC;AACA;;AAEA;;;;;;;ACLA,gBAAgB,mBAAO,CAAC,GAAc;AACtC,iBAAiB,mBAAO,CAAC,GAAe;AACxC,kBAAkB,mBAAO,CAAC,GAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA,mBAAmB,mBAAO,CAAC,GAAiB;;AAE5C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;;AAEA;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC3Ca;;AAEb;;AAEA,sBAAsB,mBAAO,CAAC,GAAmC;;AAEjE;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA,E;;;;;;ACvBA,kBAAkB,YAAY,mBAAO,CAAC,GAA2C,sB;;;;;;ACAjF,mBAAO,CAAC,GAA0C;AAClD,cAAc,mBAAO,CAAC,EAAqB;AAC3C;AACA;AACA;;;;;;;ACJA,cAAc,mBAAO,CAAC,EAAW;AACjC;AACA,iCAAiC,mBAAO,CAAC,EAAgB,cAAc,iBAAiB,mBAAO,CAAC,EAAc,KAAK;;;;;;;ACFnH,kBAAkB,mBAAO,CAAC,EAAgB,MAAM,mBAAO,CAAC,EAAU;AAClE,+BAA+B,mBAAO,CAAC,EAAe,gBAAgB,mBAAmB,UAAU,EAAE,EAAE;AACvG,CAAC;;;;;;;ACFD;AACA,eAAe,mBAAO,CAAC,EAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA,kBAAkB,YAAY,mBAAO,CAAC,GAAgC,sB;;;;;;ACAtE,mBAAO,CAAC,GAA+B;AACvC,iBAAiB,mBAAO,CAAC,EAAqB;;;;;;;ACD9C;AACA,eAAe,mBAAO,CAAC,GAAc;AACrC,YAAY,mBAAO,CAAC,GAAgB;;AAEpC,mBAAO,CAAC,GAAe;AACvB;AACA;AACA;AACA,CAAC;;;;;;;ACRD,UAAU,mBAAO,CAAC,EAAQ;AAC1B,gBAAgB,mBAAO,CAAC,EAAe;AACvC,mBAAmB,mBAAO,CAAC,GAAmB;AAC9C,eAAe,mBAAO,CAAC,EAAe;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;AACA,UAAU,mBAAO,CAAC,EAAQ;AAC1B;AACA;AACA;AACA;;;;;;;ACLA;AACA;AACA,gBAAgB,mBAAO,CAAC,EAAe;AACvC,eAAe,mBAAO,CAAC,GAAc;AACrC,sBAAsB,mBAAO,CAAC,GAAsB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY,eAAe;AAChC;AACA,KAAK;AACL;AACA;;;;;;;ACtBA,gBAAgB,mBAAO,CAAC,EAAe;AACvC;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA,cAAc,mBAAO,CAAC,EAAW;AACjC,WAAW,mBAAO,CAAC,EAAS;AAC5B,YAAY,mBAAO,CAAC,EAAU;AAC9B;AACA,6BAA6B;AAC7B;AACA;AACA,qDAAqD,OAAO,EAAE;AAC9D;;;;;;;ACTA,iBAAiB,mBAAO,CAAC,GAAqB;;;;;;;ACA9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,cAAc;;AAEnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,GAAW;;AAEpC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAE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AO,CAAC,EAAQ;AAC1B,cAAc,mBAAO,CAAC,GAAY;AAClC,cAAc,mBAAO,CAAC,EAAW;AACjC,eAAe,mBAAO,CAAC,EAAc;AACrC,gBAAgB,mBAAO,CAAC,EAAe;AACvC,iBAAiB,mBAAO,CAAC,GAAgB;AACzC,YAAY,mBAAO,CAAC,GAAW;AAC/B,yBAAyB,mBAAO,CAAC,GAAwB;AACzD,WAAW,mBAAO,CAAC,GAAS;AAC5B,gBAAgB,mBAAO,CAAC,GAAc;AACtC,iCAAiC,mBAAO,CAAC,EAA2B;AACpE,cAAc,mBAAO,CAAC,GAAY;AAClC,gBAAgB,mBAAO,CAAC,GAAe;AACvC,qBAAqB,mBAAO,CAAC,GAAoB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C,EAAE,mBAAO,CAAC,EAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,kCAAkC;AACrD,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,eAAe,uCAAuC;AACtD;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH,kBAAkB,yBAAyB,KAAK;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,wBAAwB;AACxB,gBAAgB;AAChB,oBAAoB;AACpB,wBAAwB;AACxB,gBAAgB;AAChB,oBAAoB;AACpB;AACA,uBAAuB,mBAAO,CAAC,GAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAA0D,oBAAoB;AAC9E,mBAAO,CAAC,EAAsB;AAC9B,mBAAO,CAAC,GAAgB;AACxB,UAAU,mBAAO,CAAC,EAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,gDAAgD,mBAAO,CAAC,GAAgB;AACxE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;AC7RD;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACJA,UAAU,mBAAO,CAAC,EAAQ;AAC1B,WAAW,mBAAO,CAAC,GAAc;AACjC,kBAAkB,mBAAO,CAAC,GAAkB;AAC5C,eAAe,mBAAO,CAAC,EAAc;AACrC,eAAe,mBAAO,CAAC,GAAc;AACrC,gBAAgB,mBAAO,CAAC,GAA4B;AACpD;AACA;AACA;AACA,uCAAuC,iBAAiB,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA,GAAG,4CAA4C,gCAAgC;AAC/E;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;AACA,eAAe,mBAAO,CAAC,EAAc;AACrC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA,gBAAgB,mBAAO,CAAC,EAAc;AACtC,eAAe,mBAAO,CAAC,EAAQ;AAC/B;;AAEA;AACA;AACA;;;;;;;ACPA,cAAc,mBAAO,CAAC,GAAY;AAClC,eAAe,mBAAO,CAAC,EAAQ;AAC/B,gBAAgB,mBAAO,CAAC,EAAc;AACtC,iBAAiB,mBAAO,CAAC,EAAS;AAClC;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACfA,aAAa,mBAAO,CAAC,EAAW;AAChC,gBAAgB,mBAAO,CAAC,GAAS;AACjC;AACA;AACA;AACA,aAAa,mBAAO,CAAC,EAAQ;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uCAAuC,sBAAsB,EAAE;AAC/D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;ACpEA,aAAa,mBAAO,CAAC,EAAW;AAChC;;AAEA;;;;;;;ACHA,WAAW,mBAAO,CAAC,EAAS;AAC5B;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACNa;AACb,aAAa,mBAAO,CAAC,EAAW;AAChC,WAAW,mBAAO,CAAC,EAAS;AAC5B,SAAS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J,eAAL,CAAqBjrB,IAAI,CAAC,CAAD,CAAzB;AACH,KAFD,MAEO,IAAIqrB,WAAW,IAAI,IAAnB,EAAyB;AAC5B,UAAI;AACA,aAAKA,WAAL,EAAkBrN,KAAlB,CAAwB,IAAxB,EAA8BkN,EAAE,CAAClrB,IAAH,CAAQqM,KAAR,CAAc,CAAd,CAA9B;AACH,OAFD,CAEE,OAAO5W,CAAP,EAAU;AACRtH,gEAAO,CAAC4I,GAAR,CAAY5I,wDAAO,CAACqD,QAAR,CAAiBnB,KAA7B,EAAoCoF,CAApC;AACH;AACJ,KANM,MAMA,IAAI41B,WAAW,KAAK,KAApB,EAA2B;AAC9B,YAAMr0B,KAAK,GAAGgJ,IAAI,CAAC,CAAD,CAAlB;AACA,YAAM/I,GAAG,GAAG+I,IAAI,CAAC,CAAD,CAAhB;AACA7R,8DAAO,CAAC4I,GAAR,CAAY+zB,IAAI,CAAC9zB,KAAD,CAAhB,EAAyBC,GAAzB;AACH,KAJM,MAIA;AACH9I,8DAAO,CAAC4I,GAAR,CACI5I,wDAAO,CAACqD,QAAR,CAAiBnB,KADrB,oDAE+C2P,IAF/C;AAIH;AACJ;;AA9HqE,CAA1E,C;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;ACxKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;ACpmCA,qBAAqB,mBAAO,CAAC,GAAmB;;AAEhD;AACA;AACA,aAAa;AACb,YAAY;A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ACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,GAAQ;;AAE9B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA,KAAK,KAAwC,EAAE,EAE7C;;AAEF,QAAQ,sBAAiB;AACzB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;;AAEA,6BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;;;;;;;;AC9YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,EAAE;AACrD,wCAAwC,WAAW,EAAE;;AAErD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,sCAAsC;AACtC,GAAG;AACH;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,kEAAc,EAAC;;;ACZ9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,mDAAE,EAAC;;;ACpCO;;AAEzB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,QAAQ,YAAE;AACV;AACA;AACA;AACA;AACA;;AAEe,8DAAY,EAAC;;;ACpBkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,cAAc,aAAY;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEe,oEAAe,EAAC;;;AClCe;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA,cAAc,aAAY;;AAE1B;AACA;;AAEe,8DAAY,EAAC;;;AClBkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,aAAY;AACrB;;AAEe,8DAAY,EAAC;;;ACfkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA,cAAc,aAAY;;AAE1B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe,8DAAY,EAAC;;;ACzBsB;AACE;AACN;AACA;AACA;;AAE9C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,eAAc;AAC1C,gCAAgC,gBAAe;AAC/C,0BAA0B,aAAY;AACtC,0BAA0B,aAAY;AACtC,0BAA0B,aAAY;;AAEvB,wDAAS,EAAC;;;AC/Be;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAS;AAC/B;AACA;;AAEe,0DAAU,EAAC;;;ACd1B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe,4DAAW,EAAC;;;ACjB3B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEe,sDAAQ,EAAC;;;ACbxB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEe,sDAAQ,EAAC;;;;;;ACbM;;AAE9B;AACA,IAAI,cAAM,GAAG,wBAAI;;AAEF,0DAAM,EAAC;;;ACLY;;AAElC;AACA;;AAEA;AACA,IAAI,yBAAc;;AAElB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,OAAM,GAAG,OAAM;;AAEpC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA,cAAc,yBAAc;AAC5B;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEe,wDAAS,EAAC;;;AC7CzB;AACA,IAAI,2BAAW;;AAEf;AACA;AACA;AACA;AACA;AACA,IAAI,oCAAoB,GAAG,2BAAW;;AAEtC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA,SAAS,oCAAoB;AAC7B;;AAEe,kEAAc,EAAC;;;ACrBI;AACM;AACU;;AAElD;AACA;AACA;;AAEA;AACA,IAAI,0BAAc,GAAG,OAAM,GAAG,OAAM;;AAEpC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,UAAU,0BAAc,IAAI,0BAAc;AAC1C,MAAM,UAAS;AACf,MAAM,eAAc;AACpB;;AAEe,0DAAU,EAAC;;;AC3B1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,+DAAQ,EAAC;;;AC9BkB;AACL;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,kBAAQ;AACf;AACA;AACA;AACA;AACA,YAAY,WAAU;AACtB;AACA;;AAEe,mEAAU,EAAC;;;ACpCI;;AAE9B;AACA,iBAAiB,wBAAI;;AAEN,0DAAU,EAAC;;;ACLgB;;AAE1C;AACA;AACA,0BAA0B,WAAU,IAAI,WAAU,SAAS,WAAU;AACrE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEe,sDAAQ,EAAC;;;ACnBxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEe,sDAAQ,EAAC;;;ACzBiB;AACH;AACD;AACC;;AAEtC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA,IAAI,uBAAS;AACb,IAAI,yBAAW;;AAEf;AACA,IAAI,0BAAY,GAAG,uBAAS;;AAE5B;AACA,IAAI,4BAAc,GAAG,yBAAW;;AAEhC;AACA;AACA,EAAE,0BAAY,MAAM,4BAAc;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,kBAAQ,WAAW,SAAQ;AAClC;AACA;AACA,gBAAgB,oBAAU;AAC1B,sBAAsB,SAAQ;AAC9B;;AAEe,8DAAY,EAAC;;;AC9C5B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEe,sDAAQ,EAAC;;;ACZsB;AACR;;AAEtC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA,cAAc,SAAQ;AACtB,SAAS,aAAY;AACrB;;AAEe,wDAAS,EAAC;;;AChBe;AACV;;AAE9B;AACA,IAAI,QAAG,GAAG,UAAS,CAAC,wBAAI;;AAET,iDAAG,EAAC;;;ACNqB;;AAExC;AACA,mBAAmB,UAAS;;AAEb,8DAAY,EAAC;;;ACLkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAY,GAAG,aAAY;AAC7C;AACA;;AAEe,wDAAS,EAAC;;;ACdzB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEe,0DAAU,EAAC;;;AChBoB;;AAE9C;AACA;;AAEA;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA,MAAM,aAAY;AAClB;AACA;AACA;AACA,SAAS,uBAAc;AACvB;;AAEe,oDAAO,EAAC;;;AC7BuB;;AAE9C;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,SAAS,aAAY,+BAA+B,uBAAc;AAClE;;AAEe,oDAAO,EAAC;;;ACtBuB;;AAE9C;AACA,IAAI,uBAAc;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,eAAe,aAAY,2BAA2B,uBAAc;AACpE;AACA;;AAEe,oDAAO,EAAC;;;ACtBiB;AACE;AACN;AACA;AACA;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,UAAS;AAChC,2BAA2B,WAAU;AACrC,qBAAqB,QAAO;AAC5B,qBAAqB,QAAO;AAC5B,qBAAqB,QAAO;;AAEb,8CAAI,EAAC;;;AC/BU;AACU;AACZ;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAI;AACpB,gBAAgB,IAAG,IAAI,UAAS;AAChC,kBAAkB,KAAI;AACtB;AACA;;AAEe,gEAAa,EAAC;;;ACpB7B;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,wDAAS,EAAC;;;ACde;;AAExC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA,SAAS,UAAS;AAClB;AACA;AACA;;AAEe,0DAAU,EAAC;;;ACjBgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,eAAe,WAAU;AACzB;AACA;AACA;;AAEe,kEAAc,EAAC;;;ACjBY;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA,SAAS,WAAU;AACnB;;AAEe,4DAAW,EAAC;;;ACfe;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,WAAU;AACnB;;AAEe,4DAAW,EAAC;;;ACfe;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAA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AAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAe,aAAa,kBAAkB,EAAE,MAAM,gBAAe;AACvF,SAAS,sBAAY,WAAW,0BAAc;AAC9C;AACA;;AAEe,qEAAW,EAAC;;;ACnC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,6DAAO,EAAC;;;;;;ACzBvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe,oDAAO,EAAC;;;ACxBvB;AACA,IAAI,yBAAgB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,yBAAgB;AAC7D;;AAEe,+DAAQ,EAAC;;;AClCkB;AACL;AACQ;;AAE7C;AACA,IAAI,yBAAO;AACX;AACA;AACA;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAO;AACtB;AACA;AACA,0CAA0C,yBAAO;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,sBAAY;AACrB,IAAI,kBAAQ,mCAAmC,WAAU;AACzD;;AAEe,sEAAgB,EAAC;;;AC3DhC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe,wDAAS,EAAC;;;;;;ACb6B;AACd;AACF;;AAEtC;AACA,uBAAuB,4BAAQ,IAAI,4BAAQ;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAS,qBAAqB,iBAAgB;;AAErE,uEAAY,EAAC;;;AC1BY;AACG;AACR;AACE;AACD;AACS;;AAE7C;AACA,IAAI,0BAAW;;AAEf;AACA,IAAI,6BAAc,GAAG,0BAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA,cAAc,iBAAO;AACrB,wBAAwB,qBAAW;AACnC,mCAAmC,mCAAQ;AAC3C,8CAA8C,sBAAY;AAC1D;AACA,6BAA6B,UAAS;AACtC;;AAEA;AACA,sBAAsB,6BAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEe,gEAAa,EAAC;;;AChD7B;AACA,IAAI,wBAAW;;AAEf;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,+DAA+D,wBAAW;;AAE1E;AACA;;AAEe,4DAAW,EAAC;;;ACjB3B;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe,oDAAO,EAAC;;;ACda;;AAEpC;AACA,iBAAiB,QAAO;;AAET,0DAAU,EAAC;;;ACLkB;AACF;;AAE1C;AACA,IAAI,qBAAW;;AAEf;AACA,IAAI,wBAAc,GAAG,qBAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA,OAAO,YAAW;AAClB,WAAW,WAAU;AACrB;AACA;AACA;AACA,QAAQ,wBAAc;AACtB;AACA;AACA;AACA;AACA;;AAEe,sDAAQ,EAAC;;;AC7BiB;AACJ;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAQ,mBAAmB,oBAAU;AAC/D;;AAEe,qEAAW,EAAC;;;AChCqB;AACV;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAI;AACb,SAAS,qBAAW,WAAW,cAAa,WAAW,SAAQ;AAC/D;;AAEe,4DAAI,EAAC;;;ACpCsB;AACb;;AAE7B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,mBAAmB,WAAU,SAAS,cAAI;AAC1C;;AAEe,0DAAU,EAAC;;;AChB1B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,8DAAY,EAAC;;;ACnBS;AACO;AACE;;AAE9C;AACA,IAAI,uBAAW;;AAEf;AACA,IAAI,0BAAc,GAAG,uBAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA,OAAO,kBAAQ;AACf,WAAW,aAAY;AACvB;AACA,gBAAgB,YAAW;AAC3B;;AAEA;AACA,+CAA+C,0BAAc;AAC7D;AACA;AACA;AACA;AACA;;AAEe,0DAAU,EAAC;;;AChCsB;AACN;AACC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAM;AACf,SAAS,qBAAW,WAAW,cAAa,iBAAiB,WAAU;AACvE;;AAEe,kEAAM,EAAC;;;AC/BoB;AACT;;AAEjC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,mBAAmB,WAAU,SAAS,gBAAM;AAC5C;;AAEe,8DAAY,EAAC;;;;;;AChB5B;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe,wDAAS,EAAC;;;ACnBzB;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,4DAAW,EAAC;;;ACxB3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,iEAAS,EAAC;;;ACtBmB;AACL;;AAEvC;AACA,IAAI,uBAAW;;AAEf;AACA,IAAI,gCAAoB,GAAG,uBAAW;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA,qCAAqC,mBAAS;AAC9C;AACA;AACA;AACA;AACA,SAAS,YAAW;AACpB,WAAW,gCAAoB;AAC/B,GAAG;AACH;;AAEe,0DAAU,EAAC;;;AC7BgB;AACA;;AAE1C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO,WAAW;AAC7B,aAAa,OAAO;AACpB;AACA;AACA,SAAS,WAAU,SAAS,WAAU;AACtC;;AAEe,4DAAW,EAAC;;;ACf3B;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe,wDAAS,EAAC;;;ACnBW;;AAEpC;AACA,mBAAmB,Q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AACA;;AAEe,wEAAQ,EAAC;;;ACpBxB;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,gDAAK,EAAC;;;ACpBW;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAK;AAChB;AACA;;AAEe,sDAAQ,EAAC;;;ACnCxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,+DAAQ,EAAC;;;ACzBa;AACa;AACb;;AAErC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA,uBAAuB,eAAc,GAAG,kBAAQ;AAChD,SAAS,eAAc;AACvB;AACA;AACA,aAAa,kBAAQ;AACrB;AACA,GAAG;AACH;;AAEe,oEAAe,EAAC;;;ACrB/B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEe,sDAAQ,EAAC;;;ACpC4B;AACd;;AAEtC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA,kBAAkB,SAAQ,CAAC,gBAAe;;AAE3B,4DAAW,EAAC;;;ACbU;AACC;AACM;;AAE5C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA,SAAS,YAAW,CAAC,SAAQ,cAAc,kBAAQ;AACnD;;AAEe,sDAAQ,EAAC;;;AChBC;AACkB;AACP;AACC;;AAErC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,kBAAQ;AACf;AACA;AACA;AACA;AACA,WAAW,qBAAW,YAAY,QAAO;AACzC;AACA;AACA,WAAW,YAAE;AACb;AACA;AACA;;AAEe,kEAAc,EAAC;;;AC7BQ;AACY;;AAElD;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,SAAS,SAAQ;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,eAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEe,kEAAc,EAAC;;;ACpCY;AACQ;AACjB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,UAAU;AACV;AACA,eAAe,eAAc;AAC7B,EAAE,WAAU,SAAS,gBAAM;AAC3B,CAAC;;AAEc,+DAAQ,EAAC;;;ACvCxB;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,2BAA2B,uBAAc;AACzC;;AAEe,oDAAO,EAAC;;;AClBmB;AACG;;AAE7C;AACA,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,sBAAY,WAAW,WAAU,WAAW,kBAAS;AAC1D;;AAEe,+DAAQ,EAAC;;;AC5BW;AACE;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,MAAM,iBAAO;AACb;AACA;AACA;AACA;AACA,uBAAuB,kBAAQ;AAC/B;AACA;AACA;AACA;AACA;;AAEe,gDAAK,EAAC;;;AC5BiB;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAQ;AACjD;AACA;;AAEA;AACA,gBAAgB,SAAQ;;AAET,6DAAO,EAAC;;;ACxEY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,eAAe,iBAAO;AACtB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEe,gEAAa,EAAC;;;ACzBmB;;AAEhD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA,mBAAmB,cAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAEc,8DAAY,EAAC;;;AC1B5B;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe,sDA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C7D;AACA;AACA,YAAY,OAAM;AAClB,aAAa,cAAM,WAAW,cAAM;AACpC;AACA;AACA,MAAM,YAAW;AACjB,YAAY,SAAQ;AACpB;AACA;AACA,QAAQ,sBAAc;AACtB;AACA;AACA;AACA;AACA;;AAEe,6DAAO,EAAC;;;AC5Ec;AACA;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAQ;AACd;AACA;AACA,MAAM,kBAAQ;AACd;AACA,YAAY,kBAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,+DAAQ,EAAC;;;ACjEa;;AAErC;AACA,IAAI,iBAAQ;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAQ;AAClB,gBAAgB,iBAAQ,eAAe,iBAAQ;AAC/C;AACA;AACA;AACA;AACA;;AAEe,+DAAQ,EAAC;;;ACzCa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAQ;AACvB;;AAEA;AACA;;AAEe,iEAAS,EAAC;;;ACnCc;;AAEvC;AACA,IAAI,sBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,w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UAAS;AAClB,CAAC;;AAEc,yDAAK,EAAC;;;ACzBrB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe,kEAAc,EAAC;;;ACboB;;AAElD;AACA;AACA,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA,qBAAqB,eAAc;;AAEpB,kEAAc,EAAC;;;ACpBoB;AACb;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,SAAS,aAAM;AACf,WAAW,kBAAQ;AACnB;AACA,sCAAsC,eAAc;AACpD;AACA;;AAEe,kEAAM,EAAC;;;AC1CtB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,gEAAa,EAAC;;;ACxBmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA,cAAc,cAAa;;AAEZ,oDAAO,EAAC;;;ACfa;AACP;;AAE7B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA,mBAAmB,QAAO,mBAAmB,cAAI;AACjD;;AAEe,0DAAU,EAAC;;;ACfgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA,EAAE,WAAU;AACZ;AACA,GAAG;AACH;AACA;;AAEe,8DAAY,EAAC;;;ACpBkB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA,WAAW,aAAY,yCAAyC;AAChE;AACA;;AAEe,kEAAc,EAAC;;;AChBO;AACa;AACb;;AAErC;AACA,IAAI,kBAAW;;AAEf;AACA;AACA;AACA;AACA;AACA,IAAI,2BAAoB,GAAG,kBAAW;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,UAAU;AACV;AACA,aAAa,eAAc;AAC3B;AACA;AACA,YAAY,2BAAoB;AAChC;;AAEA;AACA,CAAC,EAAE,kBAAQ,CAAC,kBAAQ;;AAEL,2DAAM,EAAC;;;ACzCtB;AACA,IAAI,2BAAc;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA,2BAA2B,2BAAc;AACzC;AACA;;AAEe,4DAAW,EAAC;;;AClB3B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEe,4DAAW,EAAC;;;ACbW;AACM;AACA;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA,sBAAsB,SAAQ;AAC9B;AACA;AACA;AACA;;AAEA;AACA,mDAAmD,YAAW;AAC9D,yBAAyB,YAAW;;AAErB,sDAAQ,EAAC;;;AC1BxB;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,wDAAS,EAAC;;;ACtBzB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEe,sDAAQ,EAAC;;;ACZc;AACE;AACF;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAQ;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAS;AACpB,iBAAiB,SAAQ;AACzB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,4DAAW,EAAC;;;AClF3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEe,0DAAU,EAAC;;;ACjB1B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEe,0DAAU,EAAC;;;ACjBQ;AACQ;AACjB;AACmB;AACF;AACA;;AAE1C;AACA,IAAI,gCAAoB;AACxB,IAAI,kCAAsB;;AAE1B;AACA,IAAI,mBAAO;AACX,IAAI,mBAAO;AACX,IAAI,oBAAQ;AACZ,IAAI,kBAAM;AACV,IAAI,qBAAS;AACb,IAAI,qBAAS;AACb,IAAI,kBAAM;AACV,IAAI,qBAAS;AACb,IAAI,qBAAS;;AAEb,IAAI,0BAAc;AAClB,IAAI,uBAAW;;AAEf;AACA,IAAI,uBAAW,GAAG,OAAM,GAAG,OAAM;AACjC,IAAI,yBAAa,GAAG,uBAAW,GAAG,uBAAW;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;A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AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAW;AACpB;;AAEe,6DAAO,EAAC;;;AClCS;AACY;;AAE5C;AACA,IAAI,iCAAoB;AACxB,IAAI,mCAAsB;;AAE1B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,sBAAsB,MAAK;AAC3B;AACA;AACA;AACA;AACA,cAAc,YAAW,qBAAqB,iCAAoB,GAAG,mCAAsB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,4DAAW,EAAC;;;AC7DU;;AAErC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAQ;AACrC;;AAEe,0EAAkB,EAAC;;;ACdwB;AAC7B;;AAE7B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA,eAAe,cAAI;AACnB;;AAEA;AACA;AACA;;AAEA,kCAAkC,mBAAkB;AACpD;AACA;AACA;;AAEe,8DAAY,EAAC;;;ACvB5B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,oFAAuB,EAAC;;;ACnBK;AACE;AACsB;;AAEpE;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB,aAAY;AAC9B;AACA,WAAW,wBAAuB;AAClC;AACA;AACA,gCAAgC,YAAW;AAC3C;AACA;;AAEe,4DAAW,EAAC;;;ACrBW;AACN;;AAEhC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,EAAE;AACf;AACA;AACA,SAAS,SAAQ;;AAEjB;AACA;;AAEA;AACA,oBAAoB,MAAK;AACzB;AACA;AACA;;AAEe,oDAAO,EAAC;;;ACvBa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAO;AACnD;AACA;;AAEe,qDAAG,EAAC;;;AChCnB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEe,wDAAS,EAAC;;;ACZe;AACJ;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gBAAgB,SAAS,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAO,eAAe,UAAS;AAC1D;;AAEe,yDAAK,EAAC;;;ACjCuB;AACjB;AACI;AACC;AAC0B;AACU;AACpC;;AAEhC;AACA,IAAI,yCAAoB;AACxB,IAAI,2CAAsB;;AAE1B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,MAAM,MAAK,UAAU,mBAAkB;AACvC,WAAW,wBAAuB,CAAC,MAAK;AACxC;AACA;AACA,mBAAmB,aAAG;AACtB;AACA,QAAQ,eAAK;AACb,QAAQ,YAAW,qBAAqB,yCAAoB,GAAG,2CAAsB;AACrF;AACA;;AAEe,4EAAmB,EAAC;;;AChCnC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe,8DAAY,EAAC;;;ACbQ;;AAEpC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA,WAAW,QAAO;AAClB;AACA;;AAEe,sEAAgB,EAAC;;;ACfc;AACQ;AACtB;AACA;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,OAAO,SAAS,EAAE;AACxB,MAAM,OAAO,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAK,SAAS,aAAY,CAAC,MAAK,UAAU,iBAAgB;AACnE;;AAEe,+DAAQ,EAAC;;;AC/BoB;AACgB;AACvB;AACF;AACE;;AAErC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA;AACA,WAAW,iBAAO;AAClB,QAAQ,oBAAmB;AAC3B,QAAQ,YAAW;AACnB;AACA,SAAS,kBAAQ;AACjB;;AAEe,8DAAY,EAAC;;;AC9BY;AACM;;AAE9C;AACA,IAAI,wBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,8CAA8C;AACpD,MAAM;AACN;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE,WAAW,8CAA8C;AACzD;AACA;AACA;AACA,WAAW,4BAA4B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,SAAS,iBAAQ;AACjB,SAAS,aAAY,oCAAoC,UAAS,OAAO,wBAAe;AACxF;;AAEe,wEAAQ,EAAC;;;ACpDxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AAC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W,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,qBAAqB,YAAW;AAChC;;AAEe,gEAAa,EAAC;;;AChB7B;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,wEAAiB,EAAC;;;ACrBK;AACU;AACQ;AAClB;AACE;AACF;;AAEtC;AACA,IAAI,gCAAgB;;AAEpB;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,iBAAiB,cAAa;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAQ,SAAS,UAAS;AACvC;AACA;AACA,eAAe,kBAAiB;AAChC;AACA;AACA,4BAA4B,gCAAgB;AAC5C,eAAe,SAAQ;AACvB;AACA,iBAAiB,SAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,kEAAc,EAAC;;;AClEa;AACE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAY,WAAW,qBAAW;AAC3C;;AAEe,iFAAiB,EAAC;;;AChCiB;AACN;AACN;AACiB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAQ;AACzB,SAAS,2BAAiB;AAC1B,MAAM,eAAc,QAAQ,YAAW,YAAY,2BAAiB;AACpE;AACA,CAAC;;AAEc,mEAAU,EAAC;;;AChC1B;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,0DAAU,EAAC;;;ACtBY;;AAEtC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,EAAE,SAAQ;AACV;AACA;AACA,GAAG;AACH;AACA;;AAEe,wDAAS,EAAC;;;ACpBiB;AACF;AACM;AACX;AACe;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,YAAY,OAAO;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM;AACN;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,WAAU,GAAG,UAAS;AACzD,eAAe,eAAc;AAC7B;AACA;AACA,0BAA0B,aAAY;AACtC;;AAEe,yDAAK,EAAC;;;ACvD2B;AACF;AACP;;AAEvC;AACA,IAAI,mBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,MAAM,qCAAqC;AAC3C,MAAM,qCAAqC;AAC3C,MAAM;AACN;AACA;AACA,mCAAmC,2BAA2B,EAAE;AAChE;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAS;AAC/C;AACA,YAAY,mBAAS;AACrB;AACA,SAAS,cAAa,QAAQ,aAAY;AAC1C;;AAEe,iEAAS,EAAC;;;ACtDuB;AACF;AACP;;AAEvC;AACA,IAAI,uBAAS;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,MAAM,oCAAoC;AAC1C,MAAM,qCAAqC;AAC3C,MAAM;AACN;AACA;AACA,uCAAuC,4BAA4B,EAAE;AACrE;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAS;AACrB;AACA,QAAQ,uBAAS;AACjB;AACA;AACA,SAAS,cAAa,QAAQ,aAAY;AAC1C;;AAEe,yEAAa,EAAC;;;AC1DuB;AACE;;AAEtD;AACA,IAAI,mBAAW;;AAEf;AACA,IAAI,sBAAc,GAAG,mBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA,cAAc,iBAAgB;AAC9B,MAAM,sBAAc;AACpB;AACA,GAAG;AACH,IAAI,gBAAe;AACnB;AACA,CAAC;;AAEc,6DAAO,EAAC;;;ACxCqB;AACL;;AAEvC;AACA,IAAI,iBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAS;AAC/C;AACA,YAAY,iBAAS;AACrB;AACA,SAAS,YAAW;AACpB;;AAEe,6DAAO,EAAC;;;ACzC6B;AACE;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,MAAM,4BAA4B;AAClC,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ,UAAU,OAAO,4BAA4B,QAAQ,8BAA8B;AACnF;AACA;AACA,UAAU,UAAU,4BAA4B,YAAY,8BAA8B;AAC1F;AACA,YAAY,iBAAgB;AAC5B,EAAE,gBAAe;AACjB,CAAC;;AAEc,yDAAK,EAAC;;;ACnCrB;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,wEAAiB,EAAC;;;ACpBe;AACR;AACgB;AACjB;;AAEvC;AACA,IAAI,qBAAS;AACb,IAAI,qBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAS;AACrB,wBAAwB,qBAAS,sBAAsB,qBAAS;AAChE;AACA;AACA,MAAM,kBAAiB;AACvB,MAAM,cAAa,QAAQ,UAAS;AACpC;;AAEe,qEAAW,EAAC;;;AC7CW;;AAEtC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,EAAE,SAAQ;AACV;AACA;AACA,GAAG;AACH;AACA;;AAEe,sDAAQ,EAAC;;;ACrBgB;AACM;AACR;AACH;AACe;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,YAAY,OAAO;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAmC;AACzC,MAAM;AACN;AACA;AACA;AACA,kBAAkB,oCAAoC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,UAAS,GAAG,SAAQ;AACvD,eAAe,eAAc;AAC7B;AACA;AACA,0BAA0B,aAAY;AACtC;;AAEe,uDAAI,EAAC;;;AClDkB;AACK;;AAE3C;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,eAAe,qBAAW;;AAE1B,EAAE,SAAQ;AACV;AACA,GAAG;AACH;AACA;;AAEe,oDAAO,EAAC;;;ACrBvB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe,0DAAU,EAAC;;;ACpBW;;AAErC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAQ;;AAE9B;AACA;AACA;AACA,sBAAsB,kBAAQ;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,sEAAgB,EAAC;;;ACxCsB;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,mBAAmB;AAC9B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,iBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,oEAAe,EAAC;;;AC3CO;AACQ;AACV;AACM;AACF;AACY;AACf;;AAErC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,6BAA6B;AACxC,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,cAAc,SAAQ,iCAAiC,kBAAQ,GAAG,UAAS,CAAC,aAAY;;AAExF,eAAe,QAAO;AACtB,mB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FAA0F,qBAAqB;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB,SAAS,EAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,mDAAmD;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAM;AACvC;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,+BAA+B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAM;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sBAAsB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,eAAM;AACxD;AACA;AACA;AACA;AACA,yCAAyC,0BAA0B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,oC;;ACtNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACqD;AACrD,iDAAiD,qBAAqB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,WAAW,UAAU,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,WAAW,UAAU,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2C;;AC/HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC,KAAK,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACO,MAAM,mBAAS;AACtB;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA,qC;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP,gC;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACa;AACrD;AACA;AACA;AACA;AACO,MAAM,kCAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,mFAAmF,qBAAqB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,6C;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyC;AACwD;AACjG,0BAA0B,eAAM,CAAC;AACjC;AACA;AACA;AACA;AACO,MAAM,8BAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,UAAU;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA,yDAAyD,MAAM;AAC/D,8BAA8B,MAAM;AACpC;AACA,gEAAgE,UAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D,oBAAoB,eAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,iCAAiB,SAAS,8BAAc;AACrD;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,aAAa;AACrB;AACA;AACA;AACA,2C;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC6C;AACN;AACO;AACY;AACJ;AACT;AACtC;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAa;AAChC;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,cAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,YAAY;AAC3D,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8BAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kCAAgB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kCAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,0BAAoB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,2BAA2B,mBAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM,MAAM,eAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,uDAAuD;AAChE;AACA,iC;;ACvcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACiD;AACjD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAM;AAC1C;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,4C;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACuC;AACD;AACkB;AACjD,MAAM,YAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,aAAM;AACnB,eAAe,YAAK;AACpB;AACA,QAAQ,WAAW;AACnB,QAAQ,YAAK,2BAA2B,cAAQ,gBAAgB,CAAC,gCAAe,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA,kC;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC8G;AAC9G;AACA;AACA;AACO,MAAM,mDAAwB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA,wBAAwB,eAAS;AACjC;AACA;AACA,wBAAwB,0BAAoB;AAC5C;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAQ;AAC3B;AACA;AACO,qCAAqC,mDAAwB;AACpE,sD;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AAC+E;AACF;AAC4B;AAC7C;AAC5D;AAC0D;AACR;AACsH;AACxH;AAC4B;AACd;AACe;AACI;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,aAAI,+BAA+B,8BAAc,0BAA0B,wBAAwB;AAChH;AACA;AACA;AACA;AACO,wCAAwC,iCAAiB,yBAAyB,wBAAwB;AACjH,oC;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACuC;AACgD;AAC9B;AACF;AACG;AACT;AACU;AAC3D;AACA,oDAAoD,KAAK,IAAI,UAAU;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA,QAAQ,cAAc;AACtB;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA,uBAAuB,WAAW,UAAU,EAAE;AAC9C;AACA;AACA;AACA;AACA,iBAAiB;AACjB,gBAAgB,uBAAuB;AACvC,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uBAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAM;AACnB;AACA;AACA;AACA;AACA,wBAAwB,YAAK;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,IAAI,aAAS,yCAAyC,mDAAmD;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,YAAK;AAC1B,QAAQ,YAAK;AACb;AACA;AACA;AACA;AACA;AACA,+CAA+C,kCAAgB;AAC/D;AACA;AACA;AACA,QAAQ,WAAW;AACnB;AACA,QAAQ,YAAK;AACb;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,wC;;AC9RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,KAAK;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,wBAAwB,IAAI;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4C;;AChqBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,mBAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,mBAAQ,EAAE,qGAAqG;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,mEAAmE,KAAK;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,yCAAyC,aAAa;AACtD;AACA,SAAS,EAAE;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc;AACrC;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB,SAAS,oBAAoB;AAC7F;AACA,wDAAwD,UAAU;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sC;;AC3YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,MAAM;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mC;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACsD;AACM;AAClB;AACN;AACgD;AACV;AACzC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,sBAAU,SAAS,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,2BAA2B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gDAAgD;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAU,UAAU,mBAAM;AAC1B,uC;;ACjRA;AACA;AAGO,MAAMqhD,qBAAN,SAA4BC,sBAA5B,CAAuC;AAE1C15C,aAAW,GAAI;AACX;AACArL,UAAM,CAACsmC,MAAP,CAAc,IAAd,EAAoBsE,MAApB;AACH;;AAEDoa,kBAAgB,GAAI;AAChB;AACA,WAAO,IAAP;AACH;;AAEDC,sBAAoB,GAAI;AACpB,UAAMA,oBAAN;AACA,SAAK5Y,aAAL;AACH;;AAfyC,C;;ACJ9C;AACA;AACA;AAEA;AACA;AACA;CAGA;AACA;AAEA;AACA;AACA;AACA;AACA;;AACA,MAAM6Y,eAAO,GAAG,YAAW;AACzB,OAAK12C,QAAL,GAAgB,EAAhB;AACA,OAAK22C,QAAL,GAAgB,KAAKA,QAAL,CAAc3vC,IAAd,CAAmB,IAAnB,CAAhB,CAFyB,CAIzB;;AACA,MAAI,OAAOiY,MAAP,KAAkB,WAAtB,EAAmC;AACjC,SAAK/O,QAAL,GAAgB+O,MAAM,CAAC/O,QAAvB;AACA,SAAK0mC,OAAL,GAAe33B,MAAM,CAAC23B,OAAtB;AACD;AACF,CATD;;AAWAF,eAAO,CAAChe,MAAR,GAAiBmC,QAAjB,C,CAEA;;AACA,MAAMgc,aAAa,GAAG,cAAtB,C,CACA;;AACA,MAAMC,YAAY,GAAG,YAArB,C,CACA;;AACA,MAAMC,YAAY,GAAG,MAArB,C,CAEA;;AACAL,eAAO,CAACM,OAAR,GAAkB,KAAlB,C,CAEA;;AACAxlD,MAAM,CAACsmC,MAAP,CAAc4e,eAAO,CAACjlD,SAAtB,EAAiC2qC,MAAjC,EAAyC;AAEvC;AACA;AACA0M,UAAQ,EAAE,EAJ6B;AAMvC;AACAmO,QAAM,EAAE,YAAW;AACjB,UAAMnlD,IAAI,GAAG,KAAKoe,QAAL,CAAciE,QAAd,CAAuB5b,OAAvB,CAA+B,QAA/B,EAAyC,KAAzC,CAAb;AACA,WAAOzG,IAAI,KAAK,KAAKqL,IAAd,IAAsB,CAAC,KAAK+5C,SAAL,EAA9B;AACD,GAVsC;AAYvC;AACAC,WAAS,EAAE,YAAW;AACpB,UAAMrlD,IAAI,GAAG,KAAKslD,cAAL,CAAoB,KAAKlnC,QAAL,CAAciE,QAAlC,CAAb;AACA,UAAMkjC,QAAQ,GAAGvlD,IAAI,CAAC8e,KAAL,CAAW,CAAX,EAAc,KAAKzT,IAAL,CAAU/N,MAAV,GAAmB,CAAjC,IAAsC,GAAvD;AACA,WAAOioD,QAAQ,KAAK,KAAKl6C,IAAzB;AACD,GAjBsC;AAmBvC;AACA;AACA;AACAi6C,gBAAc,EAAE,UAASx5C,QAAT,EAAmB;AACjC,WAAO05C,SAAS,CAAC15C,QAAQ,CAACrF,OAAT,CAAiB,MAAjB,EAAyB,OAAzB,CAAD,CAAhB;AACD,GAxBsC;AA0BvC;AACA;AACA2+C,WAAS,EAAE,YAAW;AACpB,UAAMtsC,KAAK,GAAG,KAAKsF,QAAL,CAAcC,IAAd,CAAmB5X,OAAnB,CAA2B,KAA3B,EAAkC,EAAlC,EAAsCqS,KAAtC,CAA4C,MAA5C,CAAd;AACA,WAAOA,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAc,EAA1B;AACD,GA/BsC;AAiCvC;AACA;AACA2sC,SAAO,EAAE,UAASt4B,MAAT,EAAiB;AACxB,UAAMrU,KAAK,GAAG,CAACqU,MAAM,IAAI,IAAX,EAAiB/O,QAAjB,CAA0BC,IAA1B,CAA+BvF,KAA/B,CAAqC,QAArC,CAAd;AACA,WAAOA,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAc,EAA1B;AACD,GAtCsC;AAwCvC;AACA4sC,SAAO,EAAE,YAAW;AAClB,UAAM1lD,IAAI,GAAG,KAAKslD,cAAL,CACX,KAAKlnC,QAAL,CAAciE,QAAd,GAAyB,KAAK+iC,SAAL,EADd,EAEXtmC,KAFW,CAEL,KAAKzT,IAAL,CAAU/N,MAAV,GAAmB,CAFd,CAAb;AAGA,WAAO0C,IAAI,CAAClC,MAAL,CAAY,CAAZ,MAAmB,GAAnB,GAAyBkC,IAAI,CAAC8e,KAAL,CAAW,CAAX,CAAzB,GAAyC9e,IAAhD;AACD,GA9CsC;AAgDvC;AACA2lD,aAAW,EAAE,UAAS75C,QAAT,EAAmB;AAC9B,QAAIA,QAAQ,IAAI,IAAhB,EAAsB;AACpB,UAAI,KAAK85C,aAAL,IAAsB,CAAC,KAAKC,gBAAhC,EAAkD;AAChD/5C,gBAAQ,GAAG,KAAK45C,OAAL,EAAX;AACD,OAFD,MAEO;AACL55C,gBAAQ,GAAG,KAAK25C,OAAL,EAAX;AACD;AACF;;AACD,WAAO35C,QAAQ,CAACrF,OAAT,CAAiBs+C,aAAjB,EAAgC,EAAhC,CAAP;AACD,GA1DsC;AA4DvC;AACA;AACAlkC,OAAK,EAAE,UAASvU,OAAT,EAAkB;AACvB,QAAIs4C,eAAO,CAACM,OAAZ,EAAqB,MAAM,IAAI/nD,KAAJ,CAAU,kCAAV,CAAN;AACrBynD,mBAAO,CAACM,OAAR,GAAkB,IAAlB,CAFuB,CAIvB;AACA;;AACA,SAAK54C,OAAL,GAAwBs6B,kBAAM,CAAC;AAACv7B,UAAI,EAAE;AAAP,KAAD,EAAc,KAAKiB,OAAnB,EAA4BA,OAA5B,CAA9B;AACA,SAAKjB,IAAL,GAAwB,KAAKiB,OAAL,CAAajB,IAArC;AACA,SAAKw6C,gBAAL,GAAwB,KAAKv5C,OAAL,CAAaw5C,UAAb,KAA4B,KAApD;AACA,SAAKC,cAAL,GAAwB,kBAAkB54B,MAAlB,KAA6B5sB,QAAQ,CAAC8c,YAAT,KAA0BjX,SAA1B,IAAsC7F,QAAQ,CAAC8c,YAAT,GAAwB,CAA3F,CAAxB;AACA,SAAK2oC,cAAL,GAAwB,KAAKH,gBAAL,IAAyB,KAAKE,cAAtD;AACA,SAAKE,eAAL,GAAwB,CAAC,CAAC,KAAK35C,OAAL,CAAa45C,SAAvC;AACA,SAAKC,aAAL,GAAwB,CAAC,EAAE,KAAKrB,OAAL,IAAgB,KAAKA,OAAL,CAAaoB,SAA/B,CAAzB;AACA,SAAKN,aAAL,GAAwB,KAAKK,eAAL,IAAwB,KAAKE,aAArD;AACA,SAAKr6C,QAAL,GAAwB,KAAK65C,WAAL,EAAxB,CAduB,CAgBvB;;AACA,SAAKt6C,IAAL,GAAY,CAAC,MAAM,KAAKA,IAAX,GAAkB,GAAnB,EAAwB5E,OAAxB,CAAgCu+C,YAAhC,EAA8C,GAA9C,CAAZ,CAjBuB,CAmBvB;AACA;;AACA,QAAI,KAAKa,gBAAL,IAAyB,KAAKI,eAAlC,EAAmD;AAEjD;AACA;AACA,UAAI,CAAC,KAAKE,aAAN,IAAuB,CAAC,KAAKhB,MAAL,EAA5B,EAA2C;AACzC,cAAMI,QAAQ,GAAG,KAAKl6C,IAAL,CAAUyT,KAAV,CAAgB,CAAhB,EAAmB,CAAC,CAApB,KAA0B,GAA3C;AACA,aAAKV,QAAL,CAAc3X,OAAd,CAAsB8+C,QAAQ,GAAG,GAAX,GAAiB,KAAKG,OAAL,EAAvC,EAFyC,CAGzC;;AACA,eAAO,IAAP,CAJyC,CAM3C;AACA;AACC,OARD,MAQO,IAAI,KAAKS,aAAL,IAAsB,KAAKhB,MAAL,EAA1B,EAAyC;AAC9C,aAAKiB,QAAL,CAAc,KAAKX,OAAL,EAAd,EAA8B;AAACh/C,iBAAO,EAAE;AAAV,SAA9B;AACD;AAEF,KArCsB,CAuCvB;AACA;AACA;;;AACA,QAAI,CAAC,KAAKs/C,cAAN,IAAwB,KAAKF,gBAA7B,IAAiD,CAAC,KAAKD,aAA3D,EAA0E;AACxE,WAAKS,MAAL,GAAc9lD,QAAQ,CAACsF,aAAT,CAAuB,QAAvB,CAAd;AACA,WAAKwgD,MAAL,CAAY59B,GAAZ,GAAkB,cAAlB;AACA,WAAK49B,MAAL,CAAYzjD,KAAZ,CAAkB0jD,OAAlB,GAA4B,MAA5B;AACA,WAAKD,MAAL,CAAYE,QAAZ,GAAuB,CAAC,CAAxB;AACA,YAAMryB,IAAI,GAAG3zB,QAAQ,CAAC2zB,IAAtB,CALwE,CAMxE;;AACA,YAAMsyB,OAAO,GAAGtyB,IAAI,CAACuyB,YAAL,CAAkB,KAAKJ,MAAvB,EAA+BnyB,IAAI,CAAC/E,UAApC,EAAgDu3B,aAAhE;AACAF,aAAO,CAACjmD,QAAR,CAAiBu1B,IAAjB;AACA0wB,aAAO,CAACjmD,QAAR,CAAiBwuB,KAAjB;AACAy3B,aAAO,CAACpoC,QAAR,CAAiBjf,IAAjB,GAAwB,MAAM,KAAK2M,QAAnC;AACD,KArDsB,CAuDvB;AACA;;;AACA,QAAI,KAAK85C,aAAT,EAAwB;AACtBe,sBAAgB,CAAC,UAAD,EAAa,KAAK9B,QAAlB,EAA4B,KAA5B,CAAhB;AACD,KAFD,MAEO,IAAI,KAAKmB,cAAL,IAAuB,CAAC,KAAKK,MAAjC,EAAyC;AAC9CM,sBAAgB,CAAC,YAAD,EAAe,KAAK9B,QAApB,EAA8B,KAA9B,CAAhB;AACD,KAFM,MAEA,IAAI,KAAKgB,gBAAT,EAA2B;AAChC,WAAKe,iBAAL,GAAyBrP,WAAW,CAAC,KAAKsN,QAAN,EAAgB,KAAK7N,QAArB,CAApC;AACD;;AAED,QAAI,CAAC,KAAK1qC,OAAL,CAAa2hC,MAAlB,EAA0B,OAAO,KAAK4Y,OAAL,EAAP;AAC3B,GAhIsC;AAkIvC;AACA;AACAC,MAAI,EAAE,YAAW;AACf;AACA,QAAI,KAAKlB,aAAT,EAAwB;AACtBmB,yBAAmB,CAAC,UAAD,EAAa,KAAKlC,QAAlB,EAA4B,KAA5B,CAAnB;AACD,KAFD,MAEO,IAAI,KAAKmB,cAAL,IAAuB,CAAC,KAAKK,MAAjC,EAAyC;AAC9CU,yBAAmB,CAAC,YAAD,EAAe,KAAKlC,QAApB,EAA8B,KAA9B,CAAnB;AACD,KANc,CAQf;;;AACA,QAAI,KAAKwB,MAAT,EAAiB;AACf9lD,cAAQ,CAAC2zB,IAAT,CAAc8yB,WAAd,CAA0B,KAAKX,MAA/B;AACA,WAAKA,MAAL,GAAc,IAAd;AACD,KAZc,CAcf;;;AACA,QAAI,KAAKO,iBAAT,EAA4B3P,aAAa,CAAC,KAAK2P,iBAAN,CAAb;AAC5BhC,mBAAO,CAACM,OAAR,GAAkB,KAAlB;AACD,GArJsC;AAuJvC;AACA;AACA9zC,OAAK,EAAE,UAASA,KAAT,EAAgBL,QAAhB,EAA0B;AAC/B,SAAK7C,QAAL,CAAcsc,OAAd,CAAsB;AAACpZ,WAAK,EAAEA,KAAR;AAAeL,cAAQ,EAAEA;AAAzB,KAAtB;AACD,GA3JsC;AA6JvC;AACA;AACA8zC,UAAQ,EAAE,UAAS38C,CAAT,EAAY;AACpB,QAAI6xB,OAAO,GAAG,KAAK4rB,WAAL,EAAd,CADoB,CAGpB;AACA;;AACA,QAAI5rB,OAAO,KAAK,KAAKjuB,QAAjB,IAA6B,KAAKu6C,MAAtC,EAA8C;AAC5CtsB,aAAO,GAAG,KAAK0rB,OAAL,CAAa,KAAKY,MAAL,CAAYK,aAAzB,CAAV;AACD;;AAED,QAAI3sB,OAAO,KAAK,KAAKjuB,QAArB,EAA+B,OAAO,KAAP;AAC/B,QAAI,KAAKu6C,MAAT,EAAiB,KAAKD,QAAL,CAAcrsB,OAAd;AACjB,SAAK8sB,OAAL;AACD,GA3KsC;AA6KvC;AACA;AACA;AACAA,SAAO,EAAE,UAAS/6C,QAAT,EAAmB;AAC1B;AACA,QAAI,CAAC,KAAKu5C,SAAL,EAAL,EAAuB,OAAO,KAAP;AACvBv5C,YAAQ,GAAG,KAAKA,QAAL,GAAgB,KAAK65C,WAAL,CAAiB75C,QAAjB,CAA3B;AACA,WAAOqzC,cAAI,CAAC,KAAKjxC,QAAN,EAAgB,UAAS/E,OAAT,EAAkB;AAC3C,UAAIA,OAAO,CAACiI,KAAR,CAAcqG,IAAd,CAAmB3L,QAAnB,CAAJ,EAAkC;AAChC3C,eAAO,CAAC4H,QAAR,CAAiBjF,QAAjB;AACA,eAAO,IAAP;AACD;AACF,KALU,CAAX;AAMD,GA1LsC;AA4LvC;AACA;AACA;AACA;AACA;AACA;AACA;AACAs6C,UAAQ,EAAE,UAASt6C,QAAT,EAAmBQ,OAAnB,EAA4B;AACpC,QAAI,CAACs4C,eAAO,CAACM,OAAb,EAAsB,OAAO,KAAP;AACtB,QAAI,CAAC54C,OAAD,IAAYA,OAAO,KAAK,IAA5B,EAAkCA,OAAO,GAAG;AAACo9B,aAAO,EAAE,CAAC,CAACp9B;AAAZ,KAAV,CAFE,CAIpC;;AACAR,YAAQ,GAAG,KAAK65C,WAAL,CAAiB75C,QAAQ,IAAI,EAA7B,CAAX,CALoC,CAOpC;;AACA,QAAIy5C,QAAQ,GAAG,KAAKl6C,IAApB;;AACA,QAAIS,QAAQ,KAAK,EAAb,IAAmBA,QAAQ,CAAChO,MAAT,CAAgB,CAAhB,MAAuB,GAA9C,EAAmD;AACjDynD,cAAQ,GAAGA,QAAQ,CAACzmC,KAAT,CAAe,CAAf,EAAkB,CAAC,CAAnB,KAAyB,GAApC;AACD;;AACD,UAAMf,GAAG,GAAGwnC,QAAQ,GAAGz5C,QAAvB,CAZoC,CAcpC;;AACAA,YAAQ,GAAGA,QAAQ,CAACrF,OAAT,CAAiBw+C,YAAjB,EAA+B,EAA/B,CAAX,CAfoC,CAiBpC;;AACA,UAAMgC,eAAe,GAAG,KAAK3B,cAAL,CAAoBx5C,QAApB,CAAxB;AAEA,QAAI,KAAKA,QAAL,KAAkBm7C,eAAtB,EAAuC;AACvC,SAAKn7C,QAAL,GAAgBm7C,eAAhB,CArBoC,CAuBpC;;AACA,QAAI,KAAKrB,aAAT,EAAwB;AACtB,WAAKd,OAAL,CAAax4C,OAAO,CAAC7F,OAAR,GAAkB,cAAlB,GAAmC,WAAhD,EAA6D,EAA7D,EAAiElG,QAAQ,CAAC2mD,KAA1E,EAAiFnpC,GAAjF,EADsB,CAGxB;AACA;AACC,KALD,MAKO,IAAI,KAAK8nC,gBAAT,EAA2B;AAChC,WAAKsB,WAAL,CAAiB,KAAK/oC,QAAtB,EAAgCtS,QAAhC,EAA0CQ,OAAO,CAAC7F,OAAlD;;AACA,UAAI,KAAK4/C,MAAL,IAAev6C,QAAQ,KAAK,KAAK25C,OAAL,CAAa,KAAKY,MAAL,CAAYK,aAAzB,CAAhC,EAAyE;AACvE,cAAMF,OAAO,GAAG,KAAKH,MAAL,CAAYK,aAA5B,CADuE,CAGvE;AACA;AACA;;AACA,YAAI,CAACp6C,OAAO,CAAC7F,OAAb,EAAsB;AACpB+/C,iBAAO,CAACjmD,QAAR,CAAiBu1B,IAAjB;AACA0wB,iBAAO,CAACjmD,QAAR,CAAiBwuB,KAAjB;AACD;;AACD,aAAKo4B,WAAL,CAAiBX,OAAO,CAACpoC,QAAzB,EAAmCtS,QAAnC,EAA6CQ,OAAO,CAAC7F,OAArD;AACD,OAb+B,CAclC;AACA;;AACC,KAhBM,MAgBA;AACL,aAAO,KAAK2X,QAAL,CAAc4nB,MAAd,CAAqBjoB,GAArB,CAAP;AACD;;AACD,QAAIzR,OAAO,CAACo9B,OAAZ,EAAqB,OAAO,KAAKmd,OAAL,CAAa/6C,QAAb,CAAP;AACtB,GApPsC;AAsPvC;AACA;AACAq7C,aAAW,EAAE,UAAS/oC,QAAT,EAAmBtS,QAAnB,EAA6BrF,OAA7B,EAAsC;AACjD,QAAIA,OAAJ,EAAa;AACX,YAAM4X,IAAI,GAAGD,QAAQ,CAACC,IAAT,CAAc5X,OAAd,CAAsB,oBAAtB,EAA4C,EAA5C,CAAb;AACA2X,cAAQ,CAAC3X,OAAT,CAAiB4X,IAAI,GAAG,GAAP,GAAavS,QAA9B;AACD,KAHD,MAGO;AACL;AACAsS,cAAQ,CAACjf,IAAT,GAAgB,MAAM2M,QAAtB;AACD;AACF;AAhQsC,CAAzC;AAmQe84C,+DAAf,E;;AC5S0C;AACG;;AAE7C;AACA,IAAI,uBAAS;;AAEb;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,sBAAY,WAAW,WAAU,WAAW,uBAAS;AAC9D;;AAEe,8DAAY,EAAC;;;ACjBkB;AACN;AACF;;AAEtC;AACA,mBAAmB,4BAAQ,IAAI,4BAAQ;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAS,iBAAiB,aAAY;;AAErD,+DAAQ,EAAC;;;AC1BxB;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;AACA;;AACO,MAAMwC,MAAM,GAAG,UAAS96C,OAAO,GAAC,EAAjB,EAAqB;AACzC,OAAKw4C,OAAL,GAAex4C,OAAO,CAACw4C,OAAR,IAAmB,IAAIF,WAAJ,EAAlC;AACA,OAAKzX,aAAL,CAAmB1c,KAAnB,CAAyB,IAAzB,EAA+B3qB,SAA/B;AACA,MAAIwG,OAAO,CAAC+6C,MAAZ,EAAoB,KAAKA,MAAL,GAAc/6C,OAAO,CAAC+6C,MAAtB;;AACpB,OAAKC,WAAL;;AACA,OAAKtrB,UAAL,CAAgBvL,KAAhB,CAAsB,IAAtB,EAA4B3qB,SAA5B;AACD,CANM;AAQPshD,MAAM,CAACxgB,MAAP,GAAgBmC,QAAhB,C,CAEA;AACA;;AACA,MAAMwe,aAAa,GAAG,YAAtB;AACA,MAAMC,UAAU,GAAM,cAAtB;AACA,MAAMC,UAAU,GAAM,QAAtB;AACA,MAAMC,YAAY,GAAI,0BAAtB,C,CAEA;;AACAhoD,MAAM,CAACsmC,MAAP,CAAcohB,MAAM,CAACznD,SAArB,EAAgC2qC,MAAhC,EAAwC;AAEtC;AACA;AACA6C,eAAa,EAAE,YAAU,CAAE,CAJW;AAMtC;AACA;AACAnR,YAAU,EAAE,YAAU,CAAE,CARc;AAUtC;AACA;AACA;AACA;AACA;AACA;AACA5qB,OAAK,EAAE,UAASA,KAAT,EAAgB1Q,IAAhB,EAAsBqQ,QAAtB,EAAgC;AACrC,QAAI,CAAC42C,kBAAQ,CAACv2C,KAAD,CAAb,EAAsBA,KAAK,GAAG,KAAKw2C,cAAL,CAAoBx2C,KAApB,CAAR;;AACtB,QAAI62B,oBAAU,CAACvnC,IAAD,CAAd,EAAsB;AACpBqQ,cAAQ,GAAGrQ,IAAX;AACAA,UAAI,GAAG,EAAP;AACD;;AACD,QAAI,CAACqQ,QAAL,EAAeA,QAAQ,GAAG,KAAKrQ,IAAL,CAAX;AACf,SAAKokD,OAAL,CAAa1zC,KAAb,CAAmBA,KAAnB,EAA2BtF,QAAD,IAAc;AACtC,YAAM0gC,IAAI,GAAG,KAAKqb,kBAAL,CAAwBz2C,KAAxB,EAA+BtF,QAA/B,CAAb;;AACA,UAAI,KAAKg8C,OAAL,CAAa/2C,QAAb,EAAuBy7B,IAAvB,EAA6B9rC,IAA7B,MAAuC,KAA3C,EAAkD;AAChD,aAAKgpC,OAAL,CAAajZ,KAAb,CAAmB,IAAnB,EAAyB,CAAC,WAAW/vB,IAAZ,EAAkBsb,MAAlB,CAAyBwwB,IAAzB,CAAzB;AACA,aAAK9C,OAAL,CAAa,OAAb,EAAsBhpC,IAAtB,EAA4B8rC,IAA5B;AACA,aAAKsY,OAAL,CAAapb,OAAb,CAAqB,OAArB,EAA8B,IAA9B,EAAoChpC,IAApC,EAA0C8rC,IAA1C;AACD;AACF,KAPD;AAQA,WAAO,IAAP;AACD,GAhCqC;AAkCtC;AACA;AACAsb,SAAO,EAAE,UAAS/2C,QAAT,EAAmBy7B,IAAnB,EAAyB9rC,IAAzB,EAA+B;AACtC,QAAIqQ,QAAJ,EAAcA,QAAQ,CAAC0f,KAAT,CAAe,IAAf,EAAqB+b,IAArB;AACf,GAtCqC;AAwCtC;AACA4Z,UAAQ,EAAE,UAASt6C,QAAT,EAAmBQ,OAAnB,EAA4B;AACpC,SAAKw4C,OAAL,CAAasB,QAAb,CAAsBt6C,QAAtB,EAAgCQ,OAAhC;AACA,WAAO,IAAP;AACD,GA5CqC;AA8CtC;AACA;AACA;AACAg7C,aAAW,EAAE,YAAW;AACtB,QAAI,CAAC,KAAKD,MAAV,EAAkB;AAClB,SAAKA,MAAL,GAAc/8C,gBAAM,CAAC,IAAD,EAAO,QAAP,CAApB;AACA,QAAI8G,KAAJ;AACA,UAAMi2C,MAAM,GAAGj9C,cAAI,CAAC,KAAKi9C,MAAN,CAAnB;;AACA,WAAO,CAACj2C,KAAK,GAAGi2C,MAAM,CAACrxC,GAAP,EAAT,KAA0B,IAAjC,EAAuC;AACrC,WAAK5E,KAAL,CAAWA,KAAX,EAAkB,KAAKi2C,MAAL,CAAYj2C,KAAZ,CAAlB;AACD;AACF,GAzDqC;AA2DtC;AACA;AACAw2C,gBAAc,EAAE,UAASx2C,KAAT,EAAgB;AAC9BA,SAAK,GAAGA,KAAK,CAAC3K,OAAN,CAAcihD,YAAd,EAA4B,MAA5B,EACLjhD,OADK,CACG8gD,aADH,EACkB,SADlB,EAEL9gD,OAFK,CAEG+gD,UAFH,EAEe,UAAS1uC,KAAT,EAAgBivC,QAAhB,EAA0B;AAC7C,aAAOA,QAAQ,GAAGjvC,KAAH,GAAW,UAA1B;AACD,KAJK,EAKLrS,OALK,CAKGghD,UALH,EAKe,UALf,CAAR;AAMA,WAAO,IAAI59B,MAAJ,CAAW,MAAMzY,KAAN,GAAc,sBAAzB,CAAP;AACD,GArEqC;AAuEtC;AACA;AACA;AACAy2C,oBAAkB,EAAE,UAASz2C,KAAT,EAAgBtF,QAAhB,EAA0B;AAC5C,UAAMywB,MAAM,GAAGnrB,KAAK,CAACwV,IAAN,CAAW9a,QAAX,EAAqBgT,KAArB,CAA2B,CAA3B,CAAf;AACA,WAAOyd,MAAM,CAAClyB,GAAP,CAAW,UAAS29C,KAAT,EAAgB3qD,CAAhB,EAAmB;AACnC;AACA,UAAIA,CAAC,KAAKk/B,MAAM,CAACj/B,MAAP,GAAgB,CAA1B,EAA6B,OAAO0qD,KAAK,IAAI,IAAhB;AAC7B,aAAOA,KAAK,GAAG/lC,kBAAkB,CAAC+lC,KAAD,CAArB,GAA+B,IAA3C;AACD,KAJM,CAAP;AAKD;AAjFqC,CAAxC,E;;;;;ACpC8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI,OAAG;AACP,SAAS,wBAAI;AACb;;AAEe,yDAAG,EAAC;;;ACtBkB;AACV;AACU;;AAErC;AACA,IAAI,wBAAe;;AAEnB;AACA,IAAI,kBAAS;AACb,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,wBAAe;AACvC;AACA,SAAS,kBAAQ;AACjB,MAAM,kBAAQ;AACd;AACA;AACA,uBAAuB,kBAAS,CAAC,kBAAQ;AACzC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,kBAAS;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,aAAG;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yDAAyD,aAAG;AAC5D;;AAEA;AACA,eAAe,aAAG;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,+DAAQ,EAAC;;;AC9LQ;AACM;AACT;AACK;AACF;;AAEhC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA,SAAS,SAAQ;AACjB,WAAW,OAAM;AACjB,8CAA8C,MAAK,CAAC,cAAI;AACxD,oCAAoC,MAAK;AACzC;;AAEe,0DAAU,EAAC;;;ACvBgB;AACJ;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,KAAK;AAChB,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,oBAAoB,EAAE;AACtD;AACA;AACA;AACA;AACA,aAAa,SAAQ,CAAC,WAAU;;AAEjB,2DAAM,EAAC;;;;;;ACvBtB;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGAzP,mBAAK,CAAC3R,MAAN,CAAaqhB,wBAAb,E,CAEA;;AACArnD,0BAAO,CAACiE,YAAR,CAAqB,SAArB,EAAgC,oBAAhC;AACAjE,0BAAO,CAACi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AACA;AACA;AACA;AACA;AAC+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD,2BAA2B,YAAY;AACvC,wBAAwB,cAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,aAAa;AACrB;AACA;AACA;AACA,IAAI,WAAW;AACf;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAe,mBAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,cAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,eAAe,GAAG15C,KAAE,CAAC,+BAAD,CAA1B;;AAEA,MAAM25C,WAAW,GAAI7qD,CA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CnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAI;AACb;AACA;AACA;AACA;AACA,uCAAuC,mBAAS;AAChD,SAAS,UAAS;AAClB;;AAEe,4DAAI,EAAC;;;ACrCkB;;AAEtC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,EAAE,SAAQ;AACV;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEe,0DAAU,EAAC;;;ACpBkB;AACF;AACI;AACX;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA,MAAM,8CAA8C;AACpD,MAAM;AACN;AACA;AACA,gCAAgC,kBAAkB,EAAE;AACpD;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAM;AACf,aAAa,iBAAO,eAAe,YAAW,GAAG,WAAU;AAC3D,0BAA0B,aAAY;AACtC;;AAEe,kEAAM,EAAC;;;AC/CtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,uDAAI,EAAC;;;ACtBiB;;AAErC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,8CAA8C,kBAAQ;AACtD;;AAEe,8DAAY,EAAC;;;ACbY;AACF;AACQ;AACX;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA,IAAI;AACJ;AACA;AACA;AACA,aAAa,iBAAO,eAAe,UAAS,GAAG,SAAQ;AACvD,0BAA0B,aAAY;AACtC;;AAEe,6DAAO,EAAC;;;ACxCe;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,SAAQ;AACjB;AACA,GAAG;AACH;;AAEe,0DAAU,EAAC;;;AClBgB;AACb;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAM;AACf,+BAA+B,WAAU,SAAS,cAAI;AACtD;;AAEe,kEAAM,EAAC;;;ACjCsB;AACD;AACN;AACE;AACN;;AAEjC;AACA,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAQ;AACjB,eAAe,qBAAW,4BAA4B,gBAAM;AAC5D,sCAAsC,mBAAS;;AAE/C;AACA;AACA,gBAAgB,kBAAS;AACzB;AACA,SAAS,kBAAQ;AACjB;AACA,mBAAmB,YAAW;AAC9B;;AAEe,wEAAQ,EAAC;;;ACpDgB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAS;AAC3B;;AAEe,6DAAO,EAAC;;;ACrBe;AACQ;AACV;AACD;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;AACA;AACA,MAAM,mBAAmB;AACzB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAG;AACZ,aAAa,iBAAO,eAAe,SAAQ,GAAG,QAAO;AACrD,0BAA0B,aAAY;AACtC;;AAEe,yDAAG,EAAC;;;ACpDkB;;AAErC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,kBAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,8DAAY,EAAC;;;AC/B5B;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEe,kDAAM,EAAC;;;ACbwB;AACZ;AACG;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAG;AACZ;AACA,MAAM,aAAY,QAAQ,kBAAQ,EAAE,OAAM;AAC1C;AACA;;AAEe,yDAAG,EAAC;;;AC5BnB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEe,kDAAM,EAAC;;;ACbwB;AACZ;AACG;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAY,QAAQ,kBAAQ,EAAE,OAAM;AAC1C;AACA;;AAEe,qDAAG,EAAC;;;AC5BnB;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,4DAAW,EAAC;;;ACzB3B;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEe,0DAAU,EAAC;;;ACtBkB;AACN;AACQ;AACJ;AACP;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA,IAAI,IAAI;AACR,UAAU,8BAA8B;AACxC;AACA;AACA,aAAa,iBAAO,eAAe,YAAW,GAAG,WAAU;AAC3D;;AAEA,0BAA0B,aAAY,uCAAuC,SAAQ;AACrF;;AAEe,2DAAM,EAAC;;;AClDtB;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,sEAAgB,EAAC;;;ACvBgB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA,mBAAmB,cAAa;;AAEjB,8DAAY,EAAC;;;ACdkB;AACjB;;AAE7B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA,mBAAmB,aAAY,mBAAmB,cAAI;AACtD;;AAEe,oEAAe,EAAC;;;ACfqB;AACF;;AAElD;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA,oBAAoB,eAAc,CAAC,gBAAe;;AAEnC,gEAAa,EAAC;;;ACbyB;AACN;AACF;AACJ;AACP;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,aAAa,iBAAO,eAAe,iBAAgB,GAAG,WAAU;AAChE;;AAEA,0BAA0B,aAAY,uCAAuC,cAAa;AAC1F;;AAEe,qEAAW,EAAC;;;ACnC3B;AACA,IAAI,sBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,2DAAM,EAAC;;;ACvCsB;AACF;AACI;AACX;AACF;;AAEjC;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM;AACN;AACA;AACA,gCAAgC,kBAAkB,EAAE;AACpD;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAM;AACf,aAAa,iBAAO,eAAe,YAAW,GAAG,WAAU;AAC3D,0BAA0B,gBAAM,CAAC,aAAY;AAC7C;;AAEe,kEAAM,EAAC;;;AC7CgB;AACC;;AAEvC;AACA,IAAI,oBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAe;AACvC;AACA,wCAAwC,mBAAS;AACjD,SAAS,SAAQ;AACjB;;AAEe,uDAAI,EAAC;;;ACvCpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEe,0DAAU,EAAC;;;ACjBgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA,wBAAwB,WAAU;AAClC;;AAEe,4DAAW,EAAC;;;ACdiB;AACX;;AAEjC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,EAAE;AACf;AACA;AACA,SAAS,YAAW,CAAC,gBAAM;AAC3B;;AAEe,0DAAU,EAAC;;;ACdkB;AACF;AACP;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,YAAW,GAAG,WAAU;AAC3D;AACA;;AAEe,2DAAM,EAAC;;;ACvBoB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,WAAU;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe,4DAAW,EAAC;;;AC3Ba;AACI;;AAE5C;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA,SAAS,YAAW,CAAC,UAAS;AAC9B;;AAEe,8DAAY,EAAC;;;ACdgB;AACX;;AAEjC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,MAAM;AACnB;AACA;AACA,SAAS,YAAW,CAAC,gBAAM;AAC3B;;AAEe,4DAAW,EAAC;;;ACdmB;AACF;AACT;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,W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aAAa;AAClD,iBAAiB;AACjB,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa,WAAW;AACxB;AACA,iBAAiB,YAAY;AAC7B;AACA,gCAAgC,mBAAmB;AACnD;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,aAAa,yBAAyB,aAAa;AACpE;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyB;;;ACpEmB;AAC5C;AACA;AACA,4BAA4B,uBAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE,eAAe,kEAAkE,EAAE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kCAAkC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACyB;;;AC/FqB;AACP;AACvC,MAAM,SAAI;AACV;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,gBAAgB,iBAAO,CAAC,UAAU;AAClC;AACA;AACA,4BAA4B,iBAAO;AACnC;AACA;AACA;AACA;AACA,SAAS,SAAI;AACb;AACA;AACsB;;;ACrBc;AACpC;AACA,WAAW,SAAI,eAAe,SAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACwB;;;AC/BkB;AACK;AAC/C,SAAS,qBAAU;AACnB,UAAU,aAAa;AACvB;AACA,kBAAkB,YAAY,CAAC,qBAAU;AACR;;;ACNG;AACK;AACC;AAC1C,mBAAmB,SAAI,eAAe,SAAI;AAC1C;AACA;AACA;AACA;AACA;AACA,QAAQ,qBAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA,SAAS;AACT,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;;;ACpDmB;AACE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,2CAA2C,SAAS;AACpD,gCAAgC,UAAU;AAC1C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACuB;;;AC7Ca;AACpC,gBAAgB,SAAI,eAAe,SAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;;;AClBkB;AACrC,oCAAoC,OAAO;AACpB;;;ACFyB;AACD;AAC/C;AACA,UAAU,mBAAmB;AAC7B;AACA,wBAAwB,YAAY;AACT;;;ACNS;AACpC,iBAAiB,SAAI,eAAe,SAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;AC1BgB;AACpC,mBAAmB,SAAI,eAAe,SAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;;;AChBe;AACrC,iCAAiC,OAAO;AACxC;AACA,CAAC;AACiB;;;ACJ0B;AACG;AAC/C,kBAAkB,SAAS;AAC3B,sBAAsB,aAAa;AACnC,0BAA0B,WAAW;AACrC,YAAY;AACZ;AAC8B;AACe;AACJ;AACa;AACf;AACI;AACN;AACM;AACR;AACC;AACQ;AACZ;;;AClBK;AACO;AAC5C,MAAM,gBAAQ;AACd;AACA;AACA;AACA,4BAA4B,uBAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,sBAAsB,kBAAkB;AACxC;AACuB;;;ACjEiB;AACX;AACW;AACxC,OAAO,UAAU,sCAAe,6BAAE,GAAG,OAAO,EAAE,CAAC,qBAAM,EAAE;AACvD,MAAM,mBAAO,GAAG,WAAW;AACgC;;;ACLqB;AACzD;AACU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFjC;AACA;AACA;AAEO,MAAMgnG,oBAAoB,GAAIh+D,CAAD,IAAO;AACvC,QAAMi+D,aAAa,GAAG52D,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,WAAjB,MAAkC,YAAxD;AACA,SAAOljB,aAAP,iCAE0C2oG,aAAa,GAAG,gCAAH,GAAsC,EAF7F,EAwBmBA,aAAa,GAAG3oG,aAAH,oCAAmD,EAxBnF,EA4BO2oG,aAAa,GAAG3oG,aAAH,kCACgB0qC,CAAC,CAACk+D,YADlB,IAGgK,EA/BpL;AAiCH,CAnCM;AAqCP72D,iBAAG,CAAConC,QAAJ,CAAaviE,MAAb,CAAoB,wBAApB,EAA8C8vE,qBAAS,CAACgiB,oBAAD,EAAuB;AAAC,kBAAgB;AAAjB,CAAvB,CAAvD,E;;;;;;;;;;;;;;;;;;;;;;;;ACzCA;AAEgBh+D,0DAAD,IAAO1qC,aAAP,CAAC,6BAGF0qC,CAAC,CAACm+D,iBAAF,GAAsB,EAAtB,GAA2B7oG,aAA3B,8BAHC,CAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;;AAGA,MAAM8oG,cAAc,GAAI9iF,OAAD,IAAa;AAChC,QAAM+iF,iBAAiB,GAAGntD,KAAE,CACxB,iEACA,yGADA,GAEA,+FAFA,GAGA,iFAJwB,CAA5B;;AAKA,QAAMqlD,YAAY,GAAGrlD,KAAE,CAAC,0BAAD,CAAvB;;AACA,SAAO57C,aAAP,+BAE8GgmB,OAF9G,EAG2Fi7E,YAH3F,EAM4B8H,iBAN5B;AASH,CAhBD;;AAkBA,MAAMC,cAAc,GAAG,MAAM;AACzB,QAAMC,aAAa,GAAGrtD,KAAE,CAAC,UAAD,CAAxB;;AACA,SAAO57C,aAAP,gCAE+CipG,aAF/C,EAGoIA,aAHpI;AAMH,CARD;;AAUA,MAAMC,aAAa,GAAG,MAAM;AACxB,QAAMC,mBAAmB,GAAGvtD,KAAE,CAAC,mBAAD,CAA9B;;AACA,QAAMwtD,oBAAoB,GAAGxtD,KAAE,CAAC,4BAAD,CAA/B;;AACA,SAAO57C,aAAP,gCAEaopG,oBAFb,EAGyFD,mBAHzF;AAMH,CATD;;AAWA,MAAME,kBAAkB,GAAG,MAAM;AAC7B,SAAOz3D,sBAAS,CAAC03D,kBAAV,IACH,CAACv3D,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,CADE,IAEH0uB,sBAAS,CAAC2S,SAAV,CAAoBvvB,OAApB,CAA4B,mBAA5B,EAAiDmM,OAAjD,CAAyDyQ,sBAAzD,CAFJ;AAGH,CAJD;;AAOA,MAAM23D,WAAW,GAAI7+D,CAAD,IAAO;AACvB,QAAM8+D,UAAU,GAAG5tD,KAAE,CAAC,QAAD,CAArB;;AACA,QAAM6tD,iBAAiB,GAAG7tD,KAAE,CAAC,cAAD,CAA5B;;AACA,SAAO57C,aAAP,gCAE0CypG,iBAF1C,EAIyB13D,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,IAAiC,IAAjC,GAAwC,KAJjE,EAS2BwnB,CAAC,CAACg/D,oBAT7B,EAWQh/D,CAAC,CAAC+W,cAAF,KAAqB/W,CAAC,CAACoY,QAAxB,GAAoCkmD,cAAc,EAAlD,GAAuD,EAX9D,EAYOt+D,CAAC,CAACi/D,mBAAF,GAAwBb,cAAc,CAACp+D,CAAC,CAACi/D,mBAAF,KAA0B,KAA1B,GAAkC,KAAlC,GAA0C,IAA3C,CAAtC,GAAyF,EAZhG,EAc8DH,UAd9D,EAgBOH,kBAAkB,KAAKH,aAAa,CAACx+D,CAAD,CAAlB,GAAwB,EAhBjD;AAkBH,CArBD;;AAwBA,MAAMk/D,WAAW,GAAIl/D,CAAD,IAAO;AACvB,QAAMm/D,iBAAiB,GAAGjuD,KAAE,CAAC,cAAD,CAA5B;;AACA,QAAMkuD,eAAe,GAAGluD,KAAE,CAAC,kCAAD,CAA1B;;AACA,SAAO57C,aAAP,gCACQ0qC,CAAC,CAAC+W,cAAF,IAAoB/W,CAAC,CAACqY,KAAtB,IAA+BrY,CAAC,CAAC+W,cAAF,IAAoB/W,CAAC,CAACoY,QAAtD,GAAkEymD,WAAW,CAAC7+D,CAAD,CAA7E,GAAmF,EAD1F,EAEOA,CAAC,CAAC+W,cAAF,IAAoB/W,CAAC,CAACkS,SAAtB,GAAkC58C,aAAlC,gCAAwG8pG,eAAxG,IAA8H,EAFrI,EAGOp/D,CAAC,CAAC+W,cAAF,IAAoB/W,CAAC,CAACuY,OAAtB,GAAgCjjD,aAAhC,gCAA0C6pG,iBAA1C,IAAoE,EAH3E;AAKH,CARD;;AAWgBn/D,2DAAD,IAAO1qC,aAAP,CAAC,+BAG6B,CAAC0qC,CAAC,CAACq/D,qBAAH,GAA2B,QAA3B,GAAsCr/D,CAAC,CAACs/D,mBAHtE,EAI4Bt/D,CAAC,CAACq/D,qBAJ9B,EAK2B,CAACr/D,CAAC,CAACu/D,qBAAH,GAA2B,QAA3B,GAAsC,EALjE,EAKyEv/D,CAAC,CAACu/D,qBAL3E,EAOHr4D,sBAAS,CAACkL,iBAAV,CAA4BpS,CAAC,CAACw/D,iBAA9B,MAAqD,YAAtD,GAAsEhX,OAAW,CAAC;AAAC,aAAW;AAAZ,CAAD,CAAjF,GAAiH0W,WAAW,CAACl/D,CAAD,CAPxH,CAAf,E;;ACvFA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM;AAAE3wC,SAAF;AAAW23C,OAAKA;AAAhB,IAAqBzc,QAAQ,CAAC20B,GAApC;AACA,MAAMphB,qBAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;AAEA,MAAM4xG,2BAA2B,GAAG;AACjC,WAAS,OADwB;AAEjC,gBAAc,MAFmB;AAGjC,wBAAsB,OAHW;AAIjC,oBAAkB,MAJe;AAKjC,4BAA0B,OALO;AAMjC,eAAa,MANoB;AAOjC,kBAAgB,OAPiB;AAQjC,mBAAiB,MARgB;AASjC,cAAY,MATqB;AAUjC,cAAY,MAVqB;AAWjC,kBAAgB;AAXiB,CAApC;AAcA,MAAMC,wBAAwB,GAAG;AAC7B,KAAG,OAD0B;AAE7B,KAAG,YAF0B;AAG7B,KAAG,oBAH0B;AAI7B,KAAG,gBAJ0B;AAK7B,KAAG,wBAL0B;AAM7B,KAAG,WAN0B;AAO7B,KAAG,cAP0B;AAQ7B,KAAG,eAR0B;AAS7B,KAAG,UAT0B;AAU7B,KAAG,UAV0B;AAW9B,MAAI;AAX0B,CAAjC;AAcA,MAAMC,mBAAmB,GAAG,CACxB,CADwB,EACrB;AACH,CAFwB,EAErB;AACH,CAHwB,EAGrB;AACH,CAJwB,EAIrB;AACH,CALwB,EAKrB;AACH,CANwB,EAMrB;AACJ,EAPyB,CAOrB;AAPqB,CAA5B;AAUAp1E,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,qBAArB,EAA4C;AACxC;;;;;;;;;;AAUAwL,cAAY,EAAE,CAAC,gBAAD,EAAmB,oBAAnB,EAAyC,eAAzC,EAA0D,qBAA1D,EAAiF,mBAAjF,CAX0B;;AAcxCS,SAAO,CAAEyQ,SAAF,EAAa;AAChB,WAAO,CAACA,SAAS,CAACG,GAAV,CAAc3c,QAAd,CAAuBlS,GAAvB,CAA2B,WAA3B,CAAR;AACH,GAhBuC;;AAmBxCmd,WAAS,EAAE;AACP;AACA;AACA;AACA;AACA;AAEAk7B,aAAS,EAAE;AACP99B,WAAK,CAAE3jC,KAAF,EAAS2L,OAAT,EAAkB;AACnB,cAAM;AAAEmsC;AAAF,YAAgB,KAAK/R,SAA3B;;AACA,YAAI/lC,KAAK,IAAIA,KAAK,CAACyL,EAAN,IAAY,YAAzB,EAAuC;AACnC,iBAAO,IAAIqsC,SAAS,CAAC04D,UAAd,CAAyBxwG,KAAzB,EAAgC2L,OAAhC,CAAP;AACH,SAFD,MAEO;AACH,iBAAO,KAAKo6B,SAAL,CAAepC,KAAf,CAAqB7T,KAArB,CAA2B,IAA3B,EAAiC3qB,SAAjC,CAAP;AACH;AACJ;;AARM;AAPJ,GAnB6B;;AAuCxCk2B,YAAU,GAAI;AACV;;;AAGA4c,qBAAG,CAAC3c,QAAJ,CAAa2K,MAAb,CAAoB;AAChBwqE,kBAAY,EAAE,IADE;AAEhBC,+BAAyB,EAAE,IAFX;AAGhBC,oBAAc,EAAElrG,SAHA;AAIhBmrG,mBAAa,EAAEnrG,SAJC;AAKhBorG,gCAA0B,EAAE,KALZ;AAMhB9B,uBAAiB,EAAE;AANH,KAApB;AASA92D,qBAAG,CAAC6Q,QAAJ,CAAa1tB,GAAb,CAAiB,uBAAjB;AAGA0c,0BAAS,CAAC04D,UAAV,GAAuB14D,sBAAS,CAACma,OAAV,CAAkBhsB,MAAlB,CAAyB;AAE5C2G,cAAQ,GAAI;AACR,eAAO;AACH,wBAAc,KADX;AAEH,oBAAU,YAFP;AAGH,wBAAcnnC,SAHX;AAIH,oBAAU,CAACwyC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,4BAAjB,CAJR;AAKH,wBAAc,CALX;AAMH,yBAAe,KAAKA,GAAL,CAAS,aAAT,KAA4B,IAAIzc,IAAJ,EAAD,CAAaC,OAAb,EANvC;AAOH,kBAAQkrC,sBAAS,CAACoS,eAPf;AAQH,iBAAO;AARJ,SAAP;AAUH,OAb2C;;AAe5C7uB,gBAAU,GAAI;AACV,YAAI,KAAKjS,GAAL,CAAS,IAAT,MAAmB,YAAvB,EAAqC;AACjC,eAAK2b,GAAL,CAAS;AAAC,2BAAe6S,yBAAK,CAAC,CAAD,CAAL,CAASnwB,OAAT;AAAhB,WAAT;AACH,SAFD,MAEO;AACHqwB,gCAAS,CAACma,OAAV,CAAkBjzD,SAAlB,CAA4Bq8B,UAA5B,CAAuCvL,KAAvC,CAA6C,IAA7C,EAAmD3qB,SAAnD;AACH;AACJ,OArB2C;;AAuB5CkpC,cAAQ,CAAEruC,KAAF,EAAS;AACb,YAAIA,KAAK,CAACwL,IAAN,KAAessC,sBAAS,CAACoS,eAA7B,EAA8C;AAC1C,cAAIjS,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,WAAjB,MAAkC,UAAlC,IAAgD6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,WAAjB,CAApD,EAAoF;AAChF,mBAAO,+CAAP;AACH;;AACD;AACH;;AACD,eAAO0uB,sBAAS,CAACma,OAAV,CAAkBjzD,SAAlB,CAA4BqvC,QAA5B,CAAqCnvC,IAArC,CAA0C,IAA1C,EAAgDc,KAAhD,CAAP;AACH,OA/B2C;;AAiC5Cg4D,eAAS,CAAEC,KAAF,EAAS;AACd,YAAI,CAACA,KAAD,IAAU,KAAK7uC,GAAL,CAAS,IAAT,MAAmB,YAAjC,EAA+C;AAC5C;AACA,iBAAO,IAAP;AACF;;AACD,eAAO0uB,sBAAS,CAACma,OAAV,CAAkBjzD,SAAlB,CAA4Bg5D,SAA5B,CAAsC94D,IAAtC,CAA2C,IAA3C,EAAiD+4D,KAAjD,CAAP;AACH,OAvC2C;;AAyC5C3D,oBAAc,EAAE,SAASA,cAAT,GAA2B,CAAE;AAzCD,KAAzB,CAAvB;;AA6CA,aAASw8C,aAAT,GAA0B;AACtB,YAAMj9F,CAAC,GAAG,IAAIikC,sBAAS,CAAC04D,UAAd,CAAyB;AAAC,cAAM;AAAP,OAAzB,CAAV;AACA,aAAO14D,sBAAS,CAACogB,SAAV,CAAoB98B,GAApB,CAAwBvnB,CAAxB,CAAP;AACH;;AAGDikC,0BAAS,CAACi5D,cAAV,GAA2Bj5D,sBAAS,CAAC0wD,WAAV,CAAsBviE,MAAtB,CAA6B;AACpDrhC,aAAO,EAAE,KAD2C;AAEpDsgF,eAAS,EAAE,SAFyC;AAGpDz5E,QAAE,EAAE,YAHgD;AAIpDu+B,YAAM,EAAE;AACJ,wCAAgC;AAD5B,OAJ4C;;AAQpD3O,gBAAU,GAAI;AACV,YAAIyc,sBAAS,CAACk5D,gBAAV,KAA+BvrG,SAAnC,EAA8C;AAC1CqyC,gCAAS,CAACk5D,gBAAV,GAA6B,IAAIl5D,sBAAS,CAACm5D,gBAAd,EAA7B;AACH;;AACDn5D,8BAAS,CAACk5D,gBAAV,CAA2BrsG,EAA3B,CAA8BqhF,qBAA9B,CAAoD,UAApD,EAAgE,KAAKrhF,EAArE;;AAEA,aAAK+lC,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,kBAA1B,EAA8C,KAAKye,WAAnD;AACA,aAAK1X,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,SAA1B,EAAqC,KAAKulD,IAA1C;AACA,aAAKx+C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,MAA1B,EAAkC,KAAKulD,IAAvC;AACA,aAAKx+C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,MAA1B,EAAkC,KAAK4Y,IAAvC;AACA,aAAK7R,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,eAA1B,EAA2C,KAAKutE,iBAAhD;AACA,aAAKhtB,MAAL;AACA;;;;;;;;;AAQAjsC,yBAAG,CAAClP,OAAJ,CAAY,uBAAZ,EAAqC,IAArC;AACH,OA7BmD;;AA+BpDm7C,YAAM,GAAI;AACN,YAAI,KAAKvgD,KAAL,CAAWva,GAAX,CAAe,WAAf,CAAJ,EAAiC;AAC7B,cAAI,KAAKua,KAAL,CAAWva,GAAX,CAAe,QAAf,MAA6B3jB,SAAjC,EAA4C;AACxC,iBAAKk+B,KAAL,CAAWoB,GAAX,CAAe,QAAf,EAAyB,CAACkT,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,4BAAjB,CAA1B;AACH;AACJ;;AAEF,cAAM+nF,UAAU,GAAGC,oBAAc,CAAC;AAC7B,+BAAqBn5D,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,mBAAjB,CADQ;AAE5B,aAAG,KAAKua,KAAL,CAAWmB,MAAX;AAFyB,SAAD,CAAjC;AAICo/C,qBAAM,CAACitB,UAAD,EAAa,KAAKxsG,EAAlB,CAAN;;AAEA,YAAI,CAAC,KAAKg/B,KAAL,CAAWva,GAAX,CAAe,QAAf,CAAL,EAA+B;AAC3B,eAAKmzB,IAAL;AACH,SAFD,MAEO;AACH,eAAK2sC,IAAL;AACH;;AAED,cAAMhwE,UAAU,GAAG,CAAA4+B,sBAAS,SAAT,IAAAA,sBAAS,WAAT,YAAAA,sBAAS,CAAE5+B,UAAX,KAAyB,EAA5C;;AACA,YAAI,CAACA,UAAU,CAAClL,SAAZ,IAAyB,CAACkL,UAAU,CAACnL,aAArC,IAAsDmL,UAAU,CAACjL,aAArE,EAAoF;AAChF,eAAKojG,gBAAL;AACH,SAFD,MAEO,IAAI,KAAK1tE,KAAL,CAAWva,GAAX,CAAe,WAAf,CAAJ,EAAiC;AACpC,eAAKkoF,oBAAL;AACH;;AACD,eAAO,IAAP;AACH,OAzDmD;;AA2DpDlvD,iBAAW,GAAI;AACX,YAAI,KAAKze,KAAL,CAAWva,GAAX,CAAe,WAAf,CAAJ,EAAiC;AAC7B,eAAK86D,MAAL;AACH;AACJ,OA/DmD;;AAiEpDmtB,sBAAgB,GAAI;AAChB,aAAK1sG,EAAL,CAAQsiF,SAAR,CAAkB7rD,GAAlB,CAAsB,YAAtB;;AACA,YAAI,KAAKm2E,UAAT,EAAqB;AACjB,eAAKA,UAAL,CAAgBrtB,MAAhB;AACH,SAFD,MAEO;AACH,eAAKqtB,UAAL,GAAkB,IAAIz5D,sBAAS,CAAC05D,UAAd,CAAyB;AACvC,qBAAS,IAAI15D,sBAAS,CAAC25D,eAAd;AAD8B,WAAzB,CAAlB;AAGA,gBAAMC,KAAK,GAAG,KAAK/sG,EAAL,CAAQkuB,aAAR,CAAsB,mBAAtB,CAAd;AACA6+E,eAAK,CAACtmG,SAAN,GAAkB,EAAlB;AACAsmG,eAAK,CAACrsG,WAAN,CAAkB,KAAKksG,UAAL,CAAgBrtB,MAAhB,GAAyBv/E,EAA3C;AACH;;AACD,aAAK4sG,UAAL,CAAgBI,YAAhB;AACA,eAAO,IAAP;AACH,OA/EmD;;AAiFpD;;;;;;AAMAL,0BAAoB,GAAI;AACpB,YAAI,KAAKC,UAAT,EAAqB;AACjB,eAAKA,UAAL,CAAgBp0D,MAAhB;AACA,iBAAO,KAAKo0D,UAAZ;AACH;;AACD,YAAI,KAAKK,eAAL,IAAwBljE,qBAAC,CAAC4jD,SAAF,CAAY,KAAKsf,eAAL,CAAqBjtG,EAAjC,CAA5B,EAAkE;AAC9D;AACH;;AACD,aAAKA,EAAL,CAAQsiF,SAAR,CAAkB9pC,MAAlB,CAAyB,YAAzB;AACA,aAAKy0D,eAAL,GAAuB,IAAI95D,sBAAS,CAAC+5D,cAAd,EAAvB;AACA,aAAKltG,EAAL,CAAQkuB,aAAR,CAAsB,mBAAtB,EAA2CmzD,qBAA3C,CACI,YADJ,EAEI,KAAK4rB,eAAL,CAAqBjtG,EAFzB;AAIH,OArGmD;;AAuGpD,YAAMypB,KAAN,CAAa4O,EAAb,EAAiB;AACb,YAAIA,EAAE,IAAIA,EAAE,CAACglD,cAAb,EAA6B;AAAEhlD,YAAE,CAACglD,cAAH;AAAsB;;AACrD,YAAI,CAAAhlD,EAAE,SAAF,IAAAA,EAAE,WAAF,YAAAA,EAAE,CAAEj9B,IAAJ,MAAa,mBAAb,KACK+3C,sBAAS,CAAC0K,mBAAV,KAAkC1K,sBAAS,CAACiL,MAA5C,IACA9K,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,4BAAjB,CAFL,CAAJ,EAE0D;AACtD;AACH;;AACD,YAAI6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,mBAAjB,CAAJ,EAA2C;AACvC;AACH;;AACD,cAAMlQ,UAAU,GAAG,CAAA4+B,sBAAS,SAAT,IAAAA,sBAAS,WAAT,YAAAA,sBAAS,CAAE5+B,UAAX,KAAyB,EAA5C;;AACA,YAAIA,UAAU,CAAClL,SAAX,IAAwB,CAACkL,UAAU,CAACjL,aAAxC,EAAuD;AACnD,gBAAM,IAAIi0B,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACnC,mBAAO,KAAKuB,KAAL,CAAWkB,IAAX,CACH;AAAC,wBAAU;AAAX,aADG,EAEH;AAAC,yBAAW1C,OAAZ;AAAqB,uBAASC,MAA9B;AAAsC,sBAAQ;AAA9C,aAFG,CAAP;AAIH,WALK,CAAN;AAMH,SAPD,MAOO;AACH,eAAKuB,KAAL,CAAWoF,OAAX,CAAmB,MAAnB;AACH;;AACDkP,yBAAG,CAAClP,OAAJ,CAAY,kBAAZ,EAAgC,IAAhC;AACA,eAAO,IAAP;AACH,OA9HmD;;AAgIpDmoE,uBAAiB,GAAI;AACjB,YAAI,KAAKvtE,KAAL,CAAWva,GAAX,CAAe,QAAf,CAAJ,EAA8B;AAC1B,eAAK8/D,IAAL;AACH,SAFD,MAEO;AACH,eAAK3sC,IAAL;AACH;AACJ,OAtImD;;AAwIpD2sC,UAAI,CAAE94E,QAAF,EAAY;AACZ,YAAI6nC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,mBAAjB,CAAJ,EAA2C;AACvC;AACH;;AACDslB,6BAAC,CAAC85C,QAAF,CAAW,QAAX,EAAqB,KAAK7jF,EAA1B;AACAszC,yBAAG,CAAClP,OAAJ,CAAY,eAAZ,EAA6B,IAA7B;;AAEA,YAAI,CAACkP,iBAAG,CAAC/+B,UAAJ,CAAelL,SAAf,EAAL,EAAiC;AAC7B8pC,gCAAS,CAACk5D,gBAAV,CAA2B9sB,MAA3B;AACH;;AACDpsC,8BAAS,CAACk5D,gBAAV,CAA2Bz0D,IAA3B,CAAgCnsC,QAAhC;;AACA,eAAO,IAAP;AACH,OApJmD;;AAsJpD0hG,8BAAwB,GAAI;AACxB,aAAKnuE,KAAL,CAAWoB,GAAX,CAAe,QAAf,EAAyB,KAAzB;AACA,aAAKpgC,EAAL,CAAQsiF,SAAR,CAAkB9pC,MAAlB,CAAyB,QAAzB;AACA;;;;;;AAKAlF,yBAAG,CAAClP,OAAJ,CAAY,kBAAZ,EAAgC,IAAhC;AACH,OA/JmD;;AAiKpDwT,UAAI,GAAI;AACJzE,8BAAS,CAACk5D,gBAAV,CAA2B9nB,IAA3B,CAAgC,MAAM,KAAK4oB,wBAAL,EAAtC;;AACA,eAAO,IAAP;AACH,OApKmD;;AAsKpDC,sBAAgB,GAAI;AAChB;AACH;;AAxKmD,KAA7B,CAA3B;AA2KAj6D,0BAAS,CAAC25D,eAAV,GAA4BllE,WAAK,CAACtG,MAAN,CAAa;AACrC2G,cAAQ,EAAE;AACN;AACA;AACA,kBAAU;AAHJ;AAD2B,KAAb,CAA5B;AAQAkL,0BAAS,CAAC05D,UAAV,GAAuB5tB,IAAI,CAAC39C,MAAL,CAAY;AAC/BrhC,aAAO,EAAE,KADsB;AAE/B6G,QAAE,EAAE,sBAF2B;AAG/By5E,eAAS,EAAE,wCAHoB;AAI/Bl7C,YAAM,EAAE;AACJ,sCAA8B,cAD1B;AAEJ,wBAAgB;AAFZ,OAJuB;;AAS/B3O,gBAAU,GAAI;AACV,aAAKqP,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,QAA1B,EAAoC,KAAKugD,MAAzC;AACA,aAAKx5C,QAAL,CAAcoN,sBAAS,CAAC4K,YAAxB,EAAsC,QAAtC,EAAgD,KAAKwhC,MAArD;AACA,aAAKA,MAAL;AACH,OAb8B;;AAe/BE,YAAM,GAAI;AACN,cAAMgsB,iBAAiB,GAAGt4D,sBAAS,CAAC4K,YAAV,CAAuBt5B,GAAvB,CAA2B,mBAA3B,CAA1B;;AACA,YAAI4oF,cAAJ,EAAoBC,aAApB;;AACA,YAAI1B,mBAAmB,CAACn0E,QAApB,CAA6Bg0E,iBAA7B,CAAJ,EAAqD;AACjD6B,uBAAa,GAAG3B,wBAAwB,CAACF,iBAAD,CAAxC;AACA4B,wBAAc,GAAG3B,2BAA2B,CAAC4B,aAAD,CAA5C;AACH;;AACD,eAAOC,qBAAe,CAClBnzG,MAAM,CAACsmC,MAAP,CAAc,KAAK1B,KAAL,CAAWmB,MAAX,EAAd,EAAmC;AAC/B,uBAAagT,sBADkB;AAE/B,uBAAaA,sBAAS,CAACgL,SAFQ;AAG/B,sBAAYhL,sBAAS,CAACkR,QAHS;AAI/B,mBAASlR,sBAAS,CAACmR,KAJY;AAK/B,qBAAWnR,sBAAS,CAACqR,OALU;AAM/B,wBAAclR,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,CANiB;AAO/B,4BAAkB6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,gBAAjB,CAPa;AAQ/B,+BAAqBgnF,iBARU;AAS/B,iCAAuB4B,cATQ;AAU/B,mCAAyBC,aAVM;AAW/B,mCAAyBn6D,sBAAS,CAAC4K,YAAV,CAAuBt5B,GAAvB,CAA2B,SAA3B,CAXM;AAY/B,kCAAwB,CAAC6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,eAAjB,KAAqC6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,gBAAjB,CAAtC,KACA04B,KAAE,CAAC,UAAD,CADF,IACkBA,KAAE,CAAC,aAAD,CAbb;AAc/B,iCAAuB7J,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,2BAAjB;AAdQ,SAAnC,CADkB,CAAtB;AAkBH,OAxC8B;;AA0C/BuoF,kBAAY,GAAI;AACZnoG,aAAK,CAACkC,IAAN,CAAW,KAAK/G,EAAL,CAAQ21D,gBAAR,CAAyB,cAAzB,CAAX,EAAqD1mD,OAArD,CAA6DjP,EAAE,IAAI;AAC/D,cAAIsjF,0BAAS,CAACkqB,OAAd,CAAsBxtG,EAAtB,EAA0B;AACtB,uBAAWszC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,WAAjB,MAAkC,QAAlC,IAA8C,OAA9C,IAAyD,OAD9C;AAEtB,2BAAe6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,WAAjB,MAAkC,QAAlC,IAA8C,IAA9C,IAAsD,KAF/C;AAGtB,yBAAa,KAAKzkB,EAAL,CAAQqkE,aAAR,CAAsBA,aAAtB,CAAoCA;AAH3B,WAA1B;AAKH,SAND;AAOH,OAlD8B;;AAoD/B36B,cAAQ,GAAI;AACR,cAAMosB,IAAI,GAAG,KAAK91D,EAAL,CAAQkuB,aAAR,CAAsB,MAAtB,CAAb;AACA,cAAMu/E,WAAW,GAAG33C,IAAI,CAAC5nC,aAAL,CAAmB,iBAAnB,CAApB;;AACA,YAAIu/E,WAAW,CAACzyG,KAAZ,IACI,CAACs4C,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,eAAjB,CADL,IAEI,CAAC6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,gBAAjB,CAFL,IAGI,CAACslB,qBAAC,CAACc,UAAF,CAAa4iE,WAAW,CAACzyG,KAAzB,CAHT,EAG0C;AACtCyyG,qBAAW,CAACC,iBAAZ,CAA8BvwD,KAAE,CAAC,mCAAD,CAAhC;AACA,iBAAO,KAAP;AACH;;AACDswD,mBAAW,CAACC,iBAAZ,CAA8B,EAA9B;AACA,eAAO,IAAP;AACH,OAhE8B;;AAkE/B;;;;AAIA/7F,kBAAY,CAAE0mB,EAAF,EAAM;AACd,YAAIA,EAAE,IAAIA,EAAE,CAACglD,cAAb,EAA6B;AAAEhlD,YAAE,CAACglD,cAAH;AAAsB;;AACrD,YAAI/pC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,gBAAjB,MAAuC0uB,sBAAS,CAACgL,SAArD,EAAgE;AAC5D,iBAAO,KAAKzyC,OAAL,CAAaynC,sBAAS,CAAClwC,GAAvB,EAA4B,IAA5B,CAAP;AACH;;AACD,YAAI,CAAC,KAAKymC,QAAL,EAAL,EAAsB;AAAE;AAAS;;AAEjC,cAAM26C,SAAS,GAAG,IAAIC,QAAJ,CAAajsD,EAAE,CAAC8kD,MAAhB,CAAlB;;AACAhqC,8BAAS,CAACvV,MAAV,CAAiBsC,IAAjB,CAAsB;AAAC,qBAAWmkD,SAAS,CAAC5/D,GAAV,CAAc,SAAd,KAA4B,IAA5B,IAAoC;AAAhD,SAAtB;;AAEA,YAAIxhB,GAAG,GAAGohF,SAAS,CAAC5/D,GAAV,CAAc,KAAd,CAAV;;AACA,YAAI6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,eAAjB,CAAJ,EAAuC;AACnC,gBAAMkpF,SAAS,GAAG,MAAMr6D,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,eAAjB,CAAxB;;AACA,cAAIxhB,GAAG,CAACy0B,QAAJ,CAAai2E,SAAb,CAAJ,EAA6B;AACzB1qG,eAAG,GAAGA,GAAG,CAACmS,MAAJ,CAAW,CAAX,EAAcnS,GAAG,CAACjL,MAAJ,GAAa21G,SAAS,CAAC31G,MAArC,CAAN;AACH;;AACDiL,aAAG,GAAG3H,2BAAO,CAACwH,UAAR,CAAmBG,GAAnB,IAA0B0qG,SAAhC;AACH,SAND,MAMO,IAAIr6D,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,gBAAjB,KAAsC,CAACxhB,GAAG,CAACw0B,QAAJ,CAAa,GAAb,CAA3C,EAA8D;AACjEx0B,aAAG,GAAGA,GAAG,GAAG,GAAN,GAAYqwC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,gBAAjB,CAAlB;AACH;;AACF,aAAK/Y,OAAL,CAAazI,GAAb,EAAkBohF,SAAS,CAAC5/D,GAAV,CAAc,UAAd,CAAlB;AACF,OA3F8B;;AA6F/B/Y,aAAO,CAAEzI,GAAF,EAAOuX,QAAP,EAAiB;AACpB,YAAI,CAAC,gBAAD,EAAmB,mBAAnB,EAAwCid,QAAxC,CAAiD0b,sBAAS,CAACsS,MAAV,CAAiBjG,OAAjB,CAAyBa,WAAzB,EAAjD,CAAJ,EAA8F;AAC1FlN,gCAAS,CAACsS,MAAV,CAAiB3E,QAAjB,CAA0B,EAA1B,EAA8B;AAAC,uBAAW;AAAZ,WAA9B;AACH;;AACD3N,8BAAS,CAAC5+B,UAAV,IAAwB4+B,sBAAS,CAAC5+B,UAAV,CAAqBrM,KAArB,EAAxB;AACAorC,yBAAG,CAACnsC,IAAJ,CAASq2C,KAAT,CAAev6C,GAAf,EAAoBuX,QAApB;AACH;;AAnG8B,KAAZ,CAAvB;AAuGA24B,0BAAS,CAAC+5D,cAAV,GAA2BjuB,IAAI,CAAC39C,MAAL,CAAY;AACnCrhC,aAAO,EAAE,KAD0B;AAEnCsgF,eAAS,EAAE,iBAFwB;;AAInC7pD,gBAAU,GAAI;AACV;;;;;;AAMA4c,yBAAG,CAAClP,OAAJ,CAAY,2BAAZ,EAAyC,IAAzC;AACH;;AAZkC,KAAZ,CAA3B;AAgBA+O,0BAAS,CAACm5D,gBAAV,GAA6BrtB,IAAI,CAAC39C,MAAL,CAAY;AACrCrhC,aAAO,EAAE,GAD4B;AAErCsgF,eAAS,EAAE,0BAF0B;AAGrCz5E,QAAE,EAAE,mBAHiC;AAIrCu+B,YAAM,EAAE;AACJ,iBAAS;AADL,OAJ6B;AAOrCtoC,gBAAU,EAAE;AACR,gBAAQ;AADA,OAPyB;;AAWrC25B,gBAAU,GAAI;AACVyc,8BAAS,CAAC0tC,YAAV,CAAuBogB,eAAvB,CAAuC,KAAK1hB,MAAL,GAAcv/E,EAArD;;AACAszC,yBAAG,CAAC1B,SAAJ,CAAc,aAAd,EACKjZ,IADL,CACU,KAAK4mD,MAAL,CAAY3vE,IAAZ,CAAiB,IAAjB,CADV,EAEK8uB,KAFL,CAEW97B,CAAC,IAAIsB,YAAG,CAACP,KAAJ,CAAUf,CAAV,CAFhB;AAGH,OAhBoC;;AAkBrC28E,YAAM,GAAI;AACN;AACA;AACA;AACA;AACA,aAAKv/E,EAAL,CAAQyG,SAAR,GAAoBmnG,2BAAqB,CAAC;AACtC,0BAAgBt6D,iBAAG,CAAC/+B,UAAJ,CAAelL,SAAf,KAA6B8zC,KAAE,CAAC,eAAD,CAA/B,GAAmDA,KAAE,CAAC,aAAD;AAD/B,SAAD,CAAzC;AAGA,eAAO,IAAP;AACH,OA3BoC;;AA6BrConC,UAAI,CAAE94E,QAAF,EAAY;AACZ,YAAIs+B,qBAAC,CAAC4jD,SAAF,CAAY,KAAK3tF,EAAjB,CAAJ,EAA0B;AACtB+pC,+BAAC,CAAC4hD,WAAF,CAAc,KAAK3rF,EAAnB;AACAyL,kBAAQ;AACX;AACJ,OAlCoC;;AAoCrCmsC,UAAI,CAAEnsC,QAAF,EAAY;AACZ,YAAI,CAACs+B,qBAAC,CAAC4jD,SAAF,CAAY,KAAK3tF,EAAjB,CAAL,EAA2B;AACvB+pC,+BAAC,CAAC8jD,MAAF,CAAS,KAAK7tF,EAAd,EAAkByL,QAAlB;AACH;AACJ,OAxCoC;;AA0CrCk6F,oBAAc,GAAI;AACd,YAAIkI,UAAU,GAAG16D,sBAAS,CAACogB,SAAV,CAAoB9uC,GAApB,CAAwB,YAAxB,CAAjB;;AACA,YAAI,CAACopF,UAAL,EAAiB;AACbA,oBAAU,GAAG1B,aAAa,EAA1B;AACH;;AACD,YAAI74D,iBAAG,CAAC/+B,UAAJ,CAAelL,SAAf,EAAJ,EAAgC;AAC5BwkG,oBAAU,CAAC3tE,IAAX,CAAgB;AAAC,sBAAU;AAAX,WAAhB;AACH,SAFD,MAEO;AACH2tE,oBAAU,CAACzpE,OAAX,CAAmB,MAAnB;AACH;AACJ,OApDoC;;AAsDrC2kD,aAAO,CAAEnmF,CAAF,EAAK;AACRA,SAAC,CAACy6E,cAAF;;AACA,YAAItzC,qBAAC,CAAC4jD,SAAF,CAAYx6C,sBAAS,CAACptC,IAAV,CAAemoB,aAAf,CAA6B,aAA7B,CAAZ,CAAJ,EAA8D;AAC1D,gBAAM2/E,UAAU,GAAG16D,sBAAS,CAACogB,SAAV,CAAoB9uC,GAApB,CAAwB,YAAxB,CAAnB;;AACA,cAAI6uB,iBAAG,CAAC/+B,UAAJ,CAAelL,SAAnB,EAA8B;AAC1BwkG,sBAAU,CAAC3tE,IAAX,CAAgB;AAAC4tE,oBAAM,EAAE;AAAT,aAAhB;AACH,WAFD,MAEO;AACHD,sBAAU,CAACzpE,OAAX,CAAmB,MAAnB;AACH;AACJ,SAPD,MAOO;AACH,eAAKuhE,cAAL;AACH;AACJ;;AAlEoC,KAAZ,CAA7B;AAsEA;;AACAryD,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,SAAd,EAAyB,MAAO,OAAO4N,sBAAS,CAACk5D,gBAAjD;AAEA/4D,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,yBAAd,EAAyC,MAAM;AAC3C4N,4BAAS,CAACogB,SAAV,CAAoBhuB,EAApB,CAAuB,KAAvB,EAA8BjF,IAAI,IAAI;AAClC,YAAIA,IAAI,CAAC7b,GAAL,CAAS,MAAT,MAAqB0uB,sBAAS,CAACoS,eAAnC,EAAoD;AAChD,gBAAMy5C,KAAK,GAAG7rD,sBAAS,CAAC0tC,YAAxB;AACA,gBAAMxR,IAAI,GAAG2vB,KAAK,CAACv6E,GAAN,CAAU6b,IAAI,CAAC7b,GAAL,CAAS,IAAT,CAAV,CAAb;;AACA,cAAI4qD,IAAJ,EAAU;AACNA,gBAAI,CAACrwC,KAAL,GAAasB,IAAb;AACA+uC,gBAAI,CAAC34C,UAAL;AACH,WAHD,MAGO;AACHsoE,iBAAK,CAACvoE,GAAN,CAAU6J,IAAI,CAAC7b,GAAL,CAAS,IAAT,CAAV,EAA0B,IAAI0uB,sBAAS,CAACi5D,cAAd,CAA6B;AAACptE,mBAAK,EAAEsB;AAAR,aAA7B,CAA1B;AACH;AACJ;AACJ,OAXD;AAYH,KAbD;AAeAgT,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,cAAd,EAA8B,MAAM;AAChC,YAAMs7C,YAAY,GAAG1tC,sBAAH,aAAGA,sBAAH,uBAAGA,sBAAS,CAAE0tC,YAAhC;AACA,YAAMxR,IAAI,GAAGwR,YAAY,IAAIA,YAAY,CAACp8D,GAAb,CAAiB,YAAjB,CAA7B;;AACA,UAAI4qD,IAAJ,EAAU;AACPtlC,6BAAC,CAAC2E,QAAF,CAAW2gC,IAAI,CAACrwC,KAAhB,EAAuB;AAAC,uBAAa;AAAd,SAAvB;;AACA,YAAIqwC,IAAJ,aAAIA,IAAJ,uBAAIA,IAAI,CAAE49B,eAAV,EAA2B;AACxB59B,cAAI,CAAC49B,eAAL,CAAqBz0D,MAArB;AACA,iBAAO62B,IAAI,CAAC49B,eAAZ;AACF;AACH;AACJ,KAVD;AAaA35D,qBAAG,CAAC1B,SAAJ,CAAc,yBAAd,EACIjZ,IADJ,CACSwzE,aADT,EAEIztE,KAFJ,CAEU97B,CAAC,IAAIsB,YAAG,CAACP,KAAJ,CAAUf,CAAV,CAFf;AAIA0wC,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,kBAAd,EAAkC,MAAM;AACpC,YAAMsoE,UAAU,GAAG16D,sBAAS,CAACogB,SAAV,CAAoB9uC,GAApB,CAAwB,YAAxB,KAAyC0nF,aAAa,EAAzE;AACA0B,gBAAU,CAAC3tE,IAAX,CAAgB;AAAC,qBAAa;AAAd,OAAhB;AACH,KAHD;;AAKA,UAAM3wB,UAAU,GAAI,YAAY;AAC5B;;;;AAIA,YAAM8/D,IAAI,GAAGl8B,sBAAS,CAAC0tC,YAAV,CAAuBp8D,GAAvB,CAA2B,YAA3B,CAAb;;AACA4qD,UAAI,CAACrwC,KAAL,CAAWoB,GAAX,CAAe;AAAC,qBAAa;AAAd,OAAf;AACA,aAAOivC,IAAP;AACH,KARD;;AASA/7B,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,cAAd,EAA8B,MAAMh2B,UAAU,GAAGm9F,gBAAb,EAApC;AACAp5D,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,gBAAd,EAAgCh2B,UAAhC;AAEA;;AAEAnV,UAAM,CAACsmC,MAAP,CAAc4S,iBAAd,EAAmB;AACf;;;;;;;AAOAu6D,gBAAU,EAAE;AACR;;;;;AAKA,cAAMr9E,IAAN,GAAc;AACV,gBAAM8iB,iBAAG,CAAC1B,SAAJ,CAAc,kBAAd,CAAN;AACA,gBAAM5S,KAAK,GAAG,OAAMsU,iBAAG,CAACigB,SAAJ,CAAc9uC,GAAd,CAAkB,YAAlB,CAAN,KACZ6uB,iBAAG,CAACigB,SAAJ,CAAc1mC,MAAd,CAAqB,YAArB,EAAmC,EAAnC,EAAuCsmB,sBAAS,CAAC46D,UAAjD,CADF;AAEA/uE,eAAK,CAACoF,OAAN,CAAc,MAAd;AACA,iBAAOpF,KAAP;AACH,SAZO;;AAcR;;;;;;AAMAva,WAAG,GAAI;AACH,iBAAO0uB,sBAAS,CAAC0tC,YAAV,CAAuBp8D,GAAvB,CAA2B,YAA3B,CAAP;AACH;;AAtBO;AARG,KAAnB;AAiCH;;AAjjBuC,CAA5C,E;;;;;;AC3DA;;;;;AAKA;AACA;AACA;AACA;AACA;AAEA,MAAMslB,qBAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;;AAEA,SAASk0G,uBAAT,CAAkC76D,SAAlC,EAA6Ck8B,IAA7C,EAAmD;AAC/C,QAAM4+B,MAAM,GAAG5+B,IAAI,CAACrvE,EAAL,CAAQkuB,aAAR,CAAsB,aAAtB,CAAf;AACA,QAAM8e,GAAG,GAAG/xC,QAAQ,CAACsF,aAAT,CAAuB,KAAvB,CAAZ;AACAysC,KAAG,CAACvmC,SAAJ,GAAgBynG,oBAAc,EAA9B;AACAD,QAAM,CAAC9sD,YAAP,CACInU,GADJ,EAEIihE,MAAM,CAACpkF,UAFX;AAIH;;AAGD2M,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,qBAArB,EAA4C;AACxC;;;;;;;;;;AAUAwL,cAAY,EAAE,CAAC,mBAAD,EAAsB,yBAAtB,EAAiD,oBAAjD,CAX0B;;AAaxCS,SAAO,CAAEyQ,SAAF,EAAa;AAChB,WAAOA,SAAS,CAACG,GAAV,CAAc3c,QAAd,CAAuBlS,GAAvB,CAA2B,WAA3B,KAA2C,WAAlD;AACH,GAfuC;;AAiBxCmd,WAAS,EAAE;AACP;AACA;AACA;AACA0rB,WAAO,EAAE;AACL52B,gBAAU,GAAI;AACV,cAAM1xB,MAAM,GAAG,KAAKo8B,SAAL,CAAe1K,UAAf,CAA0BvL,KAA1B,CAAgC,IAAhC,EAAsC3qB,SAAtC,CAAf;;AACA,cAAMokF,MAAM,GAAG,KAAKngE,GAAL,CAAS,QAAT,CAAf;AAAA,cAAmCyH,KAAK,GAAG,KAAKzH,GAAL,CAAS,OAAT,CAA3C;AACA,cAAMyb,IAAI,GAAG,KAAKzb,GAAL,CAAS,IAAT,MAAmB,YAAnB,GAAkC9rB,CAAC,IAAI,KAAKynC,GAAL,CAASznC,CAAT,CAAvC,GAAqDA,CAAC,IAAI,KAAKunC,IAAL,CAAUvnC,CAAV,CAAvE;AACAunC,YAAI,CAAC;AACD,oBAAU6J,qBAAC,CAAC0gD,mBAAF,CAAsB7F,MAAtB,EAA8B,KAAKngE,GAAL,CAAS,gBAAT,CAA9B,CADT;AAED,mBAASslB,qBAAC,CAAC0gD,mBAAF,CAAsBv+D,KAAtB,EAA6B,KAAKzH,GAAL,CAAS,eAAT,CAA7B;AAFR,SAAD,CAAJ;AAIA,eAAOzf,MAAP;AACH;;AAVI,KAJF;AAiBP6+F,eAAW,EAAE;AACTx+D,YAAM,EAAE;AACJ,qCAA6B,uBADzB;AAEJ,sCAA8B,yBAF1B;AAGJ,yCAAiC;AAH7B,OADC;;AAOTk6C,YAAM,GAAI;AACN,cAAMv6E,MAAM,GAAG,KAAKo8B,SAAL,CAAem+C,MAAf,CAAsBp0D,KAAtB,CAA4B,IAA5B,EAAkC3qB,SAAlC,CAAf;;AACAwtG,+BAAuB,CAAC,KAAK5sE,SAAL,CAAe+R,SAAhB,EAA2B,IAA3B,CAAvB;AACA,aAAKg7D,QAAL;AACA,eAAOnpG,MAAP;AACH;;AAZQ,KAjBN;AAgCPopG,oBAAgB,EAAE;AACd/oE,YAAM,EAAE;AACJ,qCAA6B,uBADzB;AAEJ,sCAA8B,yBAF1B;AAGJ,yCAAiC;AAH7B,OADM;;AAOdk6C,YAAM,GAAI;AACN,cAAMv6E,MAAM,GAAG,KAAKo8B,SAAL,CAAem+C,MAAf,CAAsBp0D,KAAtB,CAA4B,IAA5B,EAAkC3qB,SAAlC,CAAf;;AACAwtG,+BAAuB,CAAC,KAAK5sE,SAAL,CAAe+R,SAAhB,EAA2B,IAA3B,CAAvB;AACA,aAAKg7D,QAAL;AACA,eAAOnpG,MAAP;AACH;;AAZa,KAhCX;AA+CPonG,kBAAc,EAAE;AACZ/mE,YAAM,EAAE;AACJ,qCAA6B,uBADzB;AAEJ,sCAA8B,yBAF1B;AAGJ,yCAAiC;AAH7B,OADI;;AAOZk6C,YAAM,GAAI;AACN,cAAMv6E,MAAM,GAAG,KAAKo8B,SAAL,CAAem+C,MAAf,CAAsBp0D,KAAtB,CAA4B,IAA5B,EAAkC3qB,SAAlC,CAAf;;AACAwtG,+BAAuB,CAAC,KAAK5sE,SAAL,CAAe+R,SAAhB,EAA2B,IAA3B,CAAvB;AACA,aAAKg7D,QAAL;AACA,eAAOnpG,MAAP;AACH,OAZW;;AAcZ0nG,sBAAgB,GAAI;AAChB,cAAM1nG,MAAM,GAAG,KAAKo8B,SAAL,CAAesrE,gBAAf,CAAgCvhF,KAAhC,CAAsC,IAAtC,EAA4C3qB,SAA5C,CAAf;;AACA,aAAK6tG,cAAL,GAAsBC,aAAtB;AACA,eAAOtpG,MAAP;AACH,OAlBW;;AAoBZ2nG,0BAAoB,GAAI;AACpB,cAAM3nG,MAAM,GAAG,KAAKo8B,SAAL,CAAeurE,oBAAf,CAAoCxhF,KAApC,CAA0C,IAA1C,EAAgD3qB,SAAhD,CAAf;;AACA,aAAK6tG,cAAL,GAAsBC,aAAtB;AACA,eAAOtpG,MAAP;AACH;;AAxBW,KA/CT;AA0EPw8E,gBAAY,EAAE;AACVn8C,YAAM,EAAE;AACJ,qCAA6B,uBADzB;AAEJ,sCAA8B,yBAF1B;AAGJ,yCAAiC;AAH7B,OADE;;AAOVk6C,YAAM,GAAI;AACN,cAAMv6E,MAAM,GAAG,KAAKo8B,SAAL,CAAem+C,MAAf,CAAsBp0D,KAAtB,CAA4B,IAA5B,EAAkC3qB,SAAlC,CAAf;;AACAwtG,+BAAuB,CAAC,KAAK5sE,SAAL,CAAe+R,SAAhB,EAA2B,IAA3B,CAAvB;AACA,aAAKg7D,QAAL;AACA,eAAOnpG,MAAP;AACH;;AAZS;AA1EP,GAjB6B;;AA2GxC0xB,YAAU,GAAI;AACV;;;AAGA4c,qBAAG,CAAC3c,QAAJ,CAAa2K,MAAb,CAAoB;AAChB,0BAAoB;AADJ,KAApB;AAKA,UAAMitE,aAAa,GAAG;AAElBF,oBAAc,GAAI;AAAA;;AACd,cAAMh/B,IAAI,GAAG,IAAb;AACA,cAAMm/B,sBAAsB,GAAGhyD,kBAAQ,CAAC,MAAM6yB,IAAI,CAACi/B,aAAL,EAAP,CAAvC;AACAzmF,cAAM,CAACw5B,gBAAP,CAAwB,QAAxB,EAAkCguB,IAAI,CAACm/B,sBAAvC;AACA,aAAKzoE,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,SAA1B,EAAqC,MAAMnX,MAAM,CAAC45B,mBAAP,CAA2B,QAA3B,EAAqC+sD,sBAArC,CAA3C,EAJc,CAMd;AACA;;AACA,cAAMP,MAAM,GAAG,KAAKjuG,EAAL,CAAQkuB,aAAR,CAAsB,aAAtB,CAAf;AACA,cAAM5wB,KAAK,GAAGuqB,MAAM,CAAC+kB,gBAAP,CAAwBqhE,MAAxB,CAAd;;AAEA,YAAI,KAAKjvE,KAAL,CAAWva,GAAX,CAAe,QAAf,MAA6B3jB,SAAjC,EAA4C;AACxC,gBAAM8jF,MAAM,GAAG54D,QAAQ,CAAC1uB,KAAK,CAACsnF,MAAN,CAAazjF,OAAb,CAAqB,KAArB,EAA4B,EAA5B,CAAD,EAAkC,EAAlC,CAAvB;AACA,gBAAM+qB,KAAK,GAAGF,QAAQ,CAAC1uB,KAAK,CAAC4uB,KAAN,CAAY/qB,OAAZ,CAAoB,KAApB,EAA2B,EAA3B,CAAD,EAAiC,EAAjC,CAAtB;AACA,eAAK69B,KAAL,CAAWoB,GAAX,CAAe,QAAf,EAAyBwkD,MAAzB;AACA,eAAK5lD,KAAL,CAAWoB,GAAX,CAAe,gBAAf,EAAiCwkD,MAAjC;AACA,eAAK5lD,KAAL,CAAWoB,GAAX,CAAe,OAAf,EAAwBlU,KAAxB;AACA,eAAK8S,KAAL,CAAWoB,GAAX,CAAe,eAAf,EAAgClU,KAAhC;AACH;;AACD,cAAMuiF,SAAS,GAAGnxG,KAAK,CAAC,WAAD,CAAvB;AACA,cAAMoxG,UAAU,GAAGpxG,KAAK,CAAC,YAAD,CAAxB;AACA,aAAK0hC,KAAL,CAAWoB,GAAX,CAAe,WAAf,EAA4BquE,SAAS,CAAC/2E,QAAV,CAAmB,IAAnB,IAA2BtV,MAAM,CAACqsF,SAAS,CAACttG,OAAV,CAAkB,KAAlB,EAAyB,EAAzB,CAAD,CAAjC,GAAiE,CAA7F;AACA,aAAK69B,KAAL,CAAWoB,GAAX,CAAe,YAAf,EAA6BsuE,UAAU,CAACh3E,QAAX,CAAoB,IAApB,IAA4BtV,MAAM,CAACssF,UAAU,CAACvtG,OAAX,CAAmB,KAAnB,EAA0B,EAA1B,CAAD,CAAlC,GAAmE,CAAhG,EAtBc,CAuBd;;AACA,aAAKwtG,UAAL,GAAkB,CAAlB;AACA,aAAKC,UAAL,GAAkB,CAAlB;;AACA,oCAAIz7D,sBAAS,CAAC5+B,UAAd,yDAAI,qBAAsBlL,SAA1B,EAAqC;AACjC,eAAKu7E,MAAL,GAAc,KAAK5lD,KAAL,CAAWva,GAAX,CAAe,QAAf,CAAd;AACA,eAAKyH,KAAL,GAAa,KAAK8S,KAAL,CAAWva,GAAX,CAAe,OAAf,CAAb;AACH;;AACD,eAAO,IAAP;AACH,OAjCiB;;AAmClBoqF,mBAAa,CAAEx2E,EAAF,EAAM;AACf,YAAIgR,IAAJ;;AACA,YAAI8J,sBAAS,CAAC27D,QAAV,CAAmBle,SAAnB,CAA6B1tF,OAA7B,CAAqC,KAArC,MAAgD,CAApD,EAAuD;AACnDmmC,cAAI,GAAGhR,EAAE,CAAC02E,KAAH,GAAW,KAAKJ,UAAvB;;AACA,cAAItlE,IAAJ,EAAU;AACN,iBAAKu7C,MAAL,GAAgB,KAAKA,MAAL,GAAYv7C,IAAb,IAAsB,KAAKrK,KAAL,CAAWva,GAAX,CAAe,YAAf,KAAgC,CAAtD,CAAD,GAA8D,KAAKmgE,MAAL,GAAYv7C,IAA1E,GAAkF,KAAKrK,KAAL,CAAWva,GAAX,CAAe,YAAf,CAAhG;AACA,iBAAKkqF,UAAL,GAAkBt2E,EAAE,CAAC02E,KAArB;AACA,iBAAKC,gBAAL,CAAsB,KAAKpqB,MAA3B;AACH;AACJ;;AACD,YAAIzxC,sBAAS,CAAC27D,QAAV,CAAmBle,SAAnB,CAA6Bn5D,QAA7B,CAAsC,MAAtC,CAAJ,EAAmD;AAC/C4R,cAAI,GAAG,KAAKulE,UAAL,GAAkBv2E,EAAE,CAAC42E,KAA5B;;AACA,cAAI5lE,IAAJ,EAAU;AACN,iBAAKnd,KAAL,GAAe,KAAKA,KAAL,GAAWmd,IAAZ,IAAqB,KAAKrK,KAAL,CAAWva,GAAX,CAAe,WAAf,KAA+B,CAApD,CAAD,GAA4D,KAAKyH,KAAL,GAAWmd,IAAvE,GAA+E,KAAKrK,KAAL,CAAWva,GAAX,CAAe,WAAf,CAA5F;AACA,iBAAKmqF,UAAL,GAAkBv2E,EAAE,CAAC42E,KAArB;AACA,iBAAKC,eAAL,CAAqB,KAAKhjF,KAA1B;AACH;AACJ;AACJ,OArDiB;;AAuDlBiiF,cAAQ,GAAI;AACR;AACA;AACA,YAAI,KAAKnvE,KAAL,CAAWva,GAAX,CAAe,OAAf,CAAJ,EAA6B;AACzB,eAAKzkB,EAAL,CAAQ1C,KAAR,CAAc4uB,KAAd,GAAsB,KAAK8S,KAAL,CAAWva,GAAX,CAAe,OAAf,CAAtB;AACH;AACJ,OA7DiB;;AA+DlB6pF,mBAAa,GAAI;AACb;AACA,aAAKa,gBAAL;AACA,aAAKH,gBAAL,CAAsB,KAAKhwE,KAAL,CAAWva,GAAX,CAAe,QAAf,CAAtB;AACA,aAAKyqF,eAAL,CAAqB,KAAKlwE,KAAL,CAAWva,GAAX,CAAe,OAAf,CAArB;AACH,OApEiB;;AAsElBuqF,sBAAgB,CAAEpqB,MAAF,EAAU;AACtB,YAAIA,MAAJ,EAAY;AACRA,gBAAM,GAAG76C,qBAAC,CAAC0gD,mBAAF,CAAsB7F,MAAtB,EAA8B,KAAK5lD,KAAL,CAAWva,GAAX,CAAe,gBAAf,CAA9B,IAAgE,IAAzE;AACH,SAFD,MAEO;AACHmgE,gBAAM,GAAG,EAAT;AACH;;AACD,cAAMwqB,SAAS,GAAG,KAAKpvG,EAAL,CAAQkuB,aAAR,CAAsB,aAAtB,CAAlB;;AACA,YAAIkhF,SAAS,KAAK,IAAlB,EAAwB;AACpBA,mBAAS,CAAC9xG,KAAV,CAAgBsnF,MAAhB,GAAyBA,MAAzB;AACH;AACJ,OAhFiB;;AAkFlBsqB,qBAAe,CAAEhjF,KAAF,EAAS;AACpB,YAAIA,KAAJ,EAAW;AACPA,eAAK,GAAG6d,qBAAC,CAAC0gD,mBAAF,CAAsBv+D,KAAtB,EAA6B,KAAK8S,KAAL,CAAWva,GAAX,CAAe,eAAf,CAA7B,IAA8D,IAAtE;AACH,SAFD,MAEO;AACHyH,eAAK,GAAG,EAAR;AACH;;AACD,aAAKlsB,EAAL,CAAQ1C,KAAR,CAAc4uB,KAAd,GAAsBA,KAAtB;AACA,cAAMkjF,SAAS,GAAG,KAAKpvG,EAAL,CAAQkuB,aAAR,CAAsB,aAAtB,CAAlB;;AACA,YAAIkhF,SAAS,KAAK,IAAlB,EAAwB;AACpBA,mBAAS,CAAC9xG,KAAV,CAAgB4uB,KAAhB,GAAwBA,KAAxB;AACH;AACJ,OA7FiB;;AA+FlBijF,sBAAgB,GAAI;AAChB;;;AAGA,cAAME,cAAc,GAAGjkG,IAAI,CAACsW,GAAL,CAASzmB,QAAQ,CAAC+tB,eAAT,CAAyBkoE,WAAlC,EAA+CrpE,MAAM,CAAConE,UAAP,IAAqB,CAApE,CAAvB;AACA,cAAMqgB,eAAe,GAAGlkG,IAAI,CAACsW,GAAL,CAASzmB,QAAQ,CAAC+tB,eAAT,CAAyB8zD,YAAlC,EAAgDj1D,MAAM,CAACknE,WAAP,IAAsB,CAAtE,CAAxB;;AACA,YAAIsgB,cAAc,IAAI,GAAtB,EAA2B;AACvB,eAAKrwE,KAAL,CAAWoB,GAAX,CAAe,QAAf,EAAyBt/B,SAAzB;AACA,eAAKk+B,KAAL,CAAWoB,GAAX,CAAe,OAAf,EAAwBt/B,SAAxB;AACH,SAHD,MAGO,IAAIuuG,cAAc,IAAI,KAAKrwE,KAAL,CAAWva,GAAX,CAAe,OAAf,CAAtB,EAA+C;AAClD,eAAKua,KAAL,CAAWoB,GAAX,CAAe,OAAf,EAAwBt/B,SAAxB;AACH,SAFM,MAEA,IAAIwuG,eAAe,IAAI,KAAKtwE,KAAL,CAAWva,GAAX,CAAe,QAAf,CAAvB,EAAiD;AACpD,eAAKua,KAAL,CAAWoB,GAAX,CAAe,QAAf,EAAyBt/B,SAAzB;AACH;AACJ,OA7GiB;;AA+GlByuG,2BAAqB,CAAEl3E,EAAF,EAAM+L,OAAO,GAAC,IAAd,EAAoB;AACrC,YAAI,CAACkP,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,kBAAjB,CAAL,EAA2C;AACvC,iBAAO,IAAP;AACH;;AACD4T,UAAE,CAACglD,cAAH,GAJqC,CAKrC;;AACA,cAAM4wB,MAAM,GAAG,KAAKjuG,EAAL,CAAQkuB,aAAR,CAAsB,aAAtB,CAAf;AAAA,cACM5wB,KAAK,GAAGuqB,MAAM,CAAC+kB,gBAAP,CAAwBqhE,MAAxB,CADd;AAEA,aAAKrpB,MAAL,GAAc54D,QAAQ,CAAC1uB,KAAK,CAACsnF,MAAN,CAAazjF,OAAb,CAAqB,KAArB,EAA4B,EAA5B,CAAD,EAAkC,EAAlC,CAAtB;AACAgyC,8BAAS,CAAC27D,QAAV,GAAqB;AACjB,qBAAW,IADM;AAEjB,uBAAa;AAFI,SAArB;AAIA,aAAKH,UAAL,GAAkBt2E,EAAE,CAAC02E,KAArB;;AACA,YAAI3qE,OAAJ,EAAa;AACT;;;;;AAKAkP,2BAAG,CAAClP,OAAJ,CAAY,qBAAZ,EAAmC,IAAnC;AACH;AACJ,OArIiB;;AAuIlBorE,6BAAuB,CAAEn3E,EAAF,EAAM+L,OAAO,GAAC,IAAd,EAAoB;AACvC,YAAI,CAACkP,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,kBAAjB,CAAL,EAA2C;AACvC,iBAAO,IAAP;AACH;;AACD4T,UAAE,CAACglD,cAAH;AACA,cAAM4wB,MAAM,GAAG,KAAKjuG,EAAL,CAAQkuB,aAAR,CAAsB,aAAtB,CAAf;AAAA,cACM5wB,KAAK,GAAGuqB,MAAM,CAAC+kB,gBAAP,CAAwBqhE,MAAxB,CADd;AAEA,aAAK/hF,KAAL,GAAaF,QAAQ,CAAC1uB,KAAK,CAAC4uB,KAAN,CAAY/qB,OAAZ,CAAoB,KAApB,EAA2B,EAA3B,CAAD,EAAiC,EAAjC,CAArB;AACAgyC,8BAAS,CAAC27D,QAAV,GAAqB;AACjB,qBAAW,IADM;AAEjB,uBAAa;AAFI,SAArB;AAIA,aAAKF,UAAL,GAAkBv2E,EAAE,CAAC42E,KAArB;;AACA,YAAI7qE,OAAJ,EAAa;AACT;;;;;AAKAkP,2BAAG,CAAClP,OAAJ,CAAY,uBAAZ,EAAqC,IAArC;AACH;AAEJ,OA7JiB;;AA+JlBqrE,2BAAqB,CAAEp3E,EAAF,EAAM;AACvB,aAAKm3E,uBAAL,CAA6Bn3E,EAA7B,EAAiC,KAAjC;AACA,aAAKk3E,qBAAL,CAA2Bl3E,EAA3B,EAA+B,KAA/B;AACA8a,8BAAS,CAAC27D,QAAV,CAAmBle,SAAnB,GAA+B,SAA/B;AACA;;;;;;AAKAt9C,yBAAG,CAAClP,OAAJ,CAAY,qBAAZ,EAAmC,IAAnC;AACH;;AAzKiB,KAAtB;AA2KAhqC,UAAM,CAACsmC,MAAP,CAAcyS,sBAAS,CAAC0wD,WAAV,CAAsBxpG,SAApC,EAA+Ck0G,aAA/C;;AAGAxkE,yBAAC,CAAC0gD,mBAAF,GAAwB,UAAUzvF,KAAV,EAAiB0vF,aAAjB,EAAgC;AACpD;;;;AAIA,UAAI1vF,KAAK,KAAK8F,SAAd,EAAyB;AACrB,eAAOA,SAAP;AACH,OAFD,MAEO,IAAI4pF,aAAa,KAAK5pF,SAAtB,EAAiC;AACpC,eAAO9F,KAAP;AACH;;AACD,YAAM2vF,UAAU,GAAG,EAAnB;;AACA,UAAK3vF,KAAK,KAAK0vF,aAAX,IACCt/E,IAAI,CAAC+lB,GAAL,CAASn2B,KAAK,GAAE0vF,aAAhB,IAAiCC,UADtC,EACmD;AAC/C,eAAOD,aAAP;AACH;;AACD,aAAO1vF,KAAP;AACH,KAhBD;;AAmBA,aAAS00G,WAAT,CAAsBr3E,EAAtB,EAA0B;AACtB,UAAI,CAAC8a,sBAAS,CAAC27D,QAAX,IAAuB,CAACx7D,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,kBAAjB,CAA5B,EAAkE;AAC9D,eAAO,IAAP;AACH;;AACD4T,QAAE,CAACglD,cAAH;;AACAlqC,4BAAS,CAAC27D,QAAV,CAAmBx3D,OAAnB,CAA2Bu3D,aAA3B,CAAyCx2E,EAAzC;AACH;;AAGD,aAASs3E,SAAT,CAAoBt3E,EAApB,EAAwB;AACpB,UAAI,CAAC8a,sBAAS,CAAC27D,QAAX,IAAuB,CAACx7D,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,kBAAjB,CAA5B,EAAkE;AAC9D,eAAO,IAAP;AACH;;AACD4T,QAAE,CAACglD,cAAH;AACA,YAAMuH,MAAM,GAAG76C,qBAAC,CAAC0gD,mBAAF,CACPt3C,sBAAS,CAAC27D,QAAV,CAAmBx3D,OAAnB,CAA2BstC,MADpB,EAEPzxC,sBAAS,CAAC27D,QAAV,CAAmBx3D,OAAnB,CAA2BtY,KAA3B,CAAiCva,GAAjC,CAAqC,gBAArC,CAFO,CAAf;AAIA,YAAMyH,KAAK,GAAG6d,qBAAC,CAAC0gD,mBAAF,CACNt3C,sBAAS,CAAC27D,QAAV,CAAmBx3D,OAAnB,CAA2BprB,KADrB,EAENinB,sBAAS,CAAC27D,QAAV,CAAmBx3D,OAAnB,CAA2BtY,KAA3B,CAAiCva,GAAjC,CAAqC,eAArC,CAFM,CAAd;;AAIA,UAAI6uB,iBAAG,CAAC/+B,UAAJ,CAAelL,SAAf,EAAJ,EAAgC;AAC5B8pC,8BAAS,CAAC27D,QAAV,CAAmBx3D,OAAnB,CAA2BtY,KAA3B,CAAiCkB,IAAjC,CAAsC;AAAC,oBAAU0kD;AAAX,SAAtC;;AACAzxC,8BAAS,CAAC27D,QAAV,CAAmBx3D,OAAnB,CAA2BtY,KAA3B,CAAiCkB,IAAjC,CAAsC;AAAC,mBAAShU;AAAV,SAAtC;AACH,OAHD,MAGO;AACHinB,8BAAS,CAAC27D,QAAV,CAAmBx3D,OAAnB,CAA2BtY,KAA3B,CAAiCoB,GAAjC,CAAqC;AAAC,oBAAUwkD;AAAX,SAArC;;AACAzxC,8BAAS,CAAC27D,QAAV,CAAmBx3D,OAAnB,CAA2BtY,KAA3B,CAAiCoB,GAAjC,CAAqC;AAAC,mBAASlU;AAAV,SAArC;AACH;;AACDinB,4BAAS,CAAC27D,QAAV,GAAqB,IAArB;AACH;AAED;;;AACA,aAASnlD,2BAAT,GAAwC;AACpC1uD,cAAQ,CAAComD,gBAAT,CAA0B,WAA1B,EAAuCquD,WAAvC;AACAz0G,cAAQ,CAAComD,gBAAT,CAA0B,SAA1B,EAAqCsuD,SAArC;AACH;;AAED,aAAStmD,6BAAT,GAA0C;AACtCpuD,cAAQ,CAACwmD,mBAAT,CAA6B,WAA7B,EAA0CiuD,WAA1C;AACAz0G,cAAQ,CAACwmD,mBAAT,CAA6B,SAA7B,EAAwCkuD,SAAxC;AACH;;AAEDr8D,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,+BAAd,EAA+CokB,2BAA/C;AACArW,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,iCAAd,EAAiD8jB,6BAAjD;AACA/V,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,uBAAd,EAAuC8pC,IAAI,IAAIA,IAAI,CAACg/B,cAAL,GAAsBC,aAAtB,EAA/C;AACA;AACH;;AApWuC,CAA5C,E;;ACxBA;;;;;;AAMA;AAGA93E,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,oBAArB,EAA2C;AAEvCiM,SAAO,CAAEyQ,SAAF,EAAa;AAChB,WAAOA,SAAS,CAACG,GAAV,CAAc3c,QAAd,CAAuBlS,GAAvB,CAA2B,WAA3B,CAAP;AACH,GAJsC;;AAMvCiS,YAAU,GAAI;AACV;;;AAGA4c,qBAAG,CAAC3c,QAAJ,CAAa2K,MAAb,CAAoB;AAChB,sBAAgB,KADA;AACgB;AAChC,+BAAyB,KAFT;AAEgB;AACA;AAChC,yBAAmB;AAJH,KAApB;;AAMA,QAAI,CAACz8B,KAAK,CAAC8C,OAAN,CAAc2rC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,iBAAjB,CAAd,CAAD,IACI,CAAC5f,KAAK,CAAC8C,OAAN,CAAc2rC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,yBAAjB,CAAd,CADT,EACqE;AACjE,YAAM,IAAI5sB,KAAJ,CAAU,sDAAV,CAAN;AACH;;AACD,QAAIy7C,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,iBAAjB,EAAoCzsB,MAApC,GAA6C,CAA7C,IAAkDs7C,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,yBAAjB,EAA4CzsB,MAA5C,GAAqD,CAA3G,EAA8G;AAC1G,YAAM,IAAIH,KAAJ,CAAU,6DACZ,mEADY,GAEZ,mDAFE,CAAN;AAGH;AACJ;;AAzBsC,CAA3C,E;;ACTA;;;;;AAKA;AACA;AACA;AACA;AACA;AAGA2+B,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,qBAArB,EAA4C;AAExCiM,SAAO,CAAEyQ,SAAF,EAAa;AAChB,WAAOA,SAAS,CAACsU,SAAV,EAAP;AACH,GAJuC;;AAMxC/wB,YAAU,GAAI;AACV4c,qBAAG,CAAC3c,QAAJ,CAAa2K,MAAb,CAAoB;AAChBsuE,4BAAsB,EAAE,EADR;AAEhBC,2BAAqB,EAAE,EAFP;AAGhBpvB,yBAAmB,EAAE,IAHL;AAIhByrB,gCAA0B,EAAE,IAJZ;AAKhB9B,uBAAiB,EAAE;AALH,KAApB;AAOH;;AAduC,CAA5C,E;;ACZA;;;;;;;AAOA;AAGA5zE,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,oBAArB,EAA2C;AAEvCwL,cAAY,EAAE,CAAC,cAAD,EAAiB,mBAAjB,EAAsC,oBAAtC,CAFyB;;AAIvCvL,YAAU,GAAI;AACV4c,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,mBAAd,EAAmC,MAAM8pC,IAAN,IAAc;AAC7C,UAAIA,IAAI,CAACrwC,KAAL,CAAW+uB,QAAX,CAAoB/1D,MAAxB,EAAgC;AAC5B,cAAM4/F,YAAY,GAAGvoB,IAAI,CAACrwC,KAAL,CAAWva,GAAX,CAAe,MAAf,MAA2B0uB,sBAAS,CAACkS,cAA1D;;AACA,cAAMyqD,cAAc,GAAGzgC,IAAI,CAACrwC,KAAL,CAAWixB,gBAAX,EAAvB;;AACA,YAAI6/C,cAAJ,EAAoB;AAChB,gBAAMt7D,MAAM,GAAGojD,YAAY,GAAGvoB,IAAI,CAACrwC,KAAL,CAAWva,GAAX,CAAe,KAAf,CAAH,GAA2B0uB,sBAAS,CAACsB,QAAhE;AACA,gBAAMuxB,SAAS,GAAG8pC,cAAc,IAAIA,cAAc,CAACrrF,GAAf,qBAAgC+vB,MAAhC,EAApC;AACA66B,cAAI,CAAC63B,UAAL;;AACA,cAAIlhC,SAAJ,EAAe;AACX,kBAAMqJ,IAAI,CAACrwC,KAAL,CAAWmvC,qBAAX,CAAiC;AAAC,wBAAUnI;AAAX,aAAjC,CAAN;AACH,WAFD,MAEO;AACH,kBAAMqJ,IAAI,CAACrwC,KAAL,CAAWmvC,qBAAX,CAAiC;AAAC,qBAAO2hC,cAAc,CAACrrF,GAAf,CAAmB,MAAnB;AAAR,aAAjC,CAAN;AACH;;AACD4qD,cAAI,CAAC83B,YAAL;;AACAh0D,gCAAS,CAACsS,MAAV,CAAiBjG,OAAjB,CAAyBsB,QAAzB,YAAsCgvD,cAAc,CAACrrF,GAAf,CAAmB,OAAnB,CAAtC;AACH;AACJ;AACJ,KAjBD;AAkBH;;AAvBsC,CAA3C,E;;;;;;;;;;;;;;;;;;;;;;;;ACVA;AACA;AAGgBwnB,kDAAD,IAAO;AAClB,QAAM8jE,YAAY,GAAG5yD,KAAE,CAAC,4BAAD,CAAvB;;AACA,SAAO57C,aAAP,gCAC4B0qC,CAAC,CAACplC,IAD9B,EAEiEkpG,YAFjE,EAEyF9jE,CAAC,CAACx/B,OAF3F,EAGcw/B,CAAC,CAACg8B,UAAF,GAAe1mE,aAAf,iCAAoE0qC,CAAC,CAACg8B,UAAtE,IAA4F,EAH1G,EAIch8B,CAAC,CAAC2V,KAJhB,EAMyE3V,CAAC,CAACxiB,KAN3E;AAQH,CAVD,E;;ACJA;AACA;AACA;AAGe,MAAMumF,4BAAN,SAA4B9wD,qBAA5B,CAA0C;AAErD,aAAWv4B,UAAX,GAAyB;AACrB,WAAO;AACHqY,WAAK,EAAE;AAAEn4B,YAAI,EAAEzM;AAAR,OADJ;AAEHwnD,WAAK,EAAE;AAAE/6C,YAAI,EAAE1O;AAAR,OAFJ;AAGH0O,UAAI,EAAE;AAAEA,YAAI,EAAE1O;AAAR,OAHH;AAIH8vE,gBAAU,EAAE;AAAEphE,YAAI,EAAEub;AAAR;AAJT,KAAP;AAMH;;AAEDm9D,QAAM,GAAI;AACN,UAAMpyE,IAAI,GAAG;AACT,eAASkrB,EAAE,IAAI,KAAK5O,KAAL,CAAW4O,EAAX,CADN;AAET,oBAAc,KAAK4vC,UAFV;AAGT,iBAAW5vC,EAAE,IAAI,KAAK5rB,OAAL,CAAa4rB,EAAb,CAHR;AAIT,eAAS,KAAKupB,KAJL;AAKT,cAAQ,KAAK/6C;AALJ,KAAb;AAOA,WAAOopG,YAAgB,CAAC9iG,IAAD,CAAvB;AACH;;AAEDsc,OAAK,CAAE4O,EAAF,EAAM;AACPA,MAAE,SAAF,IAAAA,EAAE,WAAF,YAAAA,EAAE,CAAEglD,cAAJ;;AACA,UAAMhO,IAAI,GAAGl8B,sBAAS,CAAC0tC,YAAV,CAAuBp8D,GAAvB,CAA2B,KAAKua,KAAL,CAAWva,GAAX,CAAe,IAAf,CAA3B,CAAb;;AACA,QAAI4qD,IAAJ,EAAU;AACN;AACA;AACAA,UAAI,CAAC5lD,KAAL;AACH,KAJD,MAIO;AACH,WAAKuV,KAAL,CAAWU,OAAX;AACA4T,uBAAG,CAAClP,OAAJ,CAAY,eAAZ,EAA6B,IAA7B;AACH;AACJ;;AAED33B,SAAO,CAAE4rB,EAAF,EAAM;AACTA,MAAE,SAAF,IAAAA,EAAE,WAAF,YAAAA,EAAE,CAAEglD,cAAJ;AACA,SAAKr+C,KAAL,CAAWkxE,QAAX;AACH;;AAtCoD;AAyCzD58D,iBAAG,CAAConC,QAAJ,CAAaviE,MAAb,CAAoB,yBAApB,EAA+C63F,4BAA/C,E;;;;;;;;;;;;;;;;;;;;;;;;AC9CA;AACA;AAEgB/jE,iDAAD,IACX1qC,aADW,CAAC,8BAC4B0qC,CAAC,CAAC6nB,KAAF,CAAQ97D,MAAR,GAAiB,EAAjB,GAAsB,QADnD,EAEwDi0C,CAAC,CAACkkE,MAF1D,EAGDlkE,CAAC,CAACmkE,aAHD,EAGkBjzD,KAAE,CAAC,WAAD,CAHpB,EAIiC,CAAClR,CAAC,CAACg8B,UAAH,GAAgB,6BAAhB,GAAgD,EAJjF,EAIiGh8B,CAAC,CAACg8B,UAJnG,EAMoDh8B,CAAC,CAACokE,SAAF,GAAc,QAAd,GAAyB,EAN7E,EAODpkE,CAAC,CAAC6nB,KAAF,CAAQ/uD,GAAR,CAAYqvD,IAAI,IACd7yD,aADc,gCAEG6yD,IAFH,EAGEA,IAAI,CAAC5H,cAAL,EAHF,EAIC4H,IAAI,CAAC3vC,GAAL,CAAS,MAAT,CAJD,EAKO2vC,IAAI,CAAC3vC,GAAL,CAAS,YAAT,CALP,CAAhB,CAPC,CAAf,E;;ACHA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM;AAAEwuB,OAAKA;AAAP,IAAYzc,QAAQ,CAAC20B,GAA3B;AACA,MAAMphB,mBAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;AAGA08B,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,mBAArB,EAA0C;AACtC;;;;;;;;;;;;AAYAwL,cAAY,EAAE,CACV,mBADU,EAEV,qBAFU,EAGV,oBAHU,EAIV,yBAJU,EAKV,qBALU,CAbwB;;AAqBtCS,SAAO,CAAEyQ,SAAF,EAAa;AAChB,WAAOA,SAAS,CAACG,GAAV,CAAc3c,QAAd,CAAuBlS,GAAvB,CAA2B,WAA3B,MAA4C,WAAnD;AACH,GAvBqC;;AAyBtCmd,WAAS,EAAE;AACP;AACA;AACA;AACA;AACA;AAEA0rB,WAAO,EAAE;AACL52B,gBAAU,GAAI;AACV,aAAK0K,SAAL,CAAe1K,UAAf,CAA0BvL,KAA1B,CAAgC,IAAhC,EAAsC3qB,SAAtC;;AACA,aAAK+kC,EAAL,CAAQ,MAAR,EAAgB,KAAK2qE,QAArB,EAA+B,IAA/B;;AAEA,YAAI,KAAKzrF,GAAL,CAAS,IAAT,MAAmB,YAAvB,EAAqC;AACjC;AACH;;AACD,aAAKyb,IAAL,CAAU;AACN,uBAAa,KAAKzb,GAAL,CAAS,WAAT,KAAyB,KADhC;AAEN,4BAAkB,KAAKA,GAAL,CAAS,gBAAT,KAA8BwuB,uBAAK;AAF/C,SAAV;AAIH,OAZI;;AAcLogB,eAAS,CAAEC,KAAF,EAAS;AACd,YAAI,CAACA,KAAD,IAAU,KAAK7uC,GAAL,CAAS,WAAT,CAAd,EAAqC;AACjC;AACA,iBAAO,IAAP;AACH;;AACD,eAAO,KAAK2c,SAAL,CAAeiyB,SAAf,CAAyBloC,KAAzB,CAA+B,IAA/B,EAAqC3qB,SAArC,CAAP;AACH,OApBI;;AAsBLgzD,cAAQ,GAAI;AACR,eAAO,KAAKpyB,SAAL,CAAeoyB,QAAf,CAAwBj5D,IAAxB,CAA6B,IAA7B,KAAsC,KAAKkqB,GAAL,CAAS,WAAT,CAA7C;AACH;;AAxBI,KAPF;AAkCPo/E,eAAW,EAAE;AACTjsD,UAAI,GAAI;AACJ,cAAM;AAAEzE;AAAF,YAAgB,KAAK/R,SAA3B;;AACA,YAAI+R,SAAS,CAACG,GAAV,CAAc3c,QAAd,CAAuBlS,GAAvB,CAA2B,WAA3B,MAA4C,WAA5C,IAA2D,KAAKua,KAAL,CAAWva,GAAX,CAAe,WAAf,CAA/D,EAA4F;AACxF,eAAKua,KAAL,CAAWsxE,QAAX;AACA,iBAAO,IAAP;AACH,SAHD,MAGO;AACH,iBAAO,KAAKlvE,SAAL,CAAewW,IAAf,CAAoBzsB,KAApB,CAA0B,IAA1B,EAAgC3qB,SAAhC,CAAP;AACH;AACJ,OATQ;;AAWT+vG,wBAAkB,GAAI;AAClB,eAAO,KAAKvxE,KAAL,CAAWva,GAAX,CAAe,WAAf,KACH,KAAK2c,SAAL,CAAemvE,kBAAf,CAAkCplF,KAAlC,CAAwC,IAAxC,EAA8C3qB,SAA9C,CADJ;AAEH,OAdQ;;AAgBTwuG,sBAAgB,CAAEpqB,MAAF,EAAU;AACtB,YAAI,CAAC,KAAK5lD,KAAL,CAAWva,GAAX,CAAe,WAAf,CAAL,EAAkC;AAC9B,iBAAO,KAAK2c,SAAL,CAAe4tE,gBAAf,CAAgCz0G,IAAhC,CAAqC,IAArC,EAA2CqqF,MAA3C,CAAP;AACH;AACJ,OApBQ;;AAsBTsqB,qBAAe,CAAEhjF,KAAF,EAAS;AACpB,YAAI,CAAC,KAAK8S,KAAL,CAAWva,GAAX,CAAe,WAAf,CAAL,EAAkC;AAC9B,iBAAO,KAAK2c,SAAL,CAAe8tE,eAAf,CAA+B30G,IAA/B,CAAoC,IAApC,EAA0C2xB,KAA1C,CAAP;AACH;AACJ;;AA1BQ;AAlCN,GAzB2B;;AA0FtCwK,YAAU,GAAI;AACV;;;AAIA4c,qBAAG,CAAC3c,QAAJ,CAAa2K,MAAb,CAAoB;AAAC,qBAAe;AAAhB,KAApB;AAEA,UAAMkvE,kBAAkB,GAAG;AACvBN,cAAQ,GAAI;AACRnmE,2BAAC,CAAC2E,QAAF,CAAW,IAAX,EAAiB;AACb,uBAAa,KADA;AAEb,yBAAgB,IAAI1mC,IAAJ,EAAD,CAAaC,OAAb;AAFF,SAAjB;AAIH,OANsB;;AAQvBqoG,cAAQ,GAAI;AACRvmE,2BAAC,CAAC2E,QAAF,CAAW,IAAX,EAAiB;AACb,uBAAa,IADA;AAEb,4BAAmB,IAAI1mC,IAAJ,EAAD,CAAai5B,WAAb;AAFL,SAAjB;AAIH;;AAbsB,KAA3B;AAeA7mC,UAAM,CAACsmC,MAAP,CAAcyS,sBAAS,CAACma,OAAV,CAAkBjzD,SAAhC,EAA2Cm2G,kBAA3C;AAGA,UAAMC,sBAAsB,GAAG;AAC3B;;;;;;;;AAQAC,iBAAW,GAAI;AACX,cAAM;AAAEv9D;AAAF,YAAgB,KAAK/R,SAA3B;AACA,aAAKgiD,aAAL;;AAEA,YAAI,CAAC,KAAKpkD,KAAL,CAAWy0B,YAAX,EAAL,EAAgC;AAC5B,eAAKz0B,KAAL,CAAW00B,qBAAX;AACH;;AACD,aAAK10B,KAAL,CAAWoxB,YAAX,CAAwBjd,SAAS,CAAC8R,MAAlC;AACA,aAAKrN,IAAL;AACA;;;;;;;AAMAtE,yBAAG,CAAClP,OAAJ,CAAY,kBAAZ,EAAgC,IAAhC;AACA,eAAO,IAAP;AACH,OA1B0B;;AA4B3B;;;;;;;;AAQAusE,iBAAW,CAAEt4E,EAAF,EAAM;AACb,cAAM;AAAE8a;AAAF,YAAgB,KAAK/R,SAA3B;;AACA,YAAI/I,EAAE,IAAIA,EAAE,CAACglD,cAAb,EAA6B;AAAEhlD,YAAE,CAACglD,cAAH;AAAsB,SAFxC,CAGb;;;AACA,YAAI,KAAKr+C,KAAL,CAAWI,UAAX,IAAyB,KAAKJ,KAAL,CAAWI,UAAX,CAAsBkP,cAAnD,EAAmE;AAC/D,eAAKtP,KAAL,CAAWkB,IAAX,CAAgB;AAAC,sBAAU,KAAK2kE,OAAL,CAAarzD;AAAxB,WAAhB;AACH,SAFD,MAEO;AACH,eAAKxS,KAAL,CAAWoB,GAAX,CAAe;AAAC,sBAAU,KAAKykE,OAAL,CAAarzD;AAAxB,WAAf;AACH;;AACD,aAAKxS,KAAL,CAAWoxB,YAAX,CAAwBjd,SAAS,CAAC6R,QAAlC;AACA,aAAKu/B,IAAL;AACA;;;;;;;AAMAjxC,yBAAG,CAAClP,OAAJ,CAAY,kBAAZ,EAAgC,IAAhC;AACA,eAAO,IAAP;AACH,OAvD0B;;AAyD3B;;;;AAIAksE,cAAQ,CAAEj4E,EAAF,EAAM;AACV,YAAIA,EAAE,IAAIA,EAAE,CAACglD,cAAb,EAA6B;AAAEhlD,YAAE,CAACglD,cAAH;AAAsB;;AACrD,aAAKr+C,KAAL,CAAWsxE,QAAX;AACA,eAAO,IAAP;AACH,OAjE0B;;AAmE3BM,wBAAkB,CAAEtwE,IAAF,EAAQ;AACtB,YAAIA,IAAI,CAAC7b,GAAL,CAAS,WAAT,CAAJ,EAA2B;AACvB,eAAKksF,WAAL;AACH,SAFD,MAEO;AACH,eAAKD,WAAL;AACH;AACJ;;AAzE0B,KAA/B;AA2EAt2G,UAAM,CAACsmC,MAAP,CAAcyS,sBAAS,CAAC0wD,WAAV,CAAsBxpG,SAApC,EAA+Co2G,sBAA/C;AAGA,UAAMI,WAAW,GAAG;AAChBC,qBAAe,CAAEzhC,IAAF,EAAQ;AACnB,YAAIA,IAAI,CAACrwC,KAAL,CAAWva,GAAX,CAAe,IAAf,MAAyB,YAA7B,EAA2C;AACvC,gBAAMopF,UAAU,GAAG,KAAKppF,GAAL,CAAS,YAAT,CAAnB,CADuC,CAEvC;AACA;;AACA,cAAI,CAACopF,UAAD,IAAe,CAAC9jE,mBAAC,CAAC4jD,SAAF,CAAYkgB,UAAU,CAAC7tG,EAAvB,CAApB,EAAgD;AAC5C,mBAAO+pC,mBAAC,CAAC0C,aAAF,CAAgB0G,sBAAS,CAACk5D,gBAAV,CAA2BrsG,EAA3C,EAA+C,IAA/C,CAAP;AACH,WAFD,MAEO;AACH,mBAAO+pC,mBAAC,CAAC0C,aAAF,CAAgBohE,UAAU,CAAC7tG,EAA3B,EAA+B,IAA/B,CAAP;AACH;AACJ,SATD,MASO,IAAI,CAACqvE,IAAI,CAACrwC,KAAL,CAAWva,GAAX,CAAe,WAAf,CAAD,IAAgCslB,mBAAC,CAAC4jD,SAAF,CAAYte,IAAI,CAACrvE,EAAjB,CAApC,EAA0D;AAC7D,iBAAO+pC,mBAAC,CAAC0C,aAAF,CAAgB4iC,IAAI,CAACrvE,EAArB,EAAyB,IAAzB,CAAP;AACH;;AACD,eAAO,CAAP;AACH,OAfe;;AAiBhB+wG,mBAAa,GAAI;AACb,eAAO,KAAKr/F,MAAL,CAAa29D,IAAD,IACf;AACA;AACA;AACA,SAACA,IAAI,CAACrwC,KAAL,CAAWva,GAAX,CAAe,WAAf,CAAD,IACI,CAAC4qD,IAAI,CAACrwC,KAAL,CAAWva,GAAX,CAAe,QAAf,CADL,IAEIslB,mBAAC,CAAC4jD,SAAF,CAAYte,IAAI,CAACrvE,EAAjB,CAND,CAAP;AAQH,OA1Be;;AA4BhBgxG,uBAAiB,GAAI;AAAA;;AACjB,cAAMC,YAAY,4BAAG99D,sBAAS,CAAC+9D,eAAb,0DAAG,sBAA2BlxG,EAAhD;AACA,eAAO,KAAKg/B,KAAL,CAAWsc,KAAX,CAAiB,WAAjB,EAA8B7jB,QAA9B,CAAuC,IAAvC,IAA+CsS,mBAAC,CAAC0C,aAAF,CAAgBwkE,YAAhB,EAA8B,IAA9B,CAA/C,GAAqF,CAA5F;AACH,OA/Be;;AAiChBE,mBAAa,CAAEC,OAAF,EAAW;AACpB,cAAMnxE,MAAM,GAAGmxE,OAAO,GAAGA,OAAO,CAACpyE,KAAR,CAAcva,GAAd,CAAkB,IAAlB,CAAH,GAA6B,IAAnD;AACA,cAAM4sF,aAAa,GAAGD,OAAO,GAAGrnE,mBAAC,CAAC0C,aAAF,CAAgB2kE,OAAO,CAACpxG,EAAxB,EAA4B,IAA5B,CAAH,GAAuC,CAApE;AACA,eAAO5F,MAAM,CAAC+oC,MAAP,CAAc,KAAK+7D,IAAL,CAAUj/D,MAAV,CAAd,EACFh7B,MADE,CACK,CAACqsG,IAAD,EAAOjiC,IAAP,KAAgBiiC,IAAI,GAAG,KAAKR,eAAL,CAAqBzhC,IAArB,CAD5B,EACwDgiC,aADxD,CAAP;AAEH,OAtCe;;AAwChB;;;;;;;;;AASA,YAAME,SAAN,CAAiBH,OAAjB,EAA0B;AAAA;;AACtB,YAAI99D,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,aAAjB,KAAmC,CAAC6uB,iBAAG,CAAC/+B,UAAJ,CAAelL,SAAf,EAApC,IAAkEiqC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,WAAjB,MAAkC,WAAxG,EAAqH;AACjH;AACH;;AACD,cAAM+sF,WAAW,GAAG,KAAKT,aAAL,EAApB;;AACA,YAAIS,WAAW,CAACx5G,MAAZ,IAAsB,CAA1B,EAA6B;AACzB;AACH;;AACD,cAAMy5G,UAAU,GAAG1nE,mBAAC,CAAC0C,aAAF,CAAgBxxC,QAAQ,CAACizB,aAAT,CAAuB,MAAvB,CAAhB,EAAgD,IAAhD,CAAnB;;AACA,YAAI,KAAK4iF,eAAL,CAAqBU,WAAW,CAAC,CAAD,CAAhC,MAAyCC,UAA7C,EAAyD;AACrD;AACA;AACA;AACA;AACH;;AACD,cAAMn+D,iBAAG,CAAC1B,SAAJ,CAAc,2BAAd,CAAN;AACA,cAAMq/D,YAAY,6BAAG99D,sBAAS,CAAC+9D,eAAb,2DAAG,uBAA2BlxG,EAAhD;;AACA,YAAIixG,YAAJ,EAAkB;AACd,iBAAQ,KAAKD,iBAAL,KAA2B,KAAKG,aAAL,CAAmBC,OAAnB,CAA5B,GAA2DK,UAAlE,EAA8E;AAC1E,kBAAMxxE,MAAM,GAAGmxE,OAAO,GAAGA,OAAO,CAACpyE,KAAR,CAAcva,GAAd,CAAkB,IAAlB,CAAH,GAA6B,IAAnD;AACA,kBAAMitF,WAAW,GAAG,KAAKC,sBAAL,CAA4B,CAAC1xE,MAAD,CAA5B,CAApB;;AACA,gBAAIyxE,WAAJ,EAAiB;AACb;AACA;AACA;AACA;AACA,oBAAMriC,IAAI,GAAG,KAAK5qD,GAAL,CAASitF,WAAW,CAACjtF,GAAZ,CAAgB,IAAhB,CAAT,CAAb;;AACA,kBAAI4qD,IAAJ,EAAU;AACNA,oBAAI,CAACkV,IAAL;AACH;;AACDmtB,yBAAW,CAACpB,QAAZ;AACH,aAVD,MAUO;AACH;AACH;AACJ;AACJ;AACJ,OArFe;;AAuFhBqB,4BAAsB,CAAEC,WAAF,EAAe;AACjC;AACAA,mBAAW,CAAClvG,IAAZ,CAAiB,YAAjB;AACA,YAAI3K,CAAC,GAAG,CAAR;AACA,YAAIinC,KAAK,GAAG,KAAKA,KAAL,CAAWp+B,IAAX,GAAkB+3C,EAAlB,CAAqB5gD,CAArB,CAAZ;;AACA,eAAO65G,WAAW,CAACn6E,QAAZ,CAAqBuH,KAAK,CAACva,GAAN,CAAU,IAAV,CAArB,KAAyCua,KAAK,CAACva,GAAN,CAAU,WAAV,MAA2B,IAA3E,EAAiF;AAC7E1sB,WAAC;AACDinC,eAAK,GAAG,KAAKA,KAAL,CAAW2Z,EAAX,CAAc5gD,CAAd,CAAR;;AACA,cAAI,CAACinC,KAAL,EAAY;AACR,mBAAO,IAAP;AACH;AACJ;;AACD,eAAOA,KAAP;AACH;;AApGe,KAApB;AAsGA5kC,UAAM,CAACsmC,MAAP,CAAcyS,sBAAS,CAACutD,YAAV,CAAuBrmG,SAArC,EAAgDw2G,WAAhD;AAGAv9D,qBAAG,CAAC6Q,QAAJ,CAAa1tB,GAAb,CAAiB,2BAAjB;AAGA0c,0BAAS,CAAC0+D,oBAAV,GAAiCjqE,WAAK,CAACtG,MAAN,CAAa;AAC1C2G,cAAQ,EAAE;AACN,qBAAa;AADP;AADgC,KAAb,CAAjC;AAOAkL,0BAAS,CAAC2+D,cAAV,GAA2B7yB,IAAI,CAAC39C,MAAL,CAAY;AACnCrhC,aAAO,EAAE,MAD0B;;AAGnC,YAAMy2B,UAAN,GAAoB;AAChB,cAAM,KAAKq7E,UAAL,EAAN;AACA,aAAKxyB,MAAL;AACA,aAAKx5C,QAAL,CAAc,KAAKisE,QAAnB,EAA6B,kBAA7B,EAAiD,KAAKzyB,MAAtD;AACA,aAAKx5C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,KAA1B,EAAiC,KAAKugD,MAAtC;AACA,aAAKx5C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,iBAA1B,EAA6C,KAAKugD,MAAlD;AACA,aAAKx5C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,YAA1B,EAAwC,KAAKugD,MAA7C;AACA,aAAKx5C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,kBAA1B,EAA8C,KAAKugD,MAAnD;AACA,aAAKx5C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,aAA1B,EAAyC,KAAKugD,MAA9C;AACA,aAAKx5C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,mBAA1B,EAA+C,KAAKugD,MAApD;AACA,aAAKx5C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,QAA1B,EAAoC,KAAKugD,MAAzC;AACH,OAdkC;;AAgBnCA,YAAM,GAAI;AACN,cAAMzrB,KAAK,GAAG,KAAK90B,KAAL,CAAWmc,KAAX,CAAiB;AAAC,uBAAa;AAAd,SAAjB,CAAd;AACA,cAAM8sB,UAAU,GAAGnU,KAAK,CAAC7uD,MAAN,CAAa,CAACyoC,GAAD,EAAM0mB,IAAN,KAAgB1mB,GAAG,GAAG0mB,IAAI,CAAC3vC,GAAL,CAAS,YAAT,CAAnC,EAA4D,CAA5D,CAAnB;AACA,cAAM2rF,aAAa,GAAGt8C,KAAK,CAAC7uD,MAAN,CAAa,CAACyoC,GAAD,EAAM0mB,IAAN,KAAgB1mB,GAAG,IAAI0mB,IAAI,CAAC3vC,GAAL,CAAS,WAAT,IAAwB,CAAxB,GAA4B,CAAhC,CAAhC,EAAqE,CAArE,CAAtB;AACA,cAAM4rF,SAAS,GAAG,KAAK2B,QAAL,CAAcvtF,GAAd,CAAkB,WAAlB,CAAlB;AACA,cAAMtX,IAAI,GAAG;AAAE2mD,eAAF;AAASmU,oBAAT;AAAqBmoC,uBAArB;AAAoCC;AAApC,SAAb;;AACAljG,YAAI,CAACgjG,MAAL,GAAc93E,EAAE,IAAI,KAAK83E,MAAL,CAAY93E,EAAZ,CAApB;;AACAknD,qBAAM,CAAC0yB,WAAe,CAAC9kG,IAAD,CAAhB,EAAwB,KAAKnN,EAA7B,CAAN;;AAEA,YAAI,CAAC,KAAKA,EAAL,CAAQqkE,aAAb,EAA4B;AACxBlxB,gCAAS,CAAC0tC,YAAV,CAAuBogB,eAAvB,CAAuC,KAAKjhG,EAA5C;AACH;AACJ,OA5BkC;;AA8BnC,YAAM+xG,UAAN,GAAoB;AAChB,cAAMjrG,EAAE,qCAA8BqsC,sBAAS,CAACsB,QAAxC,CAAR;AACA,aAAKu9D,QAAL,GAAgB,IAAI7+D,sBAAS,CAAC0+D,oBAAd,CAAmC;AAAC/qG;AAAD,SAAnC,CAAhB;AACA,aAAKkrG,QAAL,CAAc1jE,cAAd,GAA+B6E,sBAAS,CAACkT,WAAV,CAAsBv/C,EAAtB,CAA/B;AACA,cAAM,IAAIy2B,OAAJ,CAAYC,OAAO,IAAI,KAAKw0E,QAAL,CAAcjtE,KAAd,CAAoB;AAAC,qBAAWvH,OAAZ;AAAqB,mBAASA;AAA9B,SAApB,CAAvB,CAAN;AACH,OAnCkC;;AAqCnC2yE,YAAM,CAAE93E,EAAF,EAAM;AACRA,UAAE,SAAF,IAAAA,EAAE,WAAF,YAAAA,EAAE,CAAEglD,cAAJ;AACA,aAAK20B,QAAL,CAAc9xE,IAAd,CAAmB;AAAC,uBAAa,CAAC,KAAK8xE,QAAL,CAAcvtF,GAAd,CAAkB,WAAlB;AAAf,SAAnB;AACH;;AAxCkC,KAAZ,CAA3B;;AA4CA,aAASytF,kBAAT,GAA+B;AAAA;;AAC3B,gCAAA/+D,sBAAS,CAAC+9D,eAAV,kFAA2B14D,MAA3B;AACArF,4BAAS,CAAC+9D,eAAV,GAA4B,IAAI/9D,sBAAS,CAAC2+D,cAAd,CAA6B;AAAC9yE,aAAK,EAAEmU,sBAAS,CAACogB;AAAlB,OAA7B,CAA5B;AACA;;;;;;AAKAjgB,uBAAG,CAAClP,OAAJ,CAAY,2BAAZ;AACH;;AAED,aAAS+tE,uBAAT,CAAkC9iC,IAAlC,EAAwCqT,OAAxC,EAAiD;AAC7C,YAAMv1E,IAAI,GAAG;AACT,mBAAW,uBADF;AAET,mBAAWkrB,EAAE,IAAIg3C,IAAI,CAACihC,QAAL,CAAcj4E,EAAd,CAFR;AAGT,qBAAa8kB,KAAE,CAAC,UAAD,CAHN;AAIT,sBAAcA,KAAE,CAAC,oBAAD,CAJP;AAKT,sBAAc,UALL;AAMT,gBAAQ,UANC;AAOT,sBAAchK,sBAAS,CAACG,GAAV,CAAc3c,QAAd,CAAuBlS,GAAvB,CAA2B,WAA3B,MAA4C;AAPjD,OAAb;AASA,YAAM7f,KAAK,GAAG89E,OAAO,CAAC39E,GAAR,CAAYjM,CAAC,IAAIA,CAAC,CAACsC,IAAnB,CAAd;AACA,YAAM80C,GAAG,GAAGtrC,KAAK,CAAC1B,OAAN,CAAc,OAAd,CAAZ;AACA,aAAOgtC,GAAG,GAAG,CAAC,CAAP,GAAW,CAAC,GAAGwyC,OAAO,CAAClpE,KAAR,CAAc,CAAd,EAAiB02B,GAAjB,CAAJ,EAA2B/iC,IAA3B,EAAiC,GAAGu1E,OAAO,CAAClpE,KAAR,CAAc02B,GAAd,CAApC,CAAX,GAAqE,CAAC/iC,IAAD,EAAO,GAAGu1E,OAAV,CAA5E;AACH;;AAED,aAAS0vB,sBAAT,CAAiC/iC,IAAjC,EAAuCqT,OAAvC,EAAgD;AAC5C,YAAMv1E,IAAI,GAAG;AACT,mBAAW,uBADF;AAET,mBAAWkrB,EAAE,IAAIg3C,IAAI,CAACihC,QAAL,CAAcj4E,EAAd,CAFR;AAGT,qBAAa8kB,KAAE,CAAC,UAAD,CAHN;AAIT,sBAAcA,KAAE,CAAC,yBAAD,CAJP;AAKT,sBAAc,UALL;AAMT,gBAAQ,UANC;AAOT,sBAAchK,sBAAS,CAACG,GAAV,CAAc3c,QAAd,CAAuBlS,GAAvB,CAA2B,WAA3B,MAA4C;AAPjD,OAAb;AASA,YAAM7f,KAAK,GAAG89E,OAAO,CAAC39E,GAAR,CAAYjM,CAAC,IAAIA,CAAC,CAACsC,IAAnB,CAAd;AACA,YAAM80C,GAAG,GAAGtrC,KAAK,CAAC1B,OAAN,CAAc,SAAd,CAAZ;AACA,aAAOgtC,GAAG,GAAG,CAAC,CAAP,GAAW,CAAC,GAAGwyC,OAAO,CAAClpE,KAAR,CAAc,CAAd,EAAiB02B,GAAjB,CAAJ,EAA2B/iC,IAA3B,EAAiC,GAAGu1E,OAAO,CAAClpE,KAAR,CAAc02B,GAAd,CAApC,CAAX,GAAqE,CAAC/iC,IAAD,EAAO,GAAGu1E,OAAV,CAA5E;AACH;AAED;;;AACApvC,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,wBAAd,EAAwC8pC,IAAI,IAAIl8B,sBAAS,CAAC0tC,YAAV,CAAuB0wB,SAAvB,CAAiCliC,IAAjC,CAAhD;AACA/7B,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,WAAd,EAA2B,MAAM2sE,kBAAkB,EAAnD;AACA5+D,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,kBAAd,EAAkC8pC,IAAI,IAAIl8B,sBAAS,CAAC0tC,YAAV,CAAuB0wB,SAAvB,CAAiCliC,IAAjC,CAA1C;AACA/7B,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,wBAAd,EAAwCj6B,CAAC,IAAIA,CAAC,CAACy6B,QAAF,CAAWz6B,CAAC,CAAC0zB,KAAb,EAAoB,kBAApB,EAAwC1zB,CAAC,CAACslG,kBAA1C,CAA7C;AAEAt9D,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,yBAAd,EAAyC8pC,IAAI,IAAI;AAC7CA,UAAI,CAACtpC,QAAL,CAAcspC,IAAI,CAACrwC,KAAnB,EAA0B,kBAA1B,EAA8CqwC,IAAI,CAACuhC,kBAAnD;AACAvhC,UAAI,CAACrwC,KAAL,CAAWva,GAAX,CAAe,WAAf,KAA+B4qD,IAAI,CAACkV,IAAL,EAA/B;AACH,KAHD;AAKAjxC,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,mBAAd,EAAmC,CAAC8pC,IAAD,EAAOqT,OAAP,KAAmB;AAClD,UAAIrT,IAAI,CAACrwC,KAAL,CAAWva,GAAX,CAAe,MAAf,MAA2B0uB,sBAAS,CAACkS,cAAzC,EAAyD;AACrD,eAAO+sD,sBAAsB,CAAC/iC,IAAD,EAAOqT,OAAP,CAA7B;AACH,OAFD,MAEO;AACH,eAAOyvB,uBAAuB,CAAC9iC,IAAD,EAAOqT,OAAP,CAA9B;AACH;AACJ,KAND;AAQA,UAAM2vB,kBAAkB,GAAG71D,kBAAQ,CAAC,MAAMrJ,sBAAS,CAAC0tC,YAAV,CAAuB0wB,SAAvB,EAAP,EAA2C,GAA3C,CAAnC;AACAj+D,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,+BAAd,EAA+C,MAAM1d,MAAM,CAACw5B,gBAAP,CAAwB,QAAxB,EAAkCgxD,kBAAlC,CAArD;AACA/+D,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,iCAAd,EAAiD,MAAM1d,MAAM,CAAC45B,mBAAP,CAA2B,QAA3B,EAAqC4wD,kBAArC,CAAvD;AACA;AACH;;AAhaqC,CAA1C,E;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AAEe,MAAMC,kCAAN,SAAoCpzD,qBAApC,CAAkD;AAE7D,aAAWv4B,UAAX,GAAyB;AACrB,WAAO;AACH,6BAAuB;AAAE9f,YAAI,EAAEilB;AAAR,OADpB;AAEH,uBAAiB;AAAEjlB,YAAI,EAAEuZ;AAAR,OAFd;AAGH,oBAAc;AAAEvZ,YAAI,EAAEuZ;AAAR,OAHX;AAG8B;AACjC,gBAAU;AAAEvZ,YAAI,EAAE1O;AAAR,OAJP;AAKH,0BAAoB;AAAE0O,YAAI,EAAE1O;AAAR,OALjB;AAMH,mBAAa;AAAE0O,YAAI,EAAEub;AAAR,OANV;AAOH,cAAQ;AAAEvb,YAAI,EAAE1O;AAAR,OAPL;AAQH,qBAAe;AAAE0O,YAAI,EAAE1O;AAAR,OARZ;AASH,kBAAY;AAAE0O,YAAI,EAAE1O;AAAR;AATT,KAAP;AAWH;;AAEDsN,aAAW,GAAI;AACX;AACA,SAAKw2E,aAAL,GAAqB,IAArB,CAFW,CAEgB;;AAC3B,SAAKU,UAAL,GAAkB,KAAlB,CAHW,CAGc;;AACzB,SAAKjrE,MAAL,GAAc,UAAd;AACA,SAAKisE,gBAAL,GAAwB,EAAxB,CALW,CAKiB;;AAC5B,SAAKjB,kBAAL,GAA0B,KAA1B,CANW,CAMsB;;AACjC,SAAKmB,SAAL,GAAiB,EAAjB;AACA,SAAKD,SAAL,GAAiB,CAAjB;AACA,SAAK20B,QAAL,GAAgB,EAAhB,CATW,CASS;AACvB;;AAEDhzB,QAAM,GAAI;AACN,WAAOh+E,aAAP,gCAGmC,KAAKnG,IAHxC,EAK0B,KAAKkiF,SAL/B,EAMwB,KAAKgrB,OAN7B,EAQ8B,KAAK79E,WARnC;AAYH;;AAED6mE,cAAY,GAAI;AACZ,SAAKkhB,aAAL,GAAqB,IAAI92B,kCAAJ,CAAiB,KAAKrxC,iBAAtB,EAAyC;AAC1D,qBAAe,KAAKkoE,QAAL,CAAcjwG,KAAd,CAAoB,GAApB,CAD2C;AAE1D,uBAAiB,KAAK25E,aAFoC;AAG1D,oBAAc,KAAKU,UAHuC;AAI1D,gBAAU,KAAKjrE,MAAL,IAAe,UAAf,GAA4BipE,eAA5B,GAA8CE,iBAJE;AAK1D,0BAAoB,EALsC;AAM1D,cAAQ,MAAM,KAAK43B,mBAAL,EAN4C;AAO1D,4BAAsB,IAPoC;AAQ1D,mBAAa,KAAK50B,SARwC;AAS1D,mBAAa,KAAKD;AATwC,KAAzC,CAArB;AAWA,SAAK40B,aAAL,CAAmBjtE,EAAnB,CAAsB,+BAAtB,EAAuD,MAAO,KAAKy3C,eAAL,GAAuB,KAArF;AACH;;AAEDM,WAAS,CAAEjlD,EAAF,EAAM;AACX,SAAKm6E,aAAL,CAAmBl1B,SAAnB,CAA6BjlD,EAA7B;AACH;;AAEDiwE,SAAO,CAAEjwE,EAAF,EAAM;AACT,SAAKm6E,aAAL,CAAmBt2B,QAAnB,CAA4B7jD,EAA5B;AACH;;AAhE4D;AAmEjEib,iBAAG,CAAConC,QAAJ,CAAaviE,MAAb,CAAoB,uBAApB,EAA6Cm6F,kCAA7C,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxEA;AACA;;AAGA,MAAMI,cAAc,GAAIzmE,CAAD,IAAO;AAC1B,QAAM0mE,mBAAmB,GAAGx1D,KAAE,CAAC,2BAAD,CAA9B;;AACA,QAAMy1D,qBAAqB,GAAGz1D,KAAE,CAAC,gDAAD,CAAhC;;AACA,QAAM01D,iBAAiB,GAAG11D,KAAE,CAAC,oDAAD,CAA5B;;AACA,QAAM21D,UAAU,GAAG,UAAG7mE,CAAC,CAAChpC,GAAL,UAAe,KAAlC;;AACA,MAAIgpC,CAAC,CAAC8L,IAAF,KAAW,WAAf,EAA4B;AACxB,qBAAU+6D,UAAV,SAAuBH,mBAAvB,cAA8C1mE,CAAC,CAAC8mE,aAAhD;AACH,GAFD,MAEO,IAAI9mE,CAAC,CAAC8L,IAAF,KAAW,aAAf,EAA8B;AACjC,qBAAU+6D,UAAV,SAAuBF,qBAAvB,cAAgD3mE,CAAC,CAAC8mE,aAAlD;AACH,GAFM,MAEA,IAAI9mE,CAAC,CAAC8L,IAAF,KAAW,SAAf,EAA0B;AAC7B,qBAAU+6D,UAAV,SAAuBD,iBAAvB,cAA4C5mE,CAAC,CAAC8mE,aAA9C;AACH,GAFM,MAEA,IAAI,CAAC,CAAC,SAAD,EAAY,aAAZ,EAA2B,WAA3B,EAAwCt7E,QAAxC,CAAiDwU,CAAC,CAAC8L,IAAnD,CAAL,EAA+D;AAClE,qBAAU+6D,UAAV,SAAuB7mE,CAAC,CAAC8mE,aAAzB;AACH;AACJ,CAdD;;AAiBgB9mE,wDAAD,IAAO;AAClB,QAAM+mE,UAAU,GAAG71D,KAAE,CAAC,OAAD,CAArB;;AACA,QAAM81D,UAAU,GAAG91D,KAAE,CAAC,OAAD,CAArB;;AACA,QAAM+1D,WAAW,GAAG/1D,KAAE,CAAC,QAAD,CAAtB;;AACA,QAAMg2D,cAAc,GAAGh2D,KAAE,CAAC,WAAD,CAAzB;;AACA,QAAMi2D,YAAY,GAAGj2D,KAAE,CAAC,SAAD,CAAvB;;AACA,SAAO57C,aAAP,4BAC+B0qC,CAAC,CAACnlC,EADjC,EAC+C4rG,cAAc,CAACzmE,CAAD,CAD7D,EAIuDA,CAAC,CAAC2L,IAJzD,EAIgF3L,CAAC,CAAConE,SAJlF,EAO8CpnE,CAAC,CAACN,IAAF,IAAUM,CAAC,CAAChpC,GAP1D,EASwBgpC,CAAC,CAAC6L,WAAF,KAAkB,OAAnB,GAA8Bv2C,aAA9B,CAAC,4BAAwEyxG,UAAzE,IAA+F,EATtH,EAUwB/mE,CAAC,CAAC6L,WAAF,KAAkB,OAAnB,GAA8Bv2C,aAA9B,CAAC,4BAAmE0xG,UAApE,IAA0F,EAVjH,EAWwBhnE,CAAC,CAAC6L,WAAF,KAAkB,QAAnB,GAA+Bv2C,aAA/B,CAAC,4BAAoE2xG,WAArE,IAA4F,EAXnH,EAYwBjnE,CAAC,CAAC8L,IAAF,KAAW,WAAZ,GAA2Bx2C,aAA3B,CAAC,4BAAgE4xG,cAAjE,IAA2F,EAZlH,EAawBlnE,CAAC,CAAC8L,IAAF,KAAW,SAAZ,GAAyBx2C,aAAzB,CAAC,4BAAmE6xG,YAApE,IAA6F,EAbpH;AAmBH,CAzBD,E;;;;;;;;;;;;;;ACrBA;AACA;AACA;AAGA,MAAME,kBAAkB,GAAG;AACvB,aAAgB,SADO;AAEvB,iBAAgB,aAFO;AAGvB,QAAgB,eAHO;AAIvB,UAAgB,MAJO;AAKvB,SAAgB,gBALO;AAMvB,UAAgB,SANO;AAOvB,YAAgB;AAPO,CAA3B;AAWgBrnE,iDAAD,IAAO;AAClB,QAAMsnE,kBAAkB,GAAIx1C,QAAD,IAAc5gB,KAAE,CAAC,wCAAD,EAA2C4gB,QAAQ,CAACt5C,GAAT,CAAa,MAAb,CAA3C,CAA3C;;AACA,QAAM+uF,iBAAiB,GAAGr2D,KAAE,CAAC,cAAD,CAA5B;;AACA,QAAMs2D,aAAa,GAAGxnE,CAAC,CAACsL,SAAF,CAAYxyC,GAAZ,CAAgBg5D,QAAQ,IAAI;AAC9C,WAAO21C,kBAAY,CAACt5G,MAAM,CAACsmC,MAAP,CAAc;AAC9B,aAAO,EADuB;AAE9B,mBAAa4yE,kBAAkB,CAACv1C,QAAQ,CAACt5C,GAAT,CAAa,MAAb,CAAD,CAFD;AAG9B,uBAAiB8uF,kBAAkB,CAACx1C,QAAD;AAHL,KAAd,EAIjBA,QAAQ,CAAC59B,MAAT,EAJiB,CAAD,CAAnB;AAKH,GANqB,CAAtB;AAQA,SAAO5+B,aAAP,+BAI8CiyG,iBAJ9C,EAQgCC,aARhC;AAUH,CArBD,E;;AChBA;AACA;AACA;AACA;AAEA,MAAM1pE,aAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;AAGe,MAAM65G,sBAAN,SAAyBz0D,qBAAzB,CAAuC;AAElD,aAAWv4B,UAAX,GAAyB;AACrB,WAAO;AACH+4C,cAAQ,EAAE;AAAE74D,YAAI,EAAEzM;AAAR,OADP;AAEHm9C,eAAS,EAAE;AAAE1wC,YAAI,EAAEzM;AAAR;AAFR,KAAP;AAIH;;AAEDy6F,mBAAiB,GAAI;AACjB,UAAMA,iBAAN;AACA,SAAK9uD,QAAL,CAAc,KAAKwR,SAAnB,EAA8B,KAA9B,EAAqC,KAAKw9C,aAA1C;AACA,SAAKhvD,QAAL,CAAc,KAAKwR,SAAnB,EAA8B,QAA9B,EAAwC,KAAKw9C,aAA7C;AACA,SAAKhvD,QAAL,CAAc,KAAKwR,SAAnB,EAA8B,QAA9B,EAAwC,KAAKw9C,aAA7C;AACH;;AAEDxV,QAAM,GAAI;AACN,UAAM2mB,GAAG,GAAG0N,WAAe,CAACx5G,MAAM,CAACsmC,MAAP,CACxB,KAAKg/B,QAAL,CAAcv/B,MAAd,EADwB,EAExB;AAAC,mBAAa,CAAC,GAAG,KAAKoX,SAAL,CAAec,MAAnB;AAAd,KAFwB,CAAD,CAA3B;AAIA,WAAO6tD,GAAP;AACH;;AAED2N,YAAU,GAAI;AACV,WAAO,CAAC,KAAKn0C,QAAL,CAAcj7C,GAAd,CAAkB,kBAAlB,CAAD,IACH,KAAKi7C,QAAL,CAAc3wC,OAAd,CAAsBtK,GAAtB,CAA0B,mBAA1B,MAAmD+R,QAAQ,CAACimC,UAAT,CAAoBG,OAD3E;AAEH;;AAEDk3C,eAAa,GAAI;AACb;AACA;AACA;AACA,SAAKD,UAAL,KAAoB9pE,aAAC,CAACu3C,WAAF,CAAc,IAAd,CAApB,GAA0Cv3C,aAAC,CAAC4hD,WAAF,CAAc,IAAd,CAA1C;AACH;;AAlCiD;AAqCtDr4C,iBAAG,CAAConC,QAAJ,CAAaviE,MAAb,CAAoB,sBAApB,EAA4Cw7F,sBAA5C,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;;AAGA,MAAMI,cAAc,GAAI9nE,CAAD,IAAO;AAC1B,QAAMs3D,aAAa,GAAGpmD,KAAE,CAAC,UAAD,CAAxB;;AACA,QAAM62D,mBAAmB,GAAG72D,KAAE,CAAC,wBAAD,CAA9B;;AACI,SAAO57C,aAAP,sCAE4BgiG,aAF5B,EAGgCyQ,mBAHhC,EAGmG/nE,CAAC,CAACN,IAAF,IAAU,EAH7G;AAMP,CATD;;AAYgBM,wDAAD,IAAO;AAClB,QAAMgoE,SAAS,GAAG92D,KAAE,CAAC,MAAD,CAApB;;AACA,QAAM+2D,UAAU,GAAG/2D,KAAE,CAAC,uBAAD,CAArB;;AACA,SAAO57C,aAAP,uCAIwE2yG,UAJxE,EAKkBpxB,yBALlB,EAWgD72C,CAAC,CAACkoE,kBAXlD,EAY4BloE,CAAC,CAACmoE,2BAAH,GAAkC7yG,aAAlC,CAAC,sCAA2E0qC,CAAC,CAACmoE,2BAA9E,IAAsH,EAZjJ,EAaiInoE,CAAC,CAACooE,oBAbnI,EAeuBpoE,CAAC,CAACqoE,sBAAF,GAA4B/yG,aAA5B,uCAA2D42F,UAAU,CAACF,aAAG,CAACC,SAAJ,CAAcjsD,CAAC,CAACqoE,sBAAhB,EAAwC;AAAC,iBAAa;AAAC17G,OAAC,EAAE,EAAJ;AAAQ27G,QAAE,EAAE,EAAZ;AAAgBC,QAAE,EAAE;AAApB;AAAd,GAAxC,CAAD,CAArE,IAAiK,EAfxL,EAgBuB,CAACvoE,CAAC,CAACkH,SAAF,CAAYshE,mBAAb,GAAmCV,cAAc,CAAC9nE,CAAD,CAAjD,GAAuD,EAhB9E,EAiBsFgoE,SAAS,IAAI,EAjBnG,EAiBoHhoE,CAAC,CAACmoE,2BAjBtH;AAuBH,CA1BD,E;;;;;ACnBA;AACA;AACA;AACA;AACA;AAEA,MAAMrqE,SAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;AAGeopF,0DAAc,CAAC5hD,MAAf,CAAsB;AACjCx6B,IAAE,EAAE,oBAD6B;AAGjCu+B,QAAM,EAAE;AACJ,gCAA4B,cADxB;AAEJ,4BAAwB,mBAFpB;AAGJ,6BAAyB;AAHrB,GAHyB;;AASjC3O,YAAU,GAAI;AACVwsD,kBAAc,CAAC7oF,SAAf,CAAyBq8B,UAAzB,CAAoCvL,KAApC,CAA0C,IAA1C,EAAgD3qB,SAAhD;AACA,SAAKulC,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,mBAA1B,EAA+C,KAAKugD,MAApD;AACA,SAAK60B,2BAAL,GAAmC,IAAnC;AACH,GAbgC;;AAejC30B,QAAM,GAAI;AACN,QAAIh1D,WAAW,GAAG,EAAlB;;AACA,QAAI,CAAC6oB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,mBAAjB,CAAL,EAA4C;AACxC,YAAMiwF,UAAU,GAAG,KAAK11E,KAAL,CAAWva,GAAX,CAAe,YAAf,KAAgC6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,CAAnD;AACAgG,iBAAW,GAAGiqF,UAAU,kBAAWA,UAAX,IAA0Bv3D,KAAE,CAAC,6BAAD,CAApD;AACH;;AACD,WAAOw3D,kBAAsB,CAACv6G,MAAM,CAACsmC,MAAP,CAAc,KAAK1B,KAAL,CAAWmB,MAAX,EAAd,EAAmC;AAC7D,mBAAagT,sBADgD;AAE7D,4BAAsBG,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,IAAiC04B,KAAE,CAAC,gBAAD,CAAnC,GAAyDA,KAAE,CAAC,mBAAD,CAFpB;AAG7D,8BAAwB1yB,WAHqC;AAI7D,qCAA+B,KAAK2pF,2BAJyB;AAK7D,gCAA0B9gE,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,wBAAjB;AALmC,KAAnC,CAAD,CAA7B;AAOH,GA5BgC;;AA8BjCi7D,aAAW,GAAI;AACX,SAAK1/E,EAAL,CAAQqhD,gBAAR,CAAyB,gBAAzB,EAA2C,MAAM;AAC7C,WAAKrhD,EAAL,CAAQkuB,aAAR,CAAsB,wBAAtB,EAAgDojB,KAAhD;AACH,KAFD,EAEG,KAFH;AAGH,GAlCgC;;AAoCjCsjE,wBAAsB,CAAE9+C,IAAF,EAAQ;AAC1B,UAAM3oD,IAAI,GAAG,IAAIm3E,QAAJ,CAAaxuB,IAAb,CAAb;AACA,UAAM7yD,GAAG,GAAGkK,IAAI,CAACsX,GAAL,CAAS,UAAT,CAAZ;AACA,QAAIknB,IAAJ;;AACA,QAAI2H,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB,CAAJ,EAA6C;AACzCknB,UAAI,GAAGwH,sBAAS,CAACmqB,qBAAV,EAAP;;AACA,UAAI,CAAC3xB,IAAL,EAAW;AACP,cAAM,IAAI9zC,KAAJ,CAAU,kDAAV,CAAN;AACH;AACJ,KALD,MAKO;AACH8zC,UAAI,GAAGx+B,IAAI,CAACsX,GAAL,CAAS,UAAT,EAAqBhJ,IAArB,EAAP;AACH;;AACD,WAAO;AACH,aAAOxY,GADJ;AAEH,cAAQ0oC;AAFL,KAAP;AAIH,GApDgC;;AAsDjC6xB,cAAY,CAAEnlC,EAAF,EAAM;AACdA,MAAE,CAACglD,cAAH;AACA,UAAMlwE,IAAI,GAAG,KAAKynG,sBAAL,CAA4Bv8E,EAAE,CAAC8kD,MAA/B,CAAb;;AACA,QAAIhwE,IAAI,CAACw+B,IAAL,KAAc,EAAlB,EAAsB;AAClB;AACAx+B,UAAI,CAACw+B,IAAL,GAAY7qC,SAAZ;AACH;;AACD,QAAImC,GAAJ;;AACA,QAAIqwC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,mBAAjB,KAA0C6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,KAAkC,CAACslB,SAAC,CAACc,UAAF,CAAa19B,IAAI,CAAClK,GAAlB,CAAjF,EAA0G;AACtGA,SAAG,aAAM3H,8BAAO,CAACwH,UAAR,CAAmBqK,IAAI,CAAClK,GAAxB,CAAN,cAAsCqwC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,CAAtC,CAAH;AACH,KAFD,MAEO;AACHxhB,SAAG,GAAGkK,IAAI,CAAClK,GAAX;AACA,WAAK+7B,KAAL,CAAWiqC,SAAX,CAAqBhmE,GAArB;AACH;;AACDqwC,qBAAG,CAAC+pB,KAAJ,CAAU7sC,IAAV,CAAevtB,GAAf,EAAoB7I,MAAM,CAACsmC,MAAP,CAAcvzB,IAAd,EAAoB;AAAClK;AAAD,KAApB,CAApB,EAAgD,IAAhD;AACA,SAAKsgF,KAAL,CAAWgB,IAAX;AACAlsD,MAAE,CAAC8kD,MAAH,CAAUj1E,KAAV;AACH,GAvEgC;;AAyEjC2sG,mBAAiB,GAAI;AACjB,QAAIvhE,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,mBAAjB,KAAyC6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,CAA7C,EAA6E;AACzE,UAAIxhB,GAAG,GAAG,KAAKjD,EAAL,CAAQkuB,aAAR,CAAsB,gBAAtB,EAAwClzB,KAAlD;;AACA,UAAIw7B,QAAQ,CAACs+E,iBAAT,IAA8B,CAAC/qE,SAAC,CAACc,UAAF,CAAa5nC,GAAb,CAAnC,EAAsD;AAClDA,WAAG,aAAM3H,8BAAO,CAACwH,UAAR,CAAmBG,GAAnB,CAAN,cAAiCqwC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,CAAjC,CAAH;AACH;;AACD,YAAMswF,MAAM,GAAGz5G,8BAAO,CAAC0H,cAAR,CAAuBC,GAAvB,CAAf;AACA,YAAM+xG,UAAU,GAAG15G,8BAAO,CAAC6H,gBAAR,CAAyBF,GAAzB,CAAnB;;AACA,UAAIqwC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,MAAmCuwF,UAAnC,IACA1hE,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,mBAAjB,EAAsCtS,IAAtC,CAA2C4iG,MAA3C,CADJ,EACwD;AACpD,aAAKX,2BAAL,GAAmC,IAAnC;AACH,OAHD,MAGO;AACH,aAAKA,2BAAL,GAAmCj3D,KAAE,CAAC,0BAAD,CAArC;AACH;;AACD,WAAKoiC,MAAL;AACH;AACJ;;AAzFgC,CAAtB,CAAf,E;;;;;;;;;;;;;;;;;;;;;;;;ACTA;AACA;AACA;AAGgBtzC,sDAAD,IAAO;AAClB,QAAMgpE,WAAW,GAAG93D,KAAE,CAAC,QAAD,CAAtB;;AACA,QAAM+3D,mBAAmB,GAAG/3D,KAAE,CAAC,kCAAD,CAA9B;;AACA,QAAMg4D,oBAAoB,GAAGh4D,KAAE,CAAC,kBAAD,CAA/B;;AACA,QAAMi4D,kBAAkB,GAAGj4D,KAAE,CAAC,mCAAD,CAA7B;;AACA,QAAMk4D,iBAAiB,GAAGl4D,KAAE,CAAC,cAAD,CAA5B;;AACA,QAAMm4D,WAAW,GAAGn4D,KAAE,CAAC,oCAAD,CAAtB;;AACA,SAAO57C,aAAP,oCAIwE2zG,mBAJxE,EAKkBpyB,yBALlB,EAUoC72C,CAAC,CAACspE,gBAVtC,EAYyEF,iBAZzE,EAa+BppE,CAAC,CAACupE,kBAAF,GAAuBj0G,aAAvB,qCAAgE6zG,kBAAhE,IAA6F,EAb5H,EAkB+CD,oBAlB/C,EAwBqCG,WAxBrC,EA4B4EL,WA5B5E;AAoCH,CA3CD,E;;ACLA;AACA;AACA;AAEA,MAAMlrE,YAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;AAGeopF,6DAAc,CAAC5hD,MAAf,CAAsB;AACjCx6B,IAAE,EAAE,kBAD6B;;AAGjC4vB,YAAU,GAAI;AACVwsD,kBAAc,CAAC7oF,SAAf,CAAyBq8B,UAAzB,CAAoCvL,KAApC,CAA0C,IAA1C,EAAgD3qB,SAAhD;AACA,SAAKulC,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,QAA1B,EAAoC,KAAKugD,MAAzC;AACA,SAAKk2B,gBAAL;AACH,GAPgC;;AASjCh2B,QAAM,GAAI;AACN,WAAOi2B,gBAAoB,CAACt7G,MAAM,CAACsmC,MAAP,CACxB,KAAK1B,KAAL,CAAWmB,MAAX,EADwB,EACH;AACjB,0BAAoB9H,EAAE,IAAI,KAAKk9E,gBAAL,CAAsBl9E,EAAtB;AADT,KADG,CAAD,CAA3B;AAKH,GAfgC;;AAiBjCo9E,kBAAgB,GAAI;AAChB,QAAI,KAAKE,oBAAT,EAA+B;AAC3B,WAAKA,oBAAL,CAA0Bj2E,OAA1B;AACH;;AACD,UAAM5lB,IAAI,GAAGq5B,sBAAS,CAACi2B,MAAV,CAAiBrkE,GAAjB,CAAqBhN,CAAC,KAAK;AAAC,eAASA,CAAC,CAACy0D,cAAF,EAAV;AAA8B,eAASz0D,CAAC,CAAC0sB,GAAF,CAAM,KAAN;AAAvC,KAAL,CAAtB,CAAb;;AACA,UAAMzkB,EAAE,GAAG,KAAKA,EAAL,CAAQkuB,aAAR,CAAsB,iBAAtB,EAAyCm2C,aAApD;AACA,SAAKsxC,oBAAL,GAA4B,IAAIxiE,sBAAS,CAACuoC,YAAd,CAA2B17E,EAA3B,EAA+B;AACvD,mBAAa,CAD0C;AAEvD,cAAQ8Z;AAF+C,KAA/B,CAA5B;AAIH,GA3BgC;;AA6BjCy7F,kBAAgB,CAAEl9E,EAAF,EAAM;AAClBA,MAAE,CAACglD,cAAH,GADkB,CAElB;;AACA,UAAMlwE,IAAI,GAAG,IAAIm3E,QAAJ,CAAajsD,EAAE,CAAC8kD,MAAhB,CAAb;AACA,UAAMl6E,GAAG,GAAGkK,IAAI,CAACsX,GAAL,CAAS,cAAT,CAAZ;AACA,UAAMjV,MAAM,GAAGrC,IAAI,CAACsX,GAAL,CAAS,QAAT,CAAf;;AACA,QAAIslB,YAAC,CAACc,UAAF,CAAa5nC,GAAb,CAAJ,EAAuB;AACnB;AACA,WAAKw+E,YAAL,CAAkBziD,KAAlB,CAAwBojC,YAAxB,CAAqCn/D,GAArC,EAA0CuM,MAA1C;AACA,WAAK+zE,KAAL,CAAWgB,IAAX;AACH,KAJD,MAIO;AACH,WAAKvlD,KAAL,CAAWoB,GAAX,CAAe;AAAC,8BAAsB;AAAvB,OAAf;AACH;AACJ;;AA1CgC,CAAtB,CAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;AAGA,MAAM01B,yBAAI,GAAI7pB,CAAD,IAAO;AAChB,QAAM2pE,UAAU,GAAGz4D,KAAE,CAAC,iBAAD,CAArB;;AACA,QAAM04D,mBAAmB,GAAG14D,KAAE,CAAC,gBAAD,CAA9B;;AACA,SAAO57C,aAAP,wCAEkB0qC,CAAC,CAAC6pE,UAFpB,EAIoCD,mBAJpC,EAM0B5pE,CAAC,CAAC8pE,kBAN5B,EAOyB9pE,CAAC,CAACyoE,UAAF,IAAgB,EAPzC,EAW+BzoE,CAAC,CAAC+pE,kBAXjC,EAa0EJ,UAb1E;AAgBH,CAnBD;;AAsBA,MAAMK,QAAQ,GAAG,CAAChqE,CAAD,EAAI3L,IAAJ,KAAa;AAC1B,QAAM41E,eAAe,GAAG/4D,KAAE,CAAC,yCAAD,CAA1B;;AACA,QAAMg5D,eAAe,GAAGh5D,KAAE,CAAC,8BAAD,CAA1B;;AACA,SAAO57C,aAAP,yCAIqB0qC,CAAC,CAACmxB,QAJvB,EAK6B98B,IAAI,CAACr9B,GALlC,EAM8Bq9B,IAAI,CAACllC,IANnC,EAOqB+6G,eAPrB,EAQuB71E,IAAI,CAACllC,IAAL,IAAaklC,IAAI,CAACr9B,GARzC,EAUqBgpC,CAAC,CAACmqE,cAVvB,EAW6B91E,IAAI,CAACr9B,GAXlC,EAYqBizG,eAZrB;AAiBH,CApBD;;AAuBgBjqE,0DAAD,IAAO;AAClB,QAAMoqE,mBAAmB,GAAGl5D,KAAE,CAAC,sBAAD,CAA9B;;AACA,SAAO57C,aAAP,yCAI0E80G,mBAJ1E,EAKkBvzB,yBALlB,EASkB72C,CAAC,CAACqqE,SAAF,GAAcxgD,yBAAI,CAAC7pB,CAAD,CAAlB,GAAwB,EAT1C,EAWuBA,CAAC,CAACsqE,aAAF,GAAkBh1G,aAAlB,yCAAsDi1G,OAAO,EAA7D,IAA0E,EAXjG,EAYuBvqE,CAAC,CAACwqE,aAAF,GAAkBl1G,aAAlB,yCAA6D0qC,CAAC,CAACwqE,aAA/D,IAAuF,EAZ9G,EAasB/pF,MAAM,CAACuf,CAAC,CAAC9sB,KAAH,EAAUmhB,IAAI,IAAIA,IAAI,CAACr9B,GAAvB,EAA4Bq9B,IAAI,IAAI21E,QAAQ,CAAChqE,CAAD,EAAI3L,IAAJ,CAA5C,CAb5B,EAgBwCuiD,kBAhBxC;AAoBH,CAtBD,E;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM94C,UAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;AAGA;;;;;;AAKA,SAAS48G,cAAT,CAAyB12G,EAAzB,EAA6BgO,MAA7B,EAAqC;AAAA;;AACjC;AACAhO,IAAE,CAACkuB,aAAH,CAAiB,cAAjB,EAAiCsqB,MAAjC;AACAx4C,IAAE,CAACkuB,aAAH,CAAiB,aAAjB,EAAgCo0D,SAAhC,CAA0C7rD,GAA1C,CAA8C,UAA9C;AACAz2B,IAAE,CAAC22G,kBAAH,CACI,WADJ,EAEIC,0BAAoB,CAAC;AACjB,WAAO5oG,MAAM,CAAC7L,YAAP,CAAoB,MAApB,CADU;AAEjB,qBAAQ4rC,cAAI,CAAC1C,gBAAM,CAAC,6CAAD,EAAgDr9B,MAAhD,CAAP,CAAZ,0CAAQ,MAAqEyD,WAF5D;AAGjB,qBAAOs8B,cAAI,CAAC1C,gBAAM,CAAC,2CAAD,EAA8Cr9B,MAA9C,CAAP,CAAX,2CAAO,OAAmEyD,WAHzD;AAIjB,cAAU45B,gBAAM,CAAC,2BAAD,EAA8Br9B,MAA9B,CAAN,CAA4ChW,MAJrC;AAKjB,mBAAeqzC,gBAAM,CAAC,gCAAD,EAAmCr9B,MAAnC,CAAN,CAAiDhW,MAL/C;AAMjB,iBAAaqzC,gBAAM,CAAC,8BAAD,EAAiCr9B,MAAjC,CAAN,CAA+ChW,MAN3C;AAOjB,oBAAgBqzC,gBAAM,CAAC,iCAAD,EAAoCr9B,MAApC,CAAN,CAAkDhW,MAPjD;AAQjB,YAAQqzC,gBAAM,CAAC,yBAAD,EAA4Br9B,MAA5B,CAAN,CAA0ChW,MARjC;AASjB,yBAAqBqzC,gBAAM,CAAC,sCAAD,EAAyCr9B,MAAzC,CAAN,CAAuDhW,MAT3D;AAUjB,kBAAcqzC,gBAAM,CAAC,+BAAD,EAAkCr9B,MAAlC,CAAN,CAAgDhW,MAV7C;AAWjB,kBAAcqzC,gBAAM,CAAC,+BAAD,EAAkCr9B,MAAlC,CAAN,CAAgDhW,MAX7C;AAYjB,qBAAiBqzC,gBAAM,CAAC,kCAAD,EAAqCr9B,MAArC,CAAN,CAAmDhW,MAZnD;AAajB,iBAAaqzC,gBAAM,CAAC,8BAAD,EAAiCr9B,MAAjC,CAAN,CAA+ChW,MAb3C;AAcjB,mBAAeqzC,gBAAM,CAAC,gCAAD,EAAmCr9B,MAAnC,CAAN,CAAiDhW,MAd/C;AAejB,kBAAcmlD,KAAE,CAAC,cAAD,CAfC;AAgBjB,iBAAaA,KAAE,CAAC,0BAAD,CAhBE;AAiBjB,iBAAaA,KAAE,CAAC,eAAD,CAjBE;AAkBjB,sBAAkBA,KAAE,CAAC,WAAD,CAlBH;AAmBjB,2BAAuBA,KAAE,CAAC,yBAAD,CAnBR;AAoBjB,oBAAgBA,KAAE,CAAC,QAAD,CApBD;AAqBjB,6BAAyBA,KAAE,CAAC,wBAAD,CArBV;AAsBjB,uBAAmBA,KAAE,CAAC,WAAD,CAtBJ;AAuBjB,sBAAkBA,KAAE,CAAC,eAAD,CAvBH;AAwBjB,uBAAmBA,KAAE,CAAC,MAAD,CAxBJ;AAyBjB,4BAAwBA,KAAE,CAAC,WAAD,CAzBT;AA0BjB,oBAAgBA,KAAE,CAAC,QAAD,CA1BD;AA2BjB,uBAAoBA,KAAE,CAAC,gBAAD,CA3BL;AA4BjB,uBAAoBA,KAAE,CAAC,WAAD,CA5BL;AA6BjB,yBAAqBA,KAAE,CAAC,aAAD;AA7BN,GAAD,CAFxB;AAiCH;AAGD;;;;;;;AAKA,SAASi5D,cAAT,CAAyB/9E,EAAzB,EAA6B;AACzB,QAAMw+E,SAAS,GAAG9sE,UAAC,CAACmzC,QAAF,CAAW7kD,EAAE,CAAC8kD,MAAd,EAAsB,YAAtB,CAAlB;AACA,QAAM25B,MAAM,GAAGD,SAAS,CAAC3oF,aAAV,CAAwB,eAAxB,CAAf;;AACA,MAAI4oF,MAAJ,EAAY;AACR/sE,cAAC,CAACs4C,OAAF,CAAUy0B,MAAV,EAAkBn+E,IAAlB,CAAuBoR,UAAC,CAACg6C,aAAzB;AACA8yB,aAAS,CAAC3oF,aAAV,CAAwB,aAAxB,EAAuCo0D,SAAvC,CAAiD9pC,MAAjD,CAAwD,UAAxD;AACH,GAHD,MAGO;AACHq+D,aAAS,CAACx1B,qBAAV,CACI,WADJ,EAEIt3C,UAAC,CAAC0hD,4BAAF,CAA+BgJ,OAAW,EAA1C,CAFJ;AAIAnhD,qBAAG,CAACwX,KAAJ,CAAUtmD,IAAV,CAAe6zB,EAAE,CAAC8kD,MAAH,CAAUh7E,YAAV,CAAuB,eAAvB,CAAf,EAAwD,IAAxD,EACKw2B,IADL,CACU3qB,MAAM,IAAI0oG,cAAc,CAACG,SAAD,EAAY7oG,MAAZ,CADlC,EAEK0wB,KAFL,CAEW97B,CAAC,IAAIsB,YAAG,CAACI,KAAJ,CAAU1B,CAAV,CAFhB;AAGH;AACJ;;AAGcsgF,2DAAc,CAAC5hD,MAAf,CAAsB;AACjCx6B,IAAE,EAAE,sBAD6B;;AAGjC4vB,YAAU,GAAI;AACV,SAAKvX,KAAL,GAAa,EAAb;AACA,SAAKo3F,aAAL,GAAqB,KAArB;AAEArzB,kBAAc,CAAC7oF,SAAf,CAAyBq8B,UAAzB,CAAoCvL,KAApC,CAA0C,IAA1C,EAAgD3qB,SAAhD;;AACA,QAAI8yC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,KAAkC,CAAC,KAAKua,KAAL,CAAWva,GAAX,CAAe,YAAf,CAAvC,EAAqE;AACjE,WAAKua,KAAL,CAAWkB,IAAX,CAAgB,YAAhB,EAA8BoT,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,CAA9B;AACH;;AACD,SAAKshB,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,mBAA1B,EAA+C,KAAK+3E,cAApD;AAEA,SAAK/2G,EAAL,CAAQqhD,gBAAR,CAAyB,gBAAzB,EAA2C,MAAM/N,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,mBAAjB,IAC7C,KAAKuyF,eAAL,EAD6C,GAE7C,KAAKh3G,EAAL,CAAQkuB,aAAR,CAAsB,sBAAtB,EAA8CojB,KAA9C,EAFJ;AAIH,GAjBgC;;AAmBjCmuC,QAAM,GAAI;AACN,UAAMi1B,UAAU,GAAG,KAAK11E,KAAL,CAAWva,GAAX,CAAe,YAAf,KAAgC6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,CAAnD;AACA,WAAOwyF,oBAAwB,CAC3B78G,MAAM,CAACsmC,MAAP,CAAc,KAAK1B,KAAL,CAAWmB,MAAX,EAAd,EAAmC;AAC/B,mBAAa,CAACmT,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,mBAAjB,CADiB;AAE/B,4BAAsBiwF,UAAU,GAAGA,UAAH,GAAgBv3D,KAAE,CAAC,wBAAD,CAFnB;AAG/B,eAAS,KAAKh+B,KAHiB;AAI/B,uBAAiB,KAAKo3F,aAJS;AAK/B,kBAAYl+E,EAAE,IAAI,KAAK+kC,QAAL,CAAc/kC,EAAd,CALa;AAM/B,4BAAsBA,EAAE,IAAI,KAAK09E,kBAAL,CAAwB19E,EAAxB,CANG;AAO/B,oBAAcA,EAAE,IAAI,KAAK6+E,SAAL,CAAe7+E,EAAf,CAPW;AAQ/B,wBAAkBA,EAAE,IAAI,KAAK+9E,cAAL,CAAoB/9E,EAApB;AARO,KAAnC,CAD2B,CAA/B;AAWH,GAhCgC;;AAkCjC+kC,UAAQ,CAAE/kC,EAAF,EAAM;AACVA,MAAE,CAACglD,cAAH;AACA,UAAMp6E,GAAG,GAAGo1B,EAAE,CAAC8kD,MAAH,CAAUh7E,YAAV,CAAuB,eAAvB,CAAZ;AACA,UAAM/G,IAAI,GAAGi9B,EAAE,CAAC8kD,MAAH,CAAUh7E,YAAV,CAAuB,gBAAvB,CAAb;AACA,SAAKohF,KAAL,CAAWgB,IAAX;AACAjxC,qBAAG,CAAC+pB,KAAJ,CAAU7sC,IAAV,CAAevtB,GAAf,EAAoB;AAAC,cAAQ7H;AAAT,KAApB,EAAoC,IAApC;AACH,GAxCgC;;AA0CjCg7G,gBAAc,CAAE/9E,EAAF,EAAM;AAChBA,MAAE,CAACglD,cAAH;AACA+4B,kBAAc,CAAC/9E,EAAD,CAAd;AACH,GA7CgC;;AA+CjC0+E,gBAAc,GAAI;AACdzjE,qBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,iBAAjB,KAAuC,KAAKuyF,eAAL,EAAvC;AACH,GAjDgC;;AAmDjC;;;;;;;AAOAG,cAAY,CAAEjkG,EAAF,EAAM;AACd,SAAKqjG,aAAL,GAAqB,KAArB;AACA,UAAMl5C,KAAK,GAAGnqD,EAAE,GAAGm4B,gBAAM,CAAC,YAAD,EAAen4B,EAAf,CAAT,GAA8B,EAA9C;;AACA,QAAImqD,KAAK,CAACrlE,MAAV,EAAkB;AACd,WAAKgnC,KAAL,CAAWoB,GAAX,CAAe;AAAC,yBAAiB+c,KAAE,CAAC,kBAAD;AAApB,OAAf,EAA0D;AAAC,kBAAU;AAAX,OAA1D;AACA,WAAKh+B,KAAL,GAAak+C,KAAK,CAACt4D,GAAN,CAAU+wC,YAAE,CAACM,aAAb,CAAb;AACH,KAHD,MAGO;AACH,WAAKj3B,KAAL,GAAa,EAAb;AACA,WAAK6f,KAAL,CAAWoB,GAAX,CAAe;AAAC,yBAAiB+c,KAAE,CAAC,qBAAD;AAApB,OAAf,EAA6D;AAAC,kBAAU;AAAX,OAA7D;AACH;;AACD,SAAKoiC,MAAL;AACA,WAAO,IAAP;AACH,GAtEgC;;AAwEjC;;;;;AAKAy3B,iBAAe,GAAI;AACf,UAAM9jG,EAAE,GAAGzX,kCAAG,CAAC;AACX,YAAM,KAAKujC,KAAL,CAAWva,GAAX,CAAe,YAAf,CADK;AAEX,cAAQ0uB,sBAAS,CAAC5+B,UAAV,CAAqBtR,GAFlB;AAGX,cAAQ;AAHG,KAAD,CAAH,CAIRjK,CAJQ,CAIN,OAJM,EAIG;AAAC0M,WAAK,EAAEpK,8BAAO,CAACM,EAAR,CAAWQ;AAAnB,KAJH,CAAX;AAKAk3C,qBAAG,CAACllC,MAAJ,CAAW8E,EAAX,EACKylB,IADL,CACUzlB,EAAE,IAAI,KAAKikG,YAAL,CAAkBjkG,EAAlB,CADhB,EAEKwrB,KAFL,CAEW,MAAM,KAAKy4E,YAAL,EAFjB;AAGH,GAtFgC;;AAwFjCD,WAAS,CAAE7+E,EAAF,EAAM;AACXA,MAAE,CAACglD,cAAH;AACA,SAAKk5B,aAAL,GAAqB,IAArB;AACA,SAAKh3B,MAAL;AAEA,UAAMpyE,IAAI,GAAG,IAAIm3E,QAAJ,CAAajsD,EAAE,CAAC8kD,MAAhB,CAAb;AACA,SAAKn+C,KAAL,CAAWiqC,SAAX,CAAqB97D,IAAI,CAACsX,GAAL,CAAS,QAAT,CAArB;AACA,SAAKuyF,eAAL;AACH,GAhGgC;;AAkGjCjB,oBAAkB,CAAE19E,EAAF,EAAM;AACpB,SAAK2G,KAAL,CAAWiqC,SAAX,CAAqB5wC,EAAE,CAAC8kD,MAAH,CAAUniF,KAA/B;AACH,GApGgC;;AAsGjCo8G,SAAO,CAAE/+E,EAAF,EAAM;AACT,SAAK2G,KAAL,CAAWkB,IAAX,CAAgB;AAACyL,UAAI,EAAEtT,EAAE,CAAC8kD,MAAH,CAAUniF;AAAjB,KAAhB;AACH;;AAxGgC,CAAtB,CAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnFA;AACA;AACA;AACA;;AAGA,SAASq8G,eAAT,CAA0Bt/D,IAA1B,EAAgC;AAC5B,MAAIA,IAAI,KAAK,WAAb,EAA0B;AACtB,WAAOoF,KAAE,CAAC,yHAAD,CAAT;AACH,GAFD,MAEO,IAAIpF,IAAI,KAAK,aAAb,EAA4B;AAC/B,WAAOoF,KAAE,CAAC,iEAAD,CAAT;AACH,GAFM,MAEA,IAAKpF,IAAI,IAAI,SAAb,EAAwB;AAC3B,WAAOoF,KAAE,CAAC,2EAAD,CAAT;AACH;AACJ;;AAED,SAASm6D,sBAAT,CAAiCC,GAAjC,EAAsC;AAClC,MAAIA,GAAG,KAAK,OAAZ,EAAqB;AACjB,WAAOp6D,KAAE,CAAC,gGAAD,CAAT;AACH,GAFD,MAEO,IAAIo6D,GAAG,KAAK,OAAZ,EAAsB;AACzB,WAAOp6D,KAAE,CAAC,kHAAD,CAAT;AACH,GAFM,MAEA,IAAIo6D,GAAG,KAAK,SAAZ,EAAwB;AAC3B,WAAOp6D,KAAE,CAAC,8DAAD,CAAT;AACH;AACJ;;AAGD,MAAMq6D,WAAW,GAAIvrE,CAAD,IAAO1qC,aAAP,CAAC,wCACA0qC,CAAC,CAAC3L,IAAF,IAAU,EADX,EAEI2L,CAAC,CAAC3L,IAAF,KAAW2L,CAAC,CAAC8L,IAFjB,EAGCs/D,eAAe,CAACprE,CAAC,CAAC3L,IAAH,CAHhB,EAG6B2L,CAAC,CAAC3L,IAH/B,CAApB;;AAOA,MAAMm3E,kBAAkB,GAAIxrE,CAAD,IAAO1qC,aAAP,CAAC,yCACP0qC,CAAC,CAAC3L,IAAF,IAAU,EADJ,EAEH2L,CAAC,CAAC3L,IAAF,KAAW2L,CAAC,CAAC6L,WAFV,EAGNw/D,sBAAsB,CAACrrE,CAAC,CAAC3L,IAAH,CAHhB,EAG6B2L,CAAC,CAAC3L,IAH/B,CAA3B;;AAOA,MAAMo3E,iBAAiB,GAAIzrE,CAAD,IAAO;AAC7B,QAAM0rE,gBAAgB,GAAGx6D,KAAE,CAAC,aAAD,CAA3B;;AACA,QAAMy6D,aAAa,GAAGz6D,KAAE,CAAC,UAAD,CAAxB;;AACA,QAAMm4D,WAAW,GAAGn4D,KAAE,CAAC,QAAD,CAAtB;;AACA,SAAO57C,aAAP,0CAC6C0qC,CAAC,CAAC4rE,UAD/C,EAGqD5rE,CAAC,CAAC3L,IAAF,CAAOr9B,GAH5D,EAIsDgpC,CAAC,CAAC3L,IAAF,CAAOqL,IAJ7D,EAOqCisE,aAPrC,EAS2B3rE,CAAC,CAAC6rE,gBAAF,CAAmB/yG,GAAnB,CAAuBgzC,IAAI,IAAIx2C,aAAJ,0CAA0Bw2C,IAA1B,EAA6CA,IAAI,KAAK9L,CAAC,CAAC3L,IAAF,CAAOyX,IAA7D,EAAqEA,IAArE,CAA3B,CAT3B,EAaqCu9D,WAbrC,EAmBkEqC,gBAnBlE;AAuBH,CA3BD;;AA8BA,MAAMI,cAAc,GAAI9rE,CAAD,IAAO1qC,aAAP,CAAC,yCACqB0qC,CAAC,CAAC3L,IAAF,CAAOqL,IAD7B,EAIsBM,CAAC,CAAC3L,IAAF,CAAOr9B,GAJ7B,EAO2BgpC,CAAC,CAAC3L,IAAF,CAAOqL,IAPlC,EAUuBM,CAAC,CAAC3L,IAAF,CAAOyX,IAV9B,EAUsC9L,CAAC,CAAC6rE,gBAAF,CAAmB9/G,MAAnB,GAA4BuJ,aAA5B,0CAAmH0qC,CAAC,CAAC+rE,UAArH,IAAyI,EAV/K,EAWL/rE,CAAC,CAAC6rE,gBAAF,CAAmB9/G,MAAnB,GAA4B0/G,iBAAiB,CAACzrE,CAAD,CAA7C,GAAmD,EAX9C,CAAvB;;AAkBA,MAAMgsE,wBAAwB,GAAIhsE,CAAD,IAAO;AACpC,QAAMisE,uBAAuB,GAAG/6D,KAAE,CAAC,oBAAD,CAAlC;;AACA,QAAMg7D,oBAAoB,GAAGh7D,KAAE,CAAC,iBAAD,CAA/B;;AACA,QAAMm4D,WAAW,GAAGn4D,KAAE,CAAC,QAAD,CAAtB;;AACA,SAAO57C,aAAP,0CACoD0qC,CAAC,CAACmsE,iBADtD,EAGqDnsE,CAAC,CAAC3L,IAAF,CAAOr9B,GAH5D,EAIsDgpC,CAAC,CAAC3L,IAAF,CAAOqL,IAJ7D,EAOqCwsE,oBAPrC,EAS2BlsE,CAAC,CAACosE,uBAAF,CAA0BtzG,GAA1B,CAA8BwyG,GAAG,IAAIh2G,aAAJ,0CAA0Bg2G,GAA1B,EAA4CA,GAAG,KAAKtrE,CAAC,CAAC3L,IAAF,CAAOwX,WAA3D,EAA0Ey/D,GAA1E,CAAjC,CAT3B,EAaqCjC,WAbrC,EAmBgF4C,uBAnBhF;AAuBH,CA3BD;;AA8BA,MAAMI,qBAAqB,GAAIrsE,CAAD,IAAO1qC,aAAP,CAAC,yCACc0qC,CAAC,CAAC3L,IAAF,CAAOqL,IADtB,EAIeM,CAAC,CAAC3L,IAAF,CAAOr9B,GAJtB,EAOoBgpC,CAAC,CAAC3L,IAAF,CAAOqL,IAP3B,EAUuBM,CAAC,CAAC3L,IAAF,CAAOwX,WAV9B,EAU6C7L,CAAC,CAACosE,uBAAF,CAA0BrgH,MAA1B,GAAmCuJ,aAAnC,2CAAiI0qC,CAAC,CAAC+rE,UAAnI,IAAuJ,EAVpM,EAWZ/rE,CAAC,CAACosE,uBAAF,CAA0BrgH,MAA1B,GAAmCigH,wBAAwB,CAAChsE,CAAD,CAA3D,GAAiE,EAXrD,CAA9B;;AAkBA,MAAMssE,cAAc,GAAItsE,CAAD,IAAO1qC,aAAP,CAAC,0CAG+I0qC,CAAC,CAAC23C,SAHlJ,EAMoH33C,CAAC,CAAC23C,SANtH,CAAvB;;AAYgB33C,2DAAD,IAAO;AAClB,QAAMusE,gBAAgB,GAAGr7D,KAAE,CAAC,aAAD,CAA3B;;AACA,QAAMs7D,oBAAoB,GAAGt7D,KAAE,CAAC,iBAAD,CAA/B;;AACA,QAAMu7D,sBAAsB,GAAGv7D,KAAE,CAAC,uCAAD,CAAjC;;AACA,QAAMw7D,uBAAuB,GAAGx7D,KAAE,CAAC,gCAAD,CAAlC;;AACA,QAAMy7D,WAAW,GAAGz7D,KAAE,CAAC,wCAAD,CAAtB;;AACA,QAAMsmD,SAAS,GAAGtmD,KAAE,CAAC,MAAD,CAApB;;AACA,QAAM07D,eAAe,GAAG17D,KAAE,CAAC,YAAD,CAA1B;;AACA,QAAM27D,kBAAkB,GAAG37D,KAAE,CACzB,+FACA,8EADA,GAEA,gGAHyB,CAA7B;;AAKA,QAAM47D,yBAAyB,GAAG57D,KAAE,CAChC,iGACA,+FADA,GAEA,iBAHgC,CAApC;;AAKA,QAAM67D,cAAc,GAAG/sE,CAAC,CAACgtE,eAAF,CAAkBjhH,MAAlB,IAA4Bi0C,CAAC,CAACitE,sBAAF,CAAyBlhH,MAA5E;AACA,SAAOuJ,aAAP,2CAIyEk3G,oBAJzE,EAKc31B,yBALd,EAUek2B,cAAc,GAAGT,cAAc,CAACtsE,CAAD,CAAjB,GAAuB,EAVpD,EAa0DA,CAAC,CAACitE,sBAAF,CAAyBlhH,MAAzB,GAAkC,QAAlC,GAA6C,EAbvG,EAc4Ei0C,CAAC,CAACktE,gBAd9E,EAemDJ,yBAfnD,EAkB0CP,gBAlB1C,EAuB0CvsE,CAAC,CAACitE,sBAAF,CAAyBn0G,GAAzB,CAA6Bu7B,IAAI,IAAIm3E,kBAAkB,CAACr9G,MAAM,CAACsmC,MAAP,CAAc;AAACJ;AAAD,GAAd,EAAsB2L,CAAtB,CAAD,CAAvD,CAvB1C,EA2BwH4sE,eA3BxH,EAgCwCh0G,KAAK,CAAC8C,OAAN,CAAcskC,CAAC,CAACmtE,sBAAhB,KAA2CntE,CAAC,CAACmtE,sBAAF,CAAyBphH,MAAzB,GAAkC,CAA9E,GACCuJ,aADD,CAAC,0CAC2C0qC,CAAC,CAACotE,mBAD9C,EAC6EptE,CAAC,CAACqtE,wBAD/E,EACkJV,WADlJ,IACqK,EAjC5M,EAqC+BtB,sBAAsB,CAACrrE,CAAC,CAAC6L,WAAH,CAAtB,GACCv2C,aADD,2CACwE+1G,sBAAsB,CAACrrE,CAAC,CAAC6L,WAAH,CAD9F,IACkI,EAtCjK,EA2CgC7L,CAAC,CAACstE,8BAAH,GAAqCh4G,aAArC,CAAC,0CAAwEi1G,OAAO,EAAhF,IAA6F,EA3C5H,EA4CgC3xG,KAAK,CAAC8C,OAAN,CAAcskC,CAAC,CAACmtE,sBAAhB,KAA2CntE,CAAC,CAACmtE,sBAAF,CAAyBphH,MAAzB,KAAoC,CAAhF,GACKuJ,aADL,sBACwCm3G,sBADxC,IACwE,EA7CvG,EA+CgCzsE,CAAC,CAACmtE,sBAAF,YAAoCvhH,KAArC,GACK0J,aADL,sBACwC0qC,CAAC,CAACmtE,sBAAF,CAAyBr1G,OADjE,IAEK,CAACkoC,CAAC,CAACmtE,sBAAF,IAA4B,EAA7B,EAAiCr0G,GAAjC,CAAqCu7B,IAAI,IAAK,CAACA,IAAI,CAACqL,IAAL,IAAarL,IAAI,CAACr9B,GAAnB,EAAwBuQ,KAAxB,CAA8B,IAAI+Q,MAAJ,CAAW0nB,CAAC,CAACotE,mBAAb,EAAkC,GAAlC,CAA9B,IAAwEf,qBAAqB,CAACl+G,MAAM,CAACsmC,MAAP,CAAc;AAACJ;AAAD,GAAd,EAAsB2L,CAAtB,CAAD,CAA7F,GAA0H,EAAxK,CAjDpC,EAsD0D,CAAC+sE,cAAD,IAAmB/sE,CAAC,CAACgtE,eAAF,CAAkBjhH,MAArC,GAA8C,QAA9C,GAAyD,EAtDnH,EAuDqEi0C,CAAC,CAACutE,SAvDvE,EAwDmDV,kBAxDnD,EA0DwDrV,SA1DxD,EA8D0Cx3D,CAAC,CAACgtE,eAAF,CAAkBl0G,GAAlB,CAAsBu7B,IAAI,IAAIk3E,WAAW,CAACp9G,MAAM,CAACsmC,MAAP,CAAc;AAACJ;AAAD,GAAd,EAAsB2L,CAAtB,CAAD,CAAzC,CA9D1C,EAkEiH4sE,eAlEjH,EAuEwCh0G,KAAK,CAAC8C,OAAN,CAAcskC,CAAC,CAACwtE,eAAhB,KAAoCxtE,CAAC,CAACwtE,eAAF,CAAkBzhH,MAAlB,GAA2B,CAAhE,GACCuJ,aADD,sBAC4C0qC,CAAC,CAACytE,YAD9C,EACsEztE,CAAC,CAAC0tE,iBADxE,EACoIf,WADpI,IACuJ,EAxE9L,EA4E+BvB,eAAe,CAACprE,CAAC,CAAC8L,IAAH,CAAf,GAA0Bx2C,aAA1B,sBAAiG81G,eAAe,CAACprE,CAAC,CAAC8L,IAAH,CAAhH,IAA8I,EA5E7K,EAiF+B9L,CAAC,CAAC2tE,uBAAF,GAA4Br4G,aAA5B,sBAAgEi1G,OAAO,EAAvE,IAAoF,EAjFnH,EAkFgCvqE,CAAC,CAACwtE,eAAF,IAAqBxtE,CAAC,CAACwtE,eAAF,CAAkBzhH,MAAlB,KAA6B,CAAnD,GAAwDuJ,aAAxD,sBAA2Fo3G,uBAA3F,IAA4H,EAlF3J,EAmF+B,CAAC1sE,CAAC,CAACwtE,eAAF,IAAqB,EAAtB,EAA0B10G,GAA1B,CAA8Bu7B,IAAI,IAAKA,IAAI,CAACqL,IAAL,CAAUn4B,KAAV,CAAgBy4B,CAAC,CAACytE,YAAlB,IAAkC3B,cAAc,CAAC39G,MAAM,CAACsmC,MAAP,CAAc;AAACJ;AAAD,GAAd,EAAsB2L,CAAtB,CAAD,CAAhD,GAA6E,EAApH,CAnF/B;AA2FH,CA9GD,E;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM;AAAE3wC,SAAOA;AAAT,IAAck7B,QAAQ,CAAC20B,GAA7B;AACA,MAAMphB,iBAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;;AACA,IAAIq5C,wBAAJ;;AAGe+vC,kEAAc,CAAC5hD,MAAf,CAAsB;AACjCx6B,IAAE,EAAE,yBAD6B;;AAGjC4vB,YAAU,CAAEr7B,KAAF,EAAS;AACf83C,4BAAS,GAAI93C,KAAK,CAAC83C,SAAnB;AACA,SAAKsuC,YAAL,GAAoBpmF,KAAK,CAAComF,YAA1B;AACAyB,kBAAc,CAAC7oF,SAAf,CAAyBq8B,UAAzB,CAAoCvL,KAApC,CAA0C,IAA1C,EAAgD3qB,SAAhD;AAEA,SAAK64G,mBAAL,GAA2B,EAA3B;AACA,SAAKK,YAAL,GAAoB,EAApB;AAEA,SAAK3zE,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,aAA1B,EAAyC,MAAM;AAC3C,WAAKy6E,eAAL,GAAuB,KAAKh4B,YAAL,CAAkBziD,KAAlB,CAAwB2kC,oBAAxB,CAA6C,KAAK3kC,KAAL,CAAWva,GAAX,CAAe,MAAf,CAA7C,CAAvB;AACA,WAAK86D,MAAL;AACH,KAHD;AAIA,SAAKx5C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,oBAA1B,EAAgD,YAAY;AACxD,WAAKu6E,8BAAL,GAAsC,IAAtC;AACA,WAAKH,sBAAL,GAA8B,IAA9B;AACA,WAAK75B,MAAL;AACA,YAAM7f,QAAQ,GAAG,KAAK+hB,YAAL,CAAkBziD,KAAnC;AACA,YAAM8Y,WAAW,GAAG,KAAK9Y,KAAL,CAAWva,GAAX,CAAe,aAAf,CAApB;;AACA,UAAI,KAAKo1F,2BAAL,EAAJ,EAAwC;AACpC,aAAKT,sBAAL,GAA8B,MAAM15C,QAAQ,CAACoE,kBAAT,CAA4BhsB,WAA5B,CAApC;AACH,OAFD,MAEO;AACH,aAAKshE,sBAAL,GAA8B15C,QAAQ,CAACmE,2BAAT,CAAqC/rB,WAArC,CAA9B;AACH;;AACD,WAAKyhE,8BAAL,GAAsC,KAAtC;AACA,WAAKh6B,MAAL;AACH,KAbD;AAcH,GA7BgC;;AA+BjCE,QAAM,GAAI;AACN,UAAM1hB,QAAQ,GAAG,KAAK0jB,YAAL,CAAkBziD,KAAlB,CAAwBuY,SAAxB,CAAkC6D,SAAlC,CAA4C;AAAC,aAAOjI,wBAAS,CAACsB;AAAlB,KAA5C,CAAjB;AACA,WAAOqlE,qBAAyB,CAAC1/G,MAAM,CAACsmC,MAAP,CAAc,KAAK1B,KAAL,CAAWmB,MAAX,EAAd,EAAmC;AAChE,6BAAuB,KAAKk5E,mBADoC;AAEhE,2BAAqBhhF,EAAE,IAAI,KAAK+/E,iBAAL,CAAuB//E,EAAvB,CAFqC;AAGhE,oBAAcA,EAAE,IAAI,KAAKw/E,UAAL,CAAgBx/E,EAAhB,CAH4C;AAIhE,iCAA2B,KAAK0hF,yBAAL,CAA+Bh8C,QAA/B,CAJqC;AAKhE,0BAAoB,KAAKi8C,kBAAL,CAAwBj8C,QAAxB,CAL4C;AAMhE,kCAA4B1lC,EAAE,IAAI,KAAKihF,wBAAL,CAA8BjhF,EAA9B,CAN8B;AAOhE,2BAAqBA,EAAE,IAAI,KAAKshF,iBAAL,CAAuBthF,EAAvB,CAPqC;AAQhE,wCAAkC,KAAKkhF,8BARyB;AAShE,0BAAoBlhF,EAAE,IAAI,KAAK8gF,gBAAL,CAAsB9gF,EAAtB,CATsC;AAUhE,mBAAaA,EAAE,IAAI,KAAKmhF,SAAL,CAAenhF,EAAf,CAV6C;AAWhE,gCAA0B6jC,YAAY,CAACxqD,MAAb,CAAoB/Y,CAAC,IAAI,CAACw6C,wBAAS,CAAC8mE,sBAAV,CAAiCxiF,QAAjC,CAA0C9+B,CAA1C,CAA1B,CAXsC;AAYhE,yBAAmBsjE,KAAK,CAACvqD,MAAN,CAAa/Y,CAAC,IAAI,CAACw6C,wBAAS,CAAC8mE,sBAAV,CAAiCxiF,QAAjC,CAA0C9+B,CAA1C,CAAnB,CAZ6C;AAahE,sBAAgB,KAAK+gH,YAb2C;AAchE,mBAAarhF,EAAE,IAAI,KAAKurD,SAAL,CAAevrD,EAAf,CAd6C;AAehE,oBAAcA,EAAE,IAAI,KAAK2/E,UAAL,CAAgB3/E,EAAhB,CAf4C;AAgBhE,gCAA0B,KAAK+gF,sBAhBiC;AAiBhE,yBAAmB,KAAKK;AAjBwC,KAAnC,CAAD,CAAhC;AAmBH,GApDgC;;AAsDjCM,2BAAyB,CAAEh8C,QAAF,EAAY;AACjC,QAAIue,QAAQ,GAAGhpC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,yBAAjB,CAAf;;AACA,QAAI,CAAC5f,KAAK,CAAC8C,OAAN,CAAc20E,QAAd,CAAL,EAA8B;AAC1BA,cAAQ,GAAGA,QAAQ,GAAGpgB,YAAH,GAAkB,EAArC;AACH;;AAED,QAAI6B,QAAQ,CAACt5C,GAAT,CAAa,aAAb,MAAgC,OAApC,EAA6C;AACzC,aAAOy3C,YAAY,CAACxqD,MAAb,CAAoB/Y,CAAC,IAAI,CAAC2jF,QAAQ,CAAC7kD,QAAT,CAAkB9+B,CAAlB,CAA1B,CAAP;AACH,KAFD,MAEO,IAAIolE,QAAQ,CAACt5C,GAAT,CAAa,aAAb,MAAgC,OAApC,EAA6C;AAChD,aAAOy3C,YAAY,CAACxqD,MAAb,CAAoB/Y,CAAC,IAAI,CAAC,CAAC,OAAD,EAAU,OAAV,EAAmB,GAAG2jF,QAAtB,EAAgC7kD,QAAhC,CAAyC9+B,CAAzC,CAA1B,CAAP;AACH,KAFM,MAEA;AACH,aAAO,EAAP;AACH;AACJ,GAnEgC;;AAqEjCqhH,oBAAkB,CAAEj8C,QAAF,EAAY;AAC1B,QAAIue,QAAQ,GAAGhpC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,yBAAjB,CAAf;;AACA,QAAI,CAAC5f,KAAK,CAAC8C,OAAN,CAAc20E,QAAd,CAAL,EAA8B;AAC1BA,cAAQ,GAAGA,QAAQ,GAAGrgB,KAAH,GAAW,EAA9B;AACH;;AAED,QAAI8B,QAAQ,CAACt5C,GAAT,CAAa,MAAb,MAAyB,WAA7B,EAA0C;AACtC,aAAOw3C,KAAK,CAACvqD,MAAN,CAAavG,CAAC,IAAI,CAACmxE,QAAQ,CAAC7kD,QAAT,CAAkBtsB,CAAlB,CAAnB,CAAP;AACH,KAFD,MAEO;AACH,aAAO,EAAP;AACH;AACJ,GAhFgC;;AAkFjC0uG,6BAA2B,GAAI;AAC3B,UAAM/hE,WAAW,GAAG,KAAK9Y,KAAL,CAAWva,GAAX,CAAe,aAAf,CAApB;;AACA,QAAIqzB,WAAW,KAAK,MAApB,EAA4B;AACxB,aAAO,KAAP;AACH;;AACD,UAAM4nB,QAAQ,GAAG,KAAK+hB,YAAL,CAAkBziD,KAAnC;AACA,UAAMk7E,iBAAiB,GAAGx6C,QAAQ,CAACnoB,SAAT,CAAmBmxB,8BAAnB,EAA1B;;AACA,QAAIwxC,iBAAiB,CAACziF,QAAlB,CAA2BqgB,WAA3B,CAAJ,EAA6C;AACzC,aAAO,KAAP;AACH,KAFD,MAEO;AACH,aAAO,IAAP;AACH;AACJ,GA9FgC;;AAgGjCkgE,YAAU,CAAE3/E,EAAF,EAAM;AACZA,MAAE,CAACmlD,eAAH;AACAnlD,MAAE,CAACglD,cAAH;AACA,UAAM88B,UAAU,GAAG9hF,EAAE,CAAC8kD,MAAH,CAAUh7E,YAAV,CAAuB,WAAvB,CAAnB;AACA,UAAM2zD,IAAI,GAAG/rB,iBAAC,CAACmzC,QAAF,CAAW7kD,EAAE,CAAC8kD,MAAd,EAAsB,kBAAtB,EAA0CjvD,aAA1C,YAA4DisF,UAA5D,EAAb;;AACA,QAAIpwE,iBAAC,CAAC6xC,QAAF,CAAW,QAAX,EAAqB9lB,IAArB,CAAJ,EAAgC;AAC5B/rB,uBAAC,CAAC25C,WAAF,CAAc,QAAd,EAAwB5tB,IAAxB;AACH,KAFD,MAEO;AACH/rB,uBAAC,CAAC85C,QAAF,CAAW,QAAX,EAAqB/tB,IAArB;AACH;AACJ,GA1GgC;;AA4GjC6jD,mBAAiB,CAAEthF,EAAF,EAAM;AACnB,SAAKqhF,YAAL,GAAoBrhF,EAAE,CAAC8kD,MAAH,CAAUniF,KAA9B;AACA,SAAKukF,MAAL;AACH,GA/GgC;;AAiHjC+5B,0BAAwB,CAAEjhF,EAAF,EAAM;AAC1B,SAAKghF,mBAAL,GAA2BhhF,EAAE,CAAC8kD,MAAH,CAAUniF,KAArC;AACA,SAAKukF,MAAL;AACH,GApHgC;;AAsHjCi6B,WAAS,CAAEnhF,EAAF,EAAM;AACXA,MAAE,CAACmlD,eAAH;AACAnlD,MAAE,CAACglD,cAAH;AACA,UAAMlwE,IAAI,GAAG,IAAIm3E,QAAJ,CAAajsD,EAAE,CAAC8kD,MAAhB,CAAb;AACA,UAAMplC,IAAI,GAAG5qC,IAAI,CAACsX,GAAL,CAAS,MAAT,CAAb;AACA,SAAKua,KAAL,CAAWoB,GAAX,CAAe;AAAC,cAAQ;AAAT,KAAf,EAA+B;AAAC,gBAAU;AAAX,KAA/B;AACA,SAAKpB,KAAL,CAAWoB,GAAX,CAAe;AAAC,cAAQ2X;AAAT,KAAf;AACH,GA7HgC;;AA+HjCohE,kBAAgB,CAAE9gF,EAAF,EAAM;AAClBA,MAAE,CAACmlD,eAAH;AACAnlD,MAAE,CAACglD,cAAH;AACA,UAAMlwE,IAAI,GAAG,IAAIm3E,QAAJ,CAAajsD,EAAE,CAAC8kD,MAAhB,CAAb;AACA,UAAMrlC,WAAW,GAAG3qC,IAAI,CAACsX,GAAL,CAAS,aAAT,CAApB;AACA,SAAKua,KAAL,CAAWoB,GAAX,CAAe;AAAC,qBAAe;AAAhB,KAAf,EAAsC;AAAC,gBAAU;AAAX,KAAtC;AACA,SAAKpB,KAAL,CAAWoB,GAAX,CAAe;AAAC,qBAAe0X;AAAhB,KAAf;AACH,GAtIgC;;AAwIjC,QAAMsgE,iBAAN,CAAyB//E,EAAzB,EAA6B;AACzBA,MAAE,CAACmlD,eAAH;AACAnlD,MAAE,CAACglD,cAAH;AACA,UAAMlwE,IAAI,GAAG,IAAIm3E,QAAJ,CAAajsD,EAAE,CAAC8kD,MAAhB,CAAb;AACA,UAAMrlC,WAAW,GAAG3qC,IAAI,CAACsX,GAAL,CAAS,aAAT,CAApB;AACA,UAAMppB,KAAK,GAAG;AACV,aAAO8R,IAAI,CAACsX,GAAL,CAAS,KAAT,CADG;AAEV,gBAAUtX,IAAI,CAACsX,GAAL,CAAS,QAAT;AAFA,KAAd;AAIA,UAAM6iD,mBAAmB,GAAG,KAAKtoC,KAAL,CAAWva,GAAX,CAAe,aAAf,CAA5B;;AACA,QAAI;AACA,YAAM,KAAKg9D,YAAL,CAAkBziD,KAAlB,CAAwB6jC,cAAxB,CAAuC/qB,WAAvC,EAAoD,CAACz8C,KAAD,CAApD,CAAN;AACH,KAFD,CAEE,OAAOuH,CAAP,EAAU;AACR,UAAIA,CAAC,KAAK,IAAV,EAAgB;AACZ,aAAKyoE,KAAL,CAAWluB,KAAE,CAAC,mDAAD,CAAb,EAAoE,QAApE;AACH,OAFD,MAEO,IAAI9R,gBAAM,+BAAuB/vC,uBAAO,CAACM,EAAR,CAAWe,OAAlC,UAA+CiG,CAA/C,CAAN,CAAwD5K,MAA5D,EAAoE;AACvE,aAAKqzE,KAAL,CAAWluB,KAAE,CAAC,gDAAD,CAAb,EAAiE,QAAjE;AACH,OAFM,MAEA;AACH,aAAKkuB,KAAL,CAAWluB,KAAE,CAAC,iEAAD,CAAb,EAAkF,QAAlF;AACH;;AACDj5C,kBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACA;AACH;;AACD,SAAKyoE,KAAL,CAAWluB,KAAE,CAAC,qBAAD,CAAb,EAAsC,SAAtC;AACA,UAAM,KAAKskC,YAAL,CAAkBziD,KAAlB,CAAwBuY,SAAxB,CAAkC8nB,YAAlC,EAAN;AACA,SAAKrgC,KAAL,CAAWoB,GAAX,CAAe;AAAC,qBAAe;AAAhB,KAAf,EAAsC;AAAC,gBAAU;AAAX,KAAtC;AACA,SAAKpB,KAAL,CAAWoB,GAAX,CAAe;AAAC,qBAAeknC;AAAhB,KAAf;AACH,GAnKgC;;AAqKjCuwC,YAAU,CAAEx/E,EAAF,EAAM;AACZA,MAAE,CAACmlD,eAAH;AACAnlD,MAAE,CAACglD,cAAH;AACA,UAAMlwE,IAAI,GAAG,IAAIm3E,QAAJ,CAAajsD,EAAE,CAAC8kD,MAAhB,CAAb;AACA,UAAMpf,QAAQ,GAAG,KAAK0jB,YAAL,CAAkBziD,KAAlB,CAAwB0iC,WAAxB,CAAoCv0D,IAAI,CAACsX,GAAL,CAAS,KAAT,KAAmBtX,IAAI,CAACsX,GAAL,CAAS,MAAT,CAAvD,CAAjB;AACA,UAAMszB,IAAI,GAAG5qC,IAAI,CAACsX,GAAL,CAAS,MAAT,CAAb;AACA,UAAMjV,MAAM,GAAGrC,IAAI,CAACsX,GAAL,CAAS,QAAT,CAAf;AACA,UAAM21F,YAAY,GAAG,KAAKp7E,KAAL,CAAWva,GAAX,CAAe,MAAf,CAArB;AACA,SAAKg9D,YAAL,CAAkBziD,KAAlB,CAAwBwkC,OAAxB,CAAgCzF,QAAhC,EAA0ChmB,IAA1C,EAAgDvoC,MAAhD,EACI,MAAM;AACF,WAAK67D,KAAL,CAAWluB,KAAE,CAAC,cAAD,CAAb,EAA+B,SAA/B;AACA,WAAKne,KAAL,CAAWoB,GAAX,CAAe;AAAC,gBAAQ;AAAT,OAAf,EAA+B;AAAC,kBAAU;AAAX,OAA/B;AACA,WAAKpB,KAAL,CAAWoB,GAAX,CAAe;AAAC,gBAAQg6E;AAAT,OAAf;AACH,KALL,EAMKx3G,CAAD,IAAO;AACH,UAAIyoC,gBAAM,+BAAuB/vC,uBAAO,CAACM,EAAR,CAAWe,OAAlC,UAA+CiG,CAA/C,CAAN,CAAwD5K,MAA5D,EAAoE;AAChE,aAAKqzE,KAAL,CAAWluB,KAAE,CAAC,yCAAD,CAAb,EAA0D,QAA1D;AACH,OAFD,MAEO;AACH,aAAKkuB,KAAL,CAAWluB,KAAE,CAAC,0DAAD,CAAb,EAA2E,QAA3E;;AACA,YAAIpT,iBAAC,CAACiC,aAAF,CAAgBppC,CAAhB,CAAJ,EAAwB;AACpBsB,sBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACH;AACJ;AACJ,KAfL;AAiBH;;AA9LgC,CAAtB,CAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;;AAGA,MAAMsiE,8BAAO,GAAIj5B,CAAD,IAAO;AACnB,QAAMouE,UAAU,GAAGl9D,KAAE,CAAC,OAAD,CAArB;;AACA,QAAMm9D,iBAAiB,GAAGn9D,KAAE,CAAC,cAAD,CAA5B;;AACA,SAAO57C,aAAP,0CACmC84G,UADnC,EAC2DliB,UAAU,CAACF,aAAG,CAACC,SAAJ,CAAcjsD,CAAC,CAACi5B,OAAF,CAAUhkE,IAAxB,EAA8B;AAAC,iBAAa;AAAd,GAA9B,CAAD,CADrE,EAEuCo5G,iBAFvC,EAEsEruE,CAAC,CAACi5B,OAAF,IAAaj5B,CAAC,CAACi5B,OAAF,CAAUE,MAF7F;AAIH,CAPD;;AAUgBn5B,4DAAD,IAAO;AAClB,QAAMm3D,YAAY,GAAIjmD,KAAE,CAAC,yBAAD,CAAxB;;AACA,QAAMo9D,cAAc,GAAGp9D,KAAE,CAAC,mBAAD,CAAzB;;AACA,QAAMq9D,mBAAmB,GAAGr9D,KAAE,CAAC,qCAAD,CAA9B;;AACA,QAAMs9D,SAAS,GAAGt9D,KAAE,CAAC,aAAD,CAApB;;AACA,QAAMu9D,aAAa,GAAGv9D,KAAE,CAAC,UAAD,CAAxB;;AACA,QAAMw9D,WAAW,GAAGx9D,KAAE,CAAC,QAAD,CAAtB;;AACA,QAAMy9D,gBAAgB,GAAGz9D,KAAE,CAAC,2CAAD,CAA3B;;AACA,QAAM09D,iBAAiB,GAAG19D,KAAE,CAAC,8CAAD,CAA5B;;AACA,QAAM29D,iBAAiB,GAAG39D,KAAE,CAAC,cAAD,CAA5B;;AACA,QAAM49D,cAAc,GAAG59D,KAAE,CAAC,WAAD,CAAzB;;AACA,QAAM69D,mBAAmB,GAAG79D,KAAE,CAAC,0EAAD,CAA9B;;AACA,QAAMuhC,SAAS,GAAGvhC,KAAE,CAAC,MAAD,CAApB;;AACA,QAAM89D,iBAAiB,GAAG99D,KAAE,CAAC,uDAAD,CAA5B;;AACA,QAAM+9D,yBAAyB,GAAG/9D,KAAE,CAAC,sBAAD,CAApC;;AACA,QAAMg+D,kBAAkB,GAAGh+D,KAAE,CAAC,eAAD,CAA7B;;AACA,QAAMi+D,uBAAuB,GAAGj+D,KAAE,CAAC,4DAAD,CAAlC;;AACA,QAAMk+D,kBAAkB,GAAGl+D,KAAE,CAAC,eAAD,CAA7B;;AACA,QAAMm+D,uBAAuB,GAAGn+D,KAAE,CAAC,2DAAD,CAAlC;;AACA,QAAMo+D,iBAAiB,GAAGp+D,KAAE,CAAC,cAAD,CAA5B;;AACA,QAAMq+D,SAAS,GAAGr+D,KAAE,CAAC,MAAD,CAApB;;AACA,QAAMs+D,cAAc,GAAGt+D,KAAE,CAAC,gCAAD,CAAzB;;AACA,QAAMu+D,kBAAkB,GAAGv+D,KAAE,CAAC,iDAAD,CAA7B;;AACA,QAAMw+D,uBAAuB,GAAGx+D,KAAE,CAAC,oBAAD,CAAlC;;AACA,QAAMy+D,eAAe,GAAGz+D,KAAE,CAAC,YAAD,CAA1B;;AACA,QAAM0+D,oBAAoB,GAAG1+D,KAAE,CAAC,kDAAD,CAA/B;;AACA,QAAM2+D,WAAW,GAAG3+D,KAAE,CAAC,QAAD,CAAtB;;AACA,QAAM4+D,cAAc,GAAG5+D,KAAE,CAAC,gBAAD,CAAzB;;AACA,QAAM6+D,mBAAmB,GAAG7+D,KAAE,CAAC,2CAAD,CAA9B;;AACA,QAAM8+D,cAAc,GAAG9+D,KAAE,CAAC,WAAD,CAAzB;;AACA,QAAM++D,mBAAmB,GAAG/+D,KAAE,CAAC,2DAAD,CAA9B;;AACA,SAAO57C,aAAP,2CAIwE0qC,CAAC,CAAC81D,YAJ1E,EAKkBjf,yBALlB,EAUmDpE,SAVnD,EAU0EzyC,CAAC,CAAC7wC,IAV5E,EAWmDgoG,YAXnD,EAW6En3D,CAAC,CAAChpC,GAX/E,EAYmDw3G,SAZnD,EAY0ExuE,CAAC,CAACrO,MAAF,CAAS83C,WAZnF,EAawBzpC,CAAC,CAACi5B,OAAH,GAAcA,8BAAO,CAACj5B,CAAD,CAArB,GAA2B,EAblD,EAcmDsvE,iBAdnD,EAckFtvE,CAAC,CAACkwE,aAdpF,EAemDzB,aAfnD,EAkB+BzuE,CAAC,CAAC3jC,QAAF,CAAW8zG,iBAAX,GAA+B76G,aAA/B,2CAA2Fo6G,uBAA3F,EAA4HD,kBAA5H,IAA6J,EAlB5L,EAmB+BzvE,CAAC,CAAC3jC,QAAF,CAAW+zG,SAAX,GAAuB96G,aAAvB,2CAAqF25G,yBAArF,EAAwHD,iBAAxH,IAAwJ,EAnBvL,EAoB+BhvE,CAAC,CAAC3jC,QAAF,CAAWmhD,MAAX,GAAoBloD,aAApB,2CAAqFo5G,WAArF,EAA0GC,gBAA1G,IAAyI,EApBxK,EAqB+B3uE,CAAC,CAAC3jC,QAAF,CAAWg0G,WAAX,GAAyB/6G,aAAzB,2CAAoFu6G,WAApF,EAAyG7vE,CAAC,CAACkR,EAAF,CAAK,uCAAL,CAAzG,IAAsK,EArBrM,EAsB+BlR,CAAC,CAAC3jC,QAAF,CAAWi0G,WAAX,GAAyBh7G,aAAzB,2CAA6Fu5G,iBAA7F,EAAwHD,iBAAxH,IAAwJ,EAtBvL,EAuB+B5uE,CAAC,CAAC3jC,QAAF,CAAWkoB,IAAX,GAAkBjvB,aAAlB,2CAA+Ei6G,SAA/E,EAAkGC,cAAlG,IAA+H,EAvB9J,EAwB+BxvE,CAAC,CAAC3jC,QAAF,CAAWk0G,UAAX,GAAwBj7G,aAAxB,2CAAoFq6G,eAApF,EAA6GC,oBAA7G,IAAgJ,EAxB/K,EAyB+B5vE,CAAC,CAAC3jC,QAAF,CAAWm0G,SAAX,GAAuBl7G,aAAvB,4CAA0F06G,cAA1F,EAAkHC,mBAAlH,IAAoJ,EAzBnL,EA0B+BjwE,CAAC,CAAC3jC,QAAF,CAAWo0G,YAAX,GAA0Bn7G,aAA1B,4CAAyF45G,kBAAzF,EAAqHC,uBAArH,IAA2J,EA1B1L,EA2B+BnvE,CAAC,CAAC3jC,QAAF,CAAWq0G,aAAX,GAA2Bp7G,aAA3B,4CAA8Fw6G,cAA9F,EAAsHC,mBAAtH,IAAwJ,EA3BvL,EA4B+B/vE,CAAC,CAAC3jC,QAAF,CAAWysC,SAAX,GAAuBxzC,aAAvB,4CAAoFw5G,cAApF,EAA4GC,mBAA5G,IAA8I,EA5B7K,EA6B+B/uE,CAAC,CAAC3jC,QAAF,CAAWs0G,WAAX,GAAyBr7G,aAAzB,4CAA4F85G,kBAA5F,EAAwHC,uBAAxH,IAA8J,EA7B7L,EA8B+BrvE,CAAC,CAAC3jC,QAAF,CAAWs6D,WAAX,GAAyBrhE,aAAzB,4CAAyFg5G,cAAzF,EAAiHC,mBAAjH,IAAmJ,EA9BlL,EAoCwC33B,kBApCxC;AAwCH,CAvED,E;;ACjBA;AACA;AACA;AAGeK,8DAAc,CAAC5hD,MAAf,CAAsB;AACjCx6B,IAAE,EAAE,oBAD6B;;AAGjC4vB,YAAU,GAAI;AACVwsD,kBAAc,CAAC7oF,SAAf,CAAyBq8B,UAAzB,CAAoCvL,KAApC,CAA0C,IAA1C,EAAgD3qB,SAAhD;AACA,SAAKulC,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,QAA1B,EAAoC,KAAKugD,MAAzC;AACA,SAAKx5C,QAAL,CAAc,KAAK/G,KAAL,CAAW12B,QAAzB,EAAmC,QAAnC,EAA6C,KAAKi3E,MAAlD;AACA,SAAKx5C,QAAL,CAAc,KAAK/G,KAAL,CAAWuY,SAAzB,EAAoC,KAApC,EAA2C,KAAKgoC,MAAhD;AACA,SAAKx5C,QAAL,CAAc,KAAK/G,KAAL,CAAWuY,SAAzB,EAAoC,QAApC,EAA8C,KAAKgoC,MAAnD;AACH,GATgC;;AAWjCE,QAAM,GAAI;AACN,WAAOo9B,sBAA0B,CAACziH,MAAM,CAACsmC,MAAP,CAC9B,KAAK1B,KAAL,CAAWmB,MAAX,EAD8B,EACT;AACjB,gBAAU,KAAKnB,KAAL,CAAWpB,MAAX,CAAkBuC,MAAlB,EADO;AAEjB,sBAAgBgd,KAAE,CAAC,yBAAD,EAA4B,KAAKne,KAAL,CAAWwtB,cAAX,EAA5B,CAFD;AAGjB,kBAAY,KAAKxtB,KAAL,CAAW12B,QAAX,CAAoB63B,MAApB,EAHK;AAIjB,uBAAiB,KAAKnB,KAAL,CAAWuY,SAAX,CAAqBv/C;AAJrB,KADS,CAAD,CAAjC;AAQH;;AApBgC,CAAtB,CAAf,E;;;;;;;;;;;;;;ACLA;AAEgBi0C,wDAAD,IAAO1qC,aAAP,CAAC,2BAK4B0qC,CAAC,CAACmxD,gBAAF,GAAqB,yBAArB,GAAiD,EAL9E,EAMmDnxD,CAAC,CAACw1D,YANrD,EAYqDx1D,CAAC,CAAC6wE,cAAF,GAAmB,QAAnB,GAA8B,EAZnF,EAac7wE,CAAC,CAACsL,SAbhB,EAcatL,CAAC,CAACjN,KAdf,CAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA;AACA;;AAGA,MAAM+9E,YAAY,GAAG,MAAMx7G,aAAN,CAAC,kCAAtB;;AAKgB0qC,sDAAD,IAAO;AAClB,QAAM+wE,gBAAgB,GAAG7/D,KAAE,CAAC,kDAAD,CAA3B;;AACA,MAAIlR,CAAC,CAACgxE,OAAN,EAAe;AACX,WAAQhxE,CAAC,CAACixE,QAAH,GAAeH,YAAY,EAA3B,GAAgCx7G,aAAhC,CAAC,oCAAoEy7G,gBAArE,CAAP;AACH,GAFD,MAEO;AACH,WAAOz7G,aAAP;AACH;AACJ,CAPD,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTA;AACA;;AAGA,MAAM47G,SAAS,GAAIl6G,GAAD,IAAS;AACvB,QAAMm6G,UAAU,GAAGjgE,KAAE,CAAC,mDAAD,CAArB;;AACA,SAAO57C,aAAP,iCAC6B67G,UAD7B,EAE4Dn6G,GAF5D;AAGH,CALD;;AAOe,mDAACA,GAAD,EAAMuM,MAAN,KAAiB;AAC5B,QAAM6tG,iBAAiB,GAAGlgE,KAAE,CAAC,iCAAD,CAA5B;;AACA,SAAO57C,aAAP,kCAEmD87G,iBAFnD,EAGW7tG,MAAM,GAAGjO,aAAH,kCAAuCiO,MAAvC,IAAuD,EAHxE,EAIWvM,GAAG,GAAGk6G,SAAS,CAACl6G,GAAD,CAAZ,GAAoB,EAJlC;AAMH,CARD,E;;;;;;;;;;;;;;;;;;;;;;;;ACXA;AAGgB8qD,2DAAD,IAAc;AACzB,SAAOxsD,aAAP,kCAEmDwsD,QAAQ,CAAC,CAAD,CAF3D,EAGWA,QAAQ,CAACv0C,KAAT,CAAe,CAAf,EAAkBzU,GAAlB,CAAsBmK,CAAC,IAAI3N,aAAJ,mCAAqC2N,CAArC,CAAvB,CAHX;AAKH,CAND,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AAEA,MAAM66B,eAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;;AAGA,MAAM8nG,iCAAmB,GAAI31D,CAAD,IAAOA,CAAC,CAAC41D,eAAF,CAAkBrxC,OAAlB,GAA4BzrD,GAA5B,CAAgCnM,CAAC,IAAIssF,KAAK,CAACtsF,CAAD,EAAI,EAAJ,CAA1C,CAAnC;;AAGgBqzC,mDAAD,IAAO;AAClB,QAAMqxE,eAAe,GAAGngE,KAAE,CAAC,0BAAD,CAA1B;;AACA,QAAMogE,eAAe,GAAGpgE,KAAE,CAAC,8BAAD,CAA1B;;AACA,QAAM+nB,OAAO,GAAGj5B,CAAC,CAACi5B,OAAF,GAAYn7B,eAAC,CAAC48C,aAAF,CAAgB16C,CAAC,CAACi5B,OAAF,CAAUhkE,IAA1B,CAAZ,GAA8C,EAA9D;AACA,QAAMs8G,YAAY,GAAIt4C,OAAO,IAAI,CAACj5B,CAAC,CAACwxE,cAApC;AACA,SAAOl8G,aAAP,iCACiCi8G,YAAY,GAAG,EAAH,GAAS,wBADtD,EAEY,CAACvxE,CAAC,CAACkH,SAAF,CAAYG,GAAZ,CAAgB3c,QAAhB,CAAyBlS,GAAzB,CAA6B,WAA7B,CAAF,GAA+CljB,aAA/C,CAAC,mCAA0H,EAFtI,EAGoD0qC,CAAC,CAACkH,SAAF,CAAY2hE,iBAAZ,KAAkC,QAAnC,GAA+C7oE,CAAC,CAAChpC,GAAjD,GAAuD,EAH1G,EAGmHgpC,CAAC,CAAC2V,KAHrH,EAIgB3V,CAAC,CAAC02C,UAAH,GAAiBphF,aAAjB,CAAC,iCAAwFg8G,eAAzF,IAAmH,EAJlI,EAOetxE,CAAC,CAAC41D,eAAF,CAAkB7pG,MAAlB,GAA2B4pG,iCAAmB,CAAC31D,CAAD,CAA9C,GAAoD,EAPnE,EAQeA,CAAC,CAAC+1D,aAAF,CAAgBhqG,MAAhB,GAAyBuJ,aAAzB,kCAA0D0qC,CAAC,CAAC+1D,aAA5D,IAAmG,EARlH,EAWOwb,YAAY,GAAGj8G,aAAH,kCAA4C+7G,eAA5C,EAAgEp4C,OAAhE,IAAgF,EAXnG;AAaH,CAlBD,E;;;;;;;;;;;;;;ACZA;AACA;AACA;AAGgBj5B,uDAAD,IAAO;AAClB,QAAMs3D,aAAa,GAAIpmD,KAAE,CAAC,UAAD,CAAzB;;AACA,QAAM82D,SAAS,GAAG92D,KAAE,CAAC,iBAAD,CAApB;;AACA,QAAMohC,YAAY,GAAGjrC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,2BAAjB,IACjB04B,KAAE,CAAC,4BAAD,CADe,GAEjBA,KAAE,CAAC,6BAAD,CAFN;AAIA,SAAO57C,aAAP,qCAIyBg9E,YAJzB,EAKgDtyC,CAAC,CAACyxE,2BALlD,EAS6BzxE,CAAC,CAACN,IAAF,IAAU,EATvC,EAU0CM,CAAC,CAACyxE,2BAAF,GAAgC,OAAhC,GAAyC,EAVnF,EAWmCna,aAXnC,EAckF0Q,SAdlF;AAkBH,CAzBD,E;;;;;;;;;;;;;;;;;;;;;;;;ACLA;AACA;AACA;AAEgBhoE,qDAAD,IAAO;AAClB,QAAM0xE,SAAS,GAAGxgE,KAAE,CAAC,MAAD,CAApB;;AACA,QAAMshC,WAAW,GAAGthC,KAAE,CAAC,QAAD,CAAtB;;AACA,SAAO57C,aAAP,mCAC2E0qC,CAAC,CAAC2xE,gBAD7E,EAGsB3xE,CAAC,CAAC2V,KAHxB,EAIgB3V,CAAC,CAAC2V,KAAF,KAAY3V,CAAC,CAAC4xE,YAAf,GAA+Bt8G,aAA/B,CAAC,mCAA0D0qC,CAAC,CAAC4xE,YAA7D,IAAkF,EAJjG,EAMe5xE,CAAC,CAACwoB,MAAF,CAAS1vD,GAAT,CAAaowD,KAAK,IAAKgjC,UAAU,CAAChjC,KAAD,CAAjC,CANf,EASkEwoD,SATlE,EAUkFl/B,WAVlF,EAUyGxyC,CAAC,CAAC6xE,eAV3G;AAcH,CAjBD,E;;;;;;;;;;;;;;ACJA;AACA;AAGgB7xE,uDAAD,IAAO;AAClB,QAAMsyC,YAAY,GAAGphC,KAAE,CAAC,oCAAD,CAAvB;;AACA,QAAMqtD,aAAa,GAAGrtD,KAAE,CAAC,YAAD,CAAxB;;AACA,QAAMyhC,WAAW,GAAGzhC,KAAE,CAAC,QAAD,CAAtB;;AACA,SAAO57C,aAAP,qCAC+E0qC,CAAC,CAAC8xE,cADjF,EAGqBx/B,YAHrB,EAI4CtyC,CAAC,CAAC+xE,kBAJ9C,EAKwF/xE,CAAC,CAAChpC,GAL1F,EASsCgpC,CAAC,CAAC+xE,kBAAF,GAAuB,OAAvB,GAAgC,EATtE,EAU+BxT,aAV/B,EAakE5rB,WAblE;AAiBH,CArBD,E;;;;;;;;;;;;;;ACJA;AAEgB3yC,gDAAD,IAAO1qC,aAAP,CAAC,6BAEgE0qC,CAAC,CAACgyE,iBAFnE,EAGuEhyE,CAAC,CAACiyE,gBAHzE,EAImEjyE,CAAC,CAACkyE,cAJrE,CAAf,E;;ACFA;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM;AAAE7iH,SAAF;AAAW+vC,QAAX;AAAmB3vC,OAAKA;AAAxB,IAA6B86B,QAAQ,CAAC20B,GAA5C;AACA,MAAMphB,oBAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;AAEA,MAAMskH,cAAc,GAAG,CAAC,OAAD,CAAvB;AACA,MAAMC,cAAc,GAAG,CAAC,OAAD,EAAU,KAAV,EAAiB,MAAjB,EAAyB,SAAzB,EAAoC,QAApC,EAA8C,IAA9C,EAAoD,QAApD,CAAvB;AACA,MAAMC,kBAAkB,GAAG,CAAC,MAAD,EAAS,MAAT,EAAiB,OAAjB,EAA0B,UAA1B,CAA3B;AACA,MAAMC,gBAAgB,GAAG,CAAC,MAAD,CAAzB;AAEA,MAAMC,eAAe,GAAG;AACpB,UAAQ,aADY;AAEpB,UAAQ,MAFY;AAGpB,UAAQ,SAHY;AAIpB,QAAM,WAJc;AAKpB,WAAS;AALW,CAAxB;AAOA,MAAMC,sBAAsB,GAAG;AAC3B,WAAS,OADkB;AAE3B,SAAO,SAFoB;AAG3B,YAAU,QAHiB;AAI3B,WAAS,OAJkB;AAK3B,YAAU;AALiB,CAA/B;AASA;;;;;;;;AAOO,MAAMj9B,YAAY,GAAGqiB,WAAW,CAACviE,MAAZ,CAAmB;AAC3CtpC,QAAM,EAAE,GADmC;AAE3CiI,SAAO,EAAE,KAFkC;AAG3CsgF,WAAS,EAAE,yBAHgC;AAI3CujB,aAAW,EAAE,IAJ8B;AAK3Cz+D,QAAM,EAAE;AACJ,8BAA0B,gBADtB;AAEJ,6BAAyB,eAFrB;AAGJ,iCAA6B,oBAHzB;AAIJ;AACA,4BAAwB,UAAUhN,EAAV,EAAc;AAAC,WAAK8iE,kBAAL,CAAwB9iE,EAAE,CAAC8kD,MAAH,CAAU1rE,WAAlC;AAAgD,KALnF;AAMJ,0BAAsB,iBANlB;AAOJ,+BAA2B,YAPvB;AAQJ,2BAAuB,QARnB;AASJ,4BAAwB,cATpB;AAUJ,8BAA0B,WAVtB;AAWJ,4BAAwB,SAXpB;AAYJ,4CAAwC,wBAZpC;AAaJ,4BAAwB,SAbpB;AAcJ,iCAA6B;AAdzB,GALmC;;AAsB3C,QAAMilB,UAAN,GAAoB;AAChB,SAAKqtE,aAAL;AAEA,SAAKh+D,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,QAA1B,EAAoCwd,kBAAQ,CAAC,MAAM,KAAK0nD,aAAL,EAAP,EAA6B,GAA7B,CAA5C;AACA,SAAKn+D,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,0BAA1B,EAAsD,KAAKglE,iBAA3D;AACA,SAAKj+D,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,eAA1B,EAA2C9vB,CAAC,IAAIA,CAAC,CAACuV,GAAF,CAAM,QAAN,IAAkB,KAAK8/D,IAAL,EAAlB,GAAgC,KAAK3sC,IAAL,EAAhF;AACA,SAAK7R,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,yBAA1B,EAAqD,KAAK0/E,eAA1D;AACA,SAAK34E,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,qBAA1B,EAAiD,KAAK2/E,6BAAtD;AACA,SAAK54E,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,SAA1B,EAAqC,KAAKulD,IAA1C;AACA,SAAKx+C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,MAA1B,EAAkC,KAAK4Y,IAAvC;AACA,SAAK7R,QAAL,CAAc,KAAK/G,KAAL,CAAW12B,QAAzB,EAAmC,kBAAnC,EAAuD,KAAKs2G,iBAA5D;AACA,SAAK74E,QAAL,CAAc,KAAK/G,KAAL,CAAW12B,QAAzB,EAAmC,aAAnC,EAAkD,KAAK47F,aAAvD;AACA,SAAKn+D,QAAL,CAAc,KAAK/G,KAAL,CAAW+uB,QAAzB,EAAmC,UAAnC,EAA+C,KAAKu2C,eAApD;AACA,SAAKv+D,QAAL,CAAc,KAAK/G,KAAL,CAAWjQ,OAAzB,EAAkC,0BAAlC,EAA8D,KAAKyvC,yBAAnE,EAbgB,CAehB;;AACA,SAAKkxC,WAAL,GAAoB,KAAKA,WAAL,CAAiB9/F,IAAjB,CAAsB,IAAtB,CAApB;AACA,SAAK+/F,SAAL,GAAkB,KAAKA,SAAL,CAAe//F,IAAf,CAAoB,IAApB,CAAlB;AAEA,UAAM,KAAK2vE,MAAL,EAAN,CAnBgB,CAqBhB;;AACA,SAAKx5C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,2BAA1B,EAAuD,KAAKwlE,kBAA5D;AACA,SAAKz+D,QAAL,CAAc,KAAK/G,KAAL,CAAW+uB,QAAzB,EAAmC,KAAnC,EAA0C,KAAKq2C,cAA/C;AACA,SAAKr+D,QAAL,CAAc,KAAK/G,KAAL,CAAW+uB,QAAzB,EAAmC,QAAnC,EAA6C,KAAKs2C,iBAAlD;AACA,SAAKt+D,QAAL,CAAc,KAAK/G,KAAL,CAAW+uB,QAAzB,EAAmC,QAAnC,EAA6C,KAAKs2C,iBAAlD;AACA,SAAKt+D,QAAL,CAAc,KAAK/G,KAAL,CAAW+uB,QAAzB,EAAmC,OAAnC,EAA4C,KAAKs2C,iBAAjD;AACA,SAAKt+D,QAAL,CAAc,KAAK/G,KAAL,CAAWivB,aAAzB,EAAwC,QAAxC,EAAkD,KAAKs2C,mBAAvD;AAEA,SAAKvlE,KAAL,CAAWuY,SAAX,CAAqBtoC,OAArB,CAA6Bg9B,CAAC,IAAI,KAAK+xB,eAAL,CAAqB/xB,CAArB,CAAlC;AACA,SAAKlG,QAAL,CAAc,KAAK/G,KAAL,CAAWuY,SAAzB,EAAoC,KAApC,EAA2C,KAAKymB,eAAhD;AACA,SAAKj4B,QAAL,CAAc,KAAK/G,KAAL,CAAWuY,SAAzB,EAAoC,QAApC,EAA8C,KAAK8sD,iBAAnD;AACA,SAAKt+D,QAAL,CAAc,KAAK/G,KAAL,CAAWuY,SAAzB,EAAoC,oBAApC,EAA0D,KAAKsnE,4BAA/D;AACA,SAAK94E,QAAL,CAAc,KAAK/G,KAAL,CAAWuY,SAAzB,EAAoC,aAApC,EAAmD,KAAKunE,qBAAxD;AACA,SAAK/4E,QAAL,CAAc,KAAK/G,KAAL,CAAWuY,SAAzB,EAAoC,aAApC,EAAmD,KAAKwnE,2BAAxD;AACA,SAAKh5E,QAAL,CAAc,KAAK/G,KAAL,CAAWuY,SAAzB,EAAoC,QAApC,EAA8C,KAAKumB,iBAAnD;AAEA,SAAK6mC,iBAAL;AACA,SAAKvhB,aAAL,GAtCgB,CAuChB;;AACA,UAAMr9B,aAAa,GAAG,MAAM5S,sBAAS,CAACG,GAAV,CAAcnsC,IAAd,CAAmBwvB,QAAnB,CAA4BwwB,QAA5B,EAA5B;AACA,SAAKphB,QAAL,CAAcggB,aAAd,EAA6B,iCAA7B,EAAgE,KAAKm+C,aAArE;AACA,SAAK1lC,yBAAL;AACA,SAAKx/B,KAAL,CAAWq0B,SAAX;AACA,SAAKg1B,UAAL;AACA;;;;;;;AAMA/0C,qBAAG,CAAClP,OAAJ,CAAY,yBAAZ,EAAuC,IAAvC;AACH,GA1E0C;;AA4E3C,QAAMm7C,MAAN,GAAgB;AACZ,UAAMu9B,cAAc,GAAG,CAAC,KAAKkC,iBAAL,EAAxB;AACA,SAAKh/G,EAAL,CAAQe,YAAR,CAAqB,IAArB,EAA2B,KAAKi+B,KAAL,CAAWva,GAAX,CAAe,QAAf,CAA3B;AACA86D,iBAAM,CAAC0/B,kBAAY,CAAC;AAChBnC,oBADgB;AAEhB,eAAS,KAAK99E,KAFE;AAGhB,mBAAa,KAAKA,KAAL,CAAWuY,SAHR;AAIhB,sBAAgB,CAAC,KAAKvY,KAAL,CAAWva,GAAX,CAAe,kBAAf,CAAD,IACZ,KAAKua,KAAL,CAAWjQ,OAAX,CAAmBtK,GAAnB,CAAuB,mBAAvB,MAAgD+R,QAAQ,CAACimC,UAAT,CAAoBG,OALxD;AAMhB,sBAAgBvkC,EAAE,IAAI,KAAKopE,YAAL,CAAkBppE,EAAlB,CANN;AAOhB,mCAA6Bib,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,2BAAjB,CAPb;AAQhB,0BAAoB0uB,sBAAS,CAACiqD;AARd,KAAD,CAAb,EASF,KAAKp9F,EATH,CAAN;AAWA,SAAKiuD,aAAL,GAAqB,KAAKjuD,EAAL,CAAQkuB,aAAR,CAAsB,8BAAtB,CAArB;AACA,SAAK22E,OAAL,GAAe,KAAK7kG,EAAL,CAAQkuB,aAAR,CAAsB,eAAtB,CAAf;AACA,SAAK42E,cAAL,GAAsB,KAAK9kG,EAAL,CAAQkuB,aAAR,CAAsB,yBAAtB,CAAtB;AACA,SAAK62E,cAAL,GAAsB,KAAK/kG,EAAL,CAAQkuB,aAAR,CAAsB,qBAAtB,CAAtB;AAEA,SAAK0wF,iBAAL;;AACA,QAAI,CAACtrE,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,2BAAjB,CAAD,IACI,KAAKua,KAAL,CAAWjQ,OAAX,CAAmBtK,GAAnB,CAAuB,mBAAvB,MAAgD+R,QAAQ,CAACimC,UAAT,CAAoBG,OAD5E,EACqF;AACjF,WAAKsiD,WAAL;AACH,KAvBW,CAwBZ;AACA;AACA;;;AACA,UAAM,KAAKhb,aAAL,EAAN;AACA,KAAC,KAAKllE,KAAL,CAAWva,GAAX,CAAe,QAAf,CAAD,IAA6B,KAAKmzB,IAAL,EAA7B;AACH,GAzG0C;;AA2G3CqtD,kBAAgB,GAAI;AAChB,UAAM1+B,gBAAgB,GAAG,KAAKvnC,KAAL,CAAWivB,aAAX,CAAyB9tB,MAAzB,EAAzB;AACA,UAAM6X,MAAM,GAAG1E,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB,IACX,CAAC,GAAG+R,QAAQ,CAACszB,WAAb,EAA0B,GAAGtzB,QAAQ,CAAC2lC,kBAAtC,EAA0D,GAAG3lC,QAAQ,CAAC4lC,gBAAtE,CADW,GAEX5lC,QAAQ,CAACszB,WAFb;AAIA,WAAO9R,MAAM,CAAC/yC,MAAP,CAAc,CAACD,MAAD,EAASukD,KAAT,KAAmB;AACpC,YAAMid,eAAe,GAAGD,gBAAgB,CAAChd,KAAD,CAAxC;;AACA,UAAI,EAAEid,eAAF,aAAEA,eAAF,uBAAEA,eAAe,CAAExuE,MAAnB,CAAJ,EAAgC;AAC5B,eAAOgN,MAAP;AACH;;AACD,YAAMm6G,MAAM,GAAG34C,eAAe,CAACzhE,GAAhB,CAAoBpM,CAAC;AAAA;;AAAA,eAAI,+BAAKqmC,KAAL,CAAW0iC,WAAX,CAAuB/oE,CAAvB,iFAA2B6zD,cAA3B,OAA+C7zD,CAAnD;AAAA,OAArB,CAAf;;AACA,UAAIwmH,MAAM,CAACnnH,MAAP,KAAkB,CAAtB,EAAyB;AACrB,YAAIuxD,KAAK,KAAK,WAAd,EAA2B;AACvB,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,gBAAD,EAAmBgiE,MAAM,CAAC,CAAD,CAAzB,CAArB;AACH,SAFD,MAEO,IAAI51D,KAAK,KAAK,QAAd,EAAwB;AAC3B,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,yBAAD,EAA4BgiE,MAAM,CAAC,CAAD,CAAlC,CAArB;AACH,SAFM,MAEA,IAAI51D,KAAK,KAAKpW,sBAAS,CAACgS,IAAxB,EAA8B;AACjC,2BAAUngD,MAAV,SAAmBm4C,KAAE,CAAC,oBAAD,EAAuBgiE,MAAM,CAAC,CAAD,CAA7B,CAArB;AACH,SAFM,MAEA,IAAI51D,KAAK,KAAK,SAAd,EAAyB;AAC5B,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,gCAAD,EAAmCgiE,MAAM,CAAC,CAAD,CAAzC,CAArB;AACH,SAFM,MAEA,IAAI51D,KAAK,KAAK,QAAd,EAAwB;AAC3B,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,6BAAD,EAAgCgiE,MAAM,CAAC,CAAD,CAAtC,CAArB;AACH,SAFM,MAEA,IAAI51D,KAAK,KAAK,IAAd,EAAoB;AACvB,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,yBAAD,EAA4BgiE,MAAM,CAAC,CAAD,CAAlC,CAArB;AACH,SAFM,MAEA,IAAI51D,KAAK,KAAK,MAAd,EAAsB;AACzB,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,+BAAD,EAAkCgiE,MAAM,CAAC,CAAD,CAAxC,CAArB;AACH,SAFM,MAEA,IAAI51D,KAAK,KAAK,OAAd,EAAuB;AAC1B,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,6BAAD,EAAgCgiE,MAAM,CAAC,CAAD,CAAtC,CAArB;AACH,SAFM,MAEA,IAAI51D,KAAK,KAAK,MAAd,EAAsB;AACzB,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,qBAAD,EAAwBgiE,MAAM,CAAC,CAAD,CAA9B,CAArB;AACH;AACJ,OApBD,MAoBO,IAAIA,MAAM,CAACnnH,MAAP,GAAgB,CAApB,EAAuB;AAC1B,YAAIonH,UAAJ;;AACA,YAAID,MAAM,CAACnnH,MAAP,GAAgB,CAApB,EAAuB;AACnBonH,oBAAU,aAAMv6G,KAAK,CAACkC,IAAN,CAAWo4G,MAAX,EAAmB3lG,KAAnB,CAAyB,CAAzB,EAA4B,CAA5B,EAA+B7W,IAA/B,CAAoC,IAApC,CAAN,gBAAV;AACH,SAFD,MAEO;AACH,gBAAM08G,UAAU,GAAGF,MAAM,CAACzuG,GAAP,EAAnB;AACA0uG,oBAAU,GAAGjiE,KAAE,CAAC,eAAD,EAAkBgiE,MAAM,CAACx8G,IAAP,CAAY,IAAZ,CAAlB,EAAqC08G,UAArC,CAAf;AACH;;AAED,YAAI91D,KAAK,KAAK,WAAd,EAA2B;AACvB,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,iBAAD,EAAoBiiE,UAApB,CAArB;AACH,SAFD,MAEO,IAAI71D,KAAK,KAAK,QAAd,EAAwB;AAC3B,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,0BAAD,EAA6BiiE,UAA7B,CAArB;AACH,SAFM,MAEA,IAAI71D,KAAK,KAAKpW,sBAAS,CAACgS,IAAxB,EAA8B;AACjC,2BAAUngD,MAAV,SAAmBm4C,KAAE,CAAC,qBAAD,EAAwBiiE,UAAxB,CAArB;AACH,SAFM,MAEA,IAAI71D,KAAK,KAAK,SAAd,EAAyB;AAC5B,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,iCAAD,EAAoCiiE,UAApC,CAArB;AACH,SAFM,MAEA,IAAI71D,KAAK,KAAK,QAAd,EAAwB;AAC3B,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,8BAAD,EAAiCiiE,UAAjC,CAArB;AACH,SAFM,MAEA,IAAI71D,KAAK,KAAK,IAAd,EAAoB;AACvB,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,yBAAD,EAA4BgiE,MAAM,CAAC,CAAD,CAAlC,CAArB;AACH,SAFM,MAEA,IAAI51D,KAAK,KAAK,MAAd,EAAsB;AACzB,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,+BAAD,EAAkCgiE,MAAM,CAAC,CAAD,CAAxC,CAArB;AACH,SAFM,MAEA,IAAI51D,KAAK,KAAK,OAAd,EAAuB;AAC1B,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,6BAAD,EAAgCgiE,MAAM,CAAC,CAAD,CAAtC,CAArB;AACH,SAFM,MAEA,IAAI51D,KAAK,KAAK,MAAd,EAAsB;AACzB,2BAAUvkD,MAAV,SAAmBm4C,KAAE,CAAC,sBAAD,EAAyBgiE,MAAM,CAAC,CAAD,CAA/B,CAArB;AACH;AACJ;;AACD,aAAOn6G,MAAP;AACH,KAxDM,EAwDJ,EAxDI,CAAP;AAyDH,GA1K0C;;AA4K3CkgG,iBAAe,GAAI;AACf,UAAMoa,OAAO,GAAGhsE,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,4BAAjB,CAAhB;AACA,UAAM86F,iBAAiB,GAAG16G,KAAK,CAAC8C,OAAN,CAAc23G,OAAd,IAAyBA,OAAzB,GAAmC,EAA7D;AACA,WAAO,oCACyBniE,KAAE,CAAC,oCAAD,CAD3B,oCAEuBA,KAAE,CAAC,mDAAD,CAFzB,sCAGyBA,KAAE,CAAC,qBAAD,CAH3B,sCAIyBA,KAAE,CAAC,sBAAD,CAJ3B,qCAKwBA,KAAE,CAAC,iCAAD,CAL1B,wCAM2BA,KAAE,CAAC,uBAAD,CAN7B,qCAOwBA,KAAE,CAAC,gBAAD,CAP1B,qCAQwBA,KAAE,CAAC,0BAAD,CAR1B,mCASsBA,KAAE,CAAC,qBAAD,CATxB,uCAU0BA,KAAE,CAAC,4BAAD,CAV5B,yCAW4BA,KAAE,CAAC,kCAAD,CAX9B,qCAYwBA,KAAE,CAAC,wCAAD,CAZ1B,qCAawBA,KAAE,CAAC,sBAAD,CAb1B,mCAcsBA,KAAE,CAAC,8BAAD,CAdxB,sCAeyBA,KAAE,CAAC,mCAAD,CAf3B,yCAgB4BA,KAAE,CAAC,wBAAD,CAhB9B,uCAiB0BA,KAAE,CAAC,uCAAD,CAjB5B,wCAkB2BA,KAAE,CAAC,uBAAD,CAlB7B,sCAmByBA,KAAE,CAAC,4CAAD,CAnB3B,sCAoByBA,KAAE,CAAC,mCAAD,CApB3B,GAqBDzrC,MArBC,CAqBM5N,IAAI,IAAIy7G,iBAAiB,CAACrlE,KAAlB,CAAwBlhD,CAAC,IAAK,CAAC8K,IAAI,CAACg0B,UAAL,CAAgB9+B,CAAC,GAAC,GAAlB,EAAuB,CAAvB,CAA/B,CArBd,EAsBE0Y,MAtBF,CAsBS5N,IAAI,IAAI,KAAK07G,kBAAL,GAA0B3lE,IAA1B,CAA+B7gD,CAAC,IAAI8K,IAAI,CAACg0B,UAAL,CAAgB9+B,CAAC,GAAC,GAAlB,EAAuB,CAAvB,CAApC,CAtBjB,CAAP;AAuBH,GAtM0C;;AAwM3C;;;;;;AAMA,QAAMkrG,aAAN,GAAuB;AACnB,UAAMgC,GAAG,GAAG,MAAM,KAAKC,uBAAL,EAAlB;AACA5mB,iBAAM,CAAC2mB,GAAD,EAAM,KAAKlmG,EAAL,CAAQkuB,aAAR,CAAsB,qBAAtB,CAAN,CAAN;AACH,GAjN0C;;AAmN3C0wF,mBAAiB,GAAI;AACjB,UAAM/iC,SAAS,GAAG,KAAK77E,EAAL,CAAQkuB,aAAR,CAAsB,eAAtB,CAAlB;AACA,UAAM+uF,OAAO,GAAG,KAAKj+E,KAAL,CAAWjQ,OAAX,CAAmBtK,GAAnB,CAAuB,mBAAvB,MAAgD+R,QAAQ,CAACimC,UAAT,CAAoBG,OAApF;AACA,UAAMsgD,QAAQ,GAAGD,OAAO,IAAI,EAAE,KAAKj+E,KAAL,CAAW12B,QAAX,CAAoBmc,GAApB,CAAwB,WAAxB,KAAwC,KAAKua,KAAL,CAAWmjC,UAAX,OAA4B,SAAtE,CAA5B;AACAod,iBAAM,CAACkgC,gBAAoB,CAAC;AAAEvC,cAAF;AAAYD;AAAZ,KAAD,CAArB,EAA8CphC,SAA9C,CAAN;;AACA,QAAIohC,OAAO,IAAIC,QAAf,EAAyB;AACrB,WAAKlZ,iBAAL;AACA,WAAK0b,uBAAL;AACH;AACJ,GA5N0C;;AA8N3CC,wBAAsB,CAAEtnF,EAAF,EAAM;AACxB,SAAKy2E,QAAL,GAAgB,IAAhB;AACA,SAAK9uG,EAAL,CAAQqhD,gBAAR,CAAyB,WAAzB,EAAsC,KAAKquD,WAA3C;AACA,SAAK1vG,EAAL,CAAQqhD,gBAAR,CAAyB,SAAzB,EAAoC,KAAKsuD,SAAzC;AAEA,UAAMiQ,UAAU,GAAG,KAAK5/G,EAAL,CAAQkuB,aAAR,CAAsB,sBAAtB,CAAnB;AACA,UAAM5wB,KAAK,GAAGuqB,MAAM,CAAC+kB,gBAAP,CAAwBgzE,UAAxB,CAAd;AACA,SAAK1zF,KAAL,GAAaF,QAAQ,CAAC1uB,KAAK,CAAC4uB,KAAN,CAAY/qB,OAAZ,CAAoB,KAApB,EAA2B,EAA3B,CAAD,EAAiC,EAAjC,CAArB;AACA,SAAKytG,UAAL,GAAkBv2E,EAAE,CAAC42E,KAArB;AACH,GAvO0C;;AAyO3CS,aAAW,CAAEr3E,EAAF,EAAM;AACb,QAAI,KAAKy2E,QAAT,EAAmB;AACfz2E,QAAE,CAACglD,cAAH;AACA,YAAMhqD,KAAK,GAAG,KAAKu7E,UAAL,GAAkBv2E,EAAE,CAAC42E,KAAnC;AACA,WAAK4Q,iBAAL,CAAuBxsF,KAAvB,EAA8BgF,EAAE,CAAC42E,KAAjC;AACA,WAAKL,UAAL,GAAkBv2E,EAAE,CAAC42E,KAArB;AACH;AACJ,GAhP0C;;AAkP3CU,WAAS,CAAEt3E,EAAF,EAAM;AACX,QAAI,KAAKy2E,QAAT,EAAmB;AACfz2E,QAAE,CAACglD,cAAH;AACA,WAAKyxB,QAAL,GAAgB,KAAhB;AACA,WAAK9uG,EAAL,CAAQyhD,mBAAR,CAA4B,WAA5B,EAAyC,KAAKiuD,WAA9C;AACA,WAAK1vG,EAAL,CAAQyhD,mBAAR,CAA4B,SAA5B,EAAuC,KAAKkuD,SAA5C;AACA,YAAMiQ,UAAU,GAAG,KAAK5/G,EAAL,CAAQkuB,aAAR,CAAsB,sBAAtB,CAAnB;AACA,YAAM4xF,gBAAgB,GAAGF,UAAU,CAACjxB,qBAAX,EAAzB;AACA,YAAMoxB,eAAe,GAAG,KAAKC,qBAAL,CAA2BF,gBAA3B,EAA6C,CAA7C,CAAxB;AACA,YAAMzkH,KAAK,GAAG;AAAC0kH;AAAD,OAAd;AACA5sE,4BAAS,CAAC5+B,UAAV,CAAqBlL,SAArB,GAAiC,KAAK21B,KAAL,CAAWkB,IAAX,CAAgB7kC,KAAhB,CAAjC,GAA0D,KAAK2jC,KAAL,CAAWoB,GAAX,CAAe/kC,KAAf,CAA1D;AACH;AACJ,GA9P0C;;AAgQ3CwkH,mBAAiB,CAAExsF,KAAF,EAAS4sF,sBAAT,EAAiC;AAC9C,UAAML,UAAU,GAAG,KAAK5/G,EAAL,CAAQkuB,aAAR,CAAsB,sBAAtB,CAAnB;AACA,UAAM4xF,gBAAgB,GAAGF,UAAU,CAACjxB,qBAAX,EAAzB;;AACA,QAAI,KAAKuxB,UAAT,EAAqB;AACjB,WAAKA,UAAL,GAAkBJ,gBAAgB,CAACjxB,IAAjB,GAAwBoxB,sBAA1C;AACH,KAFD,MAEO,IAAI,KAAKE,UAAT,EAAqB;AACxB,WAAKA,UAAL,GAAkBL,gBAAgB,CAACjxB,IAAjB,GAAwBoxB,sBAA1C;AACH,KAFM,MAEA;AACH,YAAMF,eAAe,GAAG,KAAKC,qBAAL,CAA2BF,gBAA3B,EAA6CzsF,KAA7C,CAAxB;AACAusF,gBAAU,CAACtiH,KAAX,CAAiB8iH,IAAjB,GAAwB,SAASL,eAAT,GAA2B,IAAnD;AACH;AACJ,GA3Q0C;;AA6Q3CC,uBAAqB,CAACF,gBAAD,EAAmBzsF,KAAnB,EAA0B;AAC3C,QAAI0sF,eAAe,GAAGD,gBAAgB,CAAC5zF,KAAjB,GAAyBmH,KAA/C;AACA,UAAMgtF,UAAU,GAAG,KAAKrgH,EAAL,CAAQkxF,WAA3B,CAF2C,CAG3C;;AACA,QAAI6uB,eAAe,GAAIM,UAAU,GAAG,IAApC,EAA2C;AACvC;AACAN,qBAAe,GAAIM,UAAU,GAAG,IAAhC;AACA,WAAKH,UAAL,GAAkB,IAAlB;AACH,KAJD,MAIO,IAAIH,eAAe,GAAIM,UAAU,GAAG,IAApC,EAA2C;AAC9C;AACAN,qBAAe,GAAIM,UAAU,GAAG,IAAhC;AACA,WAAKF,UAAL,GAAkB,IAAlB;AACH,KAJM,MAIA,IAAKE,UAAU,GAAGN,eAAd,GAAiC,GAArC,EAA0C;AAC7C;AACAA,qBAAe,GAAGM,UAAU,GAAG,GAA/B;AACA,WAAKF,UAAL,GAAkB,IAAlB;AACH,KAJM,MAIA;AACH,WAAKA,UAAL,GAAkB,KAAlB;AACA,WAAKD,UAAL,GAAkB,KAAlB;AACH;;AACD,WAAOH,eAAP;AACH,GAlS0C;;AAoS3CtN,qBAAmB,GAAI;AACnB,WAAO,KAAKzzE,KAAL,CAAWgiC,oBAAX,GAAkCj8D,GAAlC,CAAsC4mC,IAAI,KAAK;AAAC,eAASA,IAAV;AAAgB,0BAAaA,IAAb;AAAhB,KAAL,CAA1C,CAAP;AACH,GAtS0C;;AAwS3C20E,yBAAuB,CAACp/G,IAAD,EAAOqf,KAAP,EAAc;AACjCA,SAAK,GAAGA,KAAK,CAAC9E,IAAN,EAAR;AACA,UAAMnN,OAAO,GAAGrT,QAAQ,CAACsF,aAAT,CAAuB,IAAvB,CAAhB;AACA+N,WAAO,CAACvN,YAAR,CAAqB,eAArB,EAAsC,OAAtC;;AAEA,QAAIuyC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,sCAAjB,CAAJ,EAA8D;AAC1D,YAAM87F,GAAG,GAAGtlH,QAAQ,CAACsF,aAAT,CAAuB,KAAvB,CAAZ;AACA,UAAIigH,OAAO,GAAG,UAAUrtE,sBAAS,CAACyR,kBAApB,GAAyC,UAAzC,GAAsDzR,sBAAS,CAAC0R,aAA9E;;AAEA,UAAI1R,sBAAS,CAACi1B,MAAd,EAAsB;AAClB,cAAM3b,KAAK,GAAGtZ,sBAAS,CAACi1B,MAAV,CAAiBhtB,SAAjB,CAA2B;AAAC,sBAAYl6C;AAAb,SAA3B,CAAd;;AACA,YAAIurD,KAAJ,EAAW+zD,OAAO,GAAG,UAAU/zD,KAAK,CAAChoC,GAAN,CAAU,YAAV,CAAV,GAAoC,UAApC,GAAiDgoC,KAAK,CAAChoC,GAAN,CAAU,OAAV,CAA3D;AACd;;AAED87F,SAAG,CAACx/G,YAAJ,CAAiB,KAAjB,EAAwBy/G,OAAxB;AACAD,SAAG,CAACx/G,YAAJ,CAAiB,OAAjB,EAA0B,IAA1B;AACAw/G,SAAG,CAACx/G,YAAJ,CAAiB,OAAjB,EAA0B,4BAA1B;AACAuN,aAAO,CAAC5N,WAAR,CAAoB6/G,GAApB;AACH;;AAED,UAAMz+C,KAAK,GAAG,IAAIv9C,MAAJ,CAAW,MAAMhE,KAAN,GAAc,GAAzB,EAA8B,IAA9B,CAAd;AACA,UAAMjd,KAAK,GAAGid,KAAK,GAAGrf,IAAI,CAACoB,KAAL,CAAWw/D,KAAX,CAAH,GAAuB,CAAC5gE,IAAD,CAA1C;AAEAoC,SAAK,CAAC2L,OAAN,CAAcksE,GAAG,IAAI;AACjB,UAAI56D,KAAK,IAAI46D,GAAG,CAAC3nE,KAAJ,CAAUsuD,KAAV,CAAb,EAA+B;AAC7B,cAAMtuD,KAAK,GAAGvY,QAAQ,CAACsF,aAAT,CAAuB,MAAvB,CAAd;AACAiT,aAAK,CAAC/B,WAAN,GAAoB0pE,GAApB;AACA7sE,eAAO,CAAC5N,WAAR,CAAoB8S,KAApB;AACD,OAJD,MAIO;AACLlF,eAAO,CAAC5N,WAAR,CAAoBzF,QAAQ,CAACoG,cAAT,CAAwB85E,GAAxB,CAApB;AACD;AACJ,KARD;AAUA,WAAO7sE,OAAP;AACH,GA1U0C;;AA4U3CoxG,yBAAuB,GAAI;AACvB,SAAKe,qBAAL,GAA6B,IAAIttE,sBAAS,CAACuoC,YAAd,CAA2B,KAAK17E,EAAhC,EAAoC;AAC7D,oBAAc,IAD+C;AAE7D,uBAAiB,KAF4C;AAG7D,mBAAaszC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,oCAAjB,CAHgD;AAI7D,4BAAsB,IAJuC;AAK7D,cAAQ,MAAM,KAAKguF,mBAAL,EAL+C;AAM7D,gBAAUn/D,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,iCAAjB,KAAuD,UAAvD,GACN0uB,sBAAS,CAACwnC,eADJ,GAENxnC,sBAAS,CAAC0nC,iBAR+C;AAS7D,qBAAe,CAAC,KAAD,EAAQ,GAAR,CAT8C;AAU7D,0BAAoB,EAVyC;AAW7D,cAAQ,KAAKylC;AAXgD,KAApC,CAA7B;AAaA,SAAKG,qBAAL,CAA2Bl7E,EAA3B,CAA8B,+BAA9B,EAA+D,MAAO,KAAKy3C,eAAL,GAAuB,KAA7F;AACH,GA3V0C;;AA6V3C;;;;;;AAMA0jC,gBAAc,CAAEroF,EAAF,EAAM;AAChBA,MAAE,CAACglD,cAAH;AACA,UAAM1xC,IAAI,GAAGtT,EAAE,CAAC8kD,MAAH,CAAUxxC,IAAV,CAAe3wC,KAAf,CAAqBygB,IAArB,EAAb;AACAkwB,QAAI,IAAI,KAAK3M,KAAL,CAAWr8B,IAAX,CAAgBgpC,IAAhB,CAAR;AACH,GAvW0C;;AAyW3C2xC,WAAS,CAAEjlD,EAAF,EAAM;AACX,QAAI,KAAKooF,qBAAL,CAA2BnjC,SAA3B,CAAqCjlD,EAArC,CAAJ,EAA8C;AAC1C;AACH;;AACD,WAAO8a,sBAAS,CAAC0wD,WAAV,CAAsBxpG,SAAtB,CAAgCijF,SAAhC,CAA0C/iF,IAA1C,CAA+C,IAA/C,EAAqD89B,EAArD,CAAP;AACH,GA9W0C;;AAgX3CiwE,SAAO,CAAEjwE,EAAF,EAAM;AACT,SAAKooF,qBAAL,CAA2BvkC,QAA3B,CAAoC7jD,EAApC;AACA,WAAO8a,sBAAS,CAAC0wD,WAAV,CAAsBxpG,SAAtB,CAAgCiuG,OAAhC,CAAwC/tG,IAAxC,CAA6C,IAA7C,EAAmD89B,EAAnD,CAAP;AACH,GAnX0C;;AAqX3C,QAAMw6D,6BAAN,CAAqC9uF,OAArC,EAA8C;AAC1C,UAAM+kG,kBAAkB,GACpB3rD,KAAE,CAAC,+DACC,4DADD,GAEC,wBAFF,CADN;;AAKA,QAAIp5C,OAAO,CAACuoD,cAAR,EAAJ,EAA8B;AAC1B,YAAMyB,QAAQ,GAAG,CAAC5Q,KAAE,CAAC,gDAAD,CAAH,CAAjB;;AACA,UAAI7J,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,yBAAjB,CAAJ,EAAiD;AAC7CspC,gBAAQ,CAAC,CAAD,CAAR,GAAc+6C,kBAAd;AACH;;AACD,OAAC,EAAE,MAAMx1D,iBAAG,CAAC+1B,OAAJ,CAAYlsB,KAAE,CAAC,SAAD,CAAd,EAA2B4Q,QAA3B,CAAR,CAAD,IAAkD,KAAK/uB,KAAL,CAAWoyB,iBAAX,CAA6BrtD,OAA7B,CAAlD;AACH,KAND,MAMO,IAAI,MAAMA,OAAO,CAAC45D,cAAR,EAAV,EAAoC;AACvC,UAAI55D,OAAO,CAAC0gB,GAAR,CAAY,QAAZ,MAA0B,IAA9B,EAAoC;AAChC,YAAIspC,QAAQ,GAAG,CAAC5Q,KAAE,CAAC,gDAAD,CAAH,CAAf;;AACA,YAAI7J,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,yBAAjB,CAAJ,EAAiD;AAC7CspC,kBAAQ,GAAG,CAACA,QAAQ,CAAC,CAAD,CAAT,EAAc+6C,kBAAd,EAAkC/6C,QAAQ,CAAC,CAAD,CAA1C,CAAX;AACH;;AACD,SAAC,EAAE,MAAMza,iBAAG,CAAC+1B,OAAJ,CAAYlsB,KAAE,CAAC,SAAD,CAAd,EAA2B4Q,QAA3B,CAAR,CAAD,IAAkD,KAAKuS,mBAAL,CAAyBv8D,OAAzB,CAAlD;AACH,OAND,MAMO;AACH,YAAIgqD,QAAQ,GAAG,CACX5Q,KAAE,CAAC,wCAAD,CADS,EAEXA,KAAE,CAAC,iFAAD,CAFS,CAAf;;AAIA,YAAI7J,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,yBAAjB,CAAJ,EAAiD;AAC7CspC,kBAAQ,GAAG,CAACA,QAAQ,CAAC,CAAD,CAAT,EAAc+6C,kBAAd,EAAkC/6C,QAAQ,CAAC,CAAD,CAA1C,CAAX;AACH;;AACD,cAAMv+C,MAAM,GAAG,MAAM8jC,iBAAG,CAACoxC,MAAJ,CACjBvnC,KAAE,CAAC,oBAAD,CADe,EAEjB4Q,QAFiB,EAGjB5Q,KAAE,CAAC,iBAAD,CAHe,CAArB;AAKC3tC,cAAM,KAAK,KAAZ,IAAsB,KAAK8wD,mBAAL,CAAyBv8D,OAAzB,EAAkCyL,MAAlC,CAAtB;AACH;AACJ,KAtBM,MAsBA;AACH,YAAM0iC,OAAO,GAAGiL,KAAE,qDAAlB;;AACA7J,uBAAG,CAAC+3B,KAAJ,CAAU,OAAV,EAAmBluB,KAAE,CAAC,OAAD,CAArB,EAAgCjL,OAAhC;AACH;AACJ,GA3Z0C;;AA6Z3C;;;;;;;AAOA,QAAMouB,mBAAN,CAA2Bv8D,OAA3B,EAAoCyL,MAApC,EAA4C;AACxC,UAAMxK,MAAM,GAAG,MAAM,KAAKg6B,KAAL,CAAWshC,mBAAX,CAA+Bv8D,OAA/B,EAAwCyL,MAAxC,CAArB;;AACA,QAAIxK,MAAM,KAAK,IAAf,EAAqB;AACjB,YAAMktC,OAAO,GAAGiL,KAAE,0DAAlB;;AACA7J,uBAAG,CAAC+3B,KAAJ,CAAU,OAAV,EAAmBluB,KAAE,CAAC,OAAD,CAArB,EAAgCjL,OAAhC;AACAhuC,kBAAG,CAACguC,OAAD,EAAU52C,0BAAO,CAACqD,QAAR,CAAiBG,IAA3B,CAAH;AACH,KAJD,MAIO,IAAIirC,oBAAC,CAACmC,aAAF,CAAgBlnC,MAAhB,CAAJ,EAA6B;AAChC,YAAMktC,OAAO,GAAGiL,KAAE,sDAAlB;;AACA7J,uBAAG,CAAC+3B,KAAJ,CAAU,OAAV,EAAmBluB,KAAE,CAAC,OAAD,CAArB,EAAgCjL,OAAhC;AACAhuC,kBAAG,CAACguC,OAAD,EAAU52C,0BAAO,CAACqD,QAAR,CAAiBG,IAA3B,CAAH;AACAoF,kBAAG,CAACc,MAAD,EAAS1J,0BAAO,CAACqD,QAAR,CAAiBG,IAA1B,CAAH;AACH;AACJ,GAhb0C;;AAkb3C6hH,yBAAuB,CAAE7oE,WAAF,EAAe;AAClC,QAAI,CAAC,KAAK8oE,WAAL,CAAiB,CAAC,WAAD,CAAjB,CAAL,EAAsC;AAClC;AACH;;AACD,QAAI,OAAO,KAAK5hF,KAAL,CAAW6hF,cAAlB,KAAqC,WAAzC,EAAsD;AAClD,YAAM7hF,KAAK,GAAG,IAAI4I,WAAJ,CAAU;AAAC,uBAAekQ;AAAhB,OAAV,CAAd;AACA,WAAK+oE,cAAL,GAAsB,IAAIC,eAAJ,CAAwB;AAAC9hF,aAAD;AAAQmU,yCAAR;AAAmB,wBAAgB;AAAnC,OAAxB,CAAtB;AACH,KAHD,MAGO;AACH,WAAK0tE,cAAL,CAAoBzgF,GAApB,CAAwB,aAAxB,EAAuC0X,WAAvC;AACH;;AACD,SAAK+oE,cAAL,CAAoBjpE,IAApB;AACH,GA7b0C;;AA+b3CmpE,sBAAoB,CAAE1oF,EAAF,EAAM;AACtBA,MAAE,CAACglD,cAAH;;AACA,QAAI,KAAKr+C,KAAL,CAAWgiF,kBAAX,KAAkClgH,SAAtC,EAAiD;AAC7C,WAAKk+B,KAAL,CAAWgiF,kBAAX,GAAgC,IAAIC,WAAJ,CAAqB;AAAC,iBAAS,KAAKjiF;AAAf,OAArB,CAAhC;AACH;;AACD,SAAKA,KAAL,CAAWgiF,kBAAX,CAA8BppE,IAA9B,CAAmCvf,EAAnC;AACH,GArc0C;;AAuc3C6oF,2BAAyB,CAAEn9G,OAAF,EAAW;AAChC,QAAIA,OAAO,CAAC0gB,GAAR,CAAY,QAAZ,MAA0B,IAA9B,EAAoC;AAChC;AACH;;AACD,WAAO0uB,sBAAS,CAAC0wD,WAAV,CAAsBxpG,SAAtB,CAAgC6mH,yBAAhC,CAA0D/1F,KAA1D,CAAgE,IAAhE,EAAsE3qB,SAAtE,CAAP;AACH,GA5c0C;;AA8c3Cw+G,mBAAiB,GAAI;AACjB,WAAO,CAAC,KAAKhgF,KAAL,CAAWva,GAAX,CAAe,kBAAf,CAAD,IACH,KAAKua,KAAL,CAAWjQ,OAAX,CAAmBtK,GAAnB,CAAuB,mBAAvB,MAAgD+R,QAAQ,CAACimC,UAAT,CAAoBG,OADxE;AAEH,GAjd0C;;AAmd3C8hD,iBAAe,GAAI;AAAA;;AACf,SAAKpZ,aAAL;AACA,kCAAKtlG,EAAL,CAAQkuB,aAAR,CAAsB,YAAtB,iFAAqC4lF,aAArC;AACH,GAtd0C;;AAwd3C+K,8BAA4B,CAAE9gD,QAAF,EAAY;AACpC,QAAIA,QAAQ,CAACt5C,GAAT,CAAa,KAAb,MAAwB0uB,sBAAS,CAACsB,QAAtC,EAAgD;AAC5C,WAAKyvD,aAAL;AACH;AACJ,GA5d0C;;AA8d3C4a,uBAAqB,CAAE/gD,QAAF,EAAY;AAC7B,QAAIA,QAAQ,CAACt5C,GAAT,CAAa,KAAb,MAAwB0uB,sBAAS,CAACsB,QAAtC,EAAgD;AAC5C,WAAKmqE,iBAAL;AACH;AACJ,GAle0C;;AAoe3C;;;;;;AAMAjY,mBAAiB,CAAE8W,cAAF,EAAkB;AAC/B,UAAM/6B,OAAO,GAAG,EAAhB;AACAA,WAAO,CAAChgF,IAAR,CAAa;AACT,mBAAay6C,KAAE,CAAC,SAAD,CADN;AAET,oBAAcA,KAAE,CAAC,4CAAD,CAFP;AAGT,iBAAW9kB,EAAE,IAAI,KAAK0oF,oBAAL,CAA0B1oF,EAA1B,CAHR;AAIT,iBAAW,yBAJF;AAKT,oBAAc,gBALL;AAMT,cAAQ;AANC,KAAb;;AASA,QAAI,KAAK2G,KAAL,CAAWohC,iBAAX,OAAmC,OAAvC,EAAgD;AAC5CsiB,aAAO,CAAChgF,IAAR,CAAa;AACT,qBAAay6C,KAAE,CAAC,WAAD,CADN;AAET,sBAAcA,KAAE,CAAC,0BAAD,CAFP;AAGT,mBAAW9kB,EAAE,IAAI,KAAKsmF,6BAAL,CAAmCtmF,EAAnC,CAHR;AAIT,mBAAW,2BAJF;AAKT,sBAAc,WALL;AAMT,gBAAQ;AANC,OAAb;AAQH;;AAED,QAAI,KAAK2G,KAAL,CAAWmhC,cAAX,EAAJ,EAAiC;AAC7BuiB,aAAO,CAAChgF,IAAR,CAAa;AACT,qBAAay6C,KAAE,CAAC,QAAD,CADN;AAET,sBAAcA,KAAE,CAAC,uCAAD,CAFP;AAGT,mBAAW9kB,EAAE,IAAI,KAAK8oF,eAAL,CAAqB9oF,EAArB,CAHR;AAIT,mBAAW,mBAJF;AAKT,sBAAc,cALL;AAMT,gBAAQ;AANC,OAAb;AAQH;;AAED,UAAM6sC,OAAO,GAAG,KAAKlmC,KAAL,CAAWva,GAAX,CAAe,SAAf,CAAhB;;AACA,QAAIygD,OAAO,IAAIA,OAAO,CAAChkE,IAAvB,EAA6B;AACzBwhF,aAAO,CAAChgF,IAAR,CAAa;AACT,qBAAa+6G,cAAc,GAAGtgE,KAAE,CAAC,YAAD,CAAL,GAAsBA,KAAE,CAAC,YAAD,CAD1C;AAET,sBAAcsgE,cAAc,GACxBtgE,KAAE,CAAC,uCAAD,CADsB,GAExBA,KAAE,CAAC,+BAAD,CAJG;AAKT,mBAAW9kB,EAAE,IAAI,KAAK+oF,WAAL,CAAiB/oF,EAAjB,CALR;AAMT,mBAAW,YANF;AAOT,sBAAc,iBAPL;AAQT,gBAAQ;AARC,OAAb;AAUH;;AAGD,UAAMiuB,WAAW,GAAG,KAAKtnB,KAAL,CAAWjQ,OAAX,CAAmBtK,GAAnB,CAAuB,mBAAvB,CAApB;;AACA,QAAI6hC,WAAW,KAAK9vB,QAAQ,CAACimC,UAAT,CAAoBG,OAAxC,EAAiD;AAC7C,YAAMykD,gBAAgB,GAAG,KAAK7B,kBAAL,EAAzB;;AACA,UAAI6B,gBAAgB,CAAC5pF,QAAjB,CAA0B,UAA1B,CAAJ,EAA2C;AACvCirD,eAAO,CAAChgF,IAAR,CAAa;AACT,uBAAay6C,KAAE,CAAC,UAAD,CADN;AAET,wBAAcA,KAAE,CAAC,yBAAD,CAFP;AAGT,qBAAW,MAAM,KAAKwjE,uBAAL,EAHR;AAIT,qBAAW,0BAJF;AAKT,wBAAc,aALL;AAMT,kBAAQ;AANC,SAAb;AAQH;;AACD,UAAIU,gBAAgB,CAAC5pF,QAAjB,CAA0B,SAA1B,CAAJ,EAA0C;AACtCirD,eAAO,CAAChgF,IAAR,CAAa;AACT,uBAAay6C,KAAE,CAAC,SAAD,CADN;AAET,wBAAcA,KAAE,CAAC,uBAAD,CAFP;AAGT,qBAAW9kB,EAAE,IAAI,KAAKqH,OAAL,CAAarH,EAAb,CAHR;AAIT,qBAAW,yBAJF;AAKT,wBAAc,UALL;AAMT,kBAAQ;AANC,SAAb;AAQH;AACJ;;AAED,QAAI,CAACib,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,WAAjB,CAAL,EAAoC;AAChCi+D,aAAO,CAAChgF,IAAR,CAAa;AACT,qBAAay6C,KAAE,CAAC,OAAD,CADN;AAET,sBAAcA,KAAE,CAAC,gCAAD,CAFP;AAGT,mBAAW,MAAM9kB,EAAN,IAAY;AACnBA,YAAE,CAACmlD,eAAH;AACA,gBAAMzvB,QAAQ,GAAG,CAAC5Q,KAAE,CAAC,gDAAD,CAAH,CAAjB;AACA,gBAAMn4C,MAAM,GAAG,MAAMsuC,iBAAG,CAAC+1B,OAAJ,CAAYlsB,KAAE,CAAC,SAAD,CAAd,EAA2B4Q,QAA3B,CAArB;AACA/oD,gBAAM,IAAI,KAAKykB,KAAL,CAAW4O,EAAX,CAAV;AACH,SARQ;AAST,mBAAW,sBATF;AAUT,sBAAcib,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,WAAjB,MAAkC,WAVvC;AAWT,sBAAc,iBAXL;AAYT,gBAAQ;AAZC,OAAb;AAcH;;AACD,WAAO0uB,sBAAS,CAACG,GAAV,CAAc8D,IAAd,CAAmB,mBAAnB,EAAwC,IAAxC,EAA8CsrC,OAA9C,CAAP;AACH,GApkB0C;;AAskB3C;;;;;AAKA,QAAMyjB,uBAAN,GAAiC;AAC7B,UAAMsX,cAAc,GAAG,MAAM,KAAKz+E,KAAL,CAAW8lC,eAAX,EAA7B;AACA,UAAM4hC,YAAY,GAAG,MAAM,KAAKC,iBAAL,CAAuB8W,cAAvB,CAA3B;AACA,UAAM5b,eAAe,GAAG6E,YAAY,CAACh1F,MAAb,CAAoB9Y,CAAC,IAAIA,CAAC,CAACguG,UAA3B,CAAxB;AACA,UAAM5E,aAAa,GAAG0E,YAAY,CAACh1F,MAAb,CAAoB9Y,CAAC,IAAI,CAACA,CAAC,CAACguG,UAA5B,CAAtB;AACA,WAAO0a,aAAiB,CACpBlnH,MAAM,CAACsmC,MAAP,CAAc,KAAK1B,KAAL,CAAWmB,MAAX,EAAd,EAAmC;AAC/BgT,uCAD+B;AAE/BsqE,oBAF+B;AAG/B,uBAAiBzb,aAAa,CAACj9F,GAAd,CAAkBnM,CAAC,IAAI,KAAK4tG,sBAAL,CAA4B5tG,CAA5B,CAAvB,CAHc;AAI/B,yBAAmBipG,eAAe,CAAC98F,GAAhB,CAAoBnM,CAAC,IAAI,KAAKwtG,0BAAL,CAAgCxtG,CAAhC,CAAzB,CAJY;AAK/B,eAAS,KAAKomC,KAAL,CAAWwtB,cAAX;AALsB,KAAnC,CADoB,CAAxB;AAQH,GAxlB0C;;AA0lB3C40D,aAAW,GAAI;AACX,SAAKpiF,KAAL,CAAW+lC,wBAAX;AACH,GA5lB0C;;AA8lB3Co8C,iBAAe,CAAE9oF,EAAF,EAAM;AACjBA,MAAE,CAACglD,cAAH;;AACA,QAAI,KAAKkkC,gBAAL,KAA0BzgH,SAA9B,EAAyC;AACrC,WAAKygH,gBAAL,GAAwB,IAAIC,UAAJ,CAAmB;AAAC,iBAAS,IAAI55E,WAAJ;AAAV,OAAnB,CAAxB,CADqC,CAErC;;AACA,WAAK25E,gBAAL,CAAsB9/B,YAAtB,GAAqC,IAArC;AACH;;AACD,SAAK8/B,gBAAL,CAAsB3pE,IAAtB,CAA2Bvf,EAA3B;AACH,GAtmB0C;;AAymB3C;;;;;AAKAkxE,YAAU,GAAI;AACV;AACA;AACA;AACA,QAAIx/D,oBAAC,CAACsE,kBAAF,CAAqB,KAAKrP,KAA1B,CAAJ,EAAsC;AAClC,WAAKA,KAAL,CAAW00B,qBAAX;AACH;;AACD,SAAK20B,UAAL;AACH,GAtnB0C;;AAwnB3C7pB,2BAAyB,GAAI;AACzB,UAAMlY,WAAW,GAAG,KAAKtnB,KAAL,CAAWjQ,OAAX,CAAmBtK,GAAnB,CAAuB,mBAAvB,CAApB;;AACA,QAAI6hC,WAAW,KAAK9vB,QAAQ,CAACimC,UAAT,CAAoBC,iBAAxC,EAA2D;AACvD,WAAK+kD,kBAAL;AACH,KAFD,MAEO,IAAIn7D,WAAW,KAAK9vB,QAAQ,CAACimC,UAAT,CAAoBE,iBAAxC,EAA2D;AAC9D,WAAK+kD,kBAAL;AACH,KAFM,MAEA,IAAIp7D,WAAW,KAAK9vB,QAAQ,CAACimC,UAAT,CAAoBh/D,UAAxC,EAAoD;AACvD,WAAKyhH,WAAL;AACH,KAFM,MAEA,IAAI54D,WAAW,KAAK9vB,QAAQ,CAACimC,UAAT,CAAoBG,OAAxC,EAAiD;AACpD,WAAKgiD,iBAAL;AACA,WAAK+C,WAAL;AACA,WAAKrY,UAAL;AACH,KAJM,MAIA,IAAIhjD,WAAW,KAAK9vB,QAAQ,CAACimC,UAAT,CAAoB3+D,YAAxC,EAAsD;AACzD,WAAK8jH,qBAAL;AACH,KAFM,MAEA,IAAIt7D,WAAW,KAAK9vB,QAAQ,CAACimC,UAAT,CAAoBI,SAAxC,EAAmD;AACtD,WAAKglD,oBAAL;AACH;AACJ,GAzoB0C;;AA2oB3Ctc,mBAAiB,GAAI;AACjB,WAAOnrG,MAAM,CAACsmC,MAAP,CACHyS,sBAAS,CAAC0wD,WAAV,CAAsBxpG,SAAtB,CAAgCkrG,iBAAhC,CAAkDp6E,KAAlD,CAAwD,IAAxD,EAA8D3qB,SAA9D,CADG,EACuE;AACtE,sBAAgB,IADsD;AAEtE,8BAAwB28C,KAAE,CAAC,+BAAD,CAF4C;AAGtE,+BAAyBhK,sBAAS,CAAC2uE,uBAAV,CAAkCC;AAHW,KADvE,CAAP;AAOH,GAnpB0C;;AAqpB3C;;;;;AAKA,QAAMt4F,KAAN,GAAe;AACX,SAAK86D,IAAL;;AACA,QAAIpxC,sBAAS,CAACsS,MAAV,CAAiBjG,OAAjB,CAAyBa,WAAzB,OAA2C,uBAAqB,KAAKrhB,KAAL,CAAWva,GAAX,CAAe,KAAf,CAApE,EAA2F;AACvF0uB,4BAAS,CAACsS,MAAV,CAAiB3E,QAAjB,CAA0B,EAA1B;AACH;;AACD,UAAM,KAAK9hB,KAAL,CAAW2hC,KAAX,EAAN;AACA,WAAOxtB,sBAAS,CAAC0wD,WAAV,CAAsBxpG,SAAtB,CAAgCovB,KAAhC,CAAsC0B,KAAtC,CAA4C,IAA5C,EAAkD3qB,SAAlD,CAAP;AACH,GAjqB0C;;AAmqB3C;;;;;AAKAwhH,eAAa,CAAE3pF,EAAF,EAAM;AACf,QAAIA,EAAJ,EAAQ;AACJA,QAAE,CAACglD,cAAH;AACAhlD,QAAE,CAACmlD,eAAH;AACH;;AACD,SAAKx+C,KAAL,CAAWkB,IAAX,CAAgB;AAAC,0BAAoB;AAArB,KAAhB;AACA,SAAKmoD,UAAL;AACH,GA/qB0C;;AAirB3Cu4B,aAAW,CAAEqB,KAAF,EAASlkD,QAAT,EAAmBmkD,UAAU,GAAC,IAA9B,EAAoC;AAC3C,QAAI,CAACr9G,KAAK,CAAC8C,OAAN,CAAcs6G,KAAd,CAAL,EAA2B;AACvB,YAAM,IAAIppG,SAAJ,CAAc,wBAAd,CAAN;AACH;;AACD,QAAI,CAACopG,KAAK,CAACjqH,MAAX,EAAmB;AACf,aAAO,IAAP;AACH;;AACD+lE,YAAQ,GAAGA,QAAQ,IAAI,KAAK/+B,KAAL,CAAWuY,SAAX,CAAqB6D,SAArB,CAA+B;AAAC,aAAOjI,sBAAS,CAACsB;AAAlB,KAA/B,CAAvB;;AACA,QAAIspB,QAAJ,EAAc;AACV,YAAMhmB,IAAI,GAAGgmB,QAAQ,CAACt5C,GAAT,CAAa,MAAb,CAAb;;AACA,UAAIw9F,KAAK,CAACxqF,QAAN,CAAesgB,IAAf,CAAJ,EAA0B;AACtB,eAAO,IAAP;AACH;AACJ;;AACD,QAAImqE,UAAJ,EAAgB;AACZ,YAAMn+G,OAAO,GAAGo5C,KAAE,CAAC,oEAAD,CAAlB;;AACA,WAAKne,KAAL,CAAW4vB,aAAX,CAAyB;AAAC7qD,eAAD;AAAU,gBAAQ;AAAlB,OAAzB;AACH;;AACD,WAAO,KAAP;AACH,GApsB0C;;AAssB3Co+G,oBAAkB,CAAE5+C,YAAF,EAAgBxF,QAAhB,EAA0BmkD,UAAU,GAAC,IAArC,EAA2C;AACzD,QAAI,CAACr9G,KAAK,CAAC8C,OAAN,CAAc47D,YAAd,CAAL,EAAkC;AAC9B,YAAM,IAAI1qD,SAAJ,CAAc,+BAAd,CAAN;AACH;;AACD,QAAI,CAAC0qD,YAAY,CAACvrE,MAAlB,EAA0B;AACtB,aAAO,IAAP;AACH;;AACD+lE,YAAQ,GAAGA,QAAQ,IAAI,KAAK/+B,KAAL,CAAWuY,SAAX,CAAqB6D,SAArB,CAA+B;AAAC,aAAOjI,sBAAS,CAACsB;AAAlB,KAA/B,CAAvB;;AACA,QAAIspB,QAAJ,EAAc;AACV,YAAMplE,CAAC,GAAGolE,QAAQ,CAACt5C,GAAT,CAAa,aAAb,CAAV;;AACA,UAAI8+C,YAAY,CAAC9rC,QAAb,CAAsB9+B,CAAtB,CAAJ,EAA8B;AAC1B,eAAO,IAAP;AACH;AACJ;;AACD,QAAIupH,UAAJ,EAAgB;AACZ,YAAMn+G,OAAO,GAAGo5C,KAAE,CAAC,2EAAD,CAAlB;;AACA,WAAKne,KAAL,CAAW4vB,aAAX,CAAyB;AAAC7qD,eAAD;AAAU,gBAAQ;AAAlB,OAAzB;AACH;;AACD,WAAO,KAAP;AACH,GAztB0C;;AA2tB3Cq+G,qCAAmC,CAAEC,OAAF,EAAWn7E,IAAX,EAAiB;AAChD,QAAI,CAACA,IAAL,EAAW;AACP,YAAMnjC,OAAO,GAAGo5C,KAAE,CACd,8FADc,EAEdklE,OAFc,CAAlB;;AAIA,WAAKrjF,KAAL,CAAW4vB,aAAX,CAAyB;AAAC7qD,eAAD;AAAU,gBAAQ;AAAlB,OAAzB;AACA,aAAO,KAAP;AACH;;AACD,WAAO,IAAP;AACH,GAruB0C;;AAuuB3Cu+G,6BAA2B,CAAEp7E,IAAF,EAAQ;AAC/B,QAAI6C,oBAAC,CAACc,UAAF,CAAa3D,IAAI,CAACzrB,IAAL,EAAb,CAAJ,EAA+B;AAC3B,aAAOyrB,IAAI,CAACzrB,IAAL,EAAP;AACH;;AACD,QAAI,CAACyrB,IAAI,CAACpP,UAAL,CAAgB,GAAhB,CAAL,EAA2B;AACvBoP,UAAI,GAAG,MAAKA,IAAZ;AACH;;AACD,UAAM,CAAChmC,IAAD,EAAO2xD,UAAP,IAAqB,KAAK7zB,KAAL,CAAWsiC,sBAAX,CAAkCp6B,IAAlC,CAA3B,CAP+B,CAOqC;;AACpE,QAAI,CAAC2rB,UAAU,CAAC76D,MAAhB,EAAwB;AACpB,YAAM+L,OAAO,GAAGo5C,KAAE,CAAC,sEAAD,CAAlB;;AACA,WAAKne,KAAL,CAAW4vB,aAAX,CAAyB;AAAC7qD,eAAD;AAAU,gBAAQ;AAAlB,OAAzB;AACA;AACH;;AACD,QAAI8uD,UAAU,CAAC76D,MAAX,GAAoB,CAAxB,EAA2B;AACvB,YAAM+L,OAAO,GAAGo5C,KAAE,CAAC,qEAAD,CAAlB;;AACA,WAAKne,KAAL,CAAW4vB,aAAX,CAAyB;AAAC7qD,eAAD;AAAU,gBAAQ;AAAlB,OAAzB;AACA;AACH;;AACD,UAAMw+G,WAAW,GAAG1vD,UAAU,CAACniD,GAAX,GAAiB1V,KAArC;AACA,UAAMwU,MAAM,GAAG03B,IAAI,CAAC5kC,KAAL,CAAWigH,WAAX,EAAwB,CAAxB,EAA2B,CAA3B,CAAf;;AACA,QAAI/yG,MAAM,IAAI,CAACA,MAAM,CAACsoB,UAAP,CAAkB,GAAlB,CAAf,EAAuC;AACnC,YAAM/zB,OAAO,GAAGo5C,KAAE,CAAC,sEAAD,CAAlB;;AACA,WAAKne,KAAL,CAAW4vB,aAAX,CAAyB;AAAC7qD,eAAD;AAAU,gBAAQ;AAAlB,OAAzB;AACA;AACH;;AACD,WAAOw+G,WAAP;AACH,GAjwB0C;;AAmwB3C1/C,gBAAc,CAAEw/C,OAAF,EAAWn7E,IAAX,EAAiBs7E,qBAAjB,EAAwC;AAClD,UAAM1qE,WAAW,GAAG2mE,sBAAsB,CAAC4D,OAAD,CAA1C;;AACA,QAAI,CAACvqE,WAAL,EAAkB;AACd,YAAMjgD,KAAK,oEAA6DwqH,OAA7D,EAAX;AACH;;AACD,QAAI,CAAC,KAAKF,kBAAL,CAAwBK,qBAAxB,CAAL,EAAqD;AACjD,aAAO,KAAP;AACH;;AACD,QAAI,CAAC,KAAKJ,mCAAL,CAAyCC,OAAzC,EAAkDn7E,IAAlD,CAAL,EAA8D;AAC1D,aAAO,KAAP;AACH;;AACD,UAAMq7E,WAAW,GAAG,KAAKD,2BAAL,CAAiCp7E,IAAjC,CAApB;;AACA,QAAI,CAACq7E,WAAL,EAAkB;AACd,aAAO,KAAP;AACH;;AAED,QAAIt/G,GAAJ;AACA,UAAMuM,MAAM,GAAG03B,IAAI,CAAC5kC,KAAL,CAAWigH,WAAX,EAAwB,CAAxB,EAA2B,CAA3B,EAA8B9mG,IAA9B,EAAf;AACA,UAAMsiD,QAAQ,GAAG,KAAK/+B,KAAL,CAAW0iC,WAAX,CAAuB6gD,WAAvB,CAAjB;;AACA,QAAIxkD,QAAJ,EAAc;AACV96D,SAAG,GAAG86D,QAAQ,CAACt5C,GAAT,CAAa,KAAb,CAAN;AACH,KAFD,MAEO;AACH,UAAIslB,oBAAC,CAACc,UAAF,CAAa03E,WAAb,CAAJ,EAA+B;AAC3Bt/G,WAAG,GAAGs/G,WAAN;AACH,OAFD,MAEO;AACH,cAAMx+G,OAAO,GAAGo5C,KAAE,CACd,qDACA,qCAFc,CAAlB;;AAIA,aAAKne,KAAL,CAAW4vB,aAAX,CAAyB;AAAC7qD,iBAAD;AAAU,kBAAQ;AAAlB,SAAzB;AACA;AACH;AACJ;;AACD,UAAM1I,KAAK,GAAG;AAAE4H,SAAF;AAAOuM;AAAP,KAAd;;AACA,QAAIuuD,QAAQ,IAAIzqB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,4BAAjB,CAAhB,EAAgE;AAC5DppB,WAAK,CAAC,MAAD,CAAL,GAAgB0iE,QAAQ,CAACt5C,GAAT,CAAa,MAAb,CAAhB;AACH;;AACD,SAAKua,KAAL,CAAW6jC,cAAX,CAA0B/qB,WAA1B,EAAuC,CAACz8C,KAAD,CAAvC,EACKs9B,IADL,CACU,MAAM,KAAKqG,KAAL,CAAWuY,SAAX,CAAqB8nB,YAArB,EADhB,EAEK3gC,KAFL,CAEWtuB,GAAG,IAAI,KAAKqyG,cAAL,CAAoBryG,GAApB,CAFlB;AAGH,GA3yB0C;;AA6yB3CsyG,WAAS,CAAEx7E,IAAF,EAAQ;AACb,WAAOA,IAAI,CAACzP,QAAL,CAAc,GAAd,IAAqByP,IAAI,CAAC1tB,KAAL,CAAW0tB,IAAI,CAAChkC,OAAL,CAAa,GAAb,IAAkB,CAA7B,EAAgCuY,IAAhC,EAArB,GAA8D,IAArE;AACH,GA/yB0C;;AAizB3C+nD,SAAO,CAAE6+C,OAAF,EAAWn7E,IAAX,EAAiBs7E,qBAAqB,GAAC,EAAvC,EAA2CG,cAAc,GAAC,EAA1D,EAA8D;AACjE;;;AAGA,UAAM5qE,IAAI,GAAGymE,eAAe,CAAC6D,OAAD,CAA5B;;AACA,QAAI,CAACtqE,IAAL,EAAW;AACP,YAAMlgD,KAAK,6DAAsDwqH,OAAtD,EAAX;AACH;;AACD,QAAI,CAAC,KAAKF,kBAAL,CAAwBK,qBAAxB,CAAD,IAAmD,CAAC,KAAK5B,WAAL,CAAiB+B,cAAjB,CAAxD,EAA0F;AACtF,aAAO,KAAP;AACH;;AACD,QAAI,CAAC,KAAKP,mCAAL,CAAyCC,OAAzC,EAAkDn7E,IAAlD,CAAL,EAA8D;AAC1D,aAAO,KAAP;AACH;;AACD,UAAMq7E,WAAW,GAAG,KAAKD,2BAAL,CAAiCp7E,IAAjC,CAApB;;AACA,QAAI,CAACq7E,WAAL,EAAkB;AACd,aAAO,KAAP;AACH;;AACD,UAAM/yG,MAAM,GAAG03B,IAAI,CAAC5kC,KAAL,CAAWigH,WAAX,EAAwB,CAAxB,EAA2B,CAA3B,EAA8B9mG,IAA9B,EAAf,CAlBiE,CAmBjE;;AACA,UAAMsiD,QAAQ,GAAG,KAAK/+B,KAAL,CAAW0iC,WAAX,CAAuB6gD,WAAvB,CAAjB;AACA,SAAKvjF,KAAL,CAAWwkC,OAAX,CAAmBzF,QAAnB,EAA6BhmB,IAA7B,EAAmCvoC,MAAnC,EAA2C1O,SAA3C,EAAsD,KAAK2hH,cAAL,CAAoB7yG,IAApB,CAAyB,IAAzB,CAAtD;AACA,WAAO,IAAP;AACH,GAx0B0C;;AA00B3C6yG,gBAAc,CAAEryG,GAAF,EAAO;AACjBlM,gBAAG,CAACP,KAAJ,CAAUyM,GAAV;;AACA,UAAMrM,OAAO,GACTo5C,KAAE,CAAC,qDAAD,CAAF,GAA4D,GAA5D,GACAA,KAAE,CAAC,qDAAD,CAFN;;AAGA,SAAKne,KAAL,CAAW4vB,aAAX,CAAyB;AAAC7qD,aAAD;AAAU,cAAQ;AAAlB,KAAzB;AACH,GAh1B0C;;AAk1B3Cy7G,oBAAkB,GAAI;AAClB,QAAI6B,gBAAgB,GAAG,CAAC,OAAD,EAAU,MAAV,EAAkB,IAAlB,EAAwB,MAAxB,EAAgC,UAAhC,CAAvB;;AACA,QAAI,KAAKriF,KAAL,CAAWpB,MAAX,CAAkBnZ,GAAlB,CAAsB,eAAtB,KAA0C,CAAC,OAAD,EAAU,OAAV,EAAmBgT,QAAnB,CAA4B,KAAKuH,KAAL,CAAWohC,iBAAX,EAA5B,CAA9C,EAA2G;AACvGihD,sBAAgB,GAAG,CAAC,GAAGA,gBAAJ,EAAsB,GAAG,CAAC,SAAD,EAAY,OAAZ,CAAzB,CAAnB;AACH;;AACD,UAAMtjD,QAAQ,GAAG,KAAK/+B,KAAL,CAAWuY,SAAX,CAAqB6D,SAArB,CAA+B;AAAC,aAAOjI,sBAAS,CAACsB;AAAlB,KAA/B,CAAjB;;AACA,QAAI,KAAK0tE,kBAAL,CAAwB,CAAC,OAAD,CAAxB,EAAmCpkD,QAAnC,EAA6C,KAA7C,CAAJ,EAAyD;AACrDsjD,sBAAgB,GAAGA,gBAAgB,CAAC3qG,MAAjB,CAAwB0nG,cAAxB,EAAwC1nG,MAAxC,CAA+C2nG,cAA/C,CAAnB;AACH,KAFD,MAEO,IAAI,KAAK8D,kBAAL,CAAwB,CAAC,OAAD,CAAxB,EAAmCpkD,QAAnC,EAA6C,KAA7C,CAAJ,EAAyD;AAC5DsjD,sBAAgB,GAAGA,gBAAgB,CAAC3qG,MAAjB,CAAwB2nG,cAAxB,CAAnB;AACH;;AACD,QAAI,KAAKuC,WAAL,CAAiB,CAAC,WAAD,CAAjB,EAAgC7iD,QAAhC,EAA0C,KAA1C,CAAJ,EAAsD;AAClDsjD,sBAAgB,GAAGA,gBAAgB,CAAC3qG,MAAjB,CAAwB4nG,kBAAxB,EAA4C5nG,MAA5C,CAAmD6nG,gBAAnD,CAAnB;AACH,KAFD,MAEO,IAAI,CAAC,KAAKqC,WAAL,CAAiB,CAAC,SAAD,EAAY,aAAZ,EAA2B,WAA3B,CAAjB,EAA0D7iD,QAA1D,EAAoE,KAApE,CAAL,EAAiF;AACpFsjD,sBAAgB,GAAGA,gBAAgB,CAAC3qG,MAAjB,CAAwB6nG,gBAAxB,CAAnB;AACH;;AACD8C,oBAAgB,CAACzgH,IAAjB;;AAEA,QAAIiE,KAAK,CAAC8C,OAAN,CAAc2rC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,4BAAjB,CAAd,CAAJ,EAAmE;AAC/D,aAAO48F,gBAAgB,CAAC3vG,MAAjB,CAAwB1Y,CAAC,IAAI,CAACs6C,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,4BAAjB,EAA+CgT,QAA/C,CAAwDz+B,CAAxD,CAA9B,CAAP;AACH,KAFD,MAEO;AACH,aAAOqoH,gBAAP;AACH;AACJ,GAz2B0C;;AA22B3C,QAAM3hF,OAAN,GAAiB;AACb,UAAMquB,QAAQ,GAAG,CAAC5Q,KAAE,CAAC,kDAAD,CAAH,CAAjB;AACA,QAAIsX,MAAM,GAAG,CAAC;AACV,cAAQ,WADE;AAEV,eAAStX,KAAE,CAAC,4DAAD,CAFD;AAGV,mBAAa,KAAKne,KAAL,CAAWva,GAAX,CAAe,KAAf,CAHH;AAIV,qBAAe04B,KAAE,CAAC,kBAAD,CAJP;AAKV,kBAAY;AALF,KAAD,EAMV;AACC,cAAQ,QADT;AAEC,eAASA,KAAE,CAAC,+CAAD,CAFZ;AAGC,qBAAeA,KAAE,CAAC,QAAD;AAHlB,KANU,EAUV;AACC,cAAQ,QADT;AAEC,eAASA,KAAE,CAAC,kEAAD,CAFZ;AAGC,qBAAeA,KAAE,CAAC,yBAAD;AAHlB,KAVU,CAAb;;AAeA,QAAI;AAAA;;AACAsX,YAAM,GAAG,MAAMnhB,iBAAG,CAAC+1B,OAAJ,CAAYlsB,KAAE,CAAC,SAAD,CAAd,EAA2B4Q,QAA3B,EAAqC0G,MAArC,CAAf;AACA,YAAMjlD,MAAM,yBAAGilD,MAAM,CAAC/iD,MAAP,CAAc8oC,CAAC,IAAIA,CAAC,CAACp/C,IAAF,KAAW,QAA9B,EAAwCsV,GAAxC,EAAH,uDAAG,mBAA+C1V,KAA9D;AACA,YAAM4nH,MAAM,0BAAGnuD,MAAM,CAAC/iD,MAAP,CAAc8oC,CAAC,IAAIA,CAAC,CAACp/C,IAAF,KAAW,QAA9B,EAAwCsV,GAAxC,EAAH,wDAAG,oBAA+C1V,KAA9D;AACA,aAAO,KAAKgkC,KAAL,CAAWwhC,aAAX,CAAyBhxD,MAAzB,EAAiCozG,MAAjC,EAAyCjqF,IAAzC,CAA8C,MAAM,KAAKlP,KAAL,EAApD,CAAP;AACH,KALD,CAKE,OAAO7mB,CAAP,EAAU;AACRsB,kBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACH;AACJ,GAp4B0C;;AAs4B3C0kG,yBAAuB,CAAEpmG,IAAF,EAAQ;AAC3B,QAAIoyC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,4BAAjB,KACI,CAAC5f,KAAK,CAAC8C,OAAN,CAAc2rC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,4BAAjB,CAAd,CADT,EACwE;AACpE,aAAO0uB,sBAAS,CAAC0wD,WAAV,CAAsBxpG,SAAtB,CAAgCitG,uBAAhC,CAAwDn8E,KAAxD,CAA8D,IAA9D,EAAoE3qB,SAApE,CAAP;AACH;;AACDU,QAAI,GAAGA,IAAI,CAACC,OAAL,CAAa,MAAb,EAAqB,EAArB,CAAP;AACA,UAAMkhH,OAAO,GAAG,CAACnhH,IAAI,CAACsS,KAAL,CAAW,kBAAX,KAAkC,CAAC,EAAD,CAAnC,EAAyC9C,GAAzC,GAA+CxO,WAA/C,EAAhB;;AACA,QAAI,CAACmgH,OAAL,EAAc;AACV,aAAO,KAAP;AACH;;AACD,UAAMn7E,IAAI,GAAGhmC,IAAI,CAACsY,KAAL,CAAW,CAAC,MAAI6oG,OAAL,EAAcrqH,MAAd,GAAqB,CAAhC,EAAmCyjB,IAAnC,EAAb;;AACA,QAAI,CAAC,KAAK+jG,kBAAL,GAA0B/nF,QAA1B,CAAmC4qF,OAAnC,CAAL,EAAkD;AAC9C,aAAO,KAAP;AACH;;AAED,YAAQA,OAAR;AACI,WAAK,OAAL;AAAc;AACV,eAAKx/C,cAAL,CAAoBw/C,OAApB,EAA6Bn7E,IAA7B,EAAmC,CAAC,OAAD,CAAnC;AACA;AACH;;AACD,WAAK,KAAL;AAAY;AACR,eAAK27B,cAAL,CAAoBw/C,OAApB,EAA6Bn7E,IAA7B,EAAmC,CAAC,OAAD,EAAU,OAAV,CAAnC;AACA;AACH;;AACD,WAAK,UAAL;AAAiB;AACb,eAAKy5E,uBAAL,CAA6Bz5E,IAA7B;AACA;AACH;;AACD,WAAK,MAAL;AAAa;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAKs8B,OAAL,CAAa6+C,OAAb,EAAsBn7E,IAAtB,EAA4B,CAAC,OAAD,EAAU,OAAV,CAA5B;AACA;AACH;;AACD,WAAK,SAAL;AAAgB;AACZ,cAAI,CAAC,KAAKi7E,kBAAL,CAAwB,CAAC,OAAD,CAAxB,CAAL,EAAyC;AACrC;AACH;;AACD,eAAKziF,OAAL,GAAehB,KAAf,CAAqB97B,CAAC,IAAI,KAAK6/G,cAAL,CAAoB7/G,CAApB,CAA1B;AACA;AACH;;AACD,WAAK,MAAL;AAAa;AACT,eAAKo8B,KAAL,CAAWoB,GAAX,CAAe;AAAC,kCAAsB;AAAvB,WAAf;AACA;AACH;;AAAC,WAAK,MAAL;AAAa;AACX,eAAKojC,OAAL,CAAa6+C,OAAb,EAAsBn7E,IAAtB,EAA4B,EAA5B,EAAgC,CAAC,WAAD,CAAhC;AACA;AACH;;AACD,WAAK,MAAL;AAAa;AACT,eAAKs8B,OAAL,CAAa6+C,OAAb,EAAsBn7E,IAAtB,EAA4B,EAA5B,EAAgC,CAAC,WAAD,CAAhC;AACA;AACH;;AACD,WAAK,QAAL;AAAe;AACX,eAAK27B,cAAL,CAAoBw/C,OAApB,EAA6Bn7E,IAA7B,EAAmC,CAAC,OAAD,EAAU,OAAV,CAAnC;AACA;AACH;;AACD,WAAK,MAAL;AAAa;AACT,cAAI,CAAC,KAAK05E,WAAL,CAAiB,CAAC,SAAD,EAAY,aAAZ,EAA2B,WAA3B,CAAjB,CAAL,EAAgE;AAC5D;AACH,WAFD,MAEO,IAAI15E,IAAI,CAAClvC,MAAL,KAAgB,CAApB,EAAuB;AAC1B;AACA,kBAAM+L,OAAO,GAAGo5C,KAAE,CAAC,yBAAD,EAA4B,KAAKne,KAAL,CAAWva,GAAX,CAAe,MAAf,CAA5B,CAAlB;;AACA,iBAAKua,KAAL,CAAW4vB,aAAX,CAAyB;AAAC7qD,qBAAD;AAAU,sBAAQ;AAAlB,aAAzB;AAEH,WALM,MAKA;AACH,kBAAMd,GAAG,GAAG3H,0BAAO,CAAC+H,iBAAR,CAA0B,KAAK27B,KAAL,CAAWva,GAAX,CAAe,KAAf,CAA1B,CAAZ;AACA6uB,6BAAG,CAAChmC,IAAJ,CAAS5R,wBAAK,CAAC;AACXqL,kBAAI,EAAEosC,sBAAS,CAAC5+B,UAAV,CAAqBtR,GADhB;AAEX0uD,gBAAE,YAAK1uD,GAAL,cAAYikC,IAAZ,CAFS;AAGXpgC,gBAAE,EAAEijC,oBAAC,CAAC/+B,WAAF;AAHO,aAAD,CAAL,CAINrG,IAJM,EAAT;AAKH;;AACD;AACH;;AACD,WAAK,OAAL;AACI,aAAKk+D,cAAL,CAAoBw/C,OAApB,EAA6Bn7E,IAA7B,EAAmC,CAAC,OAAD,CAAnC;AACA;;AACJ,WAAK,IAAL;AAAW;AACP,eAAKs8B,OAAL,CAAa6+C,OAAb,EAAsBn7E,IAAtB,EAA4B,CAAC,OAAD,EAAU,OAAV,CAA5B;AACA;AACH;;AACD,WAAK,UAAL;AAAiB;AACb,cAAIA,IAAI,CAAClvC,MAAL,GAAc,CAAlB,EAAqB;AACjB,iBAAKgnC,KAAL,CAAW4vB,aAAX,CAAyB;AACrB,yBAAWzR,KAAE,CAAC,oCAAD,CADQ;AAErB,sBAAQ;AAFa,aAAzB;AAIH,WALD,MAKO;AACH,iBAAKne,KAAL,CAAWugC,gBAAX,GAA8B5mC,IAA9B,CAAmCuZ,OAAO,IAAI;AAC1CA,qBAAO,IAAI,KAAKlT,KAAL,CAAW4vB,aAAX,CAAyB;AAAC,2BAAW1c,OAAZ;AAAqB,wBAAQ;AAA7B,eAAzB,CAAX;AACH,aAFD;AAGH;;AACD;AACH;;AACD,WAAK,QAAL;AAAe;AACX,eAAK2wB,cAAL,CAAoBw/C,OAApB,EAA6Bn7E,IAA7B,EAAmC,CAAC,OAAD,EAAU,OAAV,CAAnC;AACA;AACH;;AACD,WAAK,OAAL;AACA,WAAK,SAAL;AACI,aAAKlI,KAAL,CAAWumC,UAAX,CAAsBr+B,IAAtB;AACA;;AACJ,WAAK,OAAL;AAAc;AACV,eAAKs8B,OAAL,CAAa6+C,OAAb,EAAsBn7E,IAAtB,EAA4B,EAA5B,EAAgC,CAAC,WAAD,CAAhC;AACA;AACH;;AACD;AACI,eAAOiM,sBAAS,CAAC0wD,WAAV,CAAsBxpG,SAAtB,CAAgCitG,uBAAhC,CAAwDn8E,KAAxD,CAA8D,IAA9D,EAAoE3qB,SAApE,CAAP;AAhGR;;AAkGA,WAAO,IAAP;AACH,GAx/B0C;;AA0/B3C;;;;;;;;;AASAqiH,yBAAuB,CAAE70G,MAAF,EAAU;AAC7B,SAAKizE,oBAAL;AACA,SAAKjiD,KAAL,CAAWkB,IAAX,CAAgB,eAAhB,EAAiClyB,MAAM,CAAC+yB,SAAxC;;AACA,QAAI,CAAC,KAAK+hF,WAAV,EAAuB;AACnB,WAAKA,WAAL,GAAmB,IAAI3vE,sBAAS,CAAC4vE,aAAd,CAA4B;AAC3C,iBAAS,KAAK/jF,KAD6B;AAE3C,wBAAgB;AAF2B,OAA5B,CAAnB;AAIA,YAAMoiD,YAAY,GAAG,KAAKphF,EAAL,CAAQkuB,aAAR,CAAsB,gBAAtB,CAArB;AACAkzD,kBAAY,CAACC,qBAAb,CAAmC,WAAnC,EAAgD,KAAKyhC,WAAL,CAAiB9iH,EAAjE;AACH;;AACD+pC,wBAAC,CAACu3C,WAAF,CAAc,KAAKwhC,WAAL,CAAiB9iH,EAA/B;AACH,GA/gC0C;;AAihC3C;;;;;AAKAyhH,oBAAkB,GAAI;AAClB,UAAMjV,UAAU,GAAGwW,iBAAqB,CAAC,KAAKhkF,KAAL,CAAWmB,MAAX,EAAD,CAAxC;;AACA,QAAImT,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,2BAAjB,CAAJ,EAAmD;AAC/C,YAAMo3D,SAAS,GAAG,KAAK77E,EAAL,CAAQkuB,aAAR,CAAsB,mBAAtB,CAAlB;AACAqxD,mBAAM,CAACitB,UAAD,EAAa3wB,SAAb,CAAN;AACA9xC,0BAAC,CAAC85C,QAAF,CAAW,4BAAX,EAAyChI,SAAzC;AACH,KAJD,MAIO;AACH,YAAM/lB,IAAI,GAAG,KAAK91D,EAAL,CAAQkuB,aAAR,CAAsB,oBAAtB,CAAb;AACA,YAAM+0F,OAAO,GAAGl5E,oBAAC,CAAC0hD,4BAAF,CAA+B+gB,UAA/B,CAAhB;;AACA,UAAI12C,IAAJ,EAAU;AACNzqB,iCAAM,CAAC,UAAD,EAAa,KAAKrrC,EAAlB,CAAN,CAA4BiP,OAA5B,CAAoC86B,oBAAC,CAACg6C,aAAtC;AACAjuB,YAAI,CAAC/0B,SAAL,GAAiBkiF,OAAO,CAACliF,SAAzB;AACH,OAHD,MAGO;AACH,aAAKkgD,oBAAL;AACA,cAAMpF,SAAS,GAAG,KAAK77E,EAAL,CAAQkuB,aAAR,CAAsB,gBAAtB,CAAlB;AACA2tD,iBAAS,CAACwF,qBAAV,CAAgC,WAAhC,EAA6C4hC,OAA7C;AACH;AACJ;;AACDl5E,wBAAC,CAAC2E,QAAF,CAAW,KAAK1P,KAAL,CAAWjQ,OAAtB,EAA+B;AAAC,2BAAqByH,QAAQ,CAACimC,UAAT,CAAoBC;AAA1C,KAA/B;AACH,GAziC0C;;AA2iC3C;;;;;AAKAmlB,WAAS,GAAI;AACTx2C,6BAAM,CAAC,0BAAD,EAA6B,KAAKrrC,EAAlC,CAAN,CAA4CiP,OAA5C,CAAoDrM,CAAC,IAAImnC,oBAAC,CAAC85C,QAAF,CAAW,QAAX,EAAqBjhF,CAArB,CAAzD;AACA,SAAKsgH,qBAAL;AACH,GAnjC0C;;AAqjC3C;;;;;;;;;;;;;;AAcAvE,+BAA6B,GAAI;AAC7B,QAAI,CAAC,KAAKmE,WAAN,IAAqB,CAAC/4E,oBAAC,CAAC4jD,SAAF,CAAY,KAAKm1B,WAAL,CAAiB9iH,EAA7B,CAA1B,EAA4D;AACxD,WAAKk/G,WAAL;AACA,WAAKlgF,KAAL,CAAWkkC,sBAAX,GACKvqC,IADL,CACUzlB,EAAE,IAAI,KAAK2vG,uBAAL,CAA6B3vG,EAA7B,CADhB,EAEKwrB,KAFL,CAEW97B,CAAC,IAAIsB,YAAG,CAACI,KAAJ,CAAU1B,CAAV,CAFhB;AAGH,KALD,MAKO;AACH,WAAKi/E,SAAL;AACH;AACJ,GA5kC0C;;AA8kC3CZ,sBAAoB,GAAI;AACpB,UAAMG,YAAY,GAAG,KAAKphF,EAAL,CAAQkuB,aAAR,CAAsB,gBAAtB,CAArB;;AACA,QAAIkzD,YAAY,KAAK,IAArB,EAA2B;AACvB,SAAGnyE,OAAH,CAAW1U,IAAX,CAAgB6mF,YAAY,CAACzpC,QAA7B,EAAuCvyC,KAAK,IAAIA,KAAK,CAACk9E,SAAN,CAAgB7rD,GAAhB,CAAoB,QAApB,CAAhD;AACH;AACJ,GAnlC0C;;AAqlC3CirF,oBAAkB,GAAI;AAClB,SAAKzgC,oBAAL;AACA,UAAMl9E,OAAO,GAAG,KAAKi7B,KAAL,CAAWva,GAAX,CAAe,6BAAf,CAAhB;AACA,SAAKua,KAAL,CAAWkB,IAAX,CAAgB,6BAAhB,EAA+Cp/B,SAA/C;;AAEA,QAAI,CAAC,KAAKqiH,aAAV,EAAyB;AACrB,WAAKA,aAAL,GAAqB,IAAIhwE,sBAAS,CAACiwE,eAAd,CAA8B;AAC/C,iBAAS,IAAIx7E,WAAJ,CAAU;AACf,gCAAsB7jC;AADP,SAAV,CADsC;AAI/C,wBAAgB;AAJ+B,OAA9B,CAArB;AAMA,YAAMq9E,YAAY,GAAG,KAAKphF,EAAL,CAAQkuB,aAAR,CAAsB,gBAAtB,CAArB;AACAkzD,kBAAY,CAACC,qBAAb,CAAmC,WAAnC,EAAgD,KAAK8hC,aAAL,CAAmBnjH,EAAnE;AACH,KATD,MASO;AACH,WAAKmjH,aAAL,CAAmBnkF,KAAnB,CAAyBoB,GAAzB,CAA6B,oBAA7B,EAAmDr8B,OAAnD;AACH;;AACDgmC,wBAAC,CAACu3C,WAAF,CAAc,KAAK6hC,aAAL,CAAmBnjH,EAAjC;AACA,SAAKg/B,KAAL,CAAWjQ,OAAX,CAAmBmR,IAAnB,CAAwB,mBAAxB,EAA6C1J,QAAQ,CAACimC,UAAT,CAAoBE,iBAAjE;AACH,GAxmC0C;;AA0mC3CklD,sBAAoB,GAAI;AACpB93E,wBAAC,CAAC4hD,WAAF,CAAc,KAAK3rF,EAAL,CAAQkuB,aAAR,CAAsB,YAAtB,CAAd;AACA6b,wBAAC,CAAC4hD,WAAF,CAAc,KAAK3rF,EAAL,CAAQkuB,aAAR,CAAsB,YAAtB,CAAd;AACAmd,6BAAM,CAAC,UAAD,EAAa,KAAKrrC,EAAlB,CAAN,CAA4BiP,OAA5B,CAAoC86B,oBAAC,CAACg6C,aAAtC;AAEA,UAAMv0E,MAAM,GAAG,KAAKwvB,KAAL,CAAWva,GAAX,CAAe,kBAAf,CAAf;AACA,UAAMmjD,SAAS,GAAG,KAAK5oC,KAAL,CAAWva,GAAX,CAAe,WAAf,CAAlB;AACA,SAAKua,KAAL,CAAWkB,IAAX,CAAgB;AACZ,0BAAoBp/B,SADR;AAEZ,mBAAaA;AAFD,KAAhB;AAIA,UAAM+6E,SAAS,GAAG,KAAK77E,EAAL,CAAQkuB,aAAR,CAAsB,uBAAtB,CAAlB;AACAqxD,iBAAM,CAAC8jC,aAAiB,CAACz7C,SAAD,EAAYp4D,MAAZ,CAAlB,EAAuCqsE,SAAvC,CAAN;AACA,UAAMynC,SAAS,GAAGznC,SAAS,CAAC3tD,aAAV,CAAwB,eAAxB,CAAlB;;AACA,QAAIo1F,SAAJ,EAAe;AACXA,eAAS,CAACjiE,gBAAV,CAA2B,OAA3B,EAAoC,MAAMhpB,EAAN,IAAY;AAC5CA,UAAE,CAACglD,cAAH;AACA,cAAM5T,IAAI,GAAG,MAAMn2B,iBAAG,CAAC+pB,KAAJ,CAAU54C,GAAV,CAAcmjD,SAAd,EAAyB,IAAzB,EAA+B,IAA/B,CAAnB;AACA6B,YAAI,CAACpW,SAAL,CAAe,IAAf;AACA,aAAKr0B,KAAL,CAAWU,OAAX;AACH,OALD;AAMH;;AACDqK,wBAAC,CAACu3C,WAAF,CAAczF,SAAd;AACH,GAjoC0C;;AAmoC3C+lC,uBAAqB,GAAI;AACrB,UAAM79G,OAAO,GAAG,KAAKi7B,KAAL,CAAWva,GAAX,CAAe,uBAAf,CAAhB;;AACA,QAAI,CAAC1gB,OAAL,EAAc;AACV;AACH;;AACDgmC,wBAAC,CAAC4hD,WAAF,CAAc,KAAK3rF,EAAL,CAAQkuB,aAAR,CAAsB,YAAtB,CAAd;AACA6b,wBAAC,CAAC4hD,WAAF,CAAc,KAAK3rF,EAAL,CAAQkuB,aAAR,CAAsB,YAAtB,CAAd;AACAmd,6BAAM,CAAC,UAAD,EAAa,KAAKrrC,EAAlB,CAAN,CAA4BiP,OAA5B,CAAoC86B,oBAAC,CAACg6C,aAAtC;AAEA,UAAMh2B,QAAQ,GAAG,CAAChqD,OAAD,CAAjB;AACA,UAAMuiE,KAAK,GAAG,KAAKtnC,KAAL,CAAWva,GAAX,CAAe,qBAAf,CAAd;;AACA,QAAI6hD,KAAJ,EAAW;AACPvY,cAAQ,CAACrrD,IAAT,CAAcy6C,KAAE,CAAC,+BAAD,EAAkCmpB,KAAlC,CAAhB;AACH;;AACD,UAAM92D,MAAM,GAAG,KAAKwvB,KAAL,CAAWva,GAAX,CAAe,sBAAf,CAAf;;AACA,QAAIjV,MAAJ,EAAY;AACRu+C,cAAQ,CAACrrD,IAAT,CAAcy6C,KAAE,CAAC,8BAAD,EAAiC3tC,MAAjC,CAAhB;AACH;;AACD,SAAKwvB,KAAL,CAAWkB,IAAX,CAAgB;AACZ,+BAAyBp/B,SADb;AAEZ,8BAAwBA,SAFZ;AAGZ,6BAAuBA;AAHX,KAAhB;AAKA,UAAM+6E,SAAS,GAAG,KAAK77E,EAAL,CAAQkuB,aAAR,CAAsB,uBAAtB,CAAlB;AACAqxD,iBAAM,CAACgkC,cAAkB,CAACx1D,QAAD,CAAnB,EAA+B8tB,SAA/B,CAAN;AACA9xC,wBAAC,CAACu3C,WAAF,CAAczF,SAAd;AACH,GA7pC0C;;AA+pC3C7d,iBAAe,CAAED,QAAF,EAAY;AACvB,QAAIA,QAAQ,CAACt5C,GAAT,CAAa,KAAb,MAAwB0uB,sBAAS,CAACsB,QAAtC,EAAgD;AAC5C,WAAKyvD,aAAL;AACA,WAAK0a,iBAAL;AACH;AACJ,GApqC0C;;AAsqC3C;;;;;;;;AAQA4E,oCAAkC,CAAExjH,EAAF,EAAM2rC,IAAN,EAAY;AAC1C,UAAM83E,KAAK,GAAI,IAAIz7G,IAAJ,EAAD,CAAai5B,WAAb,GAA2B3+B,KAA3B,CAAiC,GAAjC,EAAsC,CAAtC,CAAd;;AACA,WAAOtC,EAAE,KAAK,IAAd,EAAoB;AAAA;;AAChB,UAAI,CAACA,EAAE,CAACsiF,SAAH,CAAa90C,QAAb,CAAsB,WAAtB,CAAL,EAAyC;AACrC;AACH,OAHe,CAIhB;AACA;;;AACA,YAAMhgB,IAAI,GAAGxtB,EAAE,CAACmC,YAAH,CAAgB,cAAhB,CAAb;;AACA,UAAIqrB,IAAI,IAAIA,IAAI,CAAClrB,KAAL,CAAW,GAAX,EAAgB,CAAhB,MAAuBmhH,KAAnC,EAA0C;AACtC;AACH;;AACD,YAAMt2G,IAAI,GAAG,QAAAnN,EAAE,UAAF,kCAAI0jH,OAAJ,KAAe,EAA5B;;AACA,UAAIv2G,IAAI,CAACxK,IAAL,KAAcgpC,IAAd,IACIx+B,IAAI,CAACwzD,KAAL,KAAeh1B,IADnB,IAEIx+B,IAAI,CAACw2G,SAAL,KAAmBh4E,IAFvB,IAGIx+B,IAAI,CAACy2G,SAAL,KAAmBj4E,IAH3B,EAGiC;AAC7B,eAAO3rC,EAAP;AACH;;AACDA,QAAE,GAAGA,EAAE,CAAC4uC,sBAAR;AACH;AACJ,GAnsC0C;;AAqsC3C;;;;;;;AAOAs0E,uBAAqB,GAAI;AACrB,UAAM58D,WAAW,GAAG,KAAKtnB,KAAL,CAAWjQ,OAAX,CAAmBtK,GAAnB,CAAuB,mBAAvB,CAApB;;AACA,QAAI6hC,WAAW,IAAI9vB,QAAQ,CAACimC,UAAT,CAAoBC,iBAAvC,EAA0D;AACtD,WAAK+kD,kBAAL;AACH,KAFD,MAEO,IAAIn7D,WAAW,IAAI9vB,QAAQ,CAACimC,UAAT,CAAoBE,iBAAvC,EAA0D;AAC7D,WAAK+kD,kBAAL;AACH,KAFM,MAEA,IAAIp7D,WAAW,IAAI9vB,QAAQ,CAACimC,UAAT,CAAoBG,OAAvC,EAAgD;AAAA;;AACnD,WAAKqkB,oBAAL;AACAl3C,0BAAC,CAACu3C,WAAF,CAAc,KAAKthF,EAAL,CAAQkuB,aAAR,CAAsB,YAAtB,CAAd;AACA,qCAAKluB,EAAL,CAAQkuB,aAAR,CAAsB,YAAtB,mFAAqC4lF,aAArC;AACA,WAAKzrB,UAAL;AACH;AACJ,GAxtC0C;;AA0tC3C62B,aAAW,GAAI;AACX7zE,6BAAM,CAAC,UAAD,EAAa,KAAKrrC,EAAlB,CAAN,CAA4BiP,OAA5B,CAAoC86B,oBAAC,CAACg6C,aAAtC;AACA,SAAK9C,oBAAL;AACA,UAAMG,YAAY,GAAG,KAAKphF,EAAL,CAAQkuB,aAAR,CAAsB,gBAAtB,CAArB;AACAkzD,gBAAY,CAACC,qBAAb,CACI,YADJ,EAEIt3C,oBAAC,CAAC0hD,4BAAF,CAA+BgJ,OAAW,EAA1C,CAFJ;AAIH,GAluC0C;;AAouC3C;;;;;;;AAOAktB,aAAW,GAAI;AACX,UAAMnL,OAAO,GAAG,KAAKx2G,EAAL,CAAQkuB,aAAR,CAAsB,UAAtB,CAAhB;;AACA,QAAIsoF,OAAO,KAAK,IAAhB,EAAsB;AAClBzsE,0BAAC,CAACg6C,aAAF,CAAgByyB,OAAhB;AACA,WAAK0M,qBAAL;AACH;;AACD,WAAO,IAAP;AACH;;AAlvC0C,CAAnB,CAArB;AAsvCP;;;;;;;AAMO,MAAMW,UAAU,GAAG5kC,IAAI,CAAC39C,MAAL,CAAY;AAClCrhC,SAAO,EAAE,KADyB;AAElCsgF,WAAS,EAAE,oBAFuB;AAGlCz5E,IAAE,EAAE,WAH8B;AAIlCu+B,QAAM,EAAE;AACJ,0DAAsD,kBADlD;AAEJ,2DAAuD;AAFnD,GAJ0B;;AASlCo6C,QAAM,GAAI;AACN,WAAOqkC,UAAc,CAAC;AAClB,2BAAqB3mE,KAAE,CAAC,YAAD,CADL;AAElB,wBAAkBA,KAAE,CAAC,qBAAD,CAFF;AAGlB,0BAAoBA,KAAE,CAAC,sBAAD;AAHJ,KAAD,CAArB;AAKH,GAfiC;;AAiBlC4mE,kBAAgB,CAAE1rF,EAAF,EAAM;AAClB,QAAI,KAAK2rF,cAAL,KAAwBljH,SAA5B,EAAuC;AACnC,WAAKkjH,cAAL,GAAsB,IAAIC,OAAJ,CAAgB;AAAC,iBAAS,KAAKjlF;AAAf,OAAhB,CAAtB;AACH;;AACD,SAAKglF,cAAL,CAAoBpsE,IAApB,CAAyBvf,EAAzB;AACH,GAtBiC;;AAwBlC6rF,kBAAgB,CAAC7rF,EAAD,EAAK;AACjB,QAAI,KAAK8rF,cAAL,KAAwBrjH,SAA5B,EAAuC;AACnC,WAAKqjH,cAAL,GAAsB,IAAIC,QAAJ,CAAiB;AAAC,iBAAS,KAAKplF;AAAf,OAAjB,CAAtB;AACH;;AACD,SAAKmlF,cAAL,CAAoBvsE,IAApB,CAAyBvf,EAAzB;AACH;;AA7BiC,CAAZ,CAAnB;AAiCP7B,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,oBAArB,EAA2C;AACvC;;;;;;;;;;;;AAYAwL,cAAY,EAAE,CAAC,uBAAD,EAA0B,gBAA1B,EAA4C,qBAA5C,EAAmE,mBAAnE,CAbyB;AAevCL,WAAS,EAAE;AACPwqE,kBAAc,EAAE;AACZO,0BAAoB,GAAI;AACpB,aAAKvrE,SAAL,CAAeurE,oBAAf,CAAoCxhF,KAApC,CAA0C,IAA1C,EAAgD3qB,SAAhD;;AACA,YAAI8yC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,WAAjB,CAAJ,EAAmC;AAC/B,eAAK4/F,gBAAL;AACH;AACJ;;AANW;AADT,GAf4B;;AA0BvC3tF,YAAU,GAAI;AACV,UAAM;AAAEyc;AAAF,QAAgB,IAAtB;AAEAG,qBAAG,CAAC6Q,QAAJ,CAAa1tB,GAAb,CAAiB,CAAC,oBAAD,CAAjB,EAHU,CAKV;AACA;AACA;AACA;;AACA6c,qBAAG,CAAC3c,QAAJ,CAAa2K,MAAb,CAAoB;AAChB,yBAAmB,KADH;AAEhB,4BAAsB,IAFN;AAGhB,6BAAuB,KAHP;AAIhB,gCAA0B,EAJV;AAKhB,iCAA2B,KALX;AAMhB,oCAA8B,KANd;AAOhB,yCAAmC,UAPnB;AAQhB,4CAAsC,CARtB;AAShB,8CAAwC,IATxB;AAUhB,2BAAqB,IAVL;AAWhB,gCAA0B,IAXV;AAYhB,8BAAwB,EAZR;AAahB,iCAA2B,IAbX;AAchB,iCAA2B;AACvB,4BAAoB;AADG;AAdX,KAApB;AAoBA6R,aAAS,CAACquC,YAAV,GAAyBA,YAAzB;AACAruC,aAAS,CAAC0wE,UAAV,GAAuBA,UAAvB;AAGA,UAAMS,kBAAkB,GAAG;AACvBD,sBAAgB,GAAI;AAChB,YAAI,KAAKE,UAAL,IAAmBx6E,oBAAC,CAAC2jD,OAAF,CAAU,KAAK62B,UAAL,CAAgBvkH,EAA1B,CAAvB,EAAsD;AAClD,iBAAO,KAAKukH,UAAZ;AACH;;AACD,cAAMz9G,EAAE,gCAAyBqsC,SAAS,CAACsB,QAAnC,CAAR;AAEA,aAAK8vE,UAAL,GAAkB,IAAIpxE,SAAS,CAAC0wE,UAAd,CAAyB;AACvC,mBAAS,KAAK1wE,SAAS,CAAC61B,eAAV,CAA0B1nC,MAA1B,CAAiC;AAC3Cx6B,cAD2C;AAE3C,8BAAkBqsC,SAAS,CAACkT,WAAV,CAAsBv/C,EAAtB;AAFyB,WAAjC,CAAL;AAD8B,SAAzB,CAAlB;AAMA,aAAKy9G,UAAL,CAAgBvlF,KAAhB,CAAsB+F,KAAtB;AACA,aAAK/kC,EAAL,CAAQkuB,aAAR,CAAsB,kBAAtB,EAA0CmzD,qBAA1C,CACI,WADJ,EACiB,KAAKkjC,UAAL,CAAgBhlC,MAAhB,GAAyBv/E,EAD1C;AAGA;;;;;;;AAMAszC,yBAAG,CAAClP,OAAJ,CAAY,oBAAZ;AACA,eAAO,KAAKmgF,UAAZ;AACH,OAzBsB;;AA2BvBC,mBAAa,GAAI;AACb,YAAI,KAAKD,UAAL,IAAmBx6E,oBAAC,CAAC2jD,OAAF,CAAU,KAAK62B,UAAL,CAAgBvkH,EAA1B,CAAvB,EAAsD;AAClD,iBAAO,KAAKukH,UAAZ;AACH,SAFD,MAEO;AACH,iBAAO,KAAKF,gBAAL,EAAP;AACH;AACJ;;AAjCsB,KAA3B;;AAoCA,QAAIlxE,SAAS,CAACi5D,cAAd,EAA8B;AAC1BhyG,YAAM,CAACsmC,MAAP,CAAcyS,SAAS,CAACi5D,cAAV,CAAyB/xG,SAAvC,EAAkDiqH,kBAAlD;AACH;;AAGDnxE,aAAS,CAAC4vE,aAAV,GAA0B9jC,IAAI,CAAC39C,MAAL,CAAY;AAClCi/C,eAAS,EAAE,yCADuB;;AAGlC7pD,gBAAU,CAAEr7B,KAAF,EAAS;AACf,aAAKomF,YAAL,GAAoBpmF,KAAK,CAAComF,YAA1B;AACA,aAAK17C,QAAL,CAAc,KAAK07C,YAAL,CAAkBziD,KAAlB,CAAwB12B,QAAtC,EAAgD,0BAAhD,EAA4E,KAAKi3E,MAAjF;AACA,aAAKx5C,QAAL,CAAc,KAAK07C,YAAL,CAAkBziD,KAAlB,CAAwB12B,QAAtC,EAAgD,sBAAhD,EAAwE,KAAKi3E,MAA7E;AACA,aAAKA,MAAL;AACH,OARiC;;AAUlCE,YAAM,GAAI;AAAA;;AACN,cAAMzxE,MAAM,GAAG+7B,oBAAC,CAACK,QAAF,CAAW,KAAKpL,KAAL,CAAWva,GAAX,CAAe,eAAf,CAAX,CAAf;AACA,cAAMse,SAAS,GAAGuQ,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,sBAAjB,CAAlB;AACA,YAAIgwC,MAAM,GAAGppB,yBAAM,CAAC,OAAD,EAAUr9B,MAAV,CAAnB;;AACA,YAAI+0B,SAAS,CAAC/qC,MAAd,EAAsB;AAClBy8D,gBAAM,GAAGA,MAAM,CAAC/iD,MAAP,CAAc8oC,CAAC,IAAIzX,SAAS,CAACtL,QAAV,CAAmB+iB,CAAC,CAACr4C,YAAF,CAAe,KAAf,CAAnB,CAAnB,CAAT;AACH;;AACD,cAAMsiH,kBAAkB,GAAG,KAAKzlF,KAAL,CAAW12B,QAAX,CAAoBmc,GAApB,CAAwB,mBAAxB,CAA3B;AACA,cAAMzd,OAAO,GAAG;AACZ,0BAAgB,CAACy9G,kBADL;AAEZ,4BAAkB,KAAKzlF,KAAL,CAAWva,GAAX,CAAe,KAAf;AAFN,SAAhB;AAIA,eAAOigG,eAAmB,CAAC;AACvB,6BAAmBrsF,EAAE,IAAI,KAAKylF,eAAL,CAAqBzlF,EAArB,CADF;AAEvB,oBAAUo8B,MAAM,CAAC1vD,GAAP,CAAWy1C,CAAC,IAAIzQ,oBAAC,CAAC+jD,aAAF,CAAgBtzC,CAAhB,EAAmBxsC,MAAnB,EAA2BhH,OAA3B,CAAhB,CAFa;AAGvB,mDAAgBgH,MAAM,CAACkgB,aAAP,CAAqB,cAArB,CAAhB,0DAAgB,sBAAsCzc,WAH/B;AAIvB,8BAAoB4mB,EAAE,IAAI,KAAKulF,gBAAL,CAAsBvlF,EAAtB,CAJH;AAKvB,6CAASrqB,MAAM,CAACkgB,aAAP,CAAqB,OAArB,CAAT,2DAAS,uBAA+Bzc;AALjB,SAAD,CAA1B;AAOH,OA7BiC;;AA+BlC,YAAMmsG,gBAAN,CAAwBvlF,EAAxB,EAA4B;AACxBA,UAAE,CAACglD,cAAH;AACA,cAAMsnC,MAAM,GAAGt5E,yBAAM,CAAC,8CAAD,EAAiDhT,EAAE,CAAC8kD,MAApD,CAArB;AACA,cAAMynC,YAAY,GAAGD,MAAM,CAAC5/G,GAAP,CAAWglC,oBAAC,CAACsxB,aAAb,EAA4B3pD,MAA5B,CAAmC8oC,CAAC,IAAIA,CAAxC,CAArB;;AACA,YAAI;AACA,gBAAM,KAAKxb,KAAL,CAAWokC,iBAAX,CAA6BwhD,YAA7B,CAAN;AACH,SAFD,CAEE,OAAOhiH,CAAP,EAAU;AACRsB,sBAAG,CAACI,KAAJ,CAAU1B,CAAV;;AACA,gBAAMmB,OAAO,GACTo5C,KAAE,CAAC,kEAAD,CAAF,GAAyE,GAAzE,GACAA,KAAE,CAAC,qDAAD,CAFN;;AAGA7J,2BAAG,CAAC+3B,KAAJ,CAAU,OAAV,EAAmBluB,KAAE,CAAC,OAAD,CAArB,EAAgCp5C,OAAhC;AACH;;AACD,cAAM,KAAKi7B,KAAL,CAAWggC,gBAAX,EAAN;AACA,aAAKyiB,YAAL,CAAkBI,SAAlB;AACH,OA9CiC;;AAgDlCi8B,qBAAe,CAAEzlF,EAAF,EAAM;AACjBA,UAAE,CAACglD,cAAH;AACA,aAAKoE,YAAL,CAAkBI,SAAlB;AACH;;AAnDiC,KAAZ,CAA1B;AAuDA1uC,aAAS,CAACiwE,eAAV,GAA4BnkC,IAAI,CAAC39C,MAAL,CAAY;AACpCi/C,eAAS,EAAE,2CADyB;;AAGpC7pD,gBAAU,CAAEr7B,KAAF,EAAS;AACf,aAAKomF,YAAL,GAAoBpmF,KAAK,CAAComF,YAA1B;AACA,aAAK17C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,2BAA1B,EAAuD,KAAKugD,MAA5D;AACA,aAAKA,MAAL;AACH,OAPmC;;AASpCE,YAAM,GAAI;AACN,eAAOolC,iBAAqB,CAAC;AACzB,iBAAO,KAAK7lF,KAAL,CAAWva,GAAX,CAAe,KAAf,CADkB;AAEzB,4BAAkB4T,EAAE,IAAI,KAAK0lF,cAAL,CAAoB1lF,EAApB,CAFC;AAGzB,gCAAuB,KAAK2G,KAAL,CAAWva,GAAX,CAAe,oBAAf;AAHE,SAAD,CAA5B;AAKH,OAfmC;;AAiBpCs5F,oBAAc,CAAE1lF,EAAF,EAAM;AAChBA,UAAE,CAACglD,cAAH;AACA,cAAM7iE,QAAQ,GAAG,KAAKxa,EAAL,CAAQkuB,aAAR,CAAsB,sBAAtB,EAA8ClzB,KAA/D;AACA,aAAKymF,YAAL,CAAkBziD,KAAlB,CAAwBr8B,IAAxB,CAA6B,KAAK8+E,YAAL,CAAkBziD,KAAlB,CAAwBva,GAAxB,CAA4B,MAA5B,CAA7B,EAAkEjK,QAAlE;AACA,aAAKwkB,KAAL,CAAWoB,GAAX,CAAe,oBAAf,EAAqC,IAArC;AACH;;AAtBmC,KAAZ,CAA5B;;AA0BA,aAAS0kF,YAAT,CAAuBrqH,MAAvB,EAA+BynF,cAA/B,EAA+C;AAC3CA,oBAAc,CAACsiC,aAAf,GAA+BxlF,KAA/B,CAAqCkB,IAArC,CAA0C,YAA1C,EAAwD5kC,0BAAO,CAAC6H,gBAAR,CAAyB1I,MAAzB,CAAxD;AACH;;AAED,aAASsqH,qBAAT,CAAgC7iC,cAAhC,EAAgD;AAC5C;;;;AAIA,eAAS8iC,YAAT,CAAuB/vD,OAAvB,EAAgC;AAC5B,YAAI,CAACA,OAAL,EAAc;AAAE;AAAS;;AACzB,YAAIA,OAAO,CAACxwC,GAAR,CAAY,KAAZ,MAAuBnpB,0BAAO,CAACM,EAAR,CAAWS,GAAtC,EAA2C;AACvC44D,iBAAO,CAACC,MAAR,CAAeJ,WAAf,CAA2B,YAA3B,EAAyC,MAAzC,EAAiDn8B,IAAjD,CAAsDi9B,QAAQ,IAAI;AAC9D,gBAAIA,QAAJ,EAAc;AACVkvD,0BAAY,CAAC7vD,OAAO,CAACxwC,GAAR,CAAY,MAAZ,CAAD,EAAsBy9D,cAAtB,CAAZ;AACH;AACJ,WAJD;AAKH;AACJ;;AACD5uC,uBAAG,CAAC1B,SAAJ,CAAc,kBAAd,EAAkCjZ,IAAlC,CAAuC,MAAM;AACzC2a,yBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,mBAAd,EAAmCy/E,YAAnC,EADyC,CAEzC;AACA;;AACA7xE,iBAAS,CAACsiB,cAAV,CAAyB1zB,IAAzB,CAA8BmzB,MAAM,IAAI8vD,YAAY,CAAC9vD,MAAM,CAAC5sD,QAAP,CAAgB8yC,SAAhB,CAA0B;AAAC,iBAAO9/C,0BAAO,CAACM,EAAR,CAAWS;AAAnB,SAA1B,CAAD,CAApD;AACH,OALD,EAKGqiC,KALH,CAKS97B,CAAC,IAAIsB,YAAG,CAACI,KAAJ,CAAU1B,CAAV,CALd;AAMH;;AAED,aAASqiH,oBAAT,CAA+B/iC,cAA/B,EAA+C;AAC3C,UAAIA,cAAc,CAACljD,KAAf,CAAqBva,GAArB,CAAyB,WAAzB,CAAJ,EAA2C;AACvC,YAAI,CAACy9D,cAAc,CAACsiC,aAAf,GAA+BxlF,KAA/B,CAAqCva,GAArC,CAAyC,YAAzC,CAAL,EAA6D;AACzD,cAAI6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,MAAmC3jB,SAAvC,EAAkD;AAC9CikH,iCAAqB,CAAC7iC,cAAD,CAArB;AACH,WAFD,MAEO;AACH4iC,wBAAY,CAACxxE,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,YAAjB,CAAD,EAAiCy9D,cAAjC,CAAZ;AACH;AACJ;AACJ;AACJ;AAGD;;;AACA5uC,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,yBAAd,EAAyC,MAAM;AAE3C,eAAS2/E,0BAAT,CAAqC7sF,EAArC,EAAyC;AACrCA,UAAE,CAACglD,cAAH;AACA/pC,yBAAG,CAAC+pB,KAAJ,CAAU7sC,IAAV,CAAe6H,EAAE,CAAC8kD,MAAH,CAAUpkE,IAAzB;AACH;;AACDo6B,eAAS,CAAC0tC,YAAV,CAAuBb,QAAvB,CAAgC,OAAhC,EAAyC,iBAAzC,EAA4DklC,0BAA5D;;AAEA,qBAAeC,OAAf,CAAwBnmF,KAAxB,EAA+B;AAC3B,cAAMggE,KAAK,GAAG7rD,SAAS,CAAC0tC,YAAxB;;AACA,YAAI,CAACme,KAAK,CAACv6E,GAAN,CAAUua,KAAK,CAACva,GAAN,CAAU,IAAV,CAAV,CAAD,IACIua,KAAK,CAACva,GAAN,CAAU,MAAV,MAAsB0uB,SAAS,CAACkS,cADpC,IAEIrmB,KAAK,CAAC8K,OAAN,EAFR,EAGE;AACE,gBAAM9K,KAAK,CAAC+sB,WAAZ;AACA,iBAAOizC,KAAK,CAACvoE,GAAN,CAAUuI,KAAK,CAACva,GAAN,CAAU,IAAV,CAAV,EAA2B,IAAI0uB,SAAS,CAACquC,YAAd,CAA2B;AAACxiD;AAAD,WAA3B,CAA3B,CAAP;AACH;AACJ;;AACDmU,eAAS,CAACogB,SAAV,CAAoBhuB,EAApB,CAAuB,KAAvB,EAA8B4/E,OAA9B;AACH,KAnBD;AAqBA7xE,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,cAAd,EAA8B,MAAM;AAChC,YAAM8pC,IAAI,GAAGl8B,SAAS,CAAC0tC,YAAV,CAAuBp8D,GAAvB,CAA2B,YAA3B,CAAb;;AACA,UAAI4qD,IAAI,IAAIA,IAAI,CAACk1C,UAAjB,EAA6B;AACzBl1C,YAAI,CAACk1C,UAAL,CAAgBvlF,KAAhB,CAAsBU,OAAtB;AACA2vC,YAAI,CAACk1C,UAAL,CAAgB/rE,MAAhB;AACA,eAAO62B,IAAI,CAACk1C,UAAZ;AACH;AACJ,KAPD;AASAjxE,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,uBAAd,EAAwC8pC,IAAD,IAAU;AAC7C,UAAI,CAAC/7B,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,WAAjB,CAAL,EAAoC;AAChC;AACH;;AACDwgG,0BAAoB,CAAC51C,IAAD,CAApB;AACAA,UAAI,CAACrwC,KAAL,CAAWuG,EAAX,CAAc,kBAAd,EAAkC,MAAM0/E,oBAAoB,CAAC51C,IAAD,CAA5D;AACH,KAND;AAOA;;AAGA;;AACAj1E,UAAM,CAACsmC,MAAP,CAAcyS,SAAS,CAACG,GAAxB,EAA6B;AACzB;;;;;;;AAOA8xE,eAAS,EAAE;AACP;;;;;;;;;;;;;;;;;;;;;AAqBA3gG,WAAG,CAAEyvC,IAAF,EAAQ;AACP,cAAIrvD,KAAK,CAAC8C,OAAN,CAAcusD,IAAd,CAAJ,EAAyB;AACrB,kBAAM8qC,KAAK,GAAG1rD,iBAAG,CAACiuD,SAAJ,CAAc98E,GAAd,CAAkByvC,IAAlB,CAAd;AACA,mBAAO8qC,KAAK,CAACttF,MAAN,CAAapG,CAAC,IAAIA,CAAC,CAAC0zB,KAAF,CAAQva,GAAR,CAAY,MAAZ,MAAwB0uB,SAAS,CAACkS,cAApD,CAAP;AACH,WAHD,MAGO;AACH,kBAAMgqB,IAAI,GAAG/7B,iBAAG,CAACiuD,SAAJ,CAAc98E,GAAd,CAAkByvC,IAAlB,CAAb;;AACA,gBAAImb,IAAI,CAACrwC,KAAL,CAAWva,GAAX,CAAe,MAAf,MAA2B0uB,SAAS,CAACkS,cAAzC,EAAyD;AACrD,qBAAOgqB,IAAP;AACH,aAFD,MAEO;AACH,qBAAO,IAAP;AACH;AACJ;AACJ,SAlCM;;AAmCP;;;;;;;;;;;AAWA5lD,aAAK,CAAEyqC,IAAF,EAAQ;AACT,cAAI8qC,KAAJ;;AACA,cAAI9qC,IAAI,KAAKpzD,SAAb,EAAwB;AACpBk+F,iBAAK,GAAG7rD,SAAS,CAAC0tC,YAAlB;AACH,WAFD,MAEO,IAAI,OAAO3sB,IAAP,KAAgB,QAApB,EAA8B;AACjC8qC,iBAAK,GAAG,CAAC7rD,SAAS,CAAC0tC,YAAV,CAAuBp8D,GAAvB,CAA2ByvC,IAA3B,CAAD,EAAmCxiD,MAAnC,CAA0CpG,CAAC,IAAIA,CAA/C,CAAR;AACH,WAFM,MAEA,IAAIzG,KAAK,CAAC8C,OAAN,CAAcusD,IAAd,CAAJ,EAAyB;AAC5B8qC,iBAAK,GAAG9qC,IAAI,CAACnvD,GAAL,CAAS9B,GAAG,IAAIkwC,SAAS,CAAC0tC,YAAV,CAAuBp8D,GAAvB,CAA2BxhB,GAA3B,CAAhB,CAAR;AACH;;AACD,iBAAOs6B,OAAO,CAACqB,GAAR,CAAYogE,KAAK,CAACj6F,GAAN,CAAUuG,CAAC,IAAKA,CAAC,CAACw4F,WAAF,IAAiBx4F,CAAC,CAAC0zB,KAAnB,IAA4B1zB,CAAC,CAACme,KAAF,EAA5C,CAAZ,CAAP;AACH;;AAxDM;AARc,KAA7B;AAmEH;;AA1UsC,CAA3C,E;;;;;;;;;;;;;;;;;;;;;;;;AC71CA;;AAEA,MAAM47F,gBAAgB,GAAIp5E,CAAD,IAAO1qC,aAAP,CAAC,gCAEG0qC,CAAC,CAACq5E,WAAF,CAAc7gG,GAAd,CAAkB,KAAlB,CAFJ,EAIIwnB,CAAC,CAACq5E,WAAF,CAAc7gG,GAAd,CAAkB,KAAlB,CAJJ,EAKRwnB,CAAC,CAAC+xC,UALM,EAKkB/xC,CAAC,CAACq5E,WAAF,CAAc7gG,GAAd,CAAkB,KAAlB,CALlB,CAAzB;;AAUgBwnB,mDAAD,IAAO1qC,aAAP,CAAC,iCAC2C0qC,CAAC,CAACs5E,aAAF,CAAgBvtH,MAAhB,GAAyB,EAAzB,GAA8B,QAD1E,EAGAi0C,CAAC,CAACs5E,aAAF,CAAgBxgH,GAAhB,CAAoBugH,WAAW,IAAID,gBAAgB,CAACjrH,MAAM,CAACsmC,MAAP,CAAc;AAAC4kF;AAAD,CAAd,EAA6Br5E,CAA7B,CAAD,CAAnD,CAHA,CAAf,E;;;;;;;;;;;;;;ACZA;AACA;AAGgBA,oDAAD,IAAO1qC,aAAP,CAAC,iCAC4B0qC,CAAC,CAACs5E,aAAF,CAAgBvtH,MAAhB,GAAyB,EAAzB,GAA8B,QAD3D,EAE+Di0C,CAAC,CAACu5E,gBAFjE,EAIRC,aAAiB,CAACx5E,CAAD,CAJT,CAAf,E;;ACJA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAMlC,yBAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;AAGA,MAAMs0G,gBAAgB,GAAGvK,WAAW,CAACviE,MAAZ,CAAmB;AACxCi/C,WAAS,EAAE,0BAD6B;AAGxCl7C,QAAM,EAAE;AACJ,mCAA+B,OAD3B;AAEJ,oCAAgC,UAF5B;AAGJ,uCAAmC;AAH/B,GAHgC;;AASxC,QAAM3O,UAAN,GAAoB;AAChB,SAAKqtE,aAAL;AAEA,SAAK/kE,KAAL,CAAWivC,WAAX,GAAyB,IAAzB,CAHgB,CAGe;;AAC/B,SAAKloC,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,eAA1B,EAA2C9vB,CAAC,IAAIA,CAAC,CAACuV,GAAF,CAAM,QAAN,IAAkB,KAAK8/D,IAAL,EAAlB,GAAgC,KAAK3sC,IAAL,EAAhF;AACA,SAAK7R,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,SAA1B,EAAqC,KAAKwZ,MAA1C;AACA,SAAKzS,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,MAA1B,EAAkC,KAAK4Y,IAAvC;AAEA,SAAK2nC,MAAL,GARgB,CAUhB;;AACA,SAAKx5C,QAAL,CAAc,KAAK/G,KAAL,CAAW+uB,QAAzB,EAAmC,KAAnC,EAA0C,KAAKq2C,cAA/C;AACA,SAAKr+D,QAAL,CAAc,KAAK/G,KAAL,CAAW+uB,QAAzB,EAAmC,QAAnC,EAA6C,KAAKs2C,iBAAlD;AACA,SAAKt+D,QAAL,CAAc,KAAK/G,KAAL,CAAW+uB,QAAzB,EAAmC,UAAnC,EAA+C,KAAKu2C,eAApD;AACA,SAAKv+D,QAAL,CAAc,KAAK/G,KAAL,CAAW+uB,QAAzB,EAAmC,OAAnC,EAA4C,KAAKs2C,iBAAjD;AAEA,UAAM,KAAKrlE,KAAL,CAAW+uB,QAAX,CAAoB3H,OAA1B;AACA,SAAKg9B,aAAL;AACA,SAAKpkD,KAAL,CAAWq0B,SAAX;AACA,SAAKg1B,UAAL;AACA;;;;;;;AAMA/0C,qBAAG,CAAClP,OAAJ,CAAY,6BAAZ,EAA2C,IAA3C;AACH,GApCuC;;AAsCxCm7C,QAAM,GAAI;AACN,SAAKv/E,EAAL,CAAQe,YAAR,CAAqB,IAArB,EAA2B,KAAKi+B,KAAL,CAAWva,GAAX,CAAe,QAAf,CAA3B;AACA,UAAMzf,MAAM,GAAG4/F,iBAAW,CACtBxqG,MAAM,CAACsmC,MAAP,CAAc,KAAK1B,KAAL,CAAWmB,MAAX,EAAd,EAAmC;AAC3BulF,gBAAU,EAAE,EADe;AAE3BC,4BAAsB,EAAE,EAFG;AAG3BvoB,sBAAgB,EAAE,KAHS;AAI3BE,kBAAY,EAAE,KAJa;AAK3B2E,iBAAW,EAAE;AALc,KAAnC,CADsB,CAA1B;AASA1iB,iBAAM,CAACv6E,MAAD,EAAS,KAAKhF,EAAd,CAAN;AACA,SAAK6kG,OAAL,GAAe,KAAK7kG,EAAL,CAAQkuB,aAAR,CAAsB,eAAtB,CAAf;AACA,SAAK42E,cAAL,GAAsB,KAAK9kG,EAAL,CAAQkuB,aAAR,CAAsB,yBAAtB,CAAtB;AACA,SAAKy2E,iBAAL;AACA,SAAKT,aAAL;AACA,WAAO,IAAP;AACH,GAvDuC;;AAyDxCe,kBAAgB,GAAI;AAChB;AACA;AACA,WAAO,EAAP;AACH,GA7DuC;;AA+DxC;;;;;;;AAOA0B,mBAAiB,GAAI;AACjB,UAAMjkB,OAAO,GAAG,EAAhB;;AACA,QAAI,CAACpvC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,WAAjB,CAAL,EAAoC;AAChCi+D,aAAO,CAAChgF,IAAR,CAAa;AACT,mBAAW,sBADF;AAET,mBAAW21B,EAAE,IAAI,KAAK5O,KAAL,CAAW4O,EAAX,CAFR;AAGT,qBAAa8kB,KAAE,CAAC,OAAD,CAHN;AAIT,sBAAcA,KAAE,CAAC,2BAAD,CAJP;AAKT,sBAAc,UALL;AAMT,gBAAQ,OANC;AAOT,sBAAc7J,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,WAAjB,MAAkC;AAPvC,OAAb;AASH;;AACD,WAAO0uB,sBAAS,CAACG,GAAV,CAAc8D,IAAd,CAAmB,mBAAnB,EAAwC,IAAxC,EAA8CsrC,OAA9C,CAAP;AACH,GApFuC;;AAsFxC;AACA,uBAAqB,SAASshB,iBAAT,GAA8B,CAAE,CAvFb;AAwFxC,gBAAc,SAASuF,UAAT,GAAuB,CAAE;AAxFC,CAAnB,CAAzB;AA4FA;;;;;;;AAMO,MAAMqc,cAAc,GAAG3mC,IAAI,CAAC39C,MAAL,CAAY;AACtCrhC,SAAO,EAAE,KAD6B;AAEtCsgF,WAAS,EAAE,oBAF2B;AAGtCz5E,IAAE,EAAE,UAHkC;AAKtCu+B,QAAM,EAAE;AACJ,4BAAwB;AADpB,GAL8B;;AAStC3O,YAAU,GAAI;AACV,SAAKqP,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,KAA1B,EAAiC,KAAK6mF,gBAAtC;AACA,SAAK9/E,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,QAA1B,EAAoC,KAAK6mF,gBAAzC;AACA,SAAK9/E,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,SAA1B,EAAqC,KAAK6mF,gBAA1C;AACA,SAAKtmC,MAAL;AACA,SAAK6D,aAAL;AACH,GAfqC;;AAiBtC3D,QAAM,GAAI;AACN,WAAOqmC,cAAkB,CAAC;AACtB,0BAAoB3oE,KAAE,CAAC,eAAD,CADA;AAEtB,uBAAiB,KAAKne,KAAL,CAAWttB,MAAX,CAAkBxC,CAAC,IAAIA,CAAC,CAACuV,GAAF,CAAM,MAAN,MAAkB0uB,sBAAS,CAACmS,cAAnD,CAFK;AAGtB,oBAAcnI,KAAE,CAAC,mCAAD;AAHM,KAAD,CAAzB;AAKH,GAvBqC;;AAyBtC0oE,kBAAgB,CAAE7mF,KAAF,EAAS;AACrB,WAAQA,KAAK,IAAIA,KAAK,CAACva,GAAN,CAAU,MAAV,MAAsB0uB,sBAAS,CAACmS,cAA1C,IAA6D,KAAKi6B,MAAL,EAApE;AACH,GA3BqC;;AA6BtCwmC,cAAY,CAAE1tF,EAAF,EAAM;AACdA,MAAE,CAACglD,cAAH;AACA,UAAMp6E,GAAG,GAAGo1B,EAAE,CAAC8kD,MAAH,CAAUh7E,YAAV,CAAuB,mBAAvB,CAAZ;;AACA,UAAMiyD,IAAI,GAAGjhB,sBAAS,CAACogB,SAAV,CAAoB9uC,GAApB,CAAwBxhB,GAAxB,CAAb;;AACAmxD,QAAI,CAACf,SAAL,CAAe,IAAf;AACH,GAlCqC;;AAoCtC+vB,eAAa,GAAI;AACb,UAAM/T,IAAI,GAAGl8B,sBAAS,CAAC0tC,YAAV,CAAuBp8D,GAAvB,CAA2B,YAA3B,CAAb;;AACA4qD,QAAI,IAAIA,IAAI,CAACrvE,EAAL,CAAQkuB,aAAR,CAAsB,kBAAtB,EAA0CmzD,qBAA1C,CAAgE,WAAhE,EAA6E,KAAKrhF,EAAlF,CAAR;AACH;;AAvCqC,CAAZ,CAAvB;AA2CPw2B,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,yBAArB,EAAgD;AAC5C;;;;;;;;;;AAUAwL,cAAY,EAAE,CAAC,oBAAD,EAAuB,mBAAvB,CAX8B;AAa5CL,WAAS,EAAE;AACP;AACA;AACA;AACA;AACA;AAEAwqE,kBAAc,EAAE;AACZO,0BAAoB,GAAI;AACpB,aAAKvrE,SAAL,CAAeurE,oBAAf,CAAoCxhF,KAApC,CAA0C,IAA1C,EAAgD3qB,SAAhD;;AACA,aAAKwlH,oBAAL;AACH;;AAJW;AAPT,GAbiC;;AA6B5CtvF,YAAU,GAAI;AACV;;;AAIA,UAAMuvF,sBAAsB,GAAG;AAC3BD,0BAAoB,GAAI;AACpB,YAAI,KAAKE,aAAL,IAAsBn8E,yBAAC,CAAC2jD,OAAF,CAAU,KAAKw4B,aAAL,CAAmBlmH,EAA7B,CAA1B,EAA4D;AACxD,iBAAO,KAAKkmH,aAAZ;AACH;;AACD,aAAKA,aAAL,GAAqB,IAAI/yE,sBAAS,CAACyyE,cAAd,CAA6B;AAAC,mBAASzyE,sBAAS,CAACogB;AAApB,SAA7B,CAArB;AACA;;;;;;;AAMAjgB,yBAAG,CAAClP,OAAJ,CAAY,wBAAZ;AACA,eAAO,KAAK8hF,aAAZ;AACH;;AAd0B,KAA/B;;AAiBA,QAAI/yE,sBAAS,CAACi5D,cAAd,EAA8B;AAC1BhyG,YAAM,CAACsmC,MAAP,CAAcyS,sBAAS,CAACi5D,cAAV,CAAyB/xG,SAAvC,EAAkD4rH,sBAAlD;AACH;;AAED9yE,0BAAS,CAACi7D,gBAAV,GAA6BA,gBAA7B;AACAj7D,0BAAS,CAACyyE,cAAV,GAA2BA,cAA3B;AAGA;;AACAtyE,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,yBAAd,EAAyC,MAAM;AAC3C,YAAMy5D,KAAK,GAAG7rD,sBAAS,CAAC0tC,YAAxB;;AACA1tC,4BAAS,CAACogB,SAAV,CAAoBhuB,EAApB,CAAuB,KAAvB,EAA8BjF,IAAI,IAAI;AAClC,YAAI,CAAC0+D,KAAK,CAACv6E,GAAN,CAAU6b,IAAI,CAAC7b,GAAL,CAAS,IAAT,CAAV,CAAD,IAA8B6b,IAAI,CAAC7b,GAAL,CAAS,MAAT,MAAqB0uB,sBAAS,CAACmS,cAAjE,EAAiF;AAC7E05C,eAAK,CAACvoE,GAAN,CAAU6J,IAAI,CAAC7b,GAAL,CAAS,IAAT,CAAV,EAA0B,IAAI0uB,sBAAS,CAACi7D,gBAAd,CAA+B;AAACpvE,iBAAK,EAAEsB;AAAR,WAA/B,CAA1B;AACH;AACJ,OAJD;AAKH,KAPD;AAQH;;AApE2C,CAAhD,E;;;;;;AC9JA;;;;;AAKA;AACA;AACA;AACA;AAEA,MAAM;AAAEhlC,SAAOA;AAAT,IAAck7B,QAAQ,CAAC20B,GAA7B;AACA,MAAMphB,uBAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;AAEA,MAAMqsH,2BAA2B,IAAG,kBAAkBt+F,MAArB,CAAjC;AAEA2O,QAAQ,CAAC20B,GAAT,CAAai7D,MAAb,GAAsBA,gBAAtB;AACA,IAAIC,OAAJ;;AAEA,SAASC,mBAAT,GAAgC;AAC5B,MAAIhzE,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,wBAAjB,CAAJ,EAAgD;AAAA;;AAC5C4hG,WAAO,eAAGA,OAAH,+CAAc,IAAI7vF,QAAQ,CAAC20B,GAAT,CAAai7D,MAAjB,CAAwB;AAACv/G,UAAI,EAAE,QAAP;AAAiB0/G,eAAS,EAAE;AAA5B,KAAxB,CAArB;AACA,UAAMzyD,KAAK,GAAG3gB,sBAAS,CAACogB,SAAV,CAAoBlb,MAAlC;AACA,UAAM4vB,UAAU,GAAGnU,KAAK,CAAC7uD,MAAN,CAAa,CAACyoC,GAAD,EAAM0mB,IAAN,KAAgB1mB,GAAG,IAAI0mB,IAAI,CAAC3vC,GAAL,CAAS,YAAT,KAA0B,CAA9B,CAAhC,EAAmE,CAAnE,CAAnB;AACA4hG,WAAO,CAACG,KAAR,CAAcv+C,UAAd;AACH;AACJ;;AAGDzxC,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,uBAArB,EAA8C;AAE1CwL,cAAY,EAAE,CAAC,oBAAD,CAF4B;;AAI1CvL,YAAU,GAAI;AACV;;;AAIA4c,qBAAG,CAAC3c,QAAJ,CAAa2K,MAAb,CAAoB;AAChB;AACAmlF,sCAAgC,EAAE,EAFlB;AAGhBC,wBAAkB,EAAE,IAHJ;AAIhBC,uBAAiB,EAAE,4BAJH;AAKhBC,8BAAwB,EAAE,KALV;AAMhBC,yCAAmC,EAAE,KANrB;AAOhBC,iBAAW,EAAE,IAPG;AAQhBC,mCAA6B,EAAE,KARf;AAShBC,gCAA0B,EAAE,IATZ;AAUhBC,4BAAsB,EAAE,IAVR;AAWhBC,iBAAW,EAAE5zE,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,aAAjB,IAAgC;AAX7B,KAApB;AAcA;;;;;;;AAMA0uB,0BAAS,CAACg0E,0BAAV,GAAuC,UAAU9rH,KAAV,EAAiB;AACpD,UAAI,EAACA,KAAD,aAACA,KAAD,uBAACA,KAAK,CAAEuzB,IAAR,CAAJ,EAAkB;AACd,eAAO,KAAP;AACH;;AACD,YAAM3rB,GAAG,GAAG5H,KAAK,CAAC0L,IAAlB;AACA,YAAM+4D,QAAQ,GAAGzkE,KAAK,CAACo8C,QAAvB;AACA,YAAM2vE,UAAU,GAAG9zE,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,0BAAjB,CAAnB;;AACA,YAAMglD,IAAI,GAAGt2B,sBAAS,CAACogB,SAAV,CAAoB9uC,GAApB,CAAwBq7C,QAAxB,CAAb;;AACA,YAAM/rD,QAAQ,GAAGzY,6BAAO,CAACkI,kBAAR,CAA2BP,GAA3B,CAAjB;AACA,YAAMywC,MAAM,GAAG3/B,QAAQ,IAAIzY,6BAAO,CAACyH,YAAR,CAAqBgR,QAArB,CAAZ,IAA8C,EAA7D;AACA,UAAIszG,YAAY,GAAG,KAAnB;AACA,YAAM17E,IAAI,GAAG89B,IAAI,CAAChlD,GAAL,CAAS,MAAT,CAAb;;AAEA,UAAI6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qCAAjB,CAAJ,EAA6D;AACzD4iG,oBAAY,GAAI,IAAI9iG,MAAJ,cAAiBonB,IAAjB,SAAD,CAA8Bx5B,IAA9B,CAAmC9W,KAAK,CAACuzB,IAAzC,CAAf;AACH;;AAED,YAAM04F,aAAa,GAAGjsH,KAAK,CAACw3D,UAAN,CAAiB9tD,GAAjB,CAAqBoG,CAAC,IAAIA,CAAC,CAACnQ,KAA5B,EAAmCy8B,QAAnC,CAA4CkU,IAA5C,CAAtB;AACA,YAAM47E,WAAW,GAAG7zE,MAAM,KAAK/H,IAA/B;AACA,YAAM67E,kBAAkB,GAAGJ,UAAU,KAAK,IAAf,IACnBviH,KAAK,CAAC8C,OAAN,CAAcy/G,UAAd,KAA6BA,UAAU,CAAC3vF,QAAX,CAAoBqoC,QAApB,CADV,IAEpBwnD,aAFoB,IAGpBD,YAHP;AAIA,aAAOE,WAAW,IAAI,CAAC,CAACC,kBAAxB;AACH,KAxBD;AA0BA;;;;;;;;;AAOAr0E,0BAAS,CAACs0E,qBAAV,GAAkC,UAAUpsH,KAAV,EAAiB;AAAA;;AAC/C,gEAAO83C,sBAAS,CAACogB,SAAV,CAAoB9uC,GAApB,CAAwBppB,KAAK,CAAC0L,IAA9B,CAAP,2DAAO,uBAAqCysD,QAArC,EAAP,yEAA0D,KAA1D;AACH,KAFD;AAIA;;;;;;;AAKArgB,0BAAS,CAACu0E,qBAAV,GAAkC,UAAUv6G,IAAV,EAAgB;AAC9C,YAAM;AAAE9R,aAAF;AAAS2S;AAAT,UAAoBb,IAA1B;;AACA,UAAI,CAAC9R,KAAD,IAAU2S,MAAM,CAACkgB,aAAP,CAAqB,WAArB,MAAsC,IAApD,EAA0D;AACtD,eAAO,KAAP;AACH;;AACD,UAAI7yB,KAAK,CAAC,MAAD,CAAL,KAAkB,WAAtB,EAAmC;AAC/B,eAAO83C,sBAAS,CAACg0E,0BAAV,CAAqC9rH,KAArC,CAAP;AACH,OAFD,MAEO,IAAIA,KAAK,CAACs7C,WAAV,EAAuB;AAC1B;AACA,eAAOxD,sBAAS,CAACs0E,qBAAV,CAAgCpsH,KAAhC,CAAP;AACH;;AACD,YAAMq7C,KAAK,GAAGp7C,6BAAO,CAAC+H,iBAAR,CAA0BhI,KAAK,CAAC0L,IAAhC,MAA0CosC,sBAAS,CAACsB,QAAlE;;AACA,aAAO,CAAC1K,uBAAC,CAAC8B,2BAAF,CAA8B79B,MAA9B,CAAD,IACH,CAAC+7B,uBAAC,CAAC+B,4BAAF,CAA+B99B,MAA/B,CADE,IAEH,CAAC0oC,KAFE,KAGFpD,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,4BAAjB,MAAmD,KAAnD,IAA4D0uB,sBAAS,CAACs0E,qBAAV,CAAgCpsH,KAAhC,CAH1D,CAAP;AAIH,KAhBD;AAmBA;;;;;;;AAKA83C,0BAAS,CAACw0E,qBAAV,GAAkC,YAAY;AAC1C,UAAIr0E,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,aAAjB,KAAmCoD,MAAM,CAAC+/F,KAAP,KAAiB9mH,SAAxD,EAAmE;AAC/D,cAAM+mH,QAAQ,GAAG,IAAID,KAAJ,CAAUt0E,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,aAAjB,IAAgC,kBAA1C,CAAjB;AACA,cAAMqjG,UAAU,GAAGD,QAAQ,CAACE,WAAT,CAAqB,WAArB,CAAnB;;AACA,YAAID,UAAU,KAAK,UAAnB,EAA+B;AAC3B,iBAAOD,QAAQ,CAACG,IAAT,EAAP;AACH;;AACD,cAAMC,QAAQ,GAAG,IAAIL,KAAJ,CAAUt0E,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,aAAjB,IAAgC,kBAA1C,CAAjB;AACA,cAAMyjG,UAAU,GAAGD,QAAQ,CAACF,WAAT,CAAqB,WAArB,CAAnB;;AACA,YAAIG,UAAU,KAAK,UAAnB,EAA+B;AAC3BD,kBAAQ,CAACD,IAAT;AACH,SAFD,MAEO,IAAIF,UAAU,KAAK,OAAnB,EAA4B;AAC/BD,kBAAQ,CAACG,IAAT;AACH,SAFM,MAEA,IAAIE,UAAU,KAAK,OAAnB,EAA4B;AAC/BD,kBAAQ,CAACD,IAAT;AACH;AACJ;AACJ,KAjBD;;AAmBA70E,0BAAS,CAACg1E,8BAAV,GAA2C,YAAY;AACnD,aAAOhC,2BAA2B,IAC9B7yE,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,4BAAjB,CADG,IAEH2jG,YAAY,CAACC,UAAb,KAA4B,SAFhC;AAGH,KAJD;AAMA;;;;;;;;AAMAl1E,0BAAS,CAACm1E,uBAAV,GAAoC,UAAUn7G,IAAV,EAAgB;AAChD,YAAM;AAAE9R;AAAF,UAAY8R,IAAlB;;AACA,UAAI9R,KAAK,CAACktH,QAAV,EAAoB;AAChB;AACH;;AAED,UAAI,CAACp1E,sBAAS,CAACg1E,8BAAV,EAAL,EAAiD;AAC7C;AACH;;AACD,UAAIvmE,KAAJ,EAAW4mE,WAAX;AACA,YAAMC,aAAa,GAAGptH,KAAK,CAAC0L,IAA5B;AAAA,YACM8uC,QAAQ,GAAGv6C,6BAAO,CAAC+H,iBAAR,CAA0BolH,aAA1B,CADjB;;AAEA,UAAIptH,KAAK,CAACwL,IAAN,KAAe,UAAnB,EAA+B;AAC3B,YAAI,CAACgvC,QAAQ,CAACpe,QAAT,CAAkB,GAAlB,CAAD,IAA2B6b,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,4BAAjB,CAA/B,EAA+E;AAC3Em9B,eAAK,GAAGzE,KAAE,CAAC,wBAAD,EAA2BtH,QAA3B,CAAV;AACH,SAFD,MAEO;AACH;AACH;AACJ,OAND,MAMO,IAAI,CAACA,QAAQ,CAACpe,QAAT,CAAkB,GAAlB,CAAL,EAA6B;AAChC;AACAmqB,aAAK,GAAGzE,KAAE,CAAC,wBAAD,EAA2BtH,QAA3B,CAAV;AACH,OAHM,MAGA,IAAIx6C,KAAK,CAACwL,IAAN,KAAe,WAAnB,EAAgC;AACnC+6C,aAAK,GAAGzE,KAAE,CAAC,WAAD,EAAc7hD,6BAAO,CAACkI,kBAAR,CAA2BilH,aAA3B,CAAd,CAAV;AACH,OAFM,MAEA;AACH,YAAIt1E,sBAAS,CAACi2B,MAAV,KAAqBtoE,SAAzB,EAAoC;AAChCoD,sBAAG,CAACI,KAAJ,CAAU,0DAAV;AACA;AACH;;AACDkkH,mBAAW,GAAGr1E,sBAAS,CAACi2B,MAAV,CAAiB3kD,GAAjB,CAAqBoxB,QAArB,CAAd;;AACA,YAAI2yE,WAAW,KAAK1nH,SAApB,EAA+B;AAC3B8gD,eAAK,GAAGzE,KAAE,CAAC,WAAD,EAAcqrE,WAAW,CAACh8D,cAAZ,EAAd,CAAV;AACH,SAFD,MAEO;AACH,cAAIlZ,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,4BAAjB,CAAJ,EAAoD;AAChDm9B,iBAAK,GAAGzE,KAAE,CAAC,WAAD,EAActH,QAAd,CAAV;AACH,WAFD,MAEO;AACH;AACH;AACJ;AACJ;;AAED,YAAMjnB,IAAI,GAAGvzB,KAAK,CAAC81D,YAAN,GAAqBhU,KAAE,CAAC,4BAAD,CAAvB,GAAwD9hD,KAAK,CAACuzB,IAA3E;;AACA,UAAI,CAACA,IAAL,EAAW;AACP;AACH;;AACD,YAAM1pB,CAAC,GAAG,IAAIkjH,YAAJ,CAAiBxmE,KAAjB,EAAwB;AAC9B,gBAAQhzB,IADsB;AAE9B,gBAAQukB,sBAAS,CAAC1d,MAFY;AAG9B,gBAAQ6d,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,mBAAjB,CAHsB;AAI9B,8BAAsB,CAAC0uB,sBAAS,CAACuzE;AAJH,OAAxB,CAAV;;AAMA,UAAIpzE,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,oBAAjB,CAAJ,EAA4C;AACxCza,kBAAU,CAAC9E,CAAC,CAACukB,KAAF,CAAQ7Z,IAAR,CAAa1K,CAAb,CAAD,EAAkBouC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,oBAAjB,CAAlB,CAAV;AACH;;AACDvf,OAAC,CAACwjH,OAAF,GAAY,UAAU1xF,KAAV,EAAiB;AACzBA,aAAK,CAACqmD,cAAN;AACAx1D,cAAM,CAACypB,KAAP;;AACA,cAAM8iB,IAAI,GAAGjhB,sBAAS,CAACogB,SAAV,CAAoB9uC,GAApB,CAAwBoxB,QAAxB,CAAb;;AACAue,YAAI,CAACf,SAAL,CAAe,IAAf;AACH,OALD;;AAMAnuD,OAAC,CAACwjH,OAAF,CAAU94G,IAAV,CAAeujC,sBAAf;AACH,KA5DD;;AA8DAA,0BAAS,CAAC+tE,yBAAV,GAAsC,UAAUrqE,OAAV,EAAmB;AACrD;;;AAGA,UAAI1D,sBAAS,CAACszE,gCAAV,CAA2ChvF,QAA3C,CAAoDof,OAAO,CAAC5zC,GAA5D,CAAJ,EAAsE;AAClE;AACA;AACH;;AACD,YAAMqsD,UAAU,GAAGzY,OAAO,CAAC8xE,WAA3B;AACA,UAAI5kH,OAAO,GAAG,IAAd;;AACA,UAAIurD,UAAU,KAAK,SAAnB,EAA8B;AAC1BvrD,eAAO,GAAGo5C,KAAE,CAAC,kBAAD,CAAZ;AACH,OAFD,MAEO,IAAImS,UAAU,KAAK,MAAnB,EAA2B;AAC9BvrD,eAAO,GAAGo5C,KAAE,CAAC,eAAD,CAAZ;AACH,OAFM,MAEA,IAAKmS,UAAU,KAAK,KAApB,EAA4B;AAC/BvrD,eAAO,GAAGo5C,KAAE,CAAC,SAAD,CAAZ;AACH,OAFM,MAEA,IAAImS,UAAU,KAAK,QAAnB,EAA6B;AAChCvrD,eAAO,GAAGo5C,KAAE,CAAC,iBAAD,CAAZ;AACH;;AACD,UAAIp5C,OAAO,KAAK,IAAhB,EAAsB;AAClB;AACH;;AACD,YAAMmB,CAAC,GAAG,IAAIkjH,YAAJ,CAAiBvxE,OAAO,CAAC2V,cAAR,EAAjB,EAA2C;AAC7C59B,YAAI,EAAE7qB,OADuC;AAE7C2yD,YAAI,EAAEvjB,sBAAS,CAAC1d,MAF6B;AAG7CmzF,YAAI,EAAEz1E,sBAAS,CAACwzE;AAH6B,OAA3C,CAAV;AAKA38G,gBAAU,CAAC9E,CAAC,CAACukB,KAAF,CAAQ7Z,IAAR,CAAa1K,CAAb,CAAD,EAAkB,IAAlB,CAAV;AACH,KA5BD;;AA8BAiuC,0BAAS,CAAC01E,8BAAV,GAA2C,UAAUhyE,OAAV,EAAmB;AAC1D,YAAM3xC,CAAC,GAAG,IAAIkjH,YAAJ,CAAiBvxE,OAAO,CAAC2V,cAAR,EAAjB,EAA2C;AAC7C59B,YAAI,EAAEuuB,KAAE,CAAC,0BAAD,CADqC;AAE7CuZ,YAAI,EAAEvjB,sBAAS,CAAC1d,MAF6B;AAG7CmzF,YAAI,EAAEz1E,sBAAS,CAACwzE;AAH6B,OAA3C,CAAV;AAKA38G,gBAAU,CAAC9E,CAAC,CAACukB,KAAF,CAAQ7Z,IAAR,CAAa1K,CAAb,CAAD,EAAkB,IAAlB,CAAV;AACH,KAPD;;AASAiuC,0BAAS,CAAC21E,wBAAV,GAAqC,UAAU37G,IAAV,EAAgB;AACjD,UAAIA,IAAI,CAAC47G,KAAL,KAAe,OAAf,IAA0B57G,IAAI,CAAC47G,KAAL,KAAe,MAA7C,EAAqD;AACjD,cAAM7jH,CAAC,GAAG,IAAIkjH,YAAJ,CAAiBj7G,IAAI,CAAC+3D,OAAtB,EAA+B;AACjCt2C,cAAI,EAAEzhB,IAAI,CAACpJ,OADsB;AAEjC2yD,cAAI,EAAEvjB,sBAAS,CAAC1d,MAFiB;AAGjCmzF,cAAI,EAAEz1E,sBAAS,CAACwzE;AAHiB,SAA/B,CAAV;AAKA38G,kBAAU,CAAC9E,CAAC,CAACukB,KAAF,CAAQ7Z,IAAR,CAAa1K,CAAb,CAAD,EAAkB,IAAlB,CAAV;AACH;AACJ,KATD;;AAWAiuC,0BAAS,CAAC61E,2BAAV,GAAwC,UAAUnyE,OAAV,EAAmB;AACvD;;;;AAIA,UAAI1D,sBAAS,CAACg1E,8BAAV,MAA8C70E,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,+BAAjB,CAAlD,EAAqG;AACjG0uB,8BAAS,CAAC+tE,yBAAV,CAAoCrqE,OAApC;AACH;AACJ,KARD;;AAUA1D,0BAAS,CAAC81E,yBAAV,GAAsC,UAAU97G,IAAV,EAAgB;AAClD;;;AAGA,UAAI,CAACgmC,sBAAS,CAACu0E,qBAAV,CAAgCv6G,IAAhC,CAAL,EAA4C;AACxC,eAAO,KAAP;AACH;AACD;;;;;;;;;AAOAmmC,uBAAG,CAAClP,OAAJ,CAAY,qBAAZ,EAAmCj3B,IAAnC;;AACAgmC,4BAAS,CAACw0E,qBAAV;;AACAx0E,4BAAS,CAACm1E,uBAAV,CAAkCn7G,IAAlC;AACH,KAjBD;;AAmBAgmC,0BAAS,CAAC+1E,gCAAV,GAA6C,UAAUryE,OAAV,EAAmB;AAC5D,UAAI1D,sBAAS,CAACg1E,8BAAV,CAAyC,IAAzC,CAAJ,EAAoD;AAChDh1E,8BAAS,CAAC01E,8BAAV,CAAyChyE,OAAzC;AACH;AACJ,KAJD;;AAMA1D,0BAAS,CAACg2E,cAAV,GAA2B,UAAUh8G,IAAV,EAAgB;AACvC,UAAIgmC,sBAAS,CAACg1E,8BAAV,CAAyC,IAAzC,CAAJ,EAAoD;AAChDh1E,8BAAS,CAAC21E,wBAAV,CAAmC37G,IAAnC;AACH;AACJ,KAJD;;AAMAgmC,0BAAS,CAACi2E,iBAAV,GAA8B,YAAY;AACtC,UAAIjD,2BAA2B,IAAI,CAAC,CAAC,QAAD,EAAW,SAAX,EAAsB1uF,QAAtB,CAA+B2wF,YAAY,CAACC,UAA5C,CAApC,EAA6F;AACzF;AACAD,oBAAY,CAACgB,iBAAb;AACH;AACJ,KALD;AAOA;;;AAEA91E,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,cAAd,EAA8B,MAAO8gF,OAAO,GAAG,IAA/C,EA5RU,CA4R6C;;AAEvD/yE,qBAAG,CAAC1B,SAAJ,CAAc,sBAAd,EAAsCjZ,IAAtC,CACI,MAAMwa,sBAAS,CAACogB,SAAV,CAAoBhuB,EAApB,CAAuB,mBAAvB,EAA4C+gF,mBAA5C,CADV;AAGAhzE,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,oBAAd,EAAoC,YAAY;AAC5C;AACA;AACA;AACA+N,uBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,gBAAd,EAAiC4N,sBAAS,CAAC+1E,gCAA3C;AACA51E,uBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,wBAAd,EAAyC4N,sBAAS,CAAC61E,2BAAnD;AACA11E,uBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,SAAd,EAA0B4N,sBAAS,CAAC81E,yBAApC;AACA31E,uBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,UAAd,EAA0B4N,sBAAS,CAACg2E,cAApC;AACA71E,uBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,WAAd,EAA2B4N,sBAAS,CAACi2E,iBAArC;AACH,KATD;AAUH;;AA/SyC,CAA9C,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM;AAAE9tH,SAAF;AAAWG,KAAGA;AAAd,IAAmB+6B,QAAQ,CAAC20B,GAAlC;AACA,MAAMphB,gBAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;;AAGA,MAAMuvH,gBAAgB,GAAG,CAACp9E,CAAD,EAAIo2E,OAAJ,KAAgB;AACrC,QAAMiH,SAAS,GAAGnsE,KAAE,CAAC,MAAD,CAApB;;AACA,QAAMosE,QAAQ,GAAGpsE,KAAE,CAAC,SAAD,CAAnB;;AACA,SAAO57C,aAAP,kCACoB0qC,CAAC,CAACu9E,UADtB,EAEWnH,OAAO,CAACh3C,KAAR,GAAgB9pE,aAAhB,mCAA+C8gH,OAAO,CAACoH,UAAvD,EAAmFpH,OAAO,CAACh3C,KAA3F,IAA2G,EAFtH,EAI8Dg3C,OAAO,CAAC/hH,IAJtE,EAK6D+hH,OAAO,CAACp/G,GALrE,EAOmCo/G,OAAO,CAACxE,YAP3C,EASewE,OAAO,CAAC5tD,MAAR,CAAe1vD,GAAf,CAAmBowD,KAAK,IAAKgjC,UAAU,CAAChjC,KAAD,CAAvC,CATf,EAYkEo0D,QAZlE,EAakFD,SAblF,EAauGr9E,CAAC,CAACy9E,eAbzG;AAiBH,CApBD;;AAuBA,MAAMC,WAAW,GAAG,CAAC19E,CAAD,EAAIo2E,OAAJ,KAAgB9gH,aAAhB,CAAC,kCAIG0qC,CAAC,CAAC29E,iBAJN,EAKgBvH,OAAO,CAAC/hH,IALxB,EAMe+hH,OAAO,CAACp/G,GANvB,EAOgBo/G,OAAO,CAACjnH,IAPxB,EAQIinH,OAAO,CAACjnH,IARZ,EASMinH,OAAO,CAACjnH,IAAR,IAAgBinH,OAAO,CAACp/G,GAT9B,EAWTo/G,OAAO,CAAC/hH,IAAR,KAAiB2rC,CAAC,CAAC49E,QAAnB,GAA8BR,gBAAgB,CAACp9E,CAAD,EAAIo2E,OAAJ,CAA9C,GAA6D,EAXpD,CAApB;;AAgBA,eAAe5P,mBAAf,GAAsC;AAClC,QAAMp6D,MAAM,GAAG,CAAC,IAAI,MAAM/E,iBAAG,CAAC+pB,KAAJ,CAAU54C,GAAV,EAAV,CAAD,EAA6B,IAAI,MAAM6uB,iBAAG,CAACyD,QAAJ,CAAatyB,GAAb,EAAV,CAA7B,CAAf;AACA,QAAMyvC,IAAI,GAAG,CAAC,GAAG,IAAI+D,GAAJ,CAAQ5f,MAAM,CAACtzC,GAAP,CAAWknC,CAAC,IAAI3wC,sBAAO,CAAC6H,gBAAR,CAAyB8oC,CAAC,CAACxnB,GAAF,CAAM,KAAN,CAAzB,CAAhB,CAAR,CAAJ,CAAb;AACA,SAAOyvC,IAAP;AACH;;AAED,MAAM41D,SAAS,GAAI79E,CAAD,IAAO;AACrB,QAAM89E,mBAAmB,GAAG5sE,KAAE,CAAC,8CAAD,CAA9B;;AACA,QAAM6sE,gCAAgC,GAAG7sE,KAAE,CACvC,+FADuC,CAA3C;;AAEA,QAAM8sE,mBAAmB,GAAG9sE,KAAE,CAAC,gBAAD,CAA9B;;AACA,QAAM+sE,mBAAmB,GAAG/sE,KAAE,CAAC,yBAAD,CAA9B;;AACA,QAAMg4D,oBAAoB,GAAGh4D,KAAE,CAAC,cAAD,CAA/B;;AACA,QAAMgtE,sBAAsB,GAAGhtE,KAAE,CAAC,mBAAD,CAAjC;;AACA,SAAO57C,aAAP,mCACO0qC,CAAC,CAACo/B,KAAF,GAAU9pE,aAAV,mCAAyC0qC,CAAC,CAACw9E,UAA3C,EAAuEx9E,CAAC,CAACo/B,KAAzE,IAAyF,EADhG,EAE0Cp/B,CAAC,CAACm+E,aAF5C,EAKkBL,mBALlB,EAMuCC,gCANvC,EAQ4CvX,mBAR5C,EASmC0C,oBATnC,EAckE+U,mBAdlE,EAgBWj+E,CAAC,CAACojC,IAAF,KAAW,eAAX,GAA6B9tE,aAA7B,mCAG2C0qC,CAAC,CAACwf,QAAF,CAAWzzD,MAAX,GAAoBiyH,mBAApB,GAA0CE,sBAHrF,EAIQl+E,CAAC,CAACwf,QAAF,CAAW1mD,GAAX,CAAeslH,GAAG,IAAIV,WAAW,CAAC19E,CAAD,EAAIo+E,GAAJ,CAAjC,CAJR,IAOD,EAvBV;AA2BH,CAnCD;;AAsCA,eAAeC,gBAAf,CAAiCjI,OAAjC,EAA0C;AACtC,QAAM/hH,IAAI,GAAG+hH,OAAO,CAAC/hH,IAArB;AACA,QAAM2C,GAAG,GAAGo/G,OAAO,CAACp/G,GAApB;AACA,QAAM+K,MAAM,GAAGvS,kBAAG,CAAC;AACf,YAAQ,KADO;AAEf,UAAMwH;AAFS,GAAD,CAAH,CAGZjK,CAHY,CAGV,SAHU,EAGC;AACZ,aAASsC,sBAAO,CAACM,EAAR,CAAWyvD,KADR;AAEZ,YAAQ/qD,IAFI;AAGZ,cAAU;AAHE,GAHD,CAAf;;AAQA,MAAI;AAAA;;AACA,UAAM4S,EAAE,GAAG,MAAMogC,iBAAG,CAACllC,MAAJ,CAAWJ,MAAX,CAAjB;AACA,UAAMu8G,MAAM,GAAGl/E,gBAAM,2BAAmB/vC,sBAAO,CAACM,EAAR,CAAWyvD,KAA9B,UAAyCn4C,EAAzC,CAAN,CAAmDxC,GAAnD,EAAf;AACA2xG,WAAO,CAACmI,SAAR,GAAoBD,MAAM,CAACpoH,YAAP,CAAoB,WAApB,CAApB;AACAkgH,WAAO,CAACxE,YAAR,kBAAuBxyE,gBAAM,CAAC,oDAAD,EAAuDk/E,MAAvD,CAAN,CAAqE75G,GAArE,EAAvB,gDAAuB,YAA4Ee,WAAnG;AACA4wG,WAAO,CAAC5tD,MAAR,GAAiBppB,gBAAM,CAAC,6CAAD,EAAgDk/E,MAAhD,CAAN,CACZxlH,GADY,CACRy1C,CAAC,IAAIzQ,gBAAC,CAAC+jD,aAAF,CAAgBtzC,CAAhB,EAAmB+vE,MAAnB,CADG,CAAjB;AAGH,GARD,CAQE,OAAO3nH,CAAP,EAAU;AACR,QAAIA,CAAC,KAAK,IAAV,EAAgB;AACZsB,kBAAG,CAACI,KAAJ,8DAAgErB,GAAhE;AACH,KAFD,MAEO;AACHiB,kBAAG,CAACI,KAAJ,qDAAuDrB,GAAvD;AACAiB,kBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACH;;AACDy/G,WAAO,CAAC5tD,MAAR,GAAiB,EAAjB;AACH;AACJ;;AAGc,MAAMg2D,4BAAN,SAA4BvrE,qBAA5B,CAA0C;AAErD,aAAWv4B,UAAX,GAAyB;AACrB,WAAO;AACH,eAAS;AAAE9f,YAAI,EAAE1O;AAAR,OADN;AAEH,oBAAc;AAAE0O,YAAI,EAAE1O;AAAR,OAFX;AAGH,eAAS;AAAE0O,YAAI,EAAE1O;AAAR,OAHN;AAGwB;AAC3B,kBAAY;AAAE0O,YAAI,EAAE1O;AAAR,OAJT;AAKH,cAAQ;AAAE0O,YAAI,EAAE1O;AAAR;AALL,KAAP;AAOH;;AAEDsN,aAAW,GAAI;AACX;AACA,SAAK4pE,IAAL,GAAY,gBAAZ;AACA,SAAKw6C,QAAL,GAAgB,EAAhB;AACA,SAAKp+D,QAAL,GAAgB,EAAhB;AACH;;AAED8zB,QAAM,GAAI;AACN,WAAOuqC,SAAS,CAAC;AACb,eAAS,KAAKz+C,KADD;AAEb,oBAAc,KAAKo+C,UAFN;AAGb,kBAAY,KAAKh+D,QAHJ;AAIb,uBAAiBpzB,EAAE,IAAI,KAAK+xF,aAAL,CAAmB/xF,EAAnB,CAJV;AAKb,yBAAmBA,EAAE,IAAI,KAAKqxF,eAAL,CAAqBrxF,EAArB,CALZ;AAMb,oBAAcA,EAAE,IAAI,KAAKmxF,UAAL,CAAgBnxF,EAAhB,CANP;AAOb,kBAAY,KAAKwxF,QAPJ;AAQb,2BAAqBxxF,EAAE,IAAI,KAAKuxF,iBAAL,CAAuBvxF,EAAvB,CARd;AASb,cAAQ,KAAKg3C;AATA,KAAD,CAAhB;AAWH;;AAED,QAAM+6C,aAAN,CAAqB/xF,EAArB,EAAyB;AACrBA,MAAE,CAACglD,cAAH;AACA,WAAO,KAAKosC,UAAZ;AACA,WAAO,KAAKp+C,KAAZ;AAEA,UAAMgZ,SAAS,GAAG,IAAIC,QAAJ,CAAajsD,EAAE,CAAC8kD,MAAhB,CAAlB;AACA,UAAMl6E,GAAG,GAAGohF,SAAS,CAAC5/D,GAAV,CAAc,KAAd,EAAqBhJ,IAArB,EAAZ;AACA,QAAI6zD,SAAJ;;AACA,QAAI;AACAA,eAAS,GAAG,MAAMh8B,iBAAG,CAACwX,KAAJ,CAAUiM,QAAV,CAAmBz7D,sBAAO,CAACM,EAAR,CAAWyvD,KAA9B,EAAqCpoD,GAArC,CAAlB;AACH,KAFD,CAEE,OAAOL,CAAP,EAAU;AACRsB,kBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACH;;AACD,QAAI0sE,SAAJ,EAAe;AACX,UAAI;AACA,aAAK7jB,QAAL,GAAgB,MAAMnY,iBAAG,CAACiY,KAAJ,CAAUC,WAAV,CAAsBvoD,GAAtB,CAAtB;AACA,aAAKosE,IAAL,GAAY,eAAZ;AACH,OAHD,CAGE,OAAOzsE,CAAP,EAAU;AACRsB,oBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACA,aAAK6mH,UAAL,GAAkB,QAAlB;AACA,aAAKp+C,KAAL,GAAaluB,KAAE,CAAC,qEAAD,CAAf;AACA,aAAKsO,QAAL,GAAgB,EAAhB;AACAvnD,oBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACA;AACH;AACJ,KAZD,MAYO;AACH,WAAK6mH,UAAL,GAAkB,QAAlB;AACA,WAAKp+C,KAAL,GAAaluB,KAAE,CAAC,sDAAD,CAAf;AACH;AACJ;;AAED,QAAMysE,iBAAN,CAAyBvxF,EAAzB,EAA6B;AACzBA,MAAE,CAACglD,cAAH;AACA,UAAM/8E,IAAI,GAAG+3B,EAAE,CAAC8kD,MAAH,CAAUh7E,YAAV,CAAuB,mBAAvB,CAAb;AACA,UAAMkoH,GAAG,GAAG,KAAK5+D,QAAL,CAAc/5C,MAAd,CAAqB1Y,CAAC,IAAIA,CAAC,CAACsH,IAAF,KAAWA,IAArC,EAA2C,CAA3C,CAAZ;AACA,SAAKupH,QAAL,KAAkBvpH,IAAlB,KAA0B,MAAMgqH,gBAAgB,CAACD,GAAD,CAAhD;AACA,SAAKR,QAAL,GAAgBvpH,IAAhB;AACH;;AAEDopH,iBAAe,CAAErxF,EAAF,EAAM;AACjBA,MAAE,CAACglD,cAAH;AACA,SAAKwsC,QAAL,GAAgB,EAAhB;AACH;;AAED,QAAML,UAAN,CAAkBnxF,EAAlB,EAAsB;AAClBA,MAAE,CAACglD,cAAH;AACA,UAAMgH,SAAS,GAAG,IAAIC,QAAJ,CAAajsD,EAAE,CAAC8kD,MAAhB,CAAlB;AACA,UAAMl6E,GAAG,GAAGohF,SAAS,CAAC5/D,GAAV,CAAc,aAAd,EAA6BhJ,IAA7B,EAAZ;AACA,UAAMnb,IAAI,GAAG+jF,SAAS,CAAC5/D,GAAV,CAAc,cAAd,EAA8BhJ,IAA9B,EAAb;AAEA,UAAM4uG,GAAG,GAAG,KAAK5+D,QAAL,CAAc/5C,MAAd,CAAqB1Y,CAAC,IAAIA,CAAC,CAACsH,IAAF,KAAWA,IAArC,EAA2C,CAA3C,CAAZ;AACA,UAAMqkH,MAAM,GAAGt5E,gBAAM,CAAC,8CAAD,EAAiDhT,EAAE,CAAC8kD,MAApD,CAArB;AACA,UAAMynC,YAAY,GAAGD,MAAM,CACtBjzG,MADgB,CACT3Z,CAAC,IAAI,CAAC,CAAC,aAAD,EAAgB,cAAhB,EAAgC0/B,QAAhC,CAAyC1/B,CAAC,CAACoK,YAAF,CAAe,MAAf,CAAzC,CADG,EAEhB4C,GAFgB,CAEZglC,gBAAC,CAACsxB,aAFU,EAGhB3pD,MAHgB,CAGTxM,CAAC,IAAIA,CAHI,CAArB;AAKA,UAAMgO,EAAE,GAAGzX,kBAAG,CAAC;AAACk2D,QAAE,EAAE1uD,GAAL;AAAU4D,UAAI,EAAE;AAAhB,KAAD,CAAH,CACN7N,CADM,CACJ,SADI,EACO;AACV,mBAAaqxH,GAAG,CAACG,SADP;AAEV,cAAQH,GAAG,CAAC/pH,IAFF;AAGV,eAAShF,sBAAO,CAACM,EAAR,CAAWyvD;AAHV,KADP,EAKJryD,CALI,CAKF,GALE,EAKG;AAAC0M,WAAK,EAAEpK,sBAAO,CAACM,EAAR,CAAWi6D,KAAnB;AAA0BhvD,UAAI,EAAE;AAAhC,KALH,CAAX;AAMA+9G,gBAAY,CAAC31G,OAAb,CAAqB3O,IAAI,IAAI4S,EAAE,CAAChN,KAAH,CAAS5F,IAAT,EAAeuF,EAAf,EAA7B;AAEA,QAAIb,MAAJ;;AACA,QAAI;AACAA,YAAM,GAAG,MAAMsuC,iBAAG,CAACllC,MAAJ,CAAW8E,EAAX,CAAf;AACH,KAFD,CAEE,OAAOtQ,CAAP,EAAU;AACRynH,SAAG,CAACZ,UAAJ,GAAiB,QAAjB;AACAY,SAAG,CAACh/C,KAAJ,GAAYluB,KAAE,CAAC,qGAAD,CAAd;AACAj5C,kBAAG,CAACI,KAAJ,CAAU,iDAAV;AACAJ,kBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACH;;AAED,QAAIoC,MAAJ,EAAY;AAAA;;AACRqlH,SAAG,CAACh/C,KAAJ,4BAAYrmE,MAAM,CAACkpB,aAAP,CAAqB,MAArB,CAAZ,0DAAY,sBAA8Bzc,WAA1C;AACH,KAFD,MAEO;AACH44G,SAAG,CAACh/C,KAAJ,GAAY,MAAZ;AACH;;AACDg/C,OAAG,CAACZ,UAAJ,GAAiB,SAAjB;AACA,SAAK70G,KAAL,GAAam1B,gBAAC,CAAC/+B,WAAF,EAAb;AACH;;AAnHoD;AAsHzDsoC,iBAAG,CAAConC,QAAJ,CAAaviE,MAAb,CAAoB,yBAApB,EAA+CsyG,4BAA/C,E;;;;;;;;;;;;;;;;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,MAAMlS,kCAAc,GAAItsE,CAAD,IAAO;AAC1B,QAAMy+E,UAAU,GAAGvtE,KAAE,CAAC,OAAD,CAArB;;AACA,QAAMwtE,aAAa,GAAGxtE,KAAE,CAAC,UAAD,CAAxB;;AACA,SAAO57C,aAAP,uCAGkJ0qC,CAAC,CAAC23C,SAHpJ,EAGiK8mC,UAHjK,EAMoJz+E,CAAC,CAAC23C,SANtJ,EAMmK+mC,aANnK;AAUH,CAbD;;AAgBgB1+E,yDAAD,IAAO;AAClB,QAAM2+E,gBAAgB,GAAGztE,KAAE,CAAC,UAAD,CAA3B;;AACA,QAAM0tE,cAAc,GAAG1tE,KAAE,CACrB,2EADqB,EAErB,kEAFqB,EAGrB,MAHqB,EAIrB,8DAJqB,CAAzB;;AAOA,QAAM2tE,eAAe,GAAG3tE,KAAE,CACtB,+CADsB,EAEtB,qGAFsB,EAGtB,MAHsB,CAA1B;;AAKA,QAAM4tE,gBAAgB,GAAGz3E,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,kBAAjB,CAAzB;AACA,QAAMumG,oBAAoB,GAAG13E,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,sBAAjB,CAA7B;AACA,QAAMu0F,cAAc,GAAG+R,gBAAgB,IAAIC,oBAA3C;AACA,SAAOzpH,aAAP,wCAIyEqpH,gBAJzE,EAKc9nC,yBALd,EAQek2B,cAAc,GAAGT,kCAAc,CAACtsE,CAAD,CAAjB,GAAuB,EARpD,EAWyD8+E,gBAAgB,GAAG,QAAH,GAAc,EAXvF,EAkBoD9+E,CAAC,CAACk+D,YAlBtD,EAmBoDhS,UAAU,CAACF,aAAG,CAACC,SAAJ,CAAc2yB,cAAd,EAA8B;AAAC,iBAAa;AAAC,WAAK;AAAN;AAAd,GAA9B,CAAD,CAnB9D,EAoBoD1yB,UAAU,CAACF,aAAG,CAACC,SAAJ,CAAc4yB,eAAd,EAA+B;AAAC,iBAAa;AAAC,WAAK;AAAN;AAAd,GAA/B,CAAD,CApB9D,EAwByD,CAACC,gBAAD,IAAsBC,oBAAtB,GAA6C,QAA7C,GAAwD,EAxBjH;AAkCF,CAnDF,E;;ACzBA;AACA;;AAEA,IAAI73E,sBAAJ;;AAEe+vC,uEAAc,CAAC5hD,MAAf,CAAsB;AACjCx6B,IAAE,EAAE,4BAD6B;;AAGjC4vB,YAAU,CAAEC,QAAF,EAAY;AAClBwc,0BAAS,GAAIxc,QAAQ,CAACwc,SAAtB;AACA+vC,kBAAc,CAAC7oF,SAAf,CAAyBq8B,UAAzB,CAAoCvL,KAApC,CAA0C,IAA1C,EAAgD3qB,SAAhD;AACH,GANgC;;AAQjCi/E,QAAM,GAAI;AACN,WAAOwrC,mBAAuB,CAC1B7wH,MAAM,CAACsmC,MAAP,CACI,KAAK1B,KAAL,CAAWmB,MAAX,EADJ,EAEI,KAAKnB,KAAL,CAAWytB,KAAX,CAAiBtsB,MAAjB,EAFJ,EAGI;AAAE,sBAAgBgT,sBAAS,CAAC0S;AAA5B,KAHJ,CAD0B,CAA9B;AAOH;;AAhBgC,CAAtB,CAAf,E;;;;;;;;;;;;;;ACLA;AACA;AAGgB5Z,uDAAD,IAAO1qC,aAAP,CAAC,oCAIsD0qC,CAAC,CAACi/E,WAJzD,EAKGpoC,yBALH,EAY+B72C,CAAC,CAACj8B,MAAF,KAAa,QAZ5C,EAeqFi8B,CAAC,CAACk/E,YAfvF,EAkB+Bl/E,CAAC,CAACj8B,MAAF,KAAa,MAlB5C,EAqB0Fi8B,CAAC,CAACm/E,UArB5F,EAwB+Bn/E,CAAC,CAACj8B,MAAF,KAAa,MAxB5C,EA2BmFi8B,CAAC,CAACo/E,UA3BrF,EA8B+Bp/E,CAAC,CAACj8B,MAAF,KAAa,IA9B5C,EAiCkFi8B,CAAC,CAACq/E,QAjCpF,EAuC0Br/E,CAAC,CAACqkC,cAAF,IAAoB,EAvC9C,EAuCkErkC,CAAC,CAACs/E,0BAvCpE,EAwCoDt/E,CAAC,CAACqkC,cAAF,GAAmB,EAAnB,GAAwB,QAxC5E,EA2CqDrkC,CAAC,CAACu/E,UA3CvD,CAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA;AACA;AACA;AAGgBv/E,6CAAD,IAAO;AAClB,QAAMw/E,WAAW,GAAGtuE,KAAE,CAAC,SAAD,CAAtB;;AACA,QAAMuuE,kBAAkB,GAAGvuE,KAAE,CAAC,kCAAD,CAA7B;;AACA,QAAMwuE,YAAY,GAAGxuE,KAAE,CAAC,qCAAD,CAAvB;;AACA,QAAMyuE,oBAAoB,GAAGt4E,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,kBAAjB,KAAwC6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,sBAAjB,CAArE;AACA,SAAOljB,aAAP,2BAMyD0qC,CAAC,CAACkoB,QAN3D,EAOUy3D,oBAAoB,GAAIrqH,aAAJ,4BAAkGoqH,YAAlG,EAA0H1/E,CAAC,CAAC4/E,qBAA5H,IAA2J,EAPzL,EAQUv4E,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,cAAjB,IAAmCljB,aAAnC,4BAAgIkqH,WAAhI,IAAsJ,EARhK,EAW0CC,kBAX1C,EAY2Bz/E,CAAC,CAAC08E,WAZ7B,EAYiF18E,CAAC,CAAC08E,WAZnF,EAcsB18E,CAAC,CAAC08E,WAAF,KAAkB,QAAlB,IAA8B,8CAdpD,EAesB18E,CAAC,CAAC08E,WAAF,KAAkB,KAAlB,IAA2B,kDAfjD,EAgBsB18E,CAAC,CAAC08E,WAAF,KAAkB,MAAlB,IAA4B,4CAhBlD,EAiBsB18E,CAAC,CAAC08E,WAAF,KAAkB,IAAlB,IAA0B,4CAjBhD,EAkBsB18E,CAAC,CAAC08E,WAAF,KAAkB,SAAlB,IAA+B,+CAlBrD,EAkBiH18E,CAAC,CAACqkC,cAlBnH;AAsBF,CA3BF,E;;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;;AAEA,MAAMw7C,eAAe,GAAG3uE,KAAE,CAAC,mBAAD,CAA1B;;AAGe,MAAM4uE,wBAAN,SAA0B7sE,qBAA1B,CAAwC;AAEnD,aAAWv4B,UAAX,GAAyB;AACrB,WAAO;AACH,gBAAU;AAAE9f,YAAI,EAAEub;AAAR,OADP;AAEH,eAAS;AAAEvb,YAAI,EAAE1O;AAAR,OAFN;AAGH,eAAS;AAAE0O,YAAI,EAAEub;AAAR;AAHN,KAAP;AAKH;;AAEDm9D,QAAM,GAAI;AACN,UAAMoiB,WAAW,GAAG;AAChB,gBAAU,KAAK/c,MADC;AAEhB,eAAS,KAAK3M,KAFE;AAGhB,eAAS,KAAK/rD;AAHE,KAApB;AAKA,WAAO3qB,aAAP,gCACsC,KAAKyqH,iBAD3C,EACuEF,eADvE,EAEW14B,YAAY,CAACuO,WAAD,CAFvB,EAIqB,KAAKsqB,iBAJ1B;AAMH;;AAEDD,mBAAiB,CAAE3zF,EAAF,EAAM;AACnBA,MAAE,CAACglD,cAAH;AACA,SAAKnvD,aAAL,CAAmB,oBAAnB,EAAyCwwE,KAAzC;AACH;;AAEDutB,mBAAiB,CAAE5zF,EAAF,EAAM;AACnB,UAAMw0B,IAAI,GAAGx0B,EAAE,CAAC8kD,MAAH,CAAUlqB,KAAV,CAAgB,CAAhB,CAAb;AACA,UAAMi5D,MAAM,GAAG,IAAI3wF,UAAJ,EAAf;;AACA2wF,UAAM,CAACC,SAAP,GAAmB,MAAO,KAAKl0C,KAAL,GAAai0C,MAAM,CAAClnH,MAA9C;;AACAknH,UAAM,CAACE,aAAP,CAAqBv/D,IAArB;AACH;;AAlCkD;AAqCvDvZ,iBAAG,CAAConC,QAAJ,CAAaviE,MAAb,CAAoB,uBAApB,EAA6C4zG,wBAA7C,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAMhiF,eAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;;AAEA,MAAM6oG,WAAW,GAAI12D,CAAD,IAAO1qC,aAAP,CAAC,gCACWwoC,eAAC,CAACiG,iBAAF,CAAoB/D,CAAC,CAACojC,IAAF,CAAOg9C,cAAP,CAAsB5nG,GAAtB,CAA0B,QAA1B,EAAoCk+E,WAAxD,CADZ,CAApB;;AAIA,MAAM2pB,uBAAuB,GAAIrgF,CAAD,IAAO;AACnC,QAAMsgF,+BAA+B,GAAGpvE,KAAE,CAAC,kDAAD,CAA1C;;AACA,SAAO57C,aAAP,kCAGwC0qC,CAAC,CAACy2D,MAAF,CAASj+E,GAAT,CAAa,IAAb,CAHxC,EAI0B8nG,+BAJ1B,EAKoCxiF,eAAC,CAACiG,iBAAF,CAAoB/D,CAAC,CAACy2D,MAAF,CAASj+E,GAAT,CAAa,QAAb,EAAuBk+E,WAA3C,CALpC;AASH,CAXD;;AAcA,MAAM6pB,0BAA0B,GAAIvgF,CAAD,IAAO;AACtC,QAAMwgF,+BAA+B,GAAGtvE,KAAE,CAAC,8BAAD,CAA1C;;AACA,QAAMovE,+BAA+B,GAAGpvE,KAAE,CAAC,6CAAD,CAA1C;;AACA,SAAO57C,aAAP,kCAGwC0qC,CAAC,CAACy2D,MAAF,CAASj+E,GAAT,CAAa,IAAb,CAHxC,EAI0B8nG,+BAJ1B,EAKgBE,+BALhB;AASH,CAZD;;AAeA,MAAMC,WAAW,GAAIzgF,CAAD,IAAO1qC,aAAP,CAAC,iCACd0qC,CAAC,CAACy2D,MAAF,CAASj+E,GAAT,CAAa,QAAb,KAA0BwnB,CAAC,CAACy2D,MAAF,CAASj+E,GAAT,CAAa,QAAb,EAAuBk+E,WAAlD,GAAiE2pB,uBAAuB,CAACrgF,CAAD,CAAxF,GAA8FugF,0BAA0B,CAACvgF,CAAD,CAD1G,CAApB;;AAKA,MAAM0gF,WAAW,GAAI1gF,CAAD,IAAO;AACvB,QAAM2gF,kBAAkB,GAAGzvE,KAAE,CAAC,6BAAD,CAA7B;;AACA,QAAM0vE,wBAAwB,GAAG1vE,KAAE,CAAC,4DAAD,CAAnC;;AACA,QAAM2vE,mBAAmB,GAAG3vE,KAAE,CAAC,kCAAD,CAA9B;;AACA,QAAM4vE,eAAe,GAAG5vE,KAAE,CAAC,YAAD,CAA1B;;AACA,SAAO57C,aAAP,kCAImEwrH,eAJnE,EAImGF,wBAJnG,EAKkBD,kBALlB,EAQW3gF,CAAC,CAACojC,IAAF,CAAO29C,aAAP,CAAqBjoH,GAArB,CAAyB29F,MAAM,IAAIgqB,WAAW,CAACtyH,MAAM,CAACsmC,MAAP,CAAc;AAACgiE;AAAD,GAAd,EAAwBz2D,CAAxB,CAAD,CAA9C,CARX,EAUsF6gF,mBAVtF;AAYH,CAjBD,C,CAoBA;;;AACA,MAAMG,UAAU,GAAIhhF,CAAD,IAAO;AACtB,QAAMihF,gBAAgB,GAAG/vE,KAAE,CAAC,iCAAD,CAA3B;;AACA,QAAMgwE,aAAa,GAAGhwE,KAAE,CAAC,mCAAD,CAAxB;;AACA,SAAO57C,aAAP,kCAIqD2rH,gBAJrD,EAMwBjhF,CAAC,CAACojC,IAAF,CAAOg9C,cAAP,IAAyBpgF,CAAC,CAACojC,IAAF,CAAOg9C,cAAP,CAAsB5nG,GAAtB,CAA0B,QAA1B,CAAzB,IAAgEwnB,CAAC,CAACojC,IAAF,CAAOg9C,cAAP,CAAsB5nG,GAAtB,CAA0B,QAA1B,EAAoCk+E,WAArG,GAAoHA,WAAW,CAAC12D,CAAD,CAA/H,GAAqIuqE,OAAO,EANnK,EAU+E2W,aAV/E,EAYelhF,CAAC,CAACojC,IAAF,CAAO29C,aAAP,CAAqBh1H,MAArB,GAA8B20H,WAAW,CAAC1gF,CAAD,CAAzC,GAA+C,EAZ9D;AAeH,CAlBD;;AAqBgBA,mDAAD,IAAO;AAClB,QAAMmhF,eAAe,GAAGjwE,KAAE,CAAC,cAAD,CAA1B;;AACA,QAAMkmD,UAAU,GAAGlmD,KAAE,CAAC,OAAD,CAArB;;AACA,QAAMkwE,aAAa,GAAGlwE,KAAE,CAAC,WAAD,CAAxB;;AACA,QAAMmwE,QAAQ,GAAGnwE,KAAE,CAAC,oBAAD,CAAnB;;AACA,QAAMomD,aAAa,GAAGpmD,KAAE,CAAC,UAAD,CAAxB;;AACA,QAAMsmD,SAAS,GAAGtmD,KAAE,CAAC,MAAD,CAApB;;AACA,QAAMwgE,SAAS,GAAGxgE,KAAE,CAAC,gBAAD,CAApB;;AACA,QAAMowE,cAAc,GAAGpwE,KAAE,CAAC,sGAAD,CAAzB;;AACA,QAAMumD,QAAQ,GAAGvmD,KAAE,CAAC,KAAD,CAAnB;;AACA,QAAMqwE,UAAU,GAAGrwE,KAAE,CAAC,OAAD,CAArB;;AACA,QAAMukD,YAAY,GAAGvkD,KAAE,CAAC,SAAD,CAAvB;;AAEA,QAAMswE,UAAU,GAAIlsH,aAAJ,kCAGiImgG,YAHjI,EAMoH8rB,UANpH,CAAhB;AAWA,SAAOjsH,aAAP,kCAIwE6rH,eAJxE,EAKkBtqC,yBALlB,EASkB3vC,sBAAS,CAAC2S,SAAV,CAAoBvvB,OAApB,CAA4B,gBAA5B,EAA8CmM,OAA9C,CAAsDyQ,sBAAtD,KAAoEs6E,UAApE,IAAkF,EATpG,EAeoExhF,CAAC,CAACgsC,KAftE,EAeuFhsC,CAAC,CAAC/f,KAfzF,EAe2G+f,CAAC,CAAC24C,MAf7G,EAmBwE0oC,QAnBxE,EAoB+CrhF,CAAC,CAAChpC,GApBjD,EAyBqFoqH,aAzBrF,EA0B+GphF,CAAC,CAACkoB,QAAF,IAAc,EA1B7H,EA6BqFovC,aA7BrF,EA8BqHt3D,CAAC,CAACgL,QAAF,IAAc,EA9BnI,EAiCgFysD,QAjChF,EAkC0Gz3D,CAAC,CAACxzB,GAAF,IAAS,EAlCnH,EAqCkF4qF,UArClF,EAsCgHp3D,CAAC,CAAC6sC,KAAF,IAAW,EAtC3H,EAyCiF2qB,SAzCjF,EA0C6Gx3D,CAAC,CAAC8L,IAAF,IAAU,EA1CvH,EA2C2Fw1E,cA3C3F,EA+C0F5P,SA/C1F,EAmDuBxqE,sBAAS,CAAC2S,SAAV,CAAoBvvB,OAApB,CAA4B,gBAA5B,EAA8CmM,OAA9C,CAAsDyQ,sBAAtD,KAAoE85E,UAAU,CAAChhF,CAAD,CAA9E,IAAqF,EAnD5G;AAyDH,CAjFD,E;;ACzFA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAMlC,kBAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;AAGA08B,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,kBAArB,EAAyC;AAErCwL,cAAY,EAAE,CAAC,iBAAD,EAAoB,gBAApB,EAAsC,gBAAtC,EAAwD,uBAAxD,CAFuB;;AAIrCvL,YAAU,GAAI;AACV;;;AAIA4c,qBAAG,CAAC3c,QAAJ,CAAa2K,MAAb,CAAoB;AAChB,8BAAwB,IADR;AAEhB,0BAAoB;AAFJ,KAApB;AAMA6R,0BAAS,CAACu6E,YAAV,GAAyBxqC,cAAc,CAAC5hD,MAAf,CAAsB;AAC3Cx6B,QAAE,EAAE,oBADuC;AAE3Cu+B,YAAM,EAAE;AACJ,gCAAwB;AADpB,OAFmC;;AAM3C3O,gBAAU,GAAI;AACV,aAAKqP,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,QAA1B,EAAoC,KAAKugD,MAAzC;AACA2D,sBAAc,CAAC7oF,SAAf,CAAyBq8B,UAAzB,CAAoCvL,KAApC,CAA0C,IAA1C,EAAgD3qB,SAAhD;AACA;;;;;;;AAMA8yC,yBAAG,CAAClP,OAAJ,CAAY,yBAAZ,EAAuC,KAAKpF,KAA5C;AACH,OAhB0C;;AAkB3CygD,YAAM,GAAI;AACN,eAAOkuC,aAAiB,CAACvzH,MAAM,CAACsmC,MAAP,CACrB,KAAK1B,KAAL,CAAWmB,MAAX,EADqB,EAErB,KAAKnB,KAAL,CAAWytB,KAAX,CAAiBtsB,MAAjB,EAFqB,EAGrB,KAAKuzD,aAAL,EAHqB,EAIrB;AAAE,kBAAQ;AAAV,SAJqB,CAAD,CAAxB;AAMH,OAzB0C;;AA2B3CA,mBAAa,GAAI;AACb,cAAM3a,UAAU,GAAG,KAAK/5C,KAAL,CAAWytB,KAAX,CAAiBhoC,GAAjB,CAAqB,YAArB,CAAnB;AACA,cAAM+wE,UAAU,GAAG,KAAKx2D,KAAL,CAAWytB,KAAX,CAAiBhoC,GAAjB,CAAqB,OAArB,CAAnB;AACA,cAAMwzD,KAAK,GAAG,UAAUc,UAAV,GAAuB,UAAvB,GAAoCyc,UAAlD;AACA,eAAO;AACH,oBAAU,GADP;AAEH,mBAAS,GAFN;AAGHvd;AAHG,SAAP;AAKH,OApC0C;;AAsC3CyH,iBAAW,GAAI;AACX,aAAKkuC,IAAL,GAAYviF,gBAAM,CAAC,qBAAD,EAAwB,KAAKrrC,EAA7B,CAAN,CAAuC+E,GAAvC,CAA2CnC,CAAC,IAAI,IAAI0gF,0BAAS,CAACuqC,GAAd,CAAkBjrH,CAAlB,CAAhD,CAAZ;AACH,OAxC0C;;AA0C3C,YAAMkrH,QAAN,CAAgB3gH,IAAhB,EAAsB;AAClB,YAAI;AACA,gBAAMmmC,iBAAG,CAACmZ,KAAJ,CAAUrsB,GAAV,CAAc+S,sBAAS,CAACsB,QAAxB,EAAkCtnC,IAAlC,CAAN;AACH,SAFD,CAEE,OAAOiD,GAAP,EAAY;AACVlM,sBAAG,CAACP,KAAJ,CAAUyM,GAAV;AACA,eAAKi7D,KAAL,CAAW,CACPluB,KAAE,CAAC,kEAAD,CADK,EAEPA,KAAE,CAAC,sEAAD,CAFK,EAGTx6C,IAHS,CAGJ,GAHI,CAAX;AAIA;AACH;;AACD,aAAK4gF,KAAL,CAAWgB,IAAX;AACH,OAtD0C;;AAwD3CgjB,qBAAe,CAAElvE,EAAF,EAAM;AACjBA,UAAE,CAACglD,cAAH;AACA,cAAM6uC,MAAM,GAAG,IAAI3wF,UAAJ,EAAf;AACA,cAAM8oD,SAAS,GAAG,IAAIC,QAAJ,CAAajsD,EAAE,CAAC8kD,MAAhB,CAAlB;AACA,cAAM4wC,UAAU,GAAG1pC,SAAS,CAAC5/D,GAAV,CAAc,OAAd,CAAnB;AACA,cAAMtX,IAAI,GAAG;AACT,gBAAMk3E,SAAS,CAAC5/D,GAAV,CAAc,IAAd,CADG;AAET,sBAAY4/D,SAAS,CAAC5/D,GAAV,CAAc,UAAd,CAFH;AAGT,kBAAQ4/D,SAAS,CAAC5/D,GAAV,CAAc,MAAd,CAHC;AAIT,mBAAS4/D,SAAS,CAAC5/D,GAAV,CAAc,OAAd,CAJA;AAKT,iBAAO4/D,SAAS,CAAC5/D,GAAV,CAAc,KAAd;AALE,SAAb;;AAOA,YAAI,CAACspG,UAAU,CAAC9qF,IAAhB,EAAsB;AAClB7oC,gBAAM,CAACsmC,MAAP,CAAcvzB,IAAd,EAAoB;AAChB,qBAAS,KAAK6xB,KAAL,CAAWytB,KAAX,CAAiBhoC,GAAjB,CAAqB,OAArB,CADO;AAEhB,0BAAc,KAAKua,KAAL,CAAWytB,KAAX,CAAiBhoC,GAAjB,CAAqB,YAArB;AAFE,WAApB;AAIA,eAAKqpG,QAAL,CAAc3gH,IAAd;AACH,SAND,MAMO;AACH++G,gBAAM,CAACC,SAAP,GAAmB,MAAM;AACrB/xH,kBAAM,CAACsmC,MAAP,CAAcvzB,IAAd,EAAoB;AAChB,uBAAS2F,IAAI,CAACo5G,MAAM,CAAClnH,MAAR,CADG;AAEhB,4BAAc+oH,UAAU,CAAClnH;AAFT,aAApB;AAIA,iBAAKinH,QAAL,CAAc3gH,IAAd;AACH,WAND;;AAOA++G,gBAAM,CAAC8B,kBAAP,CAA0BD,UAA1B;AACH;AACJ;;AApF0C,KAAtB,CAAzB;AAwFA56E,0BAAS,CAAC86E,eAAV,GAA4B/qC,cAAc,CAAC5hD,MAAf,CAAsB;AAC9Cx6B,QAAE,EAAE,qBAD0C;AAE9Cu+B,YAAM,EAAE;AACJ,uCAA+B,iBAD3B;AAEJ,8BAAsB;AAFlB,OAFsC;;AAO9Co6C,YAAM,GAAI;AACN,eAAOyuC,iBAAqB,CACxB9zH,MAAM,CAACsmC,MAAP,CACI,KAAK1B,KAAL,CAAWmB,MAAX,EADJ,EAEI,KAAKnB,KAAL,CAAWytB,KAAX,CAAiBtsB,MAAjB,EAFJ,EAE+B;AAC3B,wBAAcgd,KAAE,CAAC,MAAD,CADW;AAE3B,wBAAcA,KAAE,CAAC,MAAD,CAFW;AAG3B,0BAAgBA,KAAE,CAAC,QAAD,CAHS;AAI3B,yBAAeA,KAAE,CAAC,OAAD,CAJU;AAK3B,iCAAuBA,KAAE,CAAC,eAAD,CALE;AAM3B,2BAAiBA,KAAE,CAAC,SAAD,CANQ;AAO3B,0BAAgBA,KAAE,CAAC,QAAD,CAPS;AAQ3B,wBAAcA,KAAE,CAAC,MAAD,CARW;AAS3B,sBAAYA,KAAE,CAAC,eAAD,CATa;AAU3B,yBAAeA,KAAE,CAAC,oBAAD,CAVU;AAW3B,wCAA8BA,KAAE,CAAC,yBAAD;AAXL,SAF/B,CADwB,CAA5B;AAgBH,OAxB6C;;AA0B9CuiC,iBAAW,GAAI;AACX,aAAK1/E,EAAL,CAAQqhD,gBAAR,CAAyB,gBAAzB,EAA2C,MAAM;AAC7C,eAAKrhD,EAAL,CAAQkuB,aAAR,CAAsB,8BAAtB,EAAsDojB,KAAtD;AACH,SAFD,EAEG,KAFH;AAGH,OA9B6C;;AAgC9C68E,wBAAkB,CAAE91F,EAAF,EAAM;AACpB,YAAIA,EAAE,IAAIA,EAAE,CAACglD,cAAb,EAA6B;AACzBhlD,YAAE,CAACglD,cAAH;AACAtzC,4BAAC,CAAC4hD,WAAF,CAAc,KAAK3rF,EAAL,CAAQkuB,aAAR,CAAsB,cAAtB,CAAd;AACH;;AACD,cAAMkgG,aAAa,GAAG,KAAKpuH,EAAL,CAAQkuB,aAAR,CAAsB,8BAAtB,CAAtB;AACAkgG,qBAAa,CAACpzH,KAAd,GAAsB,EAAtB;AACH,OAvC6C;;AAyC9CusG,qBAAe,CAAElvE,EAAF,EAAM;AACjBA,UAAE,CAACglD,cAAH;AACA,cAAMlwE,IAAI,GAAG,IAAIm3E,QAAJ,CAAajsD,EAAE,CAAC8kD,MAAhB,CAAb;AACA,aAAKn+C,KAAL,CAAWkB,IAAX,CAAgB;AACZ,4BAAkB/yB,IAAI,CAACsX,GAAL,CAAS,gBAAT,CADN;AAEZ,oBAAUtX,IAAI,CAACsX,GAAL,CAAS,aAAT;AAFE,SAAhB;AAIA,aAAK8+D,KAAL,CAAWgB,IAAX;AACH;;AAjD6C,KAAtB,CAA5B;AAoDApxC,0BAAS,CAACk7E,cAAV,GAA2Bl7E,sBAAS,CAACstD,cAAV,CAAyBn/D,MAAzB,CAAgC;AACvDrhC,aAAO,EAAE,KAD8C;AAEvDolC,YAAM,EAAE;AACJ,gCAAwB,kBADpB;AAEJ,iCAAyB,uBAFrB;AAGJ,yBAAiB;AAHb,OAF+C;;AAQvD3O,gBAAU,GAAI;AACV,aAAKqP,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,QAA1B,EAAoC,KAAKugD,MAAzC;AACA,aAAKx5C,QAAL,CAAc,KAAK/G,KAAL,CAAWytB,KAAzB,EAAgC,QAAhC,EAA0C,KAAK8yB,MAA/C;AACH,OAXsD;;AAavDE,YAAM,GAAI;AACN,cAAMkpC,WAAW,GAAG,KAAK3pF,KAAL,CAAWva,GAAX,CAAe,QAAf,KAA4B,SAAhD;AACA,eAAO6pG,OAAW,CAACl0H,MAAM,CAACsmC,MAAP,CACf,KAAK1B,KAAL,CAAWmB,MAAX,EADe,EAEf,KAAKnB,KAAL,CAAWytB,KAAX,CAAiBtsB,MAAjB,EAFe,EAEY;AAC3BwoF,qBAD2B;AAE3B,sBAAY,KAAK3pF,KAAL,CAAWytB,KAAX,CAAiBhoC,GAAjB,CAAqB,UAArB,KAAoC0uB,sBAAS,CAACsB,QAF/B;AAG3B,mCAAyBpc,EAAE,IAAI,KAAKwzF,qBAAL,CAA2BxzF,EAA3B,CAHJ;AAI3B,4BAAkB,KAAK2G,KAAL,CAAWva,GAAX,CAAe,gBAAf,KACE04B,KAAE,CAAC,WAAD,EAAc,KAAKoxE,eAAL,CAAqB5F,WAArB,CAAd;AALK,SAFZ,CAAD,CAAlB;AASH,OAxBsD;;AA0BvDjpC,iBAAW,GAAI;AACX,aAAK0T,YAAL;AACH,OA5BsD;;AA8BvDo7B,sBAAgB,CAAEn2F,EAAF,EAAM;AAClBA,UAAE,CAACglD,cAAH;;AACA,YAAI,KAAKoxC,aAAL,KAAuB3tH,SAA3B,EAAsC;AAClC,eAAK2tH,aAAL,GAAqB,IAAIt7E,sBAAS,CAACu6E,YAAd,CAA2B;AAAC1uF,iBAAK,EAAE,KAAKA;AAAb,WAA3B,CAArB;AACH;;AACD,aAAKyvF,aAAL,CAAmB72E,IAAnB,CAAwBvf,EAAxB;AACH,OApCsD;;AAsCvDq2F,2BAAqB,CAAEr2F,EAAF,EAAM;AACvBA,UAAE,CAACglD,cAAH;;AACA,YAAI,KAAKsxC,YAAL,KAAsB7tH,SAA1B,EAAqC;AACjC,eAAK6tH,YAAL,GAAoB,IAAIx7E,sBAAS,CAAC86E,eAAd,CAA8B;AAACjvF,iBAAK,EAAE,KAAKA;AAAb,WAA9B,CAApB;AACH;;AACD,aAAK2vF,YAAL,CAAkB/2E,IAAlB,CAAuBvf,EAAvB;AACH,OA5CsD;;AA8CvDwzF,2BAAqB,CAACxzF,EAAD,EAAK;AACtBA,UAAE,CAACglD,cAAH;;AACA,YAAI,KAAKuxC,mBAAL,KAA6B9tH,SAAjC,EAA4C;AACxC,eAAK8tH,mBAAL,GAA2B,IAAIC,oBAAJ,CAAsB;AAAC7vF,iBAAK,EAAE,KAAKA,KAAb;AAAoBmU,6CAASA;AAA7B,WAAtB,CAA3B;AACH;;AACD,aAAKy7E,mBAAL,CAAyBh3E,IAAzB,CAA8Bvf,EAA9B;AACH,OApDsD;;AAsDvDy2F,YAAM,CAAEz2F,EAAF,EAAM;AACRA,UAAE,CAACglD,cAAH;AACA,cAAMr4E,MAAM,GAAGqkE,OAAO,CAAClsB,KAAE,CAAC,mCAAD,CAAH,CAAtB;;AACA,YAAIn4C,MAAM,KAAK,IAAf,EAAqB;AACjBsuC,2BAAG,CAACnsC,IAAJ,CAAS4/C,MAAT;AACH;AACJ,OA5DsD;;AA8DvDwnE,qBAAe,CAAE19C,IAAF,EAAQ;AACnB,YAAIA,IAAI,KAAK,MAAb,EAAqB;AACjB,iBAAO1zB,KAAE,CAAC,QAAD,CAAT;AACH,SAFD,MAEO,IAAI0zB,IAAI,KAAK,KAAb,EAAoB;AACvB,iBAAO1zB,KAAE,CAAC,MAAD,CAAT;AACH,SAFM,MAEA,IAAI0zB,IAAI,KAAK,IAAb,EAAmB;AACtB,iBAAO1zB,KAAE,CAAC,eAAD,CAAT;AACH,SAFM,MAEA,IAAI0zB,IAAI,KAAK,MAAb,EAAqB;AACxB,iBAAO1zB,KAAE,CAAC,MAAD,CAAT;AACH,SAFM,MAEA,IAAI0zB,IAAI,KAAK,SAAb,EAAwB;AAC3B,iBAAO1zB,KAAE,CAAC,SAAD,CAAT;AACH,SAFM,MAEA;AACH,iBAAOA,KAAE,CAAC0zB,IAAD,CAAF,IAAY1zB,KAAE,CAAC,QAAD,CAArB;AACH;AACJ;;AA5EsD,KAAhC,CAA3B;AAgFA;;AACA7J,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,2BAAd,EAA2C,MAAM8pC,IAAN,IAAc;AACrD,YAAM/7B,iBAAG,CAAC1B,SAAJ,CAAc,mBAAd,CAAN;AACAuB,4BAAS,CAAC47E,cAAV,GAA2B,IAAI57E,sBAAS,CAACk7E,cAAd,CAA6B;AAAC,iBAASl7E,sBAAS,CAACsf;AAApB,OAA7B,CAA3B;AACA4c,UAAI,CAACrvE,EAAL,CAAQqhF,qBAAR,CAA8B,YAA9B,EAA4CluC,sBAAS,CAAC47E,cAAV,CAAyBxvC,MAAzB,GAAkCv/E,EAA9E;AACH,KAJD;AAKH;;AAjPoC,CAAzC,E;;ACtBwC;AACI;AACJ;AACL;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,KAAK;AAChB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,UAAS,CAAC,iBAAO,UAAU,UAAS,mBAAmB,YAAW;AAC3E;;AAEe,2DAAM,EAAC;;;AC1CtB;AACA;AACA,IAAI,oBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA,eAAe,oBAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe,wDAAS,EAAC;;;AC3Be;AACU;AACb;;AAErC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA,2CAA2C,eAAc;AACzD;AACA;AACA;AACA,YAAY,kBAAQ;AACpB;AACA;AACA;AACA,KAAK;AACL,YAAY,kBAAQ;AACpB;AACA,yDAAyD,kBAAQ;AACjE,WAAW,UAAS;AACpB;AACA;;AAEe,4DAAW,EAAC;;;AC7BiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAW;;AAER,yDAAK,EAAC;;;;;;;;;;;;;;;AC7CrB;;;;;;AAKA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM;AAAE1E,SAAF;AAAW+vC,QAAX;AAAmBlwC,QAAnB;AAA2BM,KAA3B;AAAgCD,MAAIA;AAApC,IAAyCg7B,QAAQ,CAAC20B,GAAxD;AACA,MAAMphB,gBAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;AAEAwB,sBAAO,CAACiE,YAAR,CAAqB,kBAArB,EAAyCjE,sBAAO,CAACM,EAAR,CAAWy3C,KAAX,GAAiB,aAA1D;AACA/3C,sBAAO,CAACiE,YAAR,CAAqB,oBAArB,EAA2CjE,sBAAO,CAACM,EAAR,CAAWy3C,KAAX,GAAiB,eAA5D;AACA/3C,sBAAO,CAACiE,YAAR,CAAqB,mBAArB,EAA0CjE,sBAAO,CAACM,EAAR,CAAWy3C,KAAX,GAAiB,cAA3D;AACA/3C,sBAAO,CAACiE,YAAR,CAAqB,eAArB,EAAsCjE,sBAAO,CAACM,EAAR,CAAWy3C,KAAX,GAAiB,UAAvD;AAEA,MAAM27E,SAAS,GAAG,CAAlB;AACA,MAAMC,OAAO,GAAG,CAAhB,C,CAAmB;;AACnB,MAAMC,SAAS,GAAG,CAAC,CAAnB;AACA,MAAMC,UAAU,GAAG,GAAnB;AACA,MAAMC,QAAQ,GAAG;AACb,UAAQ,SADK;AAEb,YAAU;AAFG,CAAjB;;AAMA,MAAMC,OAAN,SAAsBx3H,KAAtB,CAA4B;AACxB4N,aAAW,CAAE1B,OAAF,EAAWmP,EAAX,EAAe;AACtB,UAAMnP,OAAN,EAAemP,EAAf;AACA,SAAK9X,IAAL,GAAY,SAAZ;AACA,SAAK8X,EAAL,GAAUA,EAAV;AACH;;AALuB;;AAS5B,SAASo8G,qBAAT,CAAgCthH,MAAhC,EAAwC3S,KAAxC,EAA+C;AAC3C,MAAIA,KAAK,CAAC81D,YAAN,IAAsB91D,KAAK,CAAC+3C,SAAN,CAAgB/8B,GAA1C,EAA+C;AAC3C;AACA,QAAIhb,KAAK,CAAC+3C,SAAN,CAAgBm8E,MAAhB,KAA2B,IAA/B,EAAqC;AACjC,aAAOC,2BAA2B,CAACn0H,KAAD,CAAlC;AACH,KAFD,MAEO;AACH,aAAOo0H,qBAAqB,CAACp0H,KAAD,CAA5B;AACH;AACJ,GAPD,MAOO;AACH,WAAOA,KAAP;AACH;AACJ;;AAGD,SAASq0H,sBAAT,GAAmC;AAC/Bv8E,wBAAS,CAACogB,SAAV,CAAoBhuB,EAApB,CAAuB,KAAvB,EAA8B+R,OAAO,IAAI;AACrCq4E,uBAAmB,CAACr4E,OAAD,CAAnB;;AACA,QAAIA,OAAO,CAAC7yB,GAAR,CAAY,MAAZ,MAAwB0uB,sBAAS,CAACkS,cAAtC,EAAsD;AAClD/N,aAAO,CAACC,SAAR,CAAkBhS,EAAlB,CAAqB,KAArB,EAA4B0G,CAAC,IAAI+xB,eAAe,CAAC1mB,OAAD,EAAUrL,CAAV,CAAhD;AACAqL,aAAO,CAAChvC,QAAR,CAAiBi9B,EAAjB,CAAoB,QAApB,EAA8B,MAAMoqF,mBAAmB,CAACr4E,OAAD,CAAvD;AACH;AACJ,GAND;AAOH;;AAGD,SAASs4E,iBAAT,CAA4BvgD,IAA5B,EAAkC;AAC9BA,MAAI,CAACtpC,QAAL,CAAcspC,IAAI,CAACrwC,KAAL,CAAW+uB,QAAzB,EAAmC,KAAnC,EAA2ChqD,OAAD,IAAa;AACnD,QAAIA,OAAO,CAAC0gB,GAAR,CAAY,cAAZ,KAA+B,CAAC1gB,OAAO,CAAC0gB,GAAR,CAAY,UAAZ,CAApC,EAA6D;AACzD4qD,UAAI,CAACrwC,KAAL,CAAWkB,IAAX,CAAgB,iBAAhB,EAAmC,IAAnC;AACH;AACJ,GAJD;AAKAmvC,MAAI,CAACtpC,QAAL,CAAcspC,IAAI,CAACrwC,KAAnB,EAA0B,wBAA1B,EAAoD,MAAM;AACtD,QAAI,CAACqwC,IAAI,CAACrwC,KAAL,CAAWva,GAAX,CAAe,iBAAf,CAAD,IAAsC4qD,IAAI,CAACrwC,KAAL,CAAWva,GAAX,CAAe,cAAf,CAA1C,EAA0E;AACtE4qD,UAAI,CAACrwC,KAAL,CAAWoB,GAAX,CAAe,cAAf,EAA+B,KAA/B;AACH,KAFD,MAEO;AAAA;;AACH;AACA;AACA,+BAAAivC,IAAI,CAACrvE,EAAL,CAAQkuB,aAAR,CAAsB,uBAAtB,iFAAgD6mE,aAAhD;AACH;AACJ,GARD;AASA1lB,MAAI,CAACtpC,QAAL,CAAcspC,IAAI,CAACrwC,KAAnB,EAA0B,qBAA1B,EAAiD,MAAM;AACnDqwC,QAAI,CAACrvE,EAAL,CAAQkuB,aAAR,CAAsB,uBAAtB,EAA+C6mE,aAA/C;AACH,GAFD;AAGH;;AAGD,MAAM86B,KAAK,GAAGr5F,QAAQ,CAAC20B,GAAT,CAAa0kE,KAAb,GAAqB;AAE/B,QAAMC,cAAN,CAAsBC,SAAtB,EAAiC;AAC7B;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAMC,EAAE,GAAG93C,MAAM,CAAC+3C,eAAP,CAAuB,IAAIpoG,MAAM,CAACoT,UAAX,CAAsB,EAAtB,CAAvB,CAAX;AAAA,UACQ5kB,GAAG,GAAG,MAAM6hE,MAAM,CAACC,MAAP,CAAc+3C,WAAd,CAA0Bd,QAA1B,EAAoC,IAApC,EAA0C,CAAC,SAAD,EAAY,SAAZ,CAA1C,CADpB;AAAA,UAEQe,IAAI,GAAG;AACH,cAAQ,SADL;AAEH,YAAMH,EAFH;AAGH,mBAAab;AAHV,KAFf;AAAA,UAOQ/7E,SAAS,GAAG,MAAM8kC,MAAM,CAACC,MAAP,CAAci4C,OAAd,CAAsBD,IAAtB,EAA4B95G,GAA5B,EAAiC0zB,gBAAC,CAAC4G,mBAAF,CAAsBo/E,SAAtB,CAAjC,CAP1B;AAAA,UAQQ/3H,MAAM,GAAGo7C,SAAS,CAAC9C,UAAV,IAAyB,MAAM,CAAP,IAAa,CAArC,CARjB;AAAA,UASQ+/E,UAAU,GAAGj9E,SAAS,CAAC55B,KAAV,CAAgB,CAAhB,EAAmBxhB,MAAnB,CATrB;AAAA,UAUQkF,GAAG,GAAGk2C,SAAS,CAAC55B,KAAV,CAAgBxhB,MAAhB,CAVd;AAAA,UAWQs4H,YAAY,GAAG,MAAMp4C,MAAM,CAACC,MAAP,CAAco4C,SAAd,CAAwB,KAAxB,EAA+Bl6G,GAA/B,CAX7B;AAaA,WAAO;AACH,aAAOi6G,YADJ;AAEH,aAAOpzH,GAFJ;AAGH,qBAAe6sC,gBAAC,CAACoG,iBAAF,CAAoBmgF,YAApB,EAAkCpzH,GAAlC,CAHZ;AAIH,iBAAW6sC,gBAAC,CAAC8G,mBAAF,CAAsBw/E,UAAtB,CAJR;AAKH,YAAMtmF,gBAAC,CAAC8G,mBAAF,CAAsBm/E,EAAtB;AALH,KAAP;AAOH,GAjC8B;;AAmC/B,QAAMQ,cAAN,CAAsB/2G,GAAtB,EAA2B;AACvB,UAAMg3G,OAAO,GAAG,MAAMv4C,MAAM,CAACC,MAAP,CAAcu4C,SAAd,CAAwB,KAAxB,EAA+Bj3G,GAAG,CAACpD,GAAnC,EAAwC+4G,QAAxC,EAAkD,IAAlD,EAAwD,CAAC,SAAD,EAAW,SAAX,CAAxD,CAAtB;AACA,UAAMuB,MAAM,GAAG5mF,gBAAC,CAACoG,iBAAF,CAAoBpG,gBAAC,CAACgH,mBAAF,CAAsBt3B,GAAG,CAACsrE,OAA1B,CAApB,EAAwDtrE,GAAG,CAACvc,GAA5D,CAAf;AACA,UAAMizH,IAAI,GAAG;AACT,cAAQ,SADC;AAET,YAAMpmF,gBAAC,CAACgH,mBAAF,CAAsBt3B,GAAG,CAACu2G,EAA1B,CAFG;AAGT,mBAAab;AAHJ,KAAb;AAKA,WAAOplF,gBAAC,CAAC0G,mBAAF,CAAsB,MAAMynC,MAAM,CAACC,MAAP,CAAcy4C,OAAd,CAAsBT,IAAtB,EAA4BM,OAA5B,EAAqCE,MAArC,CAA5B,CAAP;AACH;;AA5C8B,CAAnC;;AA+CA,SAASE,gBAAT,CAA2B5tH,GAA3B,EAAgC6D,EAAhC,EAAoC;AAChC,QAAMstB,OAAO,GAAG,IAAI08F,SAAS,CAACC,qBAAd,CAAoC9tH,GAApC,EAAyC6D,EAAzC,CAAhB;AACA,SAAO,IAAI+gB,MAAM,CAACipG,SAAP,CAAiBE,aAArB,CAAmC79E,sBAAS,CAACK,WAA7C,EAA0Dpf,OAA1D,CAAP;AACH;;AAED,eAAe68F,6BAAf,CAA8C51H,KAA9C,EAAqD61H,WAArD,EAAkE;AAC9D,QAAM99E,SAAS,GAAG/3C,KAAK,CAAC+3C,SAAxB;;AACA,QAAM4vD,UAAU,GAAG7vD,sBAAS,CAACg+E,WAAV,CAAsBC,aAAtB,CAAoC/1H,KAAK,CAAC0L,IAA1C,CAAnB;;AACA,QAAMi8F,UAAU,CAACquB,gBAAjB;AAEA,MAAI3uB,MAAM,GAAGM,UAAU,CAACv+E,GAAX,CAAe2uB,SAAS,CAACG,SAAzB,CAAb;;AACA,MAAI,CAACmvD,MAAL,EAAa;AACTA,UAAM,GAAG,MAAMM,UAAU,CAACD,OAAX,CAAmBl2E,MAAnB,CAA0B;AAAC,YAAMumB,SAAS,CAACG,SAAjB;AAA4B,aAAOl4C,KAAK,CAAC0L;AAAzC,KAA1B,EAA0E;AAAC,iBAAW;AAAZ,KAA1E,CAAf;AACH;;AACD,MAAIqsC,SAAS,CAAC2xC,OAAd,EAAuB;AACnB,UAAM1uE,GAAG,GAAG66G,WAAW,CAAC13G,KAAZ,CAAkB,CAAlB,EAAqB,EAArB,CAAZ;AACA,UAAMtc,GAAG,GAAGg0H,WAAW,CAAC13G,KAAZ,CAAkB,EAAlB,CAAZ;AACA,UAAMxU,MAAM,GAAG,MAAM6qH,KAAK,CAACW,cAAN,CAAqBp2H,MAAM,CAACsmC,MAAP,CAAc0S,SAAd,EAAyB;AAAC,aAAO/8B,GAAR;AAAa,aAAOnZ;AAApB,KAAzB,CAArB,CAArB;AACAwlG,UAAM,CAACxiE,IAAP,CAAY,QAAZ,EAAsB,IAAtB;AACA,WAAOl7B,MAAP;AACH;AACJ;;AAED,SAASssH,4BAAT,CAAuC1uH,CAAvC,EAA0C;AACtC,MAAI0wC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,UAAjB,MAAiC,OAArC,EAA8C;AAC1C,WAAO;AACH,oBAAc04B,KAAE,CAAC,oEAAD,CAAF,cAA+Ev6C,CAAC,CAACxH,IAAjF,cAAyFwH,CAAC,CAACmB,OAA3F,CADX;AAEH,oBAAc,YAFX;AAGH,sBAAgB,IAHb;AAIH,kBAAY,IAJT;AAKH,cAAQ;AALL,KAAP;AAOH,GARD,MAQO;AACH,WAAO,EAAP;AACH;AACJ;;AAED,eAAeyrH,2BAAf,CAA4Cn0H,KAA5C,EAAmD;AAC/C,QAAMk2H,cAAc,GAAGV,gBAAgB,CAACx1H,KAAK,CAAC0L,IAAP,EAAailB,QAAQ,CAAC3wB,KAAK,CAAC+3C,SAAN,CAAgBG,SAAjB,EAA4B,EAA5B,CAArB,CAAvC;AACA,QAAMl9B,GAAG,GAAG0zB,gBAAC,CAACgH,mBAAF,CAAsB11C,KAAK,CAAC+3C,SAAN,CAAgB/8B,GAAtC,CAAZ;AACA,MAAI66G,WAAJ;;AACA,MAAI;AACAA,eAAW,GAAG,MAAMK,cAAc,CAACC,2BAAf,CAA2Cn7G,GAA3C,EAAgD,QAAhD,CAApB;AACH,GAFD,CAEE,OAAOzT,CAAP,EAAU;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAsB,gBAAG,CAACI,KAAJ,WAAa1B,CAAC,CAACxH,IAAf,cAAuBwH,CAAC,CAACmB,OAAzB;AACA,WAAO3J,MAAM,CAACsmC,MAAP,CAAcrlC,KAAd,EAAqBi2H,4BAA4B,CAAC1uH,CAAD,CAAjD,CAAP;AACH,GAvB8C,CAwB/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAI;AACA,UAAMmtH,SAAS,GAAG,MAAMkB,6BAA6B,CAAC51H,KAAD,EAAQ61H,WAAR,CAArD;AACA,UAAM/9E,sBAAS,CAACK,WAAV,CAAsBi+E,sBAAtB,EAAN;AACA,UAAMt+E,sBAAS,CAACK,WAAV,CAAsBk+E,aAAtB,EAAN;;AACA,QAAI3B,SAAJ,EAAe;AACX,aAAO31H,MAAM,CAACsmC,MAAP,CAAcrlC,KAAd,EAAqB;AAAC,qBAAa00H;AAAd,OAArB,CAAP;AACH,KAFD,MAEO;AACH,aAAO31H,MAAM,CAACsmC,MAAP,CAAcrlC,KAAd,EAAqB;AAAC,uBAAe;AAAhB,OAArB,CAAP;AACH;AACJ,GATD,CASE,OAAOuH,CAAP,EAAU;AACRsB,gBAAG,CAACI,KAAJ,WAAa1B,CAAC,CAACxH,IAAf,cAAuBwH,CAAC,CAACmB,OAAzB;AACA,WAAO3J,MAAM,CAACsmC,MAAP,CAAcrlC,KAAd,EAAqBi2H,4BAA4B,CAAC1uH,CAAD,CAAjD,CAAP;AACH;AACJ;;AAED,eAAe6sH,qBAAf,CAAsCp0H,KAAtC,EAA6C;AACzC,QAAMw6C,QAAQ,GAAGx6C,KAAK,CAACo8C,QAAN,GAAiBp8C,KAAK,CAACs2H,aAAvB,GAAuCt2H,KAAK,CAAC0L,IAA9D;;AACA,MAAI,CAAC8uC,QAAL,EAAe;AACXz7C,UAAM,CAACsmC,MAAP,CAAcrlC,KAAd,EAAqB;AACjB,oBAAc8hD,KAAE,CAAC,wFAAD,CADC;AAEjB,oBAAc,YAFG;AAGjB,sBAAgB,KAHC;AAIjB,kBAAY,IAJK;AAKjB,cAAQ;AALS,KAArB;AAOH;;AACD,QAAMo0E,cAAc,GAAGV,gBAAgB,CAACh7E,QAAD,EAAW7pB,QAAQ,CAAC3wB,KAAK,CAAC+3C,SAAN,CAAgBG,SAAjB,EAA4B,EAA5B,CAAnB,CAAvC;AACA,QAAMl9B,GAAG,GAAG0zB,gBAAC,CAACgH,mBAAF,CAAsB11C,KAAK,CAAC+3C,SAAN,CAAgB/8B,GAAtC,CAAZ;;AACA,MAAI;AACA,UAAM66G,WAAW,GAAG,MAAMK,cAAc,CAAC9B,qBAAf,CAAqCp5G,GAArC,EAA0C,QAA1C,CAA1B;AACA,UAAM05G,SAAS,GAAG,MAAMkB,6BAA6B,CAAC51H,KAAD,EAAQ61H,WAAR,CAArD;AACA,WAAO92H,MAAM,CAACsmC,MAAP,CAAcrlC,KAAd,EAAqB;AAAC,mBAAa00H;AAAd,KAArB,CAAP;AACH,GAJD,CAIE,OAAOntH,CAAP,EAAU;AACRsB,gBAAG,CAACI,KAAJ,WAAa1B,CAAC,CAACxH,IAAf,cAAuBwH,CAAC,CAACmB,OAAzB;AACA,WAAO3J,MAAM,CAACsmC,MAAP,CAAcrlC,KAAd,EAAqBi2H,4BAA4B,CAAC1uH,CAAD,CAAjD,CAAP;AACH;AACJ;;AAED,SAASgvH,sBAAT,CAAiC5jH,MAAjC,EAAyC6jH,KAAzC,EAAgD7B,EAAhD,EAAoD;AAChD,OAAK,MAAMj4H,CAAX,IAAgB85H,KAAhB,EAAuB;AACnB,QAAIz3H,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCs3H,KAArC,EAA4C95H,CAA5C,CAAJ,EAAoD;AAChD,YAAMgtF,OAAO,GAAG8sC,KAAK,CAAC95H,CAAD,CAAL,CAASgtF,OAAzB;AACA,YAAM2d,MAAM,GAAGmvB,KAAK,CAAC95H,CAAD,CAAL,CAAS2qG,MAAxB;AACA,YAAM6sB,MAAM,GAAG,KAAKvjG,QAAQ,CAAC+4D,OAAO,CAACl+E,IAAT,EAAe,EAAf,CAA5B;AAEAmH,YAAM,CAAChV,CAAP,CAAS,KAAT,EAAgB;AAAC,eAAO0pG,MAAM,CAACj+E,GAAP,CAAW,IAAX;AAAR,OAAhB,EAA4C3rB,CAA5C,CAA8Cga,IAAI,CAACiyE,OAAO,CAACn2D,IAAT,CAAlD;;AACA,UAAI2gG,MAAJ,EAAY;AACRvhH,cAAM,CAAC3S,KAAP,CAAa;AAAC,oBAAUk0H;AAAX,SAAb;AACH;;AACDvhH,YAAM,CAACnI,EAAP;;AACA,UAAI9N,CAAC,IAAI85H,KAAK,CAAC75H,MAAN,GAAa,CAAtB,EAAyB;AACrBgW,cAAM,CAAChV,CAAP,CAAS,IAAT,EAAeF,CAAf,CAAiBk3H,EAAjB,EAAqBnqH,EAArB,GAA0BA,EAA1B;AACH;AACJ;AACJ;;AACD,SAAO03B,OAAO,CAACC,OAAR,CAAgBxvB,MAAhB,CAAP;AACH;;AAGD,SAAS8jH,WAAT,CAAsBC,SAAtB,EAAiC;AAC7B;;;AAGA,QAAMC,uBAAuB,GAAGD,SAAS,CAAC7jG,aAAV,CAAwB,oBAAxB,CAAhC;AACA,QAAM+jG,0BAA0B,GAAGF,SAAS,CAAC7jG,aAAV,CAAwB,uBAAxB,CAAnC;AACA,QAAMgkG,OAAO,GAAG7mF,qBAAM,2BAA2B0mF,SAA3B,CAAN,CACXhtH,GADW,CACP/E,EAAE,KAAK;AACR,UAAMgsB,QAAQ,CAAChsB,EAAE,CAACmC,YAAH,CAAgB,UAAhB,CAAD,EAA8B,EAA9B,CADN;AAER,WAAOnC,EAAE,CAACyR;AAFF,GAAL,CADK,CAAhB;AAKA,SAAO;AACH,oBAAgBsgH,SAAS,CAAC7jG,aAAV,CAAwB,aAAxB,EAAuCzc,WAAvC,CAAmDgK,IAAnD,EADb;AAEH,qBAAiB;AACb,YAAMuQ,QAAQ,CAACgmG,uBAAuB,CAAC7vH,YAAxB,CAAqC,gBAArC,CAAD,EAAyD,EAAzD,CADD;AAEb,oBAAc6vH,uBAAuB,CAACvgH,WAFzB;AAGb,mBAAawgH,0BAA0B,CAACxgH;AAH3B,KAFd;AAOH,eAAWygH;AAPR,GAAP;AASH;;AAED,eAAeC,mBAAf,CAAoCzvB,MAApC,EAA4C;AAAA;;AACxC,qBAAIA,MAAM,CAACj+E,GAAP,CAAW,QAAX,CAAJ,gDAAI,YAAsBk+E,WAA1B,EAAuC;AACnC;AACH;;AACD,QAAMyvB,MAAM,GAAG,MAAM1vB,MAAM,CAAC2vB,SAAP,EAArB;AACAD,QAAM,CAAC,aAAD,CAAN,GAAwBroF,gBAAC,CAACwG,gBAAF,CAAmBxG,gBAAC,CAACgH,mBAAF,CAAsBqhF,MAAM,CAAC,cAAD,CAA5B,CAAnB,CAAxB;AACA1vB,QAAM,CAACxiE,IAAP,CAAY,QAAZ,EAAsBkyF,MAAtB;AACA1vB,QAAM,CAACt+D,OAAP,CAAe,eAAf,EAPwC,CAOP;AACpC;;AAGD,eAAekuF,oBAAf,CAAqCrvH,GAArC,EAA0C;AACtC,QAAMqwC,iBAAG,CAAC1B,SAAJ,CAAc,kBAAd,CAAN;;AACA,QAAMoxD,UAAU,GAAG7vD,sBAAS,CAACg+E,WAAV,CAAsB1sG,GAAtB,CAA0BxhB,GAA1B,KAAkCkwC,sBAAS,CAACg+E,WAAV,CAAsBtkG,MAAtB,CAA6B;AAAC,WAAO5pB;AAAR,GAA7B,CAArD;;AACA,QAAM+/F,UAAU,CAACuvB,YAAX,EAAN;AACA,SAAOvvB,UAAU,CAACD,OAAlB;AACH;;AAED,SAASyvB,gBAAT,GAA6B;AACzB;AACA,QAAMC,YAAY,GAAGt/E,sBAAS,CAACg+E,WAAV,CAAsB1sG,GAAtB,CAA0B0uB,sBAAS,CAACsB,QAApC,EAA8CsuD,OAA9C,CAAsDznD,KAAtD,CAA4D,IAA5D,CAArB;;AACA,MAAI/H,SAAS,GAAGu9E,SAAS,CAAC4B,SAAV,CAAoBC,sBAApB,EAAhB,CAHyB,CAKzB;AACA;;AACA,MAAI56H,CAAC,GAAG,CAAR;;AACA,SAAO06H,YAAY,CAACh7F,QAAb,CAAsB8b,SAAtB,CAAP,EAAyC;AACrCA,aAAS,GAAGu9E,SAAS,CAAC4B,SAAV,CAAoBC,sBAApB,EAAZ;AACA56H,KAAC;;AACD,QAAIA,CAAC,KAAK,EAAV,EAAc;AACV,YAAM,IAAIF,KAAJ,CAAU,uCAAV,CAAN;AACH;AACJ;;AACD,SAAO07C,SAAS,CAAC3tC,QAAV,EAAP;AACH;;AAED,eAAegtH,YAAf,CAA6BlwB,MAA7B,EAAqC;AACjC;AACA;AACA;AACA,QAAMtuE,OAAO,GAAG,IAAI08F,SAAS,CAACC,qBAAd,CAAoCruB,MAAM,CAACj+E,GAAP,CAAW,KAAX,CAApC,EAAuDi+E,MAAM,CAACj+E,GAAP,CAAW,IAAX,CAAvD,CAAhB;AACA,QAAMouG,cAAc,GAAG,IAAI/B,SAAS,CAACgC,cAAd,CAA6B3/E,sBAAS,CAACK,WAAvC,EAAoDpf,OAApD,CAAvB;AACA,QAAMm7F,MAAM,GAAG7sB,MAAM,CAACqwB,eAAP,EAAf;AACA,QAAMX,MAAM,GAAG,MAAM1vB,MAAM,CAAC2vB,SAAP,EAArB;AAEA,SAAOQ,cAAc,CAACG,aAAf,CAA6B;AAChC,sBAAkBhnG,QAAQ,CAAC02E,MAAM,CAACj+E,GAAP,CAAW,IAAX,CAAD,EAAmB,EAAnB,CADM;AAEhC,mBAAeslB,gBAAC,CAACgH,mBAAF,CAAsBqhF,MAAM,CAACa,YAA7B,CAFiB;AAGhC,oBAAgB;AACZ,eAASb,MAAM,CAACc,aAAP,CAAqBpsH,EADlB;AACsB;AAClC,mBAAaijC,gBAAC,CAACgH,mBAAF,CAAsBqhF,MAAM,CAACc,aAAP,CAAqBC,UAA3C,CAFD;AAGZ,mBAAappF,gBAAC,CAACgH,mBAAF,CAAsBqhF,MAAM,CAACc,aAAP,CAAqBE,SAA3C;AAHD,KAHgB;AAQhC,cAAU;AACN,eAAS7D,MAAM,CAACzoH,EADV;AACc;AACpB,mBAAaijC,gBAAC,CAACgH,mBAAF,CAAsBw+E,MAAM,CAACl5G,GAA7B;AAFP;AARsB,GAA7B,CAAP;AAaH;;AAED,eAAeg9G,UAAf,CAA2B3wB,MAA3B,EAAmC;AAC/B,MAAI,CAACA,MAAM,CAACj+E,GAAP,CAAW,QAAX,CAAL,EAA2B;AACvBvgB,gBAAG,CAACI,KAAJ,uDAAyDo+F,MAAM,CAACj+E,GAAP,CAAW,IAAX,CAAzD;AACA,WAAO,IAAP;AACH;;AACD,QAAM2P,OAAO,GAAG,IAAI08F,SAAS,CAACC,qBAAd,CAAoCruB,MAAM,CAACj+E,GAAP,CAAW,KAAX,CAApC,EAAuDi+E,MAAM,CAACj+E,GAAP,CAAW,IAAX,CAAvD,CAAhB;AACA,QAAMsK,OAAO,GAAG,MAAMokB,sBAAS,CAACK,WAAV,CAAsB8/E,WAAtB,CAAkCl/F,OAAO,CAACxuB,QAAR,EAAlC,CAAtB;;AACA,MAAImpB,OAAJ,EAAa;AACT,WAAOA,OAAP;AACH,GAFD,MAEO;AACH,QAAI;AACA,YAAMA,OAAO,GAAG,MAAM6jG,YAAY,CAAClwB,MAAD,CAAlC;AACA,aAAO3zE,OAAP;AACH,KAHD,CAGE,OAAOnsB,CAAP,EAAU;AACRsB,kBAAG,CAACI,KAAJ,uDAAyDo+F,MAAM,CAACj+E,GAAP,CAAW,IAAX,CAAzD;AACAvgB,kBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACA,aAAO,IAAP;AACH;AACJ;AACJ;;AAED,SAAS2wH,sBAAT,CAAiCvlH,MAAjC,EAAyC;AACrC,QAAMwlH,QAAQ,GAAGnoF,qBAAM,UAAUr9B,MAAV,CAAN,CAAwB0C,GAAxB,EAAjB;;AACA,MAAI,CAAC8iH,QAAD,IAAa,CAACA,QAAQ,CAACrxH,YAAT,CAAsB,MAAtB,EAA8B21B,UAA9B,CAAyCx8B,sBAAO,CAACM,EAAR,CAAW63H,aAApD,CAAlB,EAAsF;AAClF;AACH;;AACD,QAAMlgF,SAAS,GAAGigF,QAAQ,CAACrxH,YAAT,CAAsB,MAAtB,EAA8BG,KAA9B,CAAoC,GAApC,EAAyC,CAAzC,CAAlB;AACA,QAAMW,GAAG,GAAG+K,MAAM,CAAC7L,YAAP,CAAoB,MAApB,CAAZ;AACA,QAAM4vH,SAAS,GAAG1mF,qBAAM,kBAAkBmoF,QAAlB,CAAN,CAAkC9iH,GAAlC,EAAlB;;AACA,QAAMsyF,UAAU,GAAG7vD,sBAAS,CAACg+E,WAAV,CAAsBC,aAAtB,CAAoCnuH,GAApC,CAAnB;;AACA,QAAMy/F,MAAM,GAAGM,UAAU,CAACD,OAAX,CAAmBt+E,GAAnB,CAAuB8uB,SAAvB,KAAqCyvD,UAAU,CAACD,OAAX,CAAmBl2E,MAAnB,CAA0B;AAAC,UAAM0mB,SAAP;AAAkB,WAAOtwC;AAAzB,GAA1B,CAApD;AACAy/F,QAAM,CAACxiE,IAAP,CAAY;AAAC,cAAU4xF,WAAW,CAACC,SAAD;AAAtB,GAAZ;AACH;;AAED,SAAS2B,uBAAT,CAAkC1lH,MAAlC,EAA0C;AACtC,QAAMwlH,QAAQ,GAAGnoF,qBAAM,wBAAgB/vC,sBAAO,CAACM,EAAR,CAAW+3H,gBAA3B,UAAiD3lH,MAAjD,CAAN,CAA+D0C,GAA/D,EAAjB;;AACA,MAAI,CAAC8iH,QAAL,EAAe;AACX;AACH;;AACD,QAAMI,eAAe,+BAAuBt4H,sBAAO,CAACM,EAAR,CAAWy3C,KAAlC,eAArB;AACA,QAAMwgF,UAAU,GAAGxoF,qBAAM,CAACuoF,eAAD,EAAkBJ,QAAlB,CAAN,CAAkCzuH,GAAlC,CAAsC9L,CAAC,IAAIA,CAAC,CAACkJ,YAAF,CAAe,IAAf,CAA3C,CAAnB;AACA,QAAMc,GAAG,GAAG+K,MAAM,CAAC7L,YAAP,CAAoB,MAApB,CAAZ;;AACA,QAAM6gG,UAAU,GAAG7vD,sBAAS,CAACg+E,WAAV,CAAsBC,aAAtB,CAAoCnuH,GAApC,CAAnB;;AACA,QAAM8/F,OAAO,GAAGC,UAAU,CAACD,OAA3B;AACA,QAAM+wB,WAAW,GAAG15E,oBAAU,CAAC2oD,OAAO,CAACznD,KAAR,CAAc,IAAd,CAAD,EAAsBu4E,UAAtB,CAA9B;AAEAC,aAAW,CAAC7kH,OAAZ,CAAoBnI,EAAE,IAAI;AACtB,QAAI7D,GAAG,KAAKkwC,sBAAS,CAACsB,QAAlB,IAA8B3tC,EAAE,KAAKqsC,sBAAS,CAACK,WAAV,CAAsB/uB,GAAtB,CAA0B,WAA1B,CAAzC,EAAiF;AAC7E,aAD6E,CACtE;AACV;;AACDs+E,WAAO,CAACt+E,GAAR,CAAY3d,EAAZ,EAAgBo5B,IAAhB,CAAqB,QAArB,EAA+B,KAA/B;AACH,GALD;AAMA2zF,YAAU,CAAC5kH,OAAX,CAAmBskC,SAAS,IAAI;AAC5B,UAAMmvD,MAAM,GAAGK,OAAO,CAACt+E,GAAR,CAAY8uB,SAAZ,CAAf;;AACA,QAAImvD,MAAJ,EAAY;AACRA,YAAM,CAACxiE,IAAP,CAAY,QAAZ,EAAsB,IAAtB;AACH,KAFD,MAEO;AACH6iE,aAAO,CAACl2E,MAAR,CAAe;AAAC,cAAM0mB,SAAP;AAAkB,eAAOtwC;AAAzB,OAAf;AACH;AACJ,GAPD;;AAQA,MAAI8mC,gBAAC,CAACiB,aAAF,CAAgB/nC,GAAhB,EAAqBkwC,sBAAS,CAACsB,QAA/B,CAAJ,EAA8C;AAC1C;AACA;AACAuuD,cAAU,CAAC+wB,oBAAX,CAAgCF,UAAhC;AACH;AACJ;;AAED,SAASG,sBAAT,GAAmC;AAC/B;AACA7gF,wBAAS,CAAC5+B,UAAV,CAAqBxG,UAArB,CAAiChK,OAAD,IAAa;AACzC,QAAI;AACA,UAAIsnC,qBAAM,yBAAiB/vC,sBAAO,CAACM,EAAR,CAAWkuE,MAA5B,gBAA8C/lE,OAA9C,CAAN,CAA6D/L,MAAjE,EAAyE;AACrE07H,+BAAuB,CAAC3vH,OAAD,CAAvB;AACAwvH,8BAAsB,CAACxvH,OAAD,CAAtB;AACH;AACJ,KALD,CAKE,OAAOnB,CAAP,EAAU;AACRsB,kBAAG,CAACI,KAAJ,CAAU1B,CAAC,CAACmB,OAAZ;AACH;;AACD,WAAO,IAAP;AACH,GAVD,EAUG,IAVH,EAUS,SAVT,EAUoB,UAVpB;AAWH;;AAED,SAASkwH,mBAAT,GAAgC;AAC5B,MAAI9gF,sBAAS,CAACK,WAAV,KAA0B1yC,SAA9B,EAA0C;AACtC,UAAMgG,EAAE,mCAA4BqsC,sBAAS,CAACsB,QAAtC,CAAR;AACAtB,0BAAS,CAACK,WAAV,GAAwB,IAAIL,sBAAS,CAAC+gF,UAAd,CAAyB;AAAC,YAAMptH;AAAP,KAAzB,CAAxB;AACAqsC,0BAAS,CAACK,WAAV,CAAsBlF,cAAtB,GAAuC6E,sBAAS,CAACkT,WAAV,CAAsBv/C,EAAtB,CAAvC;AACH;;AACD,SAAOqsC,sBAAS,CAACK,WAAV,CAAsB2gF,YAAtB,EAAP;AACH;;AAGD,SAASC,gBAAT,GAA6B;AACzB,SAAO,IAAI72F,OAAJ,CAAY,CAAClqB,OAAD,EAAU/O,KAAV,KAAoB6uC,sBAAS,CAACg+E,WAAV,CAAsBpsF,KAAtB,CAA4B;AAAC1xB,WAAD;AAAU,aAAS,CAACnE,CAAD,EAAItM,CAAJ,KAAU0B,KAAK,CAAC1B,CAAD;AAAlC,GAA5B,CAAhC,CAAP;AACH;;AAED,eAAeyxH,eAAf,GAAkC;AAC9B,QAAMD,gBAAgB,EAAtB;;AACA,MAAIE,cAAc,GAAGnhF,sBAAS,CAACg+E,WAAV,CAAsB1sG,GAAtB,CAA0B0uB,sBAAS,CAACsB,QAApC,CAArB;;AACA,MAAI6/E,cAAJ,EAAoB;AAChBA,kBAAc,CAAC/B,YAAf;AACH,GAFD,MAEO;AACH+B,kBAAc,GAAG,MAAMnhF,sBAAS,CAACg+E,WAAV,CAAsBtkG,MAAtB,CAA6B;AAAC,aAAOsmB,sBAAS,CAACsB;AAAlB,KAA7B,EAA0D;AAAC,iBAAW;AAAZ,KAA1D,CAAvB;AACH;;AACD,SAAO6/E,cAAc,CAACjD,gBAAtB;AACH;;AAED,eAAekD,SAAf,GAA4B;AACxB,MAAI,CAACphF,sBAAS,CAACvV,MAAV,CAAiBnZ,GAAjB,CAAqB,SAArB,CAAD,IAAoC6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,uBAAjB,CAAxC,EAAmF;AAC/EvgB,gBAAG,CAACO,IAAJ,CAAS,mGAAT;AACA;AACH;;AACD0uC,wBAAS,CAACg+E,WAAV,GAAwB,IAAIh+E,sBAAS,CAACqhF,WAAd,EAAxB;AACA,QAAM1tH,EAAE,kCAA2BqsC,sBAAS,CAACsB,QAArC,CAAR;AACAtB,wBAAS,CAACg+E,WAAV,CAAsB7iF,cAAtB,GAAuC6E,sBAAS,CAACkT,WAAV,CAAsBv/C,EAAtB,CAAvC;;AAEA,MAAI;AACA,UAAMutH,eAAe,EAArB;AACA,UAAMJ,mBAAmB,EAAzB;AACA,UAAM9gF,sBAAS,CAACK,WAAV,CAAsBk+E,aAAtB,EAAN;AACH,GAJD,CAIE,OAAO9uH,CAAP,EAAU;AACRsB,gBAAG,CAACI,KAAJ,CAAU,oCAAV;AACAJ,gBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACA;AACH;AACD;;;;;;AAIA0wC,mBAAG,CAAClP,OAAJ,CAAY,kBAAZ;AACH;;AAED,eAAe45B,eAAf,CAAgC0B,QAAhC,EAA0C3B,QAA1C,EAAoD;AAChD,MAAIA,QAAQ,CAACsK,MAAT,MAAqB,CAAC3I,QAAQ,CAACp3D,QAAT,CAAkBmc,GAAlB,CAAsB,cAAtB,CAAtB,IAA+D,CAACi7C,QAAQ,CAACp3D,QAAT,CAAkBmc,GAAlB,CAAsB,aAAtB,CAApE,EAA0G;AACtG;AACH;;AACD,MAAIi7C,QAAQ,CAACj7C,GAAT,CAAa,cAAb,CAAJ,EAAkC;AAC9B,UAAM6qD,SAAS,GAAG,MAAMn8B,sBAAS,CAACshF,sBAAV,CAAiC12D,QAAQ,CAACt5C,GAAT,CAAa,KAAb,CAAjC,CAAxB;;AACA,QAAI,CAAC6qD,SAAL,EAAgB;AACZ5P,cAAQ,CAAC9Q,aAAT,CAAuB;AACnB,mBAAWzR,KAAE,CAAC,+DACE,6DADH,EACkE4gB,QAAQ,CAACt5C,GAAT,CAAa,MAAb,CADlE,CADM;AAGnB,gBAAQ;AAHW,OAAvB;AAKAi7C,cAAQ,CAACx/B,IAAT,CAAc;AAAC,wBAAgB,KAAjB;AAAwB,2BAAmB;AAA3C,OAAd;AACH;AACJ;AACJ;;AAED,eAAeyvF,mBAAf,CAAoCr4E,OAApC,EAA6C;AACzC,MAAIg4B,SAAJ;;AACA,MAAIh4B,OAAO,CAAC7yB,GAAR,CAAY,MAAZ,MAAwB0uB,sBAAS,CAACkS,cAAtC,EAAsD;AAClD,UAAM/R,iBAAG,CAAC1B,SAAJ,CAAc,kBAAd,CAAN;AACA09B,aAAS,GAAGh4B,OAAO,CAAChvC,QAAR,CAAiBmc,GAAjB,CAAqB,cAArB,KAAwC6yB,OAAO,CAAChvC,QAAR,CAAiBmc,GAAjB,CAAqB,aAArB,CAApD;AACH,GAHD,MAGO,IAAI6yB,OAAO,CAAC7yB,GAAR,CAAY,MAAZ,MAAwB0uB,sBAAS,CAACiS,iBAAtC,EAAyD;AAC5DkqB,aAAS,GAAG,MAAMn8B,sBAAS,CAACshF,sBAAV,CAAiCn9E,OAAO,CAAC7yB,GAAR,CAAY,KAAZ,CAAjC,CAAlB;AACH;;AACD6yB,SAAO,CAAClX,GAAR,CAAY,iBAAZ,EAA+BkvC,SAA/B;;AACA,MAAIA,SAAS,IAAIh8B,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,eAAjB,CAAjB,EAAoD;AAChD6yB,WAAO,CAAClX,GAAR,CAAY,cAAZ,EAA4B,IAA5B;AACH;AACJ;;AAED,SAASs0F,WAAT,CAAsBr8F,EAAtB,EAA0B;AACtBA,IAAE,CAACmlD,eAAH;AACAnlD,IAAE,CAACglD,cAAH;AACA,QAAMs3C,UAAU,GAAG5qF,gBAAC,CAACmzC,QAAF,CAAW7kD,EAAE,CAAC8kD,MAAd,EAAsB,uBAAtB,CAAnB;;AACA,MAAI,CAACw3C,UAAU,CAAC31F,KAAX,CAAiBva,GAAjB,CAAqB,iBAArB,CAAL,EAA8C;AAC1C,QAAIspC,QAAJ;;AACA,QAAI4mE,UAAU,CAAC31F,KAAX,CAAiBva,GAAjB,CAAqB,MAArB,MAAiC0uB,sBAAS,CAACkS,cAA/C,EAA+D;AAC3D0I,cAAQ,GAAG,CAAC5Q,KAAE,CACV,yDACA,gFAFU,CAAH,CAAX;AAIH,KALD,MAKO;AACH4Q,cAAQ,GAAG,CAAC5Q,KAAE,CACV,yFADU,EAEVw3E,UAAU,CAAC31F,KAAX,CAAiB6X,OAAjB,CAAyB2V,cAAzB,EAFU,CAAH,CAAX;AAIH;;AACD,WAAOlZ,iBAAG,CAAC+3B,KAAJ,CAAU,OAAV,EAAmBluB,KAAE,CAAC,OAAD,CAArB,EAAgC4Q,QAAhC,CAAP;AACH;;AACD4mE,YAAU,CAAC31F,KAAX,CAAiBkB,IAAjB,CAAsB;AAAC,oBAAgB,CAACy0F,UAAU,CAAC31F,KAAX,CAAiBva,GAAjB,CAAqB,cAArB;AAAlB,GAAtB;AACH;;AAGD,SAASmwG,qBAAT,CAAgCD,UAAhC,EAA4CjyC,OAA5C,EAAqD;AACjD,QAAM1jD,KAAK,GAAG21F,UAAU,CAAC31F,KAAzB;;AACA,QAAMsvC,MAAM,GAAGtvC,KAAK,CAACva,GAAN,CAAU,MAAV,MAAsB0uB,sBAAS,CAACkS,cAA/C;;AACA,MAAIzD,KAAJ;;AACA,MAAI0sB,MAAM,IAAItvC,KAAK,CAACva,GAAN,CAAU,iBAAV,CAAd,EAA4C;AACxC,UAAMowG,cAAc,GAAG13E,KAAE,CAAC,sCAAD,CAAzB;;AACA,UAAM23E,cAAc,GAAG33E,KAAE,CAAC,6BAAD,CAAzB;;AACAyE,SAAK,GAAG5iB,KAAK,CAACva,GAAN,CAAU,cAAV,IAA4BqwG,cAA5B,GAA6CD,cAArD;AACH,GAJD,MAIO;AACHjzE,SAAK,GAAGzE,KAAE,CAAC,kEACC,2CADF,CAAV;AAEH;;AAEDulC,SAAO,CAAChgF,IAAR,CAAanB,aAAb,kCAEqBqgD,KAFrB,EAGwB,CAAC5iB,KAAK,CAACva,GAAN,CAAU,iBAAV,CAHzB,EAIqBiwG,WAJrB,EAK+B11F,KAAK,CAACva,GAAN,CAAU,cAAV,2BAL/B,EAM+B6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,aAAjB,CAN/B,EAOyBua,KAAK,CAACva,GAAN,CAAU,cAAV,8CAPzB;AAWA,SAAOi+D,OAAP;AACH;AAGD;;;;;;;;AAMA,MAAMqyC,mBAAmB,GAAG;AAExBC,YAAU,CAAEjF,SAAF,EAAartB,MAAb,EAAqB;AAC3B,WAAOmuB,gBAAgB,CAACnuB,MAAM,CAACj+E,GAAP,CAAW,KAAX,CAAD,EAAoBi+E,MAAM,CAACj+E,GAAP,CAAW,IAAX,CAApB,CAAhB,CACF2rG,OADE,CACML,SADN,EAEFp3F,IAFE,CAEGosD,OAAO,KAAK;AAAC,iBAAWA,OAAZ;AAAqB,gBAAU2d;AAA/B,KAAL,CAFV,CAAP;AAGH,GANuB;;AAQxBuyB,wBAAsB,CAAEryH,CAAF,EAAK;AACvB,QAAIA,CAAC,CAACxH,IAAF,KAAW,SAAf,EAA0B;AACtB,WAAK8kC,IAAL,CAAU,iBAAV,EAA6B,KAA7B;AAEA,YAAMg1F,QAAQ,GAAG,EAAjB;;AACA,UAAI7pF,qBAAM,kDAA0C/vC,sBAAO,CAACM,EAAR,CAAWo0E,YAArD,UAAuEptE,CAAC,CAACsQ,EAAzE,CAAN,CAAmFlb,MAAvF,EAA+F;AAC3Fk9H,gBAAQ,CAACxyH,IAAT,CACIy6C,KAAE,CAAC,mEACA,yFADD,EAEEv6C,CAAC,CAACsQ,EAAF,CAAK/Q,YAAL,CAAkB,MAAlB,CAFF,CADN;AAKH,OAND,MAMO,IAAIkpC,qBAAM,2EAAyEzoC,CAAC,CAACsQ,EAA3E,CAAN,CAAqFlb,MAAzF,EAAiG;AACpGk9H,gBAAQ,CAACxyH,IAAT,CACIy6C,KAAE,CAAC,wGAAD,EACEv6C,CAAC,CAACsQ,EAAF,CAAK/Q,YAAL,CAAkB,MAAlB,CADF,CADN;AAIH,OALM,MAKA;AACH+yH,gBAAQ,CAACxyH,IAAT,CAAcy6C,KAAE,CAAC,iEAAD,CAAhB;AACA+3E,gBAAQ,CAACxyH,IAAT,CAAcE,CAAC,CAACsQ,EAAF,CAAK6tB,SAAnB;AACH;;AACDuS,uBAAG,CAAC+3B,KAAJ,CAAU,OAAV,EAAmBluB,KAAE,CAAC,OAAD,CAArB,EAAgC+3E,QAAhC;AACAhxH,kBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACH,KArBD,MAqBO,IAAIA,CAAC,CAACuyH,WAAN,EAAmB;AACtB7hF,uBAAG,CAAC+3B,KAAJ,CAAU,OAAV,EAAmBluB,KAAE,CAAC,OAAD,CAArB,EAAgC,CAACv6C,CAAC,CAACmB,OAAH,CAAhC;AACAG,kBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACH,KAHM,MAGA;AACH,YAAMA,CAAN;AACH;AACJ;;AApCuB,CAA5B;AAwCA4zB,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,gBAArB,EAAuC;AAEnCiM,SAAO,CAAEyQ,SAAF,EAAa;AAChB,WAAOtrB,MAAM,CAACipG,SAAP,IACH39E,SAAS,CAACvV,MAAV,CAAiBnZ,GAAjB,CAAqB,SAArB,CADG,IAEH,CAAC6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,uBAAjB,CAFE,IAGH,CAAC0uB,SAAS,CAACG,GAAV,CAAc3c,QAAd,CAAuBlS,GAAvB,CAA2B,qBAA3B,EAAkDgT,QAAlD,CAA2D,gBAA3D,CAHL;AAIH,GAPkC;;AASnCwK,cAAY,EAAE,CAAC,mBAAD,EAAsB,iBAAtB,EAAyC,kBAAzC,CATqB;AAWnCL,WAAS,EAAE;AAEP8rF,gBAAY,EAAE;AACVroF,YAAM,EAAE;AACJ,mCAA2B,WADvB;AAEJ,kCAA0B,2BAFtB;AAGJ,uCAA+B;AAH3B,OADE;;AAOV3O,gBAAU,GAAI;AACV,aAAK0+F,eAAL,GAAuB54E,kBAAQ,CAAC,KAAK+iC,MAAN,EAAc,EAAd,CAA/B;AACA,aAAKyjB,UAAL,GAAkB7vD,sBAAS,CAACg+E,WAAV,CAAsB1sG,GAAtB,CAA0B0uB,sBAAS,CAACsB,QAApC,CAAlB;AACA,aAAK1O,QAAL,CAAc,KAAKi9D,UAAL,CAAgBD,OAA9B,EAAuC,eAAvC,EAAwD,KAAKqyB,eAA7D;AACA,aAAKrvF,QAAL,CAAc,KAAKi9D,UAAL,CAAgBD,OAA9B,EAAuC,OAAvC,EAAgD,KAAKqyB,eAArD;AACA,aAAKrvF,QAAL,CAAc,KAAKi9D,UAAL,CAAgBD,OAA9B,EAAuC,OAAvC,EAAgD,KAAKqyB,eAArD;AACA,aAAKrvF,QAAL,CAAc,KAAKi9D,UAAL,CAAgBD,OAA9B,EAAuC,QAAvC,EAAiD,KAAKqyB,eAAtD;AACA,aAAKrvF,QAAL,CAAc,KAAKi9D,UAAL,CAAgBD,OAA9B,EAAuC,KAAvC,EAA8C,KAAKqyB,eAAnD;AACA,eAAO,KAAKh0F,SAAL,CAAe1K,UAAf,CAA0BvL,KAA1B,CAAgC,IAAhC,EAAsC3qB,SAAtC,CAAP;AACH,OAhBS;;AAkBVg/E,kBAAY,GAAI;AACZ,cAAMjsC,SAAS,GAAGJ,sBAAS,CAACK,WAAV,CAAsB/uB,GAAtB,CAA0B,WAA1B,CAAlB;;AAEA,YAAI8uB,SAAJ,EAAe;AACX,eAAK84E,cAAL,GAAsB,KAAKrpB,UAAL,CAAgBD,OAAhB,CAAwBt+E,GAAxB,CAA4B8uB,SAA5B,CAAtB;AACH;;AACD,aAAKy5E,aAAL,GAAqB,KAAKhqB,UAAL,CAAgBD,OAAhB,CAAwBrxF,MAAxB,CAA+BzY,CAAC,IAAKA,CAAC,CAACwrB,GAAF,CAAM,IAAN,MAAgB8uB,SAArD,CAArB;;AACA,YAAI,KAAKnS,SAAL,CAAeo+C,YAAnB,EAAiC;AAC7B,iBAAO,KAAKp+C,SAAL,CAAeo+C,YAAf,CAA4Br0D,KAA5B,CAAkC,IAAlC,EAAwC3qB,SAAxC,CAAP;AACH;AACJ,OA5BS;;AA8BV60H,eAAS,CAAEh9F,EAAF,EAAM;AACX,YAAIi9F,OAAO,GAAGvrF,gBAAC,CAACmzC,QAAF,CAAW7kD,EAAE,CAAC8kD,MAAd,EAAsB,IAAtB,CAAd;;AACA,eAAOm4C,OAAP,EAAgB;AACZA,iBAAO,CAACpnG,aAAR,CAAsB,wBAAtB,EAAgD3G,OAAhD,GAA0D8Q,EAAE,CAAC8kD,MAAH,CAAU51D,OAApE;AACA+tG,iBAAO,GAAGA,OAAO,CAACtqC,kBAAlB;AACH;AACJ,OApCS;;AAsCVuqC,gCAA0B,CAAEl9F,EAAF,EAAM;AAC5BA,UAAE,CAACglD,cAAH;AACAhlD,UAAE,CAACmlD,eAAH;AACAnlD,UAAE,CAAC8kD,MAAH,CAAUjvD,aAAV,CAAwB,aAAxB,EAAuC3G,OAAvC,GAAiD,KAAjD;AACA,cAAMssG,UAAU,GAAGxoF,qBAAM,CAAC,0DAAD,EAA6DhT,EAAE,CAAC8kD,MAAhE,CAAN,CAA8Ep4E,GAA9E,CAAkF/L,CAAC,IAAIA,CAAC,CAACgC,KAAzF,CAAnB;AACA,aAAKgoG,UAAL,CAAgBwyB,gBAAhB,CAAiC3B,UAAjC,EACKl7F,IADL,CACU,KAAK4qD,KAAL,CAAWgB,IADrB,EAEK7lD,KAFL,CAEWtuB,GAAG,IAAI;AACVlM,sBAAG,CAACI,KAAJ,CAAU8L,GAAV;;AACA+iC,gCAAS,CAACG,GAAV,CAAc+3B,KAAd,CACI/vE,sBAAO,CAACqD,QAAR,CAAiBnB,KADrB,EAEI2/C,KAAE,CAAC,OAAD,CAFN,EAEiB,CAACA,KAAE,CAAC,8DAAD,CAAH,CAFjB;AAIH,SARL;AASH,OApDS;;AAsDVs4E,+BAAyB,CAAEp9F,EAAF,EAAM;AAC3BA,UAAE,CAACglD,cAAH;;AACA,YAAIhU,OAAO,CAAClsB,KAAE,CACV,uDACA,oHAFU,CAAH,CAAX,EAGG;AACC7J,2BAAG,CAACu8E,KAAJ,CAAUuC,MAAV,CAAiBsD,QAAjB;AACH;AACJ;;AA9DS,KAFP;AAmEP5vB,oBAAgB,EAAE;AACdzgE,YAAM,EAAE;AACJ,+CAAuC;AADnC,OADM;;AAKd3O,gBAAU,GAAI;AACV,cAAMzzB,GAAG,GAAG,KAAK+7B,KAAL,CAAWva,GAAX,CAAe,KAAf,CAAZ;AACA,aAAKu+E,UAAL,GAAkB7vD,sBAAS,CAACg+E,WAAV,CAAsBC,aAAtB,CAAoCnuH,GAApC,CAAlB;AACA,aAAK8iC,QAAL,CAAc,KAAKi9D,UAAL,CAAgBD,OAA9B,EAAuC,eAAvC,EAAwD,KAAKxjB,MAA7D;AACA,aAAKx5C,QAAL,CAAc,KAAKi9D,UAAL,CAAgBD,OAA9B,EAAuC,gBAAvC,EAAyD,KAAKxjB,MAA9D;AACA,aAAKx5C,QAAL,CAAc,KAAKi9D,UAAL,CAAgBD,OAA9B,EAAuC,QAAvC,EAAiD,KAAKxjB,MAAtD;AACA,aAAKx5C,QAAL,CAAc,KAAKi9D,UAAL,CAAgBD,OAA9B,EAAuC,KAAvC,EAA8C,KAAKxjB,MAAnD;AACA,aAAKx5C,QAAL,CAAc,KAAKi9D,UAAL,CAAgBD,OAA9B,EAAuC,OAAvC,EAAgD,KAAKxjB,MAArD;AACA,eAAO,KAAKn+C,SAAL,CAAe1K,UAAf,CAA0BvL,KAA1B,CAAgC,IAAhC,EAAsC3qB,SAAtC,CAAP;AACH,OAda;;AAgBdm1H,uBAAiB,CAAEt9F,EAAF,EAAM;AACnB,cAAMu9F,KAAK,GAAGv9F,EAAE,CAAC8kD,MAAjB;AACA,cAAMulB,MAAM,GAAG,KAAKM,UAAL,CAAgBD,OAAhB,CAAwBt+E,GAAxB,CAA4BmxG,KAAK,CAACzzH,YAAN,CAAmB,MAAnB,CAA5B,CAAf;AACAugG,cAAM,CAACxiE,IAAP,CAAY,SAAZ,EAAuBlU,QAAQ,CAAC4pG,KAAK,CAAC56H,KAAP,EAAc,EAAd,CAA/B;AACH;;AApBa,KAnEX;AA0FPsyD,WAAO,EAAE;AACL,YAAMsF,WAAN,CAAmB1xD,IAAnB,EAAyBmxD,YAAzB,EAAuC;AACnC,YAAI,KAAK5tC,GAAL,CAAS,cAAT,KAA4BvjB,IAAhC,EAAsC;AAClC,gBAAM7F,KAAK,GAAG,KAAK+2D,4BAAL,CAAkClxD,IAAlC,EAAwCmxD,YAAxC,CAAd;AACAh3D,eAAK,CAAC,cAAD,CAAL,GAAwB,IAAxB;AACAA,eAAK,CAAC,WAAD,CAAL,GAAqBA,KAAK,CAAC0I,OAA3B;AACA,cAAIA,OAAJ,EAAaiK,MAAb;;AACA,cAAI;AACA,kBAAM+0F,OAAO,GAAG,MAAM5vD,sBAAS,CAAC0iF,0BAAV,CAAqC,IAArC,CAAtB;AACA9xH,mBAAO,GAAG,MAAM,KAAK6qD,aAAL,CAAmBvzD,KAAnB,CAAhB;AACA2S,kBAAM,GAAG,MAAMmlC,sBAAS,CAAC2iF,wBAAV,CAAmC,IAAnC,EAAyC/xH,OAAzC,EAAkDg/F,OAAlD,CAAf;AACH,WAJD,CAIE,OAAOngG,CAAP,EAAU;AACR,iBAAKqyH,sBAAL,CAA4BryH,CAA5B;AACA,mBAAO,IAAP;AACH;;AACDuwC,gCAAS,CAACG,GAAV,CAAchmC,IAAd,CAAmBU,MAAnB;;AACA,iBAAOjK,OAAP;AACH,SAfD,MAeO;AACH,iBAAO,KAAKq9B,SAAL,CAAewxB,WAAf,CAA2BznC,KAA3B,CAAiC,IAAjC,EAAuC3qB,SAAvC,CAAP;AACH;AACJ;;AApBI;AA1FF,GAXwB;;AA6HnCk2B,YAAU,GAAI;AACV;;;AAIA4c,qBAAG,CAAC3c,QAAJ,CAAa2K,MAAb,CAAoB;AAAC,uBAAiB;AAAlB,KAApB;AACAgS,qBAAG,CAAC6Q,QAAJ,CAAa1tB,GAAb,CAAiB,CAAC,kBAAD,CAAjB;AAEA0c,0BAAS,CAAC4iF,WAAV,GAAwB,GAAxB,CARU,CAQmB;;AAE7B37H,UAAM,CAACsmC,MAAP,CAAcyS,sBAAS,CAACma,OAAV,CAAkBjzD,SAAhC,EAA2C06H,mBAA3C;;AAGA5hF,0BAAS,CAAC6iF,oBAAV,GAAiC,gBAAgB/yH,GAAhB,EAAqB;AAClD,YAAM8/F,OAAO,GAAG,MAAMuvB,oBAAoB,CAACrvH,GAAD,CAA1C;AACA,aAAOs6B,OAAO,CAACqB,GAAR,CAAYmkE,OAAO,CAACh+F,GAAR,CAAY9L,CAAC,IAAIk5H,mBAAmB,CAACl5H,CAAD,CAApC,CAAZ,CAAP;AACH,KAHD;;AAKAk6C,0BAAS,CAAC8iF,mBAAV,GAAgC,UAAUhzH,GAAV,EAAeswC,SAAf,EAA0B;AACtD,aAAO++E,oBAAoB,CAACrvH,GAAD,CAApB,CAA0B01B,IAA1B,CAA+BoqE,OAAO,IAAIA,OAAO,CAACt+E,GAAR,CAAY8uB,SAAZ,CAA1C,CAAP;AACH,KAFD;;AAIAJ,0BAAS,CAACshF,sBAAV,GAAmC,gBAAgBxxH,GAAhB,EAAqB;AACpD;AACA,YAAM8/F,OAAO,GAAG,MAAMuvB,oBAAoB,CAACrvH,GAAD,CAA1C;AACA,aAAO8/F,OAAO,CAAC/qG,MAAR,GAAiB,CAAxB;AACH,KAJD;;AAMAm7C,0BAAS,CAAC0iF,0BAAV,GAAuC,gBAAgBv+E,OAAhB,EAAyB;AAC5D,YAAM4+E,cAAc,GAAG/4E,KAAE,CAAC,0EAAD,CAAzB;;AACA,UAAI4lD,OAAJ;;AACA,UAAIzrD,OAAO,CAAC7yB,GAAR,CAAY,MAAZ,MAAwB0uB,sBAAS,CAACkS,cAAtC,EAAsD;AAClD,cAAM8wE,WAAW,GAAG,MAAM54F,OAAO,CAACqB,GAAR,CAAY0Y,OAAO,CAACC,SAAR,CAAkBxyC,GAAlB,CAAsBknC,CAAC,IAAIqmF,oBAAoB,CAACrmF,CAAC,CAACxnB,GAAF,CAAM,KAAN,CAAD,CAA/C,CAAZ,CAA1B;AACAs+E,eAAO,GAAGozB,WAAW,CAAClxH,MAAZ,CAAmB,CAACtM,CAAD,EAAIC,CAAJ,KAAU8d,gBAAM,CAAC/d,CAAD,EAAIC,CAAC,CAACy/C,MAAN,CAAnC,EAAkD,EAAlD,CAAV;AACH,OAHD,MAGO,IAAIf,OAAO,CAAC7yB,GAAR,CAAY,MAAZ,MAAwB0uB,sBAAS,CAACiS,iBAAtC,EAAyD;AAC5D,cAAMgxE,aAAa,GAAG,MAAM9D,oBAAoB,CAACh7E,OAAO,CAAC7yB,GAAR,CAAY,KAAZ,CAAD,CAAhD;;AACA,YAAI2xG,aAAa,CAACp+H,MAAd,KAAyB,CAA7B,EAAgC;AAC5B,gBAAMoY,GAAG,GAAG,IAAIvY,KAAJ,CAAUq+H,cAAV,CAAZ;AACA9lH,aAAG,CAAC+kH,WAAJ,GAAkB,IAAlB;AACA,gBAAM/kH,GAAN;AACH;;AACD,cAAMimH,WAAW,GAAGljF,sBAAS,CAACg+E,WAAV,CAAsB1sG,GAAtB,CAA0B0uB,sBAAS,CAACsB,QAApC,EAA8CsuD,OAAlE;;AACAA,eAAO,GAAG,CAAC,GAAGszB,WAAW,CAACh+E,MAAhB,EAAwB,GAAG+9E,aAAa,CAAC/9E,MAAzC,CAAV;AACH,OAf2D,CAgB5D;;;AACA,YAAMvxC,EAAE,GAAGqsC,sBAAS,CAACK,WAAV,CAAsB/uB,GAAtB,CAA0B,WAA1B,CAAX;;AACAs+E,aAAO,GAAGA,OAAO,CAACrxF,MAAR,CAAezY,CAAC,IAAIA,CAAC,CAACwrB,GAAF,CAAM,IAAN,MAAgB3d,EAApC,CAAV,CAlB4D,CAmB5D;;AACA,YAAMy2B,OAAO,CAACqB,GAAR,CAAYmkE,OAAO,CAACh+F,GAAR,CAAY9L,CAAC,IAAIA,CAAC,CAACo5H,SAAF,EAAjB,CAAZ,CAAN;AAEA,YAAMiE,QAAQ,GAAGvzB,OAAO,CAACrxF,MAAR,CAAezY,CAAC,IAAIA,CAApB,EAAuB8L,GAAvB,CAA2B9L,CAAC,IAAIo6H,UAAU,CAACp6H,CAAD,CAA1C,CAAjB;AACA,YAAMskC,OAAO,CAACqB,GAAR,CAAY03F,QAAZ,CAAN;;AACA,UAAIA,QAAQ,CAAC7+F,QAAT,CAAkB,IAAlB,CAAJ,EAA6B;AACzB;AACAsrE,eAAO,GAAGA,OAAO,CAACrxF,MAAR,CAAezY,CAAC,IAAIq9H,QAAQ,CAACvzB,OAAO,CAAC7/F,OAAR,CAAgBjK,CAAhB,CAAD,CAA5B,CAAV;;AACA,YAAI8pG,OAAO,CAAC/qG,MAAR,KAAmB,CAAvB,EAA0B;AACtB,gBAAMoY,GAAG,GAAG,IAAIvY,KAAJ,CAAUq+H,cAAV,CAAZ;AACA9lH,aAAG,CAAC+kH,WAAJ,GAAkB,IAAlB;AACA,gBAAM/kH,GAAN;AACH;AACJ;;AACD,aAAO2yF,OAAP;AACH,KAlCD;;AAoCA5vD,0BAAS,CAAC2iF,wBAAV,GAAqC,UAAUx+E,OAAV,EAAmBvzC,OAAnB,EAA4Bg/F,OAA5B,EAAqC;AACtE,YAAMn0E,IAAI,GAAGuuB,KAAE,CAAC,mFACA,yDADD,CAAf;;AAGA,UAAI,CAACp5C,OAAO,CAAC0gB,GAAR,CAAY,SAAZ,CAAL,EAA6B;AACzB,cAAM,IAAI5sB,KAAJ,CAAU,6BAAV,CAAN;AACH;;AACD,YAAMmW,MAAM,GAAGxS,mBAAI,CAAC;AACZ,gBAAQ23C,sBAAS,CAAC5+B,UAAV,CAAqBtR,GADjB;AAEZ,cAAMq0C,OAAO,CAAC7yB,GAAR,CAAY,KAAZ,CAFM;AAGZ,gBAAQ6yB,OAAO,CAAC7yB,GAAR,CAAY,cAAZ,CAHI;AAIZ,cAAM1gB,OAAO,CAAC0gB,GAAR,CAAY,OAAZ;AAJM,OAAD,CAAJ,CAKRzrB,CALQ,CAKN,MALM,EAKEF,CALF,CAKI81B,IALJ,EAKU/oB,EALV,EAAf;;AAOA,UAAI9B,OAAO,CAAC0gB,GAAR,CAAY,MAAZ,MAAwB,MAA5B,EAAoC;AAChCzW,cAAM,CAAChV,CAAP,CAAS,SAAT,EAAoB;AAAC,mBAASsC,sBAAO,CAACM,EAAR,CAAWi4C;AAArB,SAApB,EAAoDhuC,EAApD;AACH,OAhBqE,CAiBtE;AACA;AACA;AACA;AACA;AACA;;;AACAmI,YAAM,CAAChV,CAAP,CAAS,WAAT,EAAsB;AAAC,iBAASsC,sBAAO,CAACM,EAAR,CAAWy3C;AAArB,OAAtB,EACOr6C,CADP,CACS,QADT,EACmB;AAAC,eAAQm6C,sBAAS,CAACK,WAAV,CAAsB/uB,GAAtB,CAA0B,WAA1B;AAAT,OADnB;AAGA,aAAOorG,KAAK,CAACC,cAAN,CAAqB/rH,OAAO,CAAC0gB,GAAR,CAAY,SAAZ,CAArB,EAA6CkU,IAA7C,CAAkDlf,GAAG,IAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,cAAM0qC,QAAQ,GAAG4+C,OAAO,CACnBrxF,MADY,CACLgxF,MAAM,IAAKA,MAAM,CAACj+E,GAAP,CAAW,SAAX,KAAyByqG,SAAzB,IAAsCxsB,MAAM,CAACj+E,GAAP,CAAW,QAAX,CAD5C,EAEZ1f,GAFY,CAER29F,MAAM,IAAIprD,OAAO,CAAC09E,UAAR,CAAmBv7G,GAAG,CAACy3G,WAAvB,EAAoCxuB,MAApC,CAFF,CAAjB;AAIA,eAAOnlE,OAAO,CAACqB,GAAR,CAAYulB,QAAZ,EACFxrB,IADE,CACGk5F,KAAK,IAAID,sBAAsB,CAAC5jH,MAAD,EAAS6jH,KAAT,EAAgBp4G,GAAG,CAACu2G,EAApB,CADlC,EAEFr3F,IAFE,CAEG3qB,MAAM,IAAI;AACZA,gBAAM,CAAChV,CAAP,CAAS,SAAT,EAAoBF,CAApB,CAAsB2gB,GAAG,CAACsrE,OAA1B,EAAmCl/E,EAAnC,GAAwCA,EAAxC;AACAmI,gBAAM,CAAChV,CAAP,CAAS,OAAT,EAAkB;AAAC,qBAASsC,sBAAO,CAACM,EAAR,CAAW01D;AAArB,WAAlB;AACA,iBAAOtjD,MAAP;AACH,SANE,CAAP;AAOH,OAlBM,CAAP;AAmBH,KA7CD;;AAgDAmlC,0BAAS,CAAC+gF,UAAV,GAAuBtsF,WAAK,CAACtG,MAAN,CAAa;AAEhCi1F,eAAS,EAAE;AACPC,eAAO,EAAE,CADF;AAEPC,iBAAS,EAAE;AAFJ,OAFqB;;AAOhCC,wBAAkB,GAAI;AAClB,cAAMC,OAAO,GAAG,KAAKlyG,GAAL,CAAS,kBAAT,CAAhB;AACA,eAAO8Y,OAAO,CAACC,OAAR,CAAgB;AACnB,qBAAWuM,gBAAC,CAACgH,mBAAF,CAAsB4lF,OAAO,CAACC,OAA9B,CADQ;AAEnB,oBAAU7sF,gBAAC,CAACgH,mBAAF,CAAsB4lF,OAAO,CAACE,MAA9B;AAFS,SAAhB,CAAP;AAIH,OAb+B;;AAehCC,4BAAsB,GAAI;AACtB,eAAOv5F,OAAO,CAACC,OAAR,CAAgBxR,QAAQ,CAAC,KAAKvH,GAAL,CAAS,WAAT,CAAD,EAAwB,EAAxB,CAAxB,CAAP;AACH,OAjB+B;;AAmBhCsyG,uBAAiB,CAAEC,UAAF,EAAc/D,YAAd,EAA4BriC,SAA5B,EAAuC;AAAG;AACvD,YAAIomC,UAAU,KAAK,IAAf,IAAuBA,UAAU,KAAKl2H,SAA1C,EAAqD;AACjD,gBAAM,IAAIjJ,KAAJ,CAAU,0CAAV,CAAN;AACH;;AACD,YAAI,EAAEo7H,YAAY,YAAYj4F,WAA1B,CAAJ,EAA4C;AACxC,gBAAM,IAAInjC,KAAJ,CAAU,4CAAV,CAAN;AACH;;AACD,cAAMo/H,OAAO,GAAG,KAAKxyG,GAAL,CAAS,iBAAeuyG,UAAxB,CAAhB;;AACA,YAAIC,OAAO,KAAKn2H,SAAhB,EAA2B;AACvB,iBAAOy8B,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AACD,eAAOD,OAAO,CAACC,OAAR,CAAgBuM,gBAAC,CAAC8G,mBAAF,CAAsBoiF,YAAtB,MAAwCgE,OAAxD,CAAP;AACH,OA/B+B;;AAiChCC,qBAAe,CAAEF,UAAF,EAAc;AACzB,YAAIA,UAAU,KAAK,IAAf,IAAuBA,UAAU,KAAKl2H,SAA1C,EAAqD;AACjD,gBAAM,IAAIjJ,KAAJ,CAAU,gDAAV,CAAN;AACH;;AACD,eAAO0lC,OAAO,CAACC,OAAR,CAAgBuM,gBAAC,CAACgH,mBAAF,CAAsB,KAAKtsB,GAAL,CAAS,iBAAeuyG,UAAxB,CAAtB,CAAhB,CAAP;AACH,OAtC+B;;AAwChCG,kBAAY,CAAEH,UAAF,EAAc/D,YAAd,EAA4B;AACpC,YAAI+D,UAAU,KAAK,IAAf,IAAuBA,UAAU,KAAKl2H,SAA1C,EAAqD;AACjD,gBAAM,IAAIjJ,KAAJ,CAAU,gDAAV,CAAN;AACH;;AACD,cAAMu8B,OAAO,GAAG,IAAI08F,SAAS,CAACC,qBAAV,CAAgCqG,UAApC,CAA+CJ,UAA/C,CAAhB;AACA,cAAMv9E,QAAQ,GAAG,KAAKh1B,GAAL,CAAS,iBAAe2P,OAAO,CAACijG,OAAR,EAAxB,CAAjB;AACA,cAAMC,SAAS,GAAGvtF,gBAAC,CAAC8G,mBAAF,CAAsBoiF,YAAtB,CAAlB;AACA,aAAK/yF,IAAL,CAAU,iBAAe9L,OAAO,CAACijG,OAAR,EAAzB,EAA4CC,SAA5C;;AAEA,YAAI79E,QAAQ,IAAI69E,SAAS,KAAK79E,QAA9B,EAAwC;AACpC,iBAAOlc,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAP;AACH,SAFD,MAEO;AACH,iBAAOD,OAAO,CAACC,OAAR,CAAgB,KAAhB,CAAP;AACH;AACJ,OAtD+B;;AAwDhC+5F,gBAAU,GAAI;AACV,eAAO,KAAK9yG,GAAL,CAAS,SAAT,KAAuB,EAA9B;AACH,OA1D+B;;AA4DhC+yG,gBAAU,CAAEC,MAAF,EAAU;AAChB,cAAMx0G,GAAG,GAAG,KAAKs0G,UAAL,GAAkBE,MAAlB,CAAZ;;AACA,YAAIx0G,GAAJ,EAAS;AACL,iBAAOsa,OAAO,CAACC,OAAR,CAAgB;AACnB,uBAAWuM,gBAAC,CAACgH,mBAAF,CAAsB9tB,GAAG,CAAC2zG,OAA1B,CADQ;AAEnB,sBAAU7sF,gBAAC,CAACgH,mBAAF,CAAsB9tB,GAAG,CAAC4zG,MAA1B;AAFS,WAAhB,CAAP;AAIH;;AACD,eAAOt5F,OAAO,CAACC,OAAR,EAAP;AACH,OArE+B;;AAuEhCk6F,iBAAW,CAAED,MAAF,EAAUE,QAAV,EAAoB;AAC3B,cAAMpI,MAAM,GAAG,EAAf;AACAA,cAAM,CAACkI,MAAD,CAAN,GAAiB;AACb,oBAAU1tF,gBAAC,CAAC8G,mBAAF,CAAsB8mF,QAAQ,CAACd,MAA/B,CADG;AAEb,qBAAW9sF,gBAAC,CAAC8G,mBAAF,CAAsB8mF,QAAQ,CAACf,OAA/B;AAFE,SAAjB;AAIA,aAAK12F,IAAL,CAAU,SAAV,EAAqB9lC,MAAM,CAACsmC,MAAP,CAAc,KAAK62F,UAAL,EAAd,EAAiChI,MAAjC,CAArB;AACA,eAAOhyF,OAAO,CAACC,OAAR,EAAP;AACH,OA/E+B;;AAiFhCo6F,kBAAY,CAAEH,MAAF,EAAU;AAClB,aAAKv3F,IAAL,CAAU,SAAV,EAAqBsI,cAAI,CAAC,KAAK+uF,UAAL,EAAD,EAAoBE,MAApB,CAAzB;AACA,eAAOl6F,OAAO,CAACC,OAAR,EAAP;AACH,OApF+B;;AAsFhCq6F,sBAAgB,CAAEC,KAAF,EAAS;AAAG;AACxB,cAAM70G,GAAG,GAAG,KAAKwB,GAAL,CAAS,eAAT,CAAZ;;AACA,YAAIxB,GAAJ,EAAS;AACL,iBAAOsa,OAAO,CAACC,OAAR,CAAgB;AACnB,uBAAWuM,gBAAC,CAACgH,mBAAF,CAAsB9tB,GAAG,CAAC2zG,OAA1B,CADQ;AAEnB,sBAAU7sF,gBAAC,CAACgH,mBAAF,CAAsB9tB,GAAG,CAAC4zG,MAA1B;AAFS,WAAhB,CAAP;AAIH;;AACD,eAAOt5F,OAAO,CAACC,OAAR,EAAP;AACH,OA/F+B;;AAiGhCu6F,uBAAiB,CAAEC,GAAF,EAAO;AACpB,YAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;AACzB;AACA;AACA;AACA;AACA,gBAAM,IAAIngI,KAAJ,CAAU,uCAAV,CAAN;AACH;;AACD,aAAKqoC,IAAL,CAAU,eAAV,EAA2B;AACvB,gBAAM83F,GAAG,CAACF,KADa;AAEvB,qBAAW/tF,gBAAC,CAAC8G,mBAAF,CAAsBmnF,GAAG,CAACC,OAAJ,CAAYrB,OAAlC,CAFY;AAGvB,oBAAU7sF,gBAAC,CAAC8G,mBAAF,CAAsBmnF,GAAG,CAACC,OAAJ,CAAYpB,MAAlC,CAHa;AAIvB;AACA;AACA;AACA;AACA;AACA,uBAAa9sF,gBAAC,CAAC8G,mBAAF,CAAsBmnF,GAAG,CAAC5E,SAA1B;AATU,SAA3B;AAWA,eAAO71F,OAAO,CAACC,OAAR,EAAP;AACH,OArH+B;;AAuHhC06F,wBAAkB,CAAET,MAAF,EAAU;AACxB,YAAI,KAAKhzG,GAAL,CAAS,eAAT,EAA0B,IAA1B,MAAoCgzG,MAAxC,EAAgD;AAC5C,eAAK/uF,KAAL,CAAW,eAAX;AACA,eAAKxI,IAAL;AACH;;AACD,eAAO3C,OAAO,CAACC,OAAR,EAAP;AACH,OA7H+B;;AA+HhC81F,iBAAW,CAAE0D,UAAF,EAAc;AACrB,eAAOz5F,OAAO,CAACC,OAAR,CAAgB,KAAK/Y,GAAL,CAAS,YAAUuyG,UAAnB,CAAhB,CAAP;AACH,OAjI+B;;AAmIhCmB,kBAAY,CAAEnB,UAAF,EAAcoB,MAAd,EAAsB;AAC9B,eAAO76F,OAAO,CAACC,OAAR,CAAgB,KAAK0C,IAAL,CAAU,YAAU82F,UAApB,EAAgCoB,MAAhC,CAAhB,CAAP;AACH,OArI+B;;AAuIhCC,mBAAa,CAAErB,UAAF,EAAc;AACvB,eAAOz5F,OAAO,CAACC,OAAR,CAAgB,KAAKkL,KAAL,CAAW,YAAUsuF,UAArB,CAAhB,CAAP;AACH,OAzI+B;;AA2IhCsB,uBAAiB,CAAEtB,UAAF,EAAc;AAC3B,cAAMlyH,IAAI,GAAG1K,MAAM,CAAC0K,IAAP,CAAY,KAAK/H,UAAjB,EAA6B2U,MAA7B,CAAoC2E,GAAG,IAAIA,GAAG,CAACyhB,UAAJ,CAAe,YAAUk/F,UAAzB,IAAuC3gH,GAAvC,GAA6C,KAAxF,CAAb;AACA,cAAMhb,KAAK,GAAG,EAAd;AACAyJ,YAAI,CAACmK,OAAL,CAAaoH,GAAG,IAAI;AAAChb,eAAK,CAACgb,GAAD,CAAL,GAAavV,SAAb;AAAuB,SAA5C;AACA,aAAKo/B,IAAL,CAAU7kC,KAAV;AACA,eAAOkiC,OAAO,CAACC,OAAR,EAAP;AACH,OAjJ+B;;AAmJhCk0F,mBAAa,GAAI;AACb,cAAMwB,aAAa,GAAG,KAAKzuG,GAAL,CAAS,eAAT,CAAtB;AACA,cAAMnkB,IAAI,aAAMhF,sBAAO,CAACM,EAAR,CAAW63H,aAAjB,cAAkC,KAAKhvG,GAAL,CAAS,WAAT,CAAlC,CAAV;AACA,cAAM6b,IAAI,GAAGnlC,qBAAM,CAAC,MAAD,CAAN,CACRnC,CADQ,CACN,QADM,EACI;AAAC,mBAASsC,sBAAO,CAACM,EAAR,CAAWy3C;AAArB,SADJ,EAEJr6C,CAFI,CAEF,oBAFE,EAEoB;AAAC,4BAAkBk6H,aAAa,CAACpsH;AAAjC,SAFpB,EAGAhO,CAHA,CAGEo6H,aAAa,CAAC2D,MAHhB,EAGwBhxH,EAHxB,GAIJ7M,CAJI,CAIF,uBAJE,EAIuBF,CAJvB,CAIyBo6H,aAAa,CAACE,SAJvC,EAIkDvtH,EAJlD,GAKJ7M,CALI,CAKF,aALE,EAKaF,CALb,CAKe,KAAK2rB,GAAL,CAAS,kBAAT,EAA6BoyG,MAL5C,EAKoDhxH,EALpD,GAMJ7M,CANI,CAMF,SANE,CAAb;AAQAoB,cAAM,CAAC+oC,MAAP,CAAc,KAAK1e,GAAL,CAAS,SAAT,CAAd,EAAmCxV,OAAnC,CAA2C,CAACsgH,MAAD,EAASzoH,EAAT,KAAgBw5B,IAAI,CAACtnC,CAAL,CAAO,cAAP,EAAuB;AAAC,sBAAY8N;AAAb,SAAvB,EAAyChO,CAAzC,CAA2Cy2H,MAAM,CAACsH,MAAlD,EAA0DhxH,EAA1D,EAA3D;AACA,cAAMmB,OAAO,GAAG;AAAC,iCAAuB;AAAxB,SAAhB;AACA,eAAOssC,iBAAG,CAACilF,MAAJ,CAAWC,OAAX,CAAmB,IAAnB,EAAyBl4H,IAAzB,EAA+BggC,IAA/B,EAAqCt5B,OAArC,EAA8C,KAA9C,CAAP;AACH,OAjK+B;;AAmKhC,YAAMyqH,sBAAN,GAAgC;AAC5B,cAAMgH,YAAY,GAAGr+E,oBAAU,CAC3BumC,mBAAS,CAAC+3C,eAAK,CAAC,CAAD,EAAIvlF,sBAAS,CAAC4iF,WAAd,CAAN,EAAkC3zG,MAAM,CAAC/nB,SAAP,CAAiBuL,QAAnD,CADkB,EAE3BxL,MAAM,CAAC0K,IAAP,CAAY,KAAKyyH,UAAL,EAAZ,CAF2B,CAA/B;;AAIA,YAAIkB,YAAY,CAACzgI,MAAb,GAAsB,CAA1B,EAA6B;AACzBkM,sBAAG,CAACO,IAAJ,CAAS,mDAAT;AACA,iBAAO84B,OAAO,CAACC,OAAR,EAAP;AACH;;AACD,cAAM14B,IAAI,GAAG,MAAMy4B,OAAO,CAACqB,GAAR,CAAY65F,YAAY,CAAC1zH,GAAb,CAAiB+B,EAAE,IAAIgqH,SAAS,CAAC4B,SAAV,CAAoBiG,cAApB,CAAmC3sG,QAAQ,CAACllB,EAAD,EAAK,EAAL,CAA3C,CAAvB,CAAZ,CAAnB;AACAhC,YAAI,CAACmK,OAAL,CAAajO,CAAC,IAAI,KAAK02H,WAAL,CAAiB12H,CAAC,CAAC82H,KAAnB,EAA0B92H,CAAC,CAACi3H,OAA5B,CAAlB;AACA,cAAMW,eAAe,GAAGx+H,MAAM,CAAC0K,IAAP,CAAY,KAAKyyH,UAAL,EAAZ,EAA+BxyH,GAA/B,CAAmC/D,CAAC,KAAK;AAAC,gBAAMA,CAAC,CAAC82H,KAAT;AAAgB,iBAAO/tF,gBAAC,CAAC8G,mBAAF,CAAsB7vC,CAAC,CAAC61H,MAAxB;AAAvB,SAAL,CAApC,CAAxB;;AACA,cAAM7zB,UAAU,GAAG7vD,sBAAS,CAACg+E,WAAV,CAAsB1sG,GAAtB,CAA0B0uB,sBAAS,CAACsB,QAApC,CAAnB;;AACA,cAAMiuD,MAAM,GAAGM,UAAU,CAACD,OAAX,CAAmBt+E,GAAnB,CAAuB,KAAKA,GAAL,CAAS,WAAT,CAAvB,CAAf;AACA,cAAM2tG,MAAM,GAAG,MAAM1vB,MAAM,CAAC2vB,SAAP,EAArB;AACA3vB,cAAM,CAACxiE,IAAP,CAAY,QAAZ,EAAsB9lC,MAAM,CAACsmC,MAAP,CAAc0xF,MAAd,EAAsB;AAAC,qBAAWwG;AAAZ,SAAtB,CAAtB;AACH,OAnL+B;;AAqLhC;;;;AAIA,YAAMC,cAAN,GAAwB;AACpB;AACA;AACA;AACA;AACA;AACA,cAAMC,gBAAgB,GAAG,MAAMhI,SAAS,CAAC4B,SAAV,CAAoBqG,uBAApB,EAA/B;AACA,cAAM3G,MAAM,GAAG,EAAf;AACA,cAAMa,YAAY,GAAGlpF,gBAAC,CAAC8G,mBAAF,CAAsBioF,gBAAgB,CAACjC,MAAvC,CAArB;AACA,cAAMtjF,SAAS,GAAGi/E,gBAAgB,EAAlC;AAEAJ,cAAM,CAAC,cAAD,CAAN,GAAyBa,YAAzB;AACAb,cAAM,CAAC,WAAD,CAAN,GAAsB7+E,SAAtB;AACA,aAAKrT,IAAL,CAAU;AACN,uBAAaqT,SADP;AAEN,8BAAoB;AAChB,uBAAWxJ,gBAAC,CAAC8G,mBAAF,CAAsBioF,gBAAgB,CAAClC,OAAvC,CADK;AAEhB,sBAAU3D;AAFM,WAFd;AAMN,0BAAgBA;AANV,SAAV;AAQA,cAAMC,aAAa,GAAG,MAAMpC,SAAS,CAAC4B,SAAV,CAAoBsG,oBAApB,CAAyCF,gBAAzC,EAA2D,CAA3D,CAA5B;;AAEA3lF,8BAAS,CAACK,WAAV,CAAsBukF,iBAAtB,CAAwC7E,aAAxC;;AACAd,cAAM,CAAC,eAAD,CAAN,GAA0B;AACtB,gBAAMc,aAAa,CAAC4E,KADE;AAEtB,wBAAc/tF,gBAAC,CAAC8G,mBAAF,CAAsBqiF,aAAa,CAAC+E,OAAd,CAAsBrB,OAA5C,CAFQ;AAGtB,uBAAa7sF,gBAAC,CAAC8G,mBAAF,CAAsBqiF,aAAa,CAACE,SAApC;AAHS,SAA1B;AAKA,cAAMtuH,IAAI,GAAG,MAAMy4B,OAAO,CAACqB,GAAR,CAAY85F,eAAK,CAAC,CAAD,EAAIvlF,sBAAS,CAAC4iF,WAAd,CAAL,CAAgChxH,GAAhC,CAAoC+B,EAAE,IAAIgqH,SAAS,CAAC4B,SAAV,CAAoBiG,cAApB,CAAmC7xH,EAAnC,CAA1C,CAAZ,CAAnB;AACAhC,YAAI,CAACmK,OAAL,CAAajO,CAAC,IAAImyC,sBAAS,CAACK,WAAV,CAAsBkkF,WAAtB,CAAkC12H,CAAC,CAAC82H,KAApC,EAA2C92H,CAAC,CAACi3H,OAA7C,CAAlB;;AACA,cAAMj1B,UAAU,GAAG7vD,sBAAS,CAACg+E,WAAV,CAAsB1sG,GAAtB,CAA0B0uB,sBAAS,CAACsB,QAApC,CAAnB;;AACA,cAAMiuD,MAAM,GAAG,MAAMM,UAAU,CAACD,OAAX,CAAmBl2E,MAAnB,CAA0B;AAAC,gBAAMulG,MAAM,CAAC7+E,SAAd;AAAyB,iBAAOJ,sBAAS,CAACsB;AAA1C,SAA1B,EAA+E;AAAC,qBAAW;AAAZ,SAA/E,CAArB;AACA,cAAMmkF,eAAe,GAAG9zH,IAAI,CAACC,GAAL,CAAS/D,CAAC,KAAK;AAAC,gBAAMA,CAAC,CAAC82H,KAAT;AAAgB,iBAAO/tF,gBAAC,CAAC8G,mBAAF,CAAsB7vC,CAAC,CAACi3H,OAAF,CAAUpB,MAAhC;AAAvB,SAAL,CAAV,CAAxB;AACAzE,cAAM,CAAC,SAAD,CAAN,GAAoBwG,eAApB;AACAl2B,cAAM,CAACxiE,IAAP,CAAY,QAAZ,EAAsBkyF,MAAtB;AACH,OA7N+B;;AA+NhC+B,kBAAY,GAAI;AACZ,YAAI,KAAK8E,cAAL,KAAwBn4H,SAA5B,EAAuC;AACnC,eAAKm4H,cAAL,GAAsB,IAAI17F,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACnD,iBAAKsH,KAAL,CAAW;AACP,yBAAW,MAAM;AACb,oBAAI,CAACoO,sBAAS,CAACK,WAAV,CAAsB/uB,GAAtB,CAA0B,WAA1B,CAAL,EAA6C;AACzC,uBAAKo0G,cAAL,GAAsBlgG,IAAtB,CAA2B6E,OAA3B,EAAoCkB,KAApC,CAA0CjB,MAA1C;AACH,iBAFD,MAEO;AACHD,yBAAO;AACV;AACJ,eAPM;AAQP,uBAAS,CAACwB,KAAD,EAAQC,IAAR,KAAiB;AACtB/6B,4BAAG,CAACO,IAAJ,CAAS,qEAAT;AACAP,4BAAG,CAACO,IAAJ,CAASw6B,IAAT;AACA,qBAAK45F,cAAL,GAAsBlgG,IAAtB,CAA2B6E,OAA3B,EAAoCkB,KAApC,CAA0CjB,MAA1C;AACH;AAZM,aAAX;AAcH,WAfqB,CAAtB;AAgBH;;AACD,eAAO,KAAKw7F,cAAZ;AACH;;AAnP+B,KAAb,CAAvB;AAsPA;;;;;;AAKA9lF,0BAAS,CAAC+lF,MAAV,GAAmBtxF,WAAK,CAACtG,MAAN,CAAa;AAC5B2G,cAAQ,EAAE;AACN,mBAAW+mF,SADL;AAEN,kBAAU;AAFJ,OADkB;;AAM5B+D,qBAAe,GAAI;AACf;AACA,cAAMX,MAAM,GAAG,KAAK3tG,GAAL,CAAS,QAAT,CAAf;AACA,eAAO2tG,MAAM,CAACF,OAAP,CAAenoF,gBAAC,CAACmH,YAAF,CAAekhF,MAAM,CAACF,OAAP,CAAel6H,MAA9B,CAAf,CAAP;AACH,OAV2B;;AAY5B,YAAMmhI,qBAAN,GAA+B;AAC3B,cAAMnrH,MAAM,GAAGvS,kBAAG,CAAC;AACf,kBAAQ,KADO;AAEf,kBAAQ03C,sBAAS,CAACsB,QAFH;AAGf,gBAAM,KAAKhwB,GAAL,CAAS,KAAT;AAHS,SAAD,CAAH,CAIZzrB,CAJY,CAIV,QAJU,EAIA;AAAC,mBAASsC,sBAAO,CAACM,EAAR,CAAWkuE;AAArB,SAJA,EAKV9wE,CALU,CAKR,OALQ,EAKC;AAAC,4BAAWsC,sBAAO,CAACM,EAAR,CAAW63H,aAAtB,cAAuC,KAAKhvG,GAAL,CAAS,IAAT,CAAvC;AAAD,SALD,CAAf;AAOA,YAAIvR,EAAJ;;AACA,YAAI;AACAA,YAAE,GAAG,MAAMogC,iBAAG,CAACllC,MAAJ,CAAWJ,MAAX,CAAX;AACH,SAFD,CAEE,OAAOkF,EAAP,EAAW;AACThP,sBAAG,CAACI,KAAJ,6CAA+C,KAAKmgB,GAAL,CAAS,IAAT,CAA/C,mBAAsE,KAAKA,GAAL,CAAS,KAAT,CAAtE;AACAvgB,sBAAG,CAACI,KAAJ,CAAU4O,EAAV;AACA,iBAAO,IAAP;AACH;;AACD,YAAIA,EAAE,CAACgb,aAAH,CAAiB,OAAjB,CAAJ,EAA+B;AAC3B,gBAAM,IAAImhG,OAAJ,CAAY,wBAAZ,EAAsCn8G,EAAtC,CAAN;AACH;;AACD,cAAMkmH,UAAU,GAAG/tF,qBAAM,wBAAgB/vC,sBAAO,CAACM,EAAR,CAAW63H,aAA3B,cAA4C,KAAKhvG,GAAL,CAAS,IAAT,CAA5C,UAAgEvR,EAAhE,CAAN,CAA0ExC,GAA1E,EAAnB;AACA,cAAMqhH,SAAS,GAAG1mF,qBAAM,0BAAkB/vC,sBAAO,CAACM,EAAR,CAAWy3C,KAA7B,UAAwC+lF,UAAxC,CAAN,CAA0D1oH,GAA1D,EAAlB;AACA,cAAM0hH,MAAM,GAAGN,WAAW,CAACC,SAAD,CAA1B;AACA,aAAK7xF,IAAL,CAAU,QAAV,EAAoBkyF,MAApB;AACA,eAAOA,MAAP;AACH,OApC2B;;AAsC5B;;;;;AAKAC,eAAS,GAAI;AACT,YAAI,KAAK5tG,GAAL,CAAS,QAAT,CAAJ,EAAwB;AACpB,iBAAO8Y,OAAO,CAACC,OAAR,CAAgB,KAAK/Y,GAAL,CAAS,QAAT,CAAhB,EAAoC,IAApC,CAAP;AACH,SAFD,MAEO;AACH,iBAAO,KAAK00G,qBAAL,EAAP;AACH;AACJ;;AAjD2B,KAAb,CAAnB;AAoDAhmF,0BAAS,CAACkmF,OAAV,GAAoBjhF,UAAU,CAAC9W,MAAX,CAAkB;AAClCtC,WAAK,EAAEmU,sBAAS,CAAC+lF;AADiB,KAAlB,CAApB;AAIA;;;;;;AAKA/lF,0BAAS,CAACmmF,UAAV,GAAuB1xF,WAAK,CAACtG,MAAN,CAAa;AAChCjB,iBAAW,EAAE,KADmB;;AAGhC3J,gBAAU,GAAI;AACV,aAAKqsE,OAAL,GAAe,IAAI5vD,sBAAS,CAACkmF,OAAd,EAAf;AACA,cAAMvyH,EAAE,iCAA0BqsC,sBAAS,CAACsB,QAApC,cAAgD,KAAKhwB,GAAL,CAAS,KAAT,CAAhD,CAAR;AACA,aAAKs+E,OAAL,CAAaz0D,cAAb,GAA8B6E,sBAAS,CAACkT,WAAV,CAAsBv/C,EAAtB,CAA9B;AACA,aAAKyrH,YAAL;AAEH,OAT+B;;AAWhC,YAAMgH,cAAN,CAAsBn6F,UAAtB,EAAkC;AAC9B,YAAIA,UAAU,CAACpnC,MAAX,KAAsB,CAA1B,EAA6B;AACzB,cAAI8nC,GAAJ;;AACA,cAAI;AACAA,eAAG,GAAG,MAAM,KAAK05F,sBAAL,EAAZ;AACH,WAFD,CAEE,OAAO52H,CAAP,EAAU;AACR,gBAAIA,CAAC,KAAK,IAAV,EAAgB;AACZsB,0BAAG,CAACI,KAAJ,oDAAsD,KAAKmgB,GAAL,CAAS,KAAT,CAAtD;AACH,aAFD,MAEO;AACHvgB,0BAAG,CAACI,KAAJ,uCAAyC,KAAKmgB,GAAL,CAAS,KAAT,CAAzC;AACAvgB,0BAAG,CAACI,KAAJ,CAAU1B,CAAV;AACH;;AACD,iBAAK88B,OAAL;AACH;;AACD,cAAI,KAAKjb,GAAL,CAAS,KAAT,MAAoB0uB,sBAAS,CAACsB,QAAlC,EAA4C;AACxC,kBAAM,KAAKs/E,oBAAL,CAA0Bj0F,GAA1B,CAAN;AACH;AACJ;AACJ,OA7B+B;;AA+BhCyyF,kBAAY,GAAI;AACZ,YAAI,KAAKlB,gBAAL,KAA0BvwH,SAA9B,EAAyC;AACrC,eAAKuwH,gBAAL,GAAwB,IAAI9zF,OAAJ,CAAYC,OAAO,IAAI;AAC3C,iBAAKulE,OAAL,CAAah+D,KAAb,CAAmB;AACf,yBAAW/rC,CAAC,IAAIwkC,OAAO,CAAC,KAAK+7F,cAAL,CAAoBvgI,CAApB,CAAD,CADR;AAEf,uBAAS,CAACkW,CAAD,EAAItM,CAAJ,KAAU;AAAEsB,4BAAG,CAACI,KAAJ,CAAU1B,CAAV;AAAc46B,uBAAO;AAAK;AAFhC,aAAnB;AAIH,WALuB,CAAxB;AAMH;;AACD,eAAO,KAAK6zF,gBAAZ;AACH,OAzC+B;;AA2ChC,YAAMoI,cAAN,GAAwB;AACpB,YAAIlmF,SAAS,GAAGJ,sBAAS,CAACK,WAAV,CAAsB/uB,GAAtB,CAA0B,WAA1B,CAAhB;;AACA,YAAI,CAAC,KAAKs+E,OAAL,CAAa3nD,SAAb,CAAuB;AAAC,gBAAM7H;AAAP,SAAvB,CAAL,EAAgD;AAC5C;AACA,gBAAMJ,sBAAS,CAACK,WAAV,CAAsBqlF,cAAtB,EAAN;AACAtlF,mBAAS,GAAGJ,sBAAS,CAACK,WAAV,CAAsB/uB,GAAtB,CAA0B,WAA1B,CAAZ;AACH;;AACD,eAAO8uB,SAAP;AACH,OAnD+B;;AAqDhC,YAAMwgF,oBAAN,CAA4BF,UAA5B,EAAwC;AACpC,YAAI,KAAKpvG,GAAL,CAAS,KAAT,MAAoB0uB,sBAAS,CAACsB,QAAlC,EAA4C;AACxC,iBADwC,CACjC;AACV;;AACD,cAAMw/E,mBAAmB,EAAzB;;AAEA,YAAI,CAAC9gF,sBAAS,CAACK,WAAf,EAA4B;AACxB;AACA;AACAtvC,sBAAG,CAACO,IAAJ,CAAS,yEAAT;AACA;AACH;;AACD,YAAI,CAACovH,UAAU,CAACp8F,QAAX,CAAoB,MAAM,KAAKgiG,cAAL,EAA1B,CAAL,EAAuD;AACnD,iBAAO,KAAKC,cAAL,EAAP;AACH;AACJ,OApE+B;;AAsEhC,YAAMF,sBAAN,GAAgC;AAC5B,cAAMxrH,MAAM,GAAGvS,kBAAG,CAAC;AACf,kBAAQ,KADO;AAEf,kBAAQ03C,sBAAS,CAACsB,QAFH;AAGf,gBAAM,KAAKhwB,GAAL,CAAS,KAAT;AAHS,SAAD,CAAH,CAIZzrB,CAJY,CAIV,QAJU,EAIA;AAAC,mBAASsC,sBAAO,CAACM,EAAR,CAAWkuE;AAArB,SAJA,EAKV9wE,CALU,CAKR,OALQ,EAKC;AAAC,kBAAQsC,sBAAO,CAACM,EAAR,CAAW+3H;AAApB,SALD,CAAf;AAOA,YAAIzgH,EAAJ;;AACA,YAAI;AACAA,YAAE,GAAG,MAAMogC,iBAAG,CAACllC,MAAJ,CAAWJ,MAAX,CAAX;AACH,SAFD,CAEE,OAAOpL,CAAP,EAAU;AACRsB,sBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACA,iBAAO,EAAP;AACH;;AACD,cAAMsqC,QAAQ,0BAAkB5xC,sBAAO,CAACM,EAAR,CAAWy3C,KAA7B,eAAd;AACA,cAAMwgF,UAAU,GAAGxoF,qBAAM,CAAC6B,QAAD,EAAWh6B,EAAX,CAAN,CAAqBnO,GAArB,CAAyB9L,CAAC,IAAIA,CAAC,CAACkJ,YAAF,CAAe,IAAf,CAA9B,CAAnB;AACA,cAAMo7B,OAAO,CAACqB,GAAR,CACFi1F,UAAU,CAAC9uH,GAAX,CAAe+B,EAAE,IAAI,KAAKi8F,OAAL,CAAal2E,MAAb,CAAoB;AAAC/lB,YAAD;AAAK,iBAAO,KAAK2d,GAAL,CAAS,KAAT;AAAZ,SAApB,EAAkD;AAAC,qBAAW;AAAZ,SAAlD,CAArB,CADE,CAAN;AAGA,eAAOovG,UAAP;AACH,OA3F+B;;AA6FhC;;;;;AAKA6F,oBAAc,GAAI;AACd,cAAMp5F,IAAI,GAAGnlC,qBAAM,CAAC,MAAD,EAAS;AAAC,gBAAM;AAAP,SAAT,CAAN,CAAkCnC,CAAlC,CAAoC,MAApC,EAA4C;AAAC,mBAASsC,sBAAO,CAACM,EAAR,CAAWy3C;AAArB,SAA5C,CAAb;AACA,aAAK0vD,OAAL,CAAarxF,MAAb,CAAoBzY,CAAC,IAAIA,CAAC,CAACwrB,GAAF,CAAM,QAAN,CAAzB,EAA0CxV,OAA1C,CAAkDhW,CAAC,IAAIqnC,IAAI,CAACtnC,CAAL,CAAO,QAAP,EAAiB;AAAC,gBAAMC,CAAC,CAACwrB,GAAF,CAAM,IAAN;AAAP,SAAjB,EAAsC5e,EAAtC,EAAvD;AACA,cAAMmB,OAAO,GAAG;AAAC,iCAAuB;AAAxB,SAAhB;AACA,eAAOssC,iBAAG,CAACilF,MAAJ,CAAWC,OAAX,CAAmB,IAAnB,EAAyBl9H,sBAAO,CAACM,EAAR,CAAW+3H,gBAApC,EAAsDrzF,IAAtD,EAA4Dt5B,OAA5D,EAAqE,KAArE,CAAP;AACH,OAvG+B;;AAyGhCwuH,sBAAgB,CAAE3B,UAAF,EAAc;AAC1B,YAAI,KAAKpvG,GAAL,CAAS,KAAT,MAAoB0uB,sBAAS,CAACsB,QAAlC,EAA4C;AACxC,gBAAM,IAAI58C,KAAJ,CAAU,uDAAV,CAAN;AACH;;AACDg8H,kBAAU,CAAC5kH,OAAX,CAAmBskC,SAAS,IAAI,KAAKwvD,OAAL,CAAat+E,GAAb,CAAiB8uB,SAAjB,EAA4B7T,OAA5B,EAAhC;AACA,eAAO,KAAKg6F,cAAL,EAAP;AACH;;AA/G+B,KAAb,CAAvB;AAkHA;;;;;;AAKAvmF,0BAAS,CAACqhF,WAAV,GAAwBp8E,UAAU,CAAC9W,MAAX,CAAkB;AACtCtC,WAAK,EAAEmU,sBAAS,CAACmmF,UADqB;;AAEtC;;;;;;;AAOAlI,mBAAa,CAAEnuH,GAAF,EAAO;AAChB,eAAO,KAAKwhB,GAAL,CAASxhB,GAAT,KAAiB,KAAK4pB,MAAL,CAAY;AAAC,iBAAO5pB;AAAR,SAAZ,CAAxB;AACH;;AAXqC,KAAlB,CAAxB;AAcA;;AACAqwC,qBAAG,CAAC1B,SAAJ,CAAc,sBAAd,EAAsCjZ,IAAtC,CAA2C+2F,sBAA3C;AAEAp8E,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,cAAd,EAA8B+pF,qBAA9B;AACAh8E,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,iBAAd,EAAiC+pF,qBAAjC;AAEAh8E,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,wBAAd,EAAwCqqF,iBAAxC;AACAt8E,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,yBAAd,EAAyCqqF,iBAAzC;AAEAt8E,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,WAAd,EAA2ByuF,sBAA3B;AACA1gF,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,mBAAd,EAAmCqvF,qBAAnC;AAEAthF,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,mBAAd,EAAmCgvF,SAAnC;AACAjhF,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,mBAAd,EACI,MAAM+N,iBAAG,CAACwX,KAAJ,CAAUC,GAAV,CAAcziD,QAAd,CAAuBmuB,GAAvB,WAA8Bn7B,sBAAO,CAACM,EAAR,CAAW+3H,gBAAzC,aADV;AAGArgF,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,6BAAd,EAA6CsR,OAAO,IAAI;AACpD,YAAM5zC,GAAG,GAAG4zC,OAAO,CAACpyB,GAAR,CAAY,KAAZ,CAAZ;;AACA0uB,4BAAS,CAAC6iF,oBAAV,CAA+B/yH,GAA/B,EAAoCy7B,KAApC,CAA0C97B,CAAC,IAAIsB,YAAG,CAACI,KAAJ,CAAU1B,CAAV,CAA/C;AACH,KAHD;AAKA0wC,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,yBAAd,EAAyC,MAAM;AAC3C4N,4BAAS,CAAC6iF,oBAAV,CAA+B7iF,sBAAS,CAACsB,QAAzC,EAAmD/V,KAAnD,CAAyD97B,CAAC,IAAIsB,YAAG,CAACI,KAAJ,CAAU1B,CAAV,CAA9D;AACH,KAFD;AAIA0wC,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,eAAd,EAA+B,MAAO,OAAO4N,sBAAS,CAACK,WAAvD;AAEAF,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,cAAd,EAA8B,MAAM;AAChC,UAAI4N,sBAAS,CAAC0V,gBAAV,MAAgC1V,sBAAS,CAACg+E,WAA9C,EAA2D;AACvDh+E,8BAAS,CAACg+E,WAAV,CAAsBr3E,UAAtB;;AACA,eAAO3G,sBAAS,CAACg+E,WAAjB;AACH;AACJ,KALD;AAQA;;AACA/2H,UAAM,CAACsmC,MAAP,CAAcyS,sBAAS,CAACG,GAAxB,EAA6B;AACzB;;;;;;;AAOA,eAAS;AACL;;;;;;;AAOA,kBAAU;AACN;;;;;;AAMA,sBAAY,YAAY;AACpB;AACA,kBAAM0vD,UAAU,GAAG7vD,sBAAS,CAACg+E,WAAV,CAAsB1sG,GAAtB,CAA0B0uB,sBAAS,CAACsB,QAApC,CAAnB;;AACA,kBAAMlB,SAAS,GAAGJ,sBAAS,CAACK,WAAV,CAAsB/uB,GAAtB,CAA0B,WAA1B,CAAlB;;AACA,gBAAI8uB,SAAJ,EAAe;AACX,oBAAMmvD,MAAM,GAAGM,UAAU,CAACD,OAAX,CAAmBt+E,GAAnB,CAAuB8uB,SAAvB,CAAf;;AACAJ,oCAAS,CAACK,WAAV,CAAsB9K,KAAtB,CAA4B6K,SAA5B;;AACA,kBAAImvD,MAAJ,EAAY;AACR,sBAAM,IAAInlE,OAAJ,CAAY8e,IAAI,IAAIqmD,MAAM,CAAChjE,OAAP,CAAe;AAAC,6BAAW2c,IAAZ;AAAkB,2BAASA;AAA3B,iBAAf,CAApB,CAAN;AACH;;AACD2mD,wBAAU,CAACD,OAAX,CAAmB3+D,OAAnB,CAA2B,QAA3B;AACH,aAXmB,CAYpB;AACA;;;AACA,kBAAM+O,sBAAS,CAACK,WAAV,CAAsBqlF,cAAtB,EAAN;AACA,kBAAM71B,UAAU,CAAC02B,cAAX,EAAN;AACA,kBAAMh3B,MAAM,GAAGM,UAAU,CAACD,OAAX,CAAmBt+E,GAAnB,CAAuB0uB,sBAAS,CAACK,WAAV,CAAsB/uB,GAAtB,CAA0B,WAA1B,CAAvB,CAAf;AACA,kBAAMwrB,EAAE,GAAGkiF,mBAAmB,CAACzvB,MAAD,CAA9B;AACA,kBAAMvvD,sBAAS,CAACK,WAAV,CAAsBk+E,aAAtB,EAAN;AACA,mBAAOzhF,EAAP;AACH;AA3BK;AARL;AARgB,KAA7B;AA+CH;;AA7vBkC,CAAvC,E;;AC9lBA;;;;;;;;AAQA;AACA;AAEA,MAAM;AAAE30C,SAAF;AAAWG,KAAGA;AAAd,IAAmB+6B,QAAQ,CAAC20B,GAAlC;AAEA7vD,qBAAO,CAACiE,YAAR,CAAqB,MAArB,EAA6B,iBAA7B;AAGAi3B,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,eAArB,EAAsC;AAElCC,YAAU,GAAI;AACV;;;AAGA4c,qBAAG,CAAC3c,QAAJ,CAAa2K,MAAb,CAAoB;AAChB,0BAAoB,EADJ;AAEhB,yBAAmB;AAFH,KAApB;;AAKA,mBAAeq4F,oBAAf,CAAqCl/H,MAArC,EAA6Cm/H,eAA7C,EAA8D;AAC1D,UAAI,CAACA,eAAe,CAAC32H,GAArB,EAA0B;AACtB;AACH;;AACD,UAAI,EAAE,MAAMqwC,iBAAG,CAACwX,KAAJ,CAAUiM,QAAV,CAAmBz7D,qBAAO,CAACM,EAAR,CAAWi+H,IAA9B,EAAoCp/H,MAAM,IAAI04C,sBAAS,CAACsB,QAAxD,CAAR,CAAJ,EAAgF;AAC5EvwC,oBAAG,CAACO,IAAJ,2CAA2Cm1H,eAAe,CAAC32H,GAA3D;AACA;AACH;;AACD,YAAM+K,MAAM,GAAGvS,iBAAG,CAAC;AAAC,gBAAQ;AAAT,OAAD,CAAlB;;AACA,UAAIhB,MAAM,KAAK04C,sBAAS,CAACsB,QAAzB,EAAmC;AAC/BzmC,cAAM,CAAC3S,KAAP,CAAa;AAAC,gBAAMZ;AAAP,SAAb;AACH;;AACDuT,YAAM,CAAChV,CAAP,CAAS,SAAT,EAAoB;AAChB,iBAASsC,qBAAO,CAACM,EAAR,CAAWi+H,IADJ;AAEhB,eAAOD,eAAe,CAAC32H;AAFP,OAApB;;AAIA,UAAI22H,eAAe,CAACt5H,IAApB,EAA0B;AACtB0N,cAAM,CAAC3S,KAAP,CAAa;AAAC,kBAAQu+H,eAAe,CAACt5H;AAAzB,SAAb;AACH;;AACDgzC,uBAAG,CAACllC,MAAJ,CAAWJ,MAAX,EACC0wB,KADD,CACO97B,CAAC,IAAI;AACRsB,oBAAG,CAACI,KAAJ,iDAAmDs1H,eAAe,CAAC32H,GAAnE;AACAiB,oBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACH,OAJD;AAKH;;AAED,mBAAek3H,mBAAf,CAAoCr/H,MAApC,EAA4Cm/H,eAA5C,EAA6D;AACzD,UAAI,CAACA,eAAe,CAAC32H,GAAjB,IAAwB,CAAC22H,eAAe,CAACt5H,IAA7C,EAAmD;AAC/C;AACH;;AACD,YAAMs1D,QAAQ,GAAG,MAAMtiB,iBAAG,CAACwX,KAAJ,CAAUgK,WAAV,CAAsB,QAAtB,EAAgC,MAAhC,EAAwC8kE,eAAe,CAAC32H,GAAxD,CAAvB;;AACA,UAAI,CAAC2yD,QAAL,EAAe;AACX,eAAO1xD,YAAG,CAACO,IAAJ,2CAC+Bm1H,eAAe,CAAC32H,GAD/C,mDAAP;AAGH;;AACD,YAAM+B,MAAM,GAAG,MAAMu4B,OAAO,CAACqB,GAAR,CAAY,CAC7B0U,iBAAG,CAACwX,KAAJ,CAAUiM,QAAV,CAAmBz7D,qBAAO,CAACM,EAAR,CAAWi+H,IAA9B,EAAoCD,eAAe,CAAC32H,GAApD,CAD6B,EAE7BqwC,iBAAG,CAACwX,KAAJ,CAAUiM,QAAV,CAAmBz7D,qBAAO,CAACM,EAAR,CAAWi+H,IAA9B,EAAoCp/H,MAApC,CAF6B,CAAZ,CAArB;;AAIA,UAAI,CAACuK,MAAM,CAAC,CAAD,CAAP,IAAc,CAACA,MAAM,CAAC,CAAD,CAAzB,EAA8B;AAC1Bd,oBAAG,CAACO,IAAJ,0CAA0Cm1H,eAAe,CAAC32H,GAA1D;AACA;AACH;;AACD,YAAM+K,MAAM,GAAGvS,iBAAG,CAAC;AAAC,gBAAQ;AAAT,OAAD,CAAlB;;AACA,UAAIhB,MAAM,KAAK04C,sBAAS,CAACsB,QAAzB,EAAmC;AAC/BzmC,cAAM,CAAC3S,KAAP,CAAa;AAAC,gBAAMZ;AAAP,SAAb;AACH;;AACDuT,YAAM,CAAChV,CAAP,CAAS,QAAT,EAAmB;AACf,iBAASsC,qBAAO,CAACM,EAAR,CAAWi+H,IADL;AAEf,eAAOD,eAAe,CAAC32H,GAFR;AAGf,gBAAQ22H,eAAe,CAACt5H;AAHT,OAAnB;;AAKA,UAAIs5H,eAAe,CAACG,MAApB,EAA4B;AACxB/rH,cAAM,CAAChV,CAAP,CAAS,GAAT,EAAc;AAAC,mBAASsC,qBAAO,CAACM,EAAR,CAAWi6D,KAArB;AAA4B,kBAAQ;AAApC,SAAd,EACK78D,CADL,CACO,OADP,EACgB;AAAC,iBAAO;AAAR,SADhB,EAESA,CAFT,CAEW,OAFX,EAEoBF,CAFpB,WAEyBwC,qBAAO,CAACM,EAAR,CAAWkuE,MAFpC,uBAE8DjkE,EAF9D,GAEmEA,EAFnE,GAGK7M,CAHL,CAGO,OAHP,EAGgB;AAAC,iBAAO;AAAR,SAHhB,EAISA,CAJT,CAIW,OAJX,EAIoBF,CAJpB,CAIsB8gI,eAAe,CAACG,MAJtC;AAKH;;AACD,aAAOzmF,iBAAG,CAACllC,MAAJ,CAAWJ,MAAX,CAAP;AACH;;AAED,mBAAegsH,UAAf,CAA2Bv/H,MAA3B,EAAmC;AAC/BA,YAAM,GAAGA,MAAM,IAAI04C,sBAAS,CAACsB,QAA7B;AACA,YAAMwlF,YAAY,GAAG9mF,sBAAS,CAACpkB,OAAV,CAAkBtK,GAAlB,CAAsB,cAAtB,KAAyC,EAA9D;;AACA,UAAIw1G,YAAY,CAACxiG,QAAb,CAAsBh9B,MAAtB,CAAJ,EAAmC;AAC/B;AACH;;AACD,YAAMy/H,gBAAgB,GAAG5mF,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,kBAAjB,EAAqC/S,MAArC,CAA4C7Y,CAAC,IAAI,CAACA,CAAC,CAAC43F,OAApD,CAAzB;AACA,YAAM0pC,iBAAiB,GAAG7mF,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,kBAAjB,EAAqC/S,MAArC,CAA4C7Y,CAAC,IAAIA,CAAC,CAAC43F,OAAnD,CAA1B;AACA,YAAM/tD,OAAO,GAAGw3F,gBAAgB,CAACn1H,GAAjB,CAAqBlM,CAAC,IAAIihI,mBAAmB,CAACr/H,MAAD,EAAS5B,CAAT,CAA7C,CAAhB;AACA,YAAMyjF,QAAQ,GAAG69C,iBAAiB,CAACp1H,GAAlB,CAAsBlM,CAAC,IAAI8gI,oBAAoB,CAACl/H,MAAD,EAAS5B,CAAT,CAA/C,CAAjB;;AACA,UAAI;AACA,cAAM0kC,OAAO,CAACqB,GAAR,CAAY8D,OAAO,CAAChsB,MAAR,CAAe4lE,QAAf,CAAZ,CAAN;AACH,OAFD,CAEE,OAAO15E,CAAP,EAAU;AACRsB,oBAAG,CAACI,KAAJ,CAAU,6CAAV;AACA,YAAI1B,CAAJ,EAAOsB,YAAG,CAACI,KAAJ,CAAU1B,CAAV;AACV,OALD,SAKU;AACNq3H,oBAAY,CAACv3H,IAAb,CAAkBjI,MAAlB;AACH;;AACD04C,4BAAS,CAACpkB,OAAV,CAAkBmR,IAAlB,CAAuB,cAAvB,EAAuC+5F,YAAvC;AACH;;AACD3mF,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,mBAAd,EAAmC,MAAMy0F,UAAU,EAAnD;;AAEA,aAASI,cAAT,CAAyBp7F,KAAzB,EAAgC;AAC5B,UAAIA,KAAK,CAACva,GAAN,CAAU,MAAV,KAAqB0uB,sBAAS,CAACkS,cAAnC,EAAmD;AAC/C20E,kBAAU,CAAC1+H,qBAAO,CAAC6H,gBAAR,CAAyB67B,KAAK,CAACva,GAAN,CAAU,KAAV,CAAzB,CAAD,CAAV;AACH;AACJ;;AACD,QAAI6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,iBAAjB,CAAJ,EAAyC;AACrC6uB,uBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,sBAAd,EAAuC,MAAM4N,sBAAS,CAACogB,SAAV,CAAoBhuB,EAApB,CAAuB,KAAvB,EAA8B60F,cAA9B,CAA7C;AACH;AACJ;;AAxGiC,CAAtC,E;;;;;;;;;;;;;;AChBA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;;AACA,MAAM;AAAE9+H,SAAF;AAAW+vC,QAAX;AAAmB5vC,KAAGA;AAAtB,IAA2B+6B,QAAQ,CAAC20B,GAA1C;AACA,MAAMphB,mBAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB,C,CAEA;;AACAwB,yBAAO,CAACiE,YAAR,CAAqB,UAArB,EAAiC,oBAAjC,E,CAEA;;AACA,MAAMxH,mBAAC,GAAGqC,MAAM,CAAC0K,IAAP,CAAYxJ,yBAAO,CAACiC,MAApB,EAA4B0H,MAA5B,CAAmC,CAACyc,GAAD,EAAM1gB,CAAN,KAAYoK,IAAI,CAACsW,GAAL,CAASA,GAAT,EAAcpmB,yBAAO,CAACiC,MAAR,CAAeyD,CAAf,CAAd,CAA/C,EAAiF,CAAjF,CAAV;AACA1F,yBAAO,CAACiC,MAAR,CAAe88H,QAAf,GAAiCtiI,mBAAC,GAAG,CAArC;AACAuD,yBAAO,CAACiC,MAAR,CAAe+8H,UAAf,GAAiCviI,mBAAC,GAAG,CAArC;AACAuD,yBAAO,CAACiC,MAAR,CAAegB,QAAf,GAAiCxG,mBAAC,GAAG,CAArC;AACAuD,yBAAO,CAACiC,MAAR,CAAeg9H,aAAf,GAAiCxiI,mBAAC,GAAG,CAArC;AAGAy+B,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,mBAArB,EAA0C;AAEtCiM,SAAO,GAAI;AACP,WAAO,IAAP;AACH,GAJqC;;AAMtCd,WAAS,EAAE;AACP;AACA;AACA;AACA;AACA;AAEAwqE,kBAAc,EAAE;AACZM,sBAAgB,GAAI;AAChB;;;AAGA,aAAKtrE,SAAL,CAAesrE,gBAAf,CAAgCvhF,KAAhC,CAAsC,IAAtC,EAA4C3qB,SAA5C;;AACA,aAAKg6H,uBAAL;AACA,eAAO,IAAP;AACH;;AARW;AAPT,GAN2B;;AAyBtC9jG,YAAU,GAAI;AACV;;;AAGAyc,0BAAS,CAACkL,iBAAV,CAA4B/iD,yBAAO,CAACiC,MAAR,CAAe88H,QAA3C,IAAuD,UAAvD;AACAlnF,0BAAS,CAACkL,iBAAV,CAA4B/iD,yBAAO,CAACiC,MAAR,CAAe+8H,UAA3C,IAAyD,YAAzD;AACAnnF,0BAAS,CAACkL,iBAAV,CAA4B/iD,yBAAO,CAACiC,MAAR,CAAegB,QAA3C,IAAuD,UAAvD;AACA40C,0BAAS,CAACkL,iBAAV,CAA4B/iD,yBAAO,CAACiC,MAAR,CAAeg9H,aAA3C,IAA4D,eAA5D;AAEAjnF,qBAAG,CAAC3c,QAAJ,CAAa2K,MAAb,CAAoB;AAChB,4BAAsB,IADN;AAEhB,4BAAsB6b,KAAE,CAAC,sBAAD,CAFR;AAEmC;AACnD,wBAAkB,sCAHF;AAG0C;AAC1D,6BAAuB;AAJP,KAApB;AAQA/iD,UAAM,CAACsmC,MAAP,CAAcyS,sBAAS,CAACi5D,cAAV,CAAyB/xG,SAAvC,EAAkD;AAE9CogI,6BAAuB,GAAI;AACvB,YAAI,CAAC,KAAKC,aAAV,EAAyB;AACrB;AACH;;AACD,YAAI,KAAK17F,KAAL,CAAWva,GAAX,CAAe,aAAf,KAAiC,UAArC,EAAiD;AAC7C,eAAKmoF,UAAL,CAAgB5sG,EAAhB,CAAmBsiF,SAAnB,CAA6B7rD,GAA7B,CAAiC,QAAjC;AACA,eAAKikG,aAAL,CAAmB16H,EAAnB,CAAsBsiF,SAAtB,CAAgC9pC,MAAhC,CAAuC,QAAvC;AACH,SAHD,MAGO;AACH,eAAKo0D,UAAL,CAAgB5sG,EAAhB,CAAmBsiF,SAAnB,CAA6B9pC,MAA7B,CAAoC,QAApC;AACA,eAAKkiF,aAAL,CAAmB16H,EAAnB,CAAsBsiF,SAAtB,CAAgC7rD,GAAhC,CAAoC,QAApC;AACH;AACJ,OAb6C;;AAe9C+jG,6BAAuB,GAAI;AACvB,YAAIlnF,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,oBAAjB,CAAJ,EAA4C;AACxC,eAAKi2G,aAAL,GAAqB,IAAIvnF,sBAAS,CAACwnF,aAAd,CAA4B;AAC7C,qBAAS,KAAK37F;AAD+B,WAA5B,CAArB;AAGA,eAAK07F,aAAL,CAAmBn7C,MAAnB;AACA,eAAKm7C,aAAL,CAAmB16H,EAAnB,CAAsBsiF,SAAtB,CAAgC7rD,GAAhC,CAAoC,QAApC;AACA,gBAAMmkG,WAAW,GAAG,KAAK56H,EAAL,CAAQkuB,aAAR,CAAsB,uBAAtB,CAApB;;AACA,cAAI0sG,WAAJ,EAAiB;AACbA,uBAAW,CAACv5C,qBAAZ,CAAkC,UAAlC,EAA8C,KAAKq5C,aAAL,CAAmB16H,EAAjE;AACH;;AACD,eAAKy6H,uBAAL;AACH;;AACD,eAAO,IAAP;AACH;;AA7B6C,KAAlD;;AAiCA,aAASI,aAAT,CAAwB7/H,KAAxB,EAA+B;AAC3Bs4C,uBAAG,CAAC1B,SAAJ,CAAc,uBAAd,EAAuCjZ,IAAvC,CAA4C,MAAM;AAC9C,cAAMk1E,UAAU,GAAG16D,sBAAS,CAACogB,SAAV,CAAoB9uC,GAApB,CAAwB,YAAxB,CAAnB;;AACAopF,kBAAU,CAACztE,GAAX,CAAe;AAAC,yBAAeplC;AAAhB,SAAf;AACH,OAHD,EAGG0jC,KAHH,CAGS97B,CAAC,IAAIsB,YAAG,CAACP,KAAJ,CAAUf,CAAV,CAHd;AAIH;;AACDuwC,0BAAS,CAACsS,MAAV,CAAiB35C,KAAjB,CAAuB,gBAAvB,EAAyC,MAAM+uH,aAAa,CAAC,OAAD,CAA5D;;AACA1nF,0BAAS,CAACsS,MAAV,CAAiB35C,KAAjB,CAAuB,mBAAvB,EAA4C,MAAM+uH,aAAa,CAAC,UAAD,CAA/D;AAGA;;;;;;;AAKA1nF,0BAAS,CAACwnF,aAAV,GAA0B17C,IAAI,CAAC39C,MAAL,CAAY;AAClCrhC,aAAO,EAAE,KADyB;AAElC6G,QAAE,EAAE,yBAF8B;AAGlCy5E,eAAS,EAAE,yBAHuB;AAIlCl7C,YAAM,EAAE;AACJ,yCAAiC,kBAD7B;AAEJ,gCAAwB;AAFpB,OAJ0B;;AASlC3O,gBAAU,GAAI;AACV,aAAKxuB,KAAL;AACAorC,yBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,uBAAd,EAAuC,MAAM,KAAKu1F,aAAL,EAA7C;AACH,OAZiC;;AAclCv7C,YAAM,GAAI;AACN,aAAKvgD,KAAL,CAAWoB,GAAX,CAAe,4BAAf,EAA6C,KAA7C;AACA,aAAKpgC,EAAL,CAAQyG,SAAR,GAAoBs0H,wBAAkB,CAAC;AACnC,gBAAM59E,KAD6B;AAEnC,4BAAkB7J,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB,CAFiB;AAGnC,4BAAkB04B,KAAE,CAAC,yBAAD,CAHe;AAInC,4BAAkBA,KAAE,CAAC,mDAAD,CAJe;AAKnC,iCAAuBA,KAAE,CAAC,MAAD,CALU;AAMnC,4BAAkB7J,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,gBAAjB,CANiB;AAOnC,gCAAsB6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,oBAAjB;AAPa,SAAD,CAAtC;;AASA,YAAI6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB,CAAJ,EAA6C;AACzC,eAAKu2G,qBAAL,CAA2B1nF,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB,CAA3B;AACH;;AACD,eAAO,IAAP;AACH,OA7BiC;;AA+BlCq2G,mBAAa,GAAI;AACb;;;AAGA,cAAMpjD,IAAI,GAAGvkC,sBAAS,CAAC5+B,UAAvB;;AACA,cAAM0mH,UAAU,GAAGvjD,IAAI,CAACzmE,WAAL,CAAiBrB,IAAjB,CAAsB8nE,IAAtB,CAAnB;;AACAA,YAAI,CAACzmE,WAAL,GAAmB,CAACX,GAAD,EAAM7E,QAAN,EAAgB8E,GAAhB,KAAwB;AACvC,cAAI,CAAC,KAAK2qH,YAAV,EAAwB;AACpBD,sBAAU,CAAC3qH,GAAD,EAAM7E,QAAN,EAAgB8E,GAAhB,CAAV;AACH,WAFD,MAEO;AACH,gBAAI,KAAK4qH,qBAAL,CAA2B7qH,GAA3B,EAAgC7E,QAAhC,CAAJ,EAA+C;AAC3C,mBAAKyvH,YAAL,GAAoB,KAApB;AACH;AACJ;AACJ,SARD;AASH,OA9CiC;;AAgDlC;;;;;;;AAOAC,2BAAqB,CAAE7qH,GAAF,EAAOY,SAAP,EAAkB;AACnC,cAAMwmE,IAAI,GAAGvkC,sBAAS,CAAC5+B,UAAvB;AACAmjE,YAAI,CAACruE,SAAL,GAAiB,IAAjB;;AAEA,cAAMulB,IAAI,GAAG8oD,IAAI,CAACltE,MAAL,CAAYgG,UAAZ,CAAuBF,GAAvB,CAAb;;AACA,YAAI,CAACse,IAAL,EAAW;AAAE;AAAS;;AACtB,YAAI8oD,IAAI,CAACltE,MAAL,CAAYyG,WAAZ,CAAwB2d,IAAxB,MAAkCtzB,yBAAO,CAACiC,MAAR,CAAeG,QAArD,EAA+D;AAC3D,eAAK09H,mBAAL,CACIj+E,KAAE,CAAC,yDAAD,CADN;AAGA,iBAAO,KAAP;AACH;;AACD,cAAMq9B,QAAQ,GAAG5rD,IAAI,CAAC9d,oBAAL,CAA0B,UAA1B,CAAjB;AACA,cAAMpI,UAAU,GAAGkmB,IAAI,CAAC9d,oBAAL,CAA0B,WAA1B,CAAnB;;AACA,YAAI0pE,QAAQ,CAACxiF,MAAT,KAAoB,CAApB,IAAyB0Q,UAAU,CAAC1Q,MAAX,KAAsB,CAAnD,EAAsD;AAClD0/E,cAAI,CAACltE,MAAL,CAAY+G,iBAAZ,CAA8BL,SAA9B;;AACA,iBAAO,KAAP;AACH;;AACD,YAAIspE,QAAQ,CAACxiF,MAAT,KAAoB,CAAxB,EAA2B;AACvB0/E,cAAI,CAACxrE,oBAAL,CAA0B5Q,yBAAO,CAACiC,MAAR,CAAe88H,QAAzC;;AACA,eAAKe,mBAAL,CACIj+E,KAAE,CAAC,mDACA,+CADA,GAEA,qBAFD,CADN;AAIA,iBAAO,IAAP;AACH,SAzBkC,CA0BnC;;;AACAu6B,YAAI,CAACtlE,cAAL,CAAoB,KAAKipH,oBAAL,CAA0BzrH,IAA1B,CAA+B,IAA/B,CAApB,EAA0D,IAA1D,EAAgE,IAAhE,EAAsE,IAAtE,EAA4E,IAA5E;;AACA,cAAM5B,MAAM,GAAGvS,qBAAG,CAAC;AAACoL,cAAI,EAAE;AAAP,SAAD,CAAH,CAAmB7N,CAAnB,CAAqB,OAArB,EAA8B;AAAC0M,eAAK,EAAEpK,yBAAO,CAACM,EAAR,CAAW0/H;AAAnB,SAA9B,EAA4D32H,IAA5D,EAAf;AACAqJ,cAAM,CAACjN,YAAP,CAAoB,IAApB,EAA0B22E,IAAI,CAAC1sE,WAAL,CAAiB,QAAjB,CAA1B;AACA0sE,YAAI,CAACpqE,IAAL,CAAUU,MAAV;AACA0pE,YAAI,CAACruE,SAAL,GAAiB,KAAjB;AACA,eAAO,IAAP;AACH,OAxFiC;;AA0FlC;;;;;;AAMAgyH,0BAAoB,CAAErtH,MAAF,EAAU;AAC1B,YAAIA,MAAM,CAAC7L,YAAP,CAAoB,MAApB,MAAgC,OAApC,EAA6C;AACzCgxC,gCAAS,CAAC5+B,UAAV,CAAqBrI,oBAArB,CACI5Q,yBAAO,CAACiC,MAAR,CAAe88H,QADnB,EAEIl9E,KAAE,CAAC,uEACA,yBADD,EAC4B,KAAK1iD,MADjC,CAFN;;AAKA,iBAAO,KAAP;AACH;;AACD,YAAIuT,MAAM,CAAC8C,oBAAP,CAA4B,OAA5B,EAAqC9Y,MAArC,KAAgD,CAApD,EAAuD;AACnDm7C,gCAAS,CAAC5+B,UAAV,CAAqBrI,oBAArB,CACI5Q,yBAAO,CAACiC,MAAR,CAAe88H,QADnB,EAEI,SAFJ;;AAIA,iBAAO,KAAP;AACH;;AACD,aAAKkB,SAAL,CAAevtH,MAAf;;AACA,YAAI,CAAC,KAAKgxB,KAAL,CAAWva,GAAX,CAAe,4BAAf,CAAL,EAAmD;AAC/C,eAAK+2G,sBAAL,CAA4BxtH,MAA5B;AACH;;AACD,eAAO,KAAP;AACH,OArHiC;;AAuHlC9F,WAAK,CAAEyuB,QAAF,EAAY;AACb,cAAMsR,QAAQ,GAAG;AACbwsB,gBAAM,EAAE,EADK;AAEbgnE,cAAI,EAAE,EAFO;AAGb75E,eAAK,EAAE,EAHM;AAIbi8D,sBAAY,EAAE,EAJD;AAKb6d,oBAAU,EAAE,KALC;AAMbR,sBAAY,EAAE,KAND;AAObzgI,gBAAM,EAAE,IAPK;AAQbkhI,mBAAS,EAAE;AARE,SAAjB;AAUAvhI,cAAM,CAACsmC,MAAP,CAAc,IAAd,EAAoBuH,QAApB;;AACA,YAAItR,QAAJ,EAAc;AACVv8B,gBAAM,CAACsmC,MAAP,CAAc,IAAd,EAAoB6H,cAAI,CAAC5R,QAAD,EAAWv8B,MAAM,CAAC0K,IAAP,CAAYmjC,QAAZ,CAAX,CAAxB;AACH;AACJ,OAtIiC;;AAwIlC2zF,sBAAgB,CAAEvjG,EAAF,EAAM;AAClB;;;;;;AAMA,YAAIA,EAAE,IAAIA,EAAE,CAACglD,cAAb,EAA6B;AAAEhlD,YAAE,CAACglD,cAAH;AAAsB;;AACrD,YAAIhlD,EAAE,CAAC8kD,MAAH,CAAUjvD,aAAV,CAAwB,oBAAxB,MAAkD,IAAtD,EAA4D;AACxD,eAAK2tG,sBAAL,CAA4BxjG,EAAE,CAAC8kD,MAA/B;AACH,SAFD,MAEO;AACH,eAAK2+C,gBAAL,CAAsBzjG,EAAE,CAAC8kD,MAAzB;AACH;AAEJ,OAtJiC;;AAwJlC;;;;;;AAMA2+C,sBAAgB,CAAEhmE,IAAF,EAAQ;AACpB,cAAMimE,YAAY,GAAGjmE,IAAI,CAAC5nC,aAAL,CAAmB,oBAAnB,CAArB;AAAA,cACIzzB,MAAM,GAAGshI,YAAH,aAAGA,YAAH,uBAAGA,YAAY,CAAE/gI,KAD3B;;AAEA,YAAI,CAACP,MAAL,EAAa;AACT;AACAshI,sBAAY,CAACz5C,SAAb,CAAuB7rD,GAAvB,CAA2B,OAA3B;AACA;AACH;;AACDq/B,YAAI,CAAC5nC,aAAL,CAAmB,oBAAnB,EAAyCo0D,SAAzC,CAAmD7rD,GAAnD,CAAuD,QAAvD;AACA,aAAKukG,qBAAL,CAA2BvgI,MAAM,CAACghB,IAAP,EAA3B;AACH,OAxKiC;;AA0KlC;;;;;;AAMA,YAAMu/G,qBAAN,CAA6BgB,WAA7B,EAA0C;AAAA;;AACtC,YAAI,CAAC,KAAKh9F,KAAL,CAAWva,GAAX,CAAe,4BAAf,CAAL,EAAmD;AAC/C,eAAKw3G,yBAAL;AACH;;AACD,aAAK/zH,KAAL,CAAW;AACP,oBAAU5M,yBAAO,CAAC6H,gBAAR,CAAyB64H,WAAzB,CADH;AAEP,0BAAgB;AAFT,SAAX;AAIA,cAAM7oF,sBAAS,CAACsT,cAAV,CAAyB,KAAKhsD,MAA9B,CAAN,CARsC,CAStC;AACA;;AACA,gCAAA04C,sBAAS,CAAC5+B,UAAV,8EAAsB7I,OAAtB,CAA8B,KAAKjR,MAAnC,EAA2C,EAA3C,EAA+CuV,MAAM,IAAI,KAAKktC,sBAAL,CAA4BltC,MAA5B,CAAzD;AACA,eAAO,KAAP;AACH,OA7LiC;;AA+LlCisH,+BAAyB,GAAI;AACzB;;;AAGA,aAAKC,qBAAL,GAA6BvlB,kBAA7B,CACI,WADJ,EAEIwlB,8BAAwB,CAAC;AACrB,gBAAMhpF,sBAAS,CAACgK,EADK;AAErB,oBAAU7J,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB;AAFW,SAAD,CAF5B;AAOH,OA1MiC;;AA4MlC23G,kBAAY,CAAEr4H,OAAF,EAAWglH,KAAX,EAAkB;AAC1B,YAAIvqE,QAAQ,GAAG,KAAKx+C,EAAL,CAAQkuB,aAAR,CAAsB,eAAtB,CAAf;;AACA,YAAIswB,QAAQ,KAAK,IAAjB,EAAuB;AACnBA,kBAAQ,CAAC14C,UAAT,CAAoB47C,WAApB,CAAgClD,QAAhC;AACH;;AACD,cAAMsX,IAAI,GAAG,KAAK91D,EAAL,CAAQkuB,aAAR,CAAsB,MAAtB,CAAb;AACA4nC,YAAI,CAAC6gD,kBAAL,CAAwB,YAAxB,EAAsC,oCAAtC;AACAn4D,gBAAQ,GAAGsX,IAAI,CAAC5nC,aAAL,CAAmB,eAAnB,CAAX;AACAswB,gBAAQ,CAAC/sC,WAAT,GAAuB1N,OAAvB;;AACA,YAAIglH,KAAJ,EAAW;AACPvqE,kBAAQ,CAAC8jC,SAAT,CAAmB7rD,GAAnB,CAAuBsyF,KAAvB;AACH;AACJ,OAxNiC;;AA0NlCmT,2BAAqB,GAAI;AACrB,cAAMpmE,IAAI,GAAG,KAAK91D,EAAL,CAAQkuB,aAAR,CAAsB,MAAtB,CAAb;AACA4nC,YAAI,CAACrvD,SAAL,GAAiB,EAAjB;AACA,aAAKu4B,KAAL,CAAWoB,GAAX,CAAe,4BAAf,EAA6C,KAA7C;AACA,eAAO01B,IAAP;AACH,OA/NiC;;AAiOlCopD,iBAAW,GAAI;AACX,cAAMppD,IAAI,GAAG,KAAK91D,EAAL,CAAQkuB,aAAR,CAAsB,MAAtB,CAAb;AACAqxD,qBAAM,CAACkV,OAAW,EAAZ,EAAgB3+B,IAAhB,CAAN;AACA,aAAK92B,KAAL,CAAWoB,GAAX,CAAe,4BAAf,EAA6C,KAA7C;AACA,eAAO,IAAP;AACH,OAtOiC;;AAwOlC;;;;;;;AAOA8c,4BAAsB,CAAC1xC,WAAD,EAAc;AAChCtH,oBAAG,CAACK,KAAJ,CAAU,2CAAV;;AACA,YAAI,CAACjJ,yBAAO,CAACiC,MAAR,CAAeO,YAAhB,EACCxC,yBAAO,CAACiC,MAAR,CAAeG,QADhB,EAECpC,yBAAO,CAACiC,MAAR,CAAe88H,QAFhB,EAGC/+H,yBAAO,CAACiC,MAAR,CAAeg9H,aAHhB,EAICj/H,yBAAO,CAACiC,MAAR,CAAegB,QAJhB,EAKEk5B,QALF,CAKWjsB,WALX,CAAJ,EAK6B;AAEzBtH,sBAAG,CAACI,KAAJ,0DACsD6uC,sBAAS,CAACkL,iBAAV,CAA4B7yC,WAA5B,CADtD;AAGA,eAAK6wH,iBAAL;AACH,SAXD,MAWO,IAAI7wH,WAAW,KAAKlQ,yBAAO,CAACiC,MAAR,CAAe+8H,UAAnC,EAA+C;AAClDp2H,sBAAG,CAACK,KAAJ,CAAU,0BAAV;;AACA4uC,gCAAS,CAAC5+B,UAAV,CAAqBrM,KAArB;;AACA,eAAKg3G,WAAL;;AAEA,cAAI,CAAC,gBAAD,EAAmB,mBAAnB,EAAwCznF,QAAxC,CAAiD0b,sBAAS,CAACsS,MAAV,CAAiBjG,OAAjB,CAAyBa,WAAzB,EAAjD,CAAJ,EAA8F;AAC1FlN,kCAAS,CAACsS,MAAV,CAAiB3E,QAAjB,CAA0B,EAA1B,EAA8B;AAAC,yBAAW;AAAZ,aAA9B;AACH;;AAED,cAAI,KAAK2T,MAAL,CAAYj6C,QAAZ,IAAwB,KAAKi6C,MAAL,CAAYl6C,QAAxC,EAAkD;AAC9C;AACA44B,kCAAS,CAAC5+B,UAAV,CAAqB7I,OAArB,CACI,KAAK+oD,MAAL,CAAYl6C,QAAZ,CAAqBrY,WAArB,KAAmC,GAAnC,GAAuC,KAAKzH,MAAL,CAAYyH,WAAZ,EAD3C,EAEI,KAAKuyD,MAAL,CAAYj6C,QAFhB,EAGI24B,sBAAS,CAAC+J,sBAHd;;AAKA,iBAAKk/E,YAAL,CAAkBj/E,KAAE,CAAC,oBAAD,CAApB,EAA4C,MAA5C;AACH,WARD,MAQO;AACHhK,kCAAS,CAAC0tC,YAAV,CAAuBp8D,GAAvB,CAA2B,YAA3B,EAAyCioF,gBAAzC;;AACAv5D,kCAAS,CAACipF,YAAV,CAAuBj/E,KAAE,CAAC,yBAAD,CAAzB;AACH;;AACD,eAAKj1C,KAAL;AACH;AACJ,OAnRiC;;AAqRlCo0H,kCAA4B,CAAExmE,IAAF,EAAQ;AAChC17D,cAAM,CAAC0K,IAAP,CAAY,KAAK2vD,MAAjB,EAAyBxlD,OAAzB,CAAiCoH,GAAG,IAAI;AACpC,cAAIA,GAAG,KAAK,UAAZ,EAAwB;AACpBy/C,gBAAI,CAAC6gD,kBAAL,CACI,WADJ,EAEItoB,uBAAiB,CAAC;AACd,oCAAe,KAAK5zF,MAApB,CADc;AAEd,sBAAQ4b,GAFM;AAGd,sBAAQ,MAHM;AAId,uBAASA,GAJK;AAKd,uBAAS,EALK;AAMd,0BAAY;AANE,aAAD,CAFrB;AAWH,WAZD,MAYO;AACHy/C,gBAAI,CAAC6gD,kBAAL,CACI,WADJ,EAEIpoB,oBAAc,CAAC;AACX,uBAASl4E,GADE;AAEX,sBAAQA,GAFG;AAGX,6BAAeA,GAHJ;AAIX,0BAAY,IAJD;AAKX,sBAASA,GAAG,KAAK,UAAR,IAAsBA,GAAG,KAAK,OAA/B,GAA0CA,GAA1C,GAAgD,MAL7C;AAMX,uBAAS;AANE,aAAD,CAFlB;AAWH;AACJ,SA1BD,EADgC,CA4BhC;;AACA,aAAKolH,IAAL,CAAUxsH,OAAV,CAAkB86B,CAAC,IAAI+rB,IAAI,CAAC6gD,kBAAL,CACnB,UADmB,EAEnB,4CAA0C5sE,CAA1C,GAA4C,IAA5C,GAAiDA,CAAjD,GAAmD,MAFhC,CAAvB;AAIH,OAtTiC;;AAwTlC;;;;;;;AAOAyxF,4BAAsB,CAAExtH,MAAF,EAAU;AAC5B,cAAM8nD,IAAI,GAAG,KAAK91D,EAAL,CAAQkuB,aAAR,CAAsB,MAAtB,CAAb;AACA4nC,YAAI,CAACrvD,SAAL,GAAiB81H,2BAAqB,CAAC;AACnC,gBAAMp/E,KAD6B;AAEnC,oBAAU,KAAK1iD,MAFoB;AAGnC,mBAAS,KAAKmnD,KAHqB;AAInC,0BAAgB,KAAKi8D,YAJc;AAKnC,iCAAuBvqE,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB;AALY,SAAD,CAAtC;AAQA,cAAMi+D,OAAO,GAAG5sB,IAAI,CAAC5nC,aAAL,CAAmB,kBAAnB,CAAhB;;AACA,YAAI,KAAKytG,SAAL,KAAmB,OAAvB,EAAgC;AAC5B3tH,gBAAM,CAAC2nD,gBAAP,CAAwB,OAAxB,EAAiC1mD,OAAjC,CAAyCkmD,KAAK,IAAI;AAC9CutB,mBAAO,CAACi0B,kBAAR,CACI,aADJ,EAEI78G,UAAK,CAACg0F,aAAN,CAAoB34B,KAApB,EAA2BnnD,MAA3B,EAAmC;AAAC,wBAAU,KAAKvT;AAAhB,aAAnC,CAFJ;AAIH,WALD;AAMH,SAPD,MAOO;AACH,eAAK6hI,4BAAL,CAAkCxmE,IAAlC;AACH;;AACD,YAAI,CAAC,KAAKrB,MAAV,EAAkB;AACdqB,cAAI,CAAC5nC,aAAL,CAAmB,iBAAnB,EAAsCo0D,SAAtC,CAAgD7rD,GAAhD,CAAoD,QAApD;AACH;;AACDq/B,YAAI,CAACwsB,SAAL,CAAe9pC,MAAf,CAAsB,QAAtB;AACA,aAAKxZ,KAAL,CAAWoB,GAAX,CAAe,4BAAf,EAA6C,IAA7C;AACH,OAzViC;;AA2VlCg7F,yBAAmB,CAAEr3H,OAAF,EAAW;AAC1B,cAAM+xD,IAAI,GAAG,KAAK91D,EAAL,CAAQkuB,aAAR,CAAsB,MAAtB,CAAb;AACA,YAAIsuG,KAAK,GAAG1mE,IAAI,CAAC5nC,aAAL,CAAmB,cAAnB,CAAZ;;AACA,YAAIsuG,KAAK,KAAK,IAAd,EAAoB;AAChBA,eAAK,GAAG,wCAAR;AACA,gBAAM3e,YAAY,GAAG/nD,IAAI,CAAC5nC,aAAL,CAAmB,gBAAnB,CAArB;;AACA,cAAI2vF,YAAY,KAAK,IAArB,EAA2B;AACvB/nD,gBAAI,CAAC6gD,kBAAL,CAAwB,YAAxB,EAAsC6lB,KAAtC;AACH,WAFD,MAEO;AACH3e,wBAAY,CAAClH,kBAAb,CAAgC,UAAhC,EAA4C6lB,KAA5C;AACH;;AACDA,eAAK,GAAG1mE,IAAI,CAAC5nC,aAAL,CAAmB,cAAnB,CAAR;AACH,SATD,MASO;AACHsuG,eAAK,CAAC/1H,SAAN,GAAkB,EAAlB;AACH;;AACD+1H,aAAK,CAAC7lB,kBAAN,CACI,WADJ,EAEI,gCAA8B5yG,OAA9B,GAAsC,MAF1C;AAIAy4H,aAAK,CAACl6C,SAAN,CAAgB9pC,MAAhB,CAAuB,QAAvB;AACH,OA/WiC;;AAiXlC;;;;;;;AAOAikF,kBAAY,CAAEzuH,MAAF,EAAU;AAClB,cAAMia,MAAM,GAAGja,MAAM,CAAC2nD,gBAAP,CAAwB,OAAxB,CAAf;AACA1tC,cAAM,CAAChZ,OAAP,CAAerM,CAAC,IAAI,KAAKw4H,mBAAL,CAAyBx4H,CAAC,CAAC6O,WAA3B,CAApB;;AACA,YAAI,CAACwW,MAAM,CAACjwB,MAAZ,EAAoB;AAChB,gBAAM+L,OAAO,GAAGo5C,KAAE,CAAC,sDACf,sDADc,CAAlB;;AAEA,eAAKi+E,mBAAL,CAAyBr3H,OAAzB;AACH;AACJ,OAhYiC;;AAkYlC24H,8BAAwB,CAAErkG,EAAF,EAAM;AAC1B,YAAIA,EAAE,IAAIA,EAAE,CAACglD,cAAb,EAA6B;AAAEhlD,YAAE,CAACglD,cAAH;AAAsB;;AACrDlqC,8BAAS,CAAC5+B,UAAV,CAAqB/J,MAArB,CAA4BsF,iBAA5B;;AACAqjC,8BAAS,CAAC5+B,UAAV,CAAqBrM,KAArB;;AACA,aAAKq3E,MAAL;AACH,OAvYiC;;AAyYlC88C,uBAAiB,GAAI;AACjBlpF,8BAAS,CAAC5+B,UAAV,CAAqB/J,MAArB,CAA4BsF,iBAA5B;;AACAqjC,8BAAS,CAAC5+B,UAAV,CAAqBrM,KAArB;;AACA,YAAI,KAAK82B,KAAL,CAAWva,GAAX,CAAe,4BAAf,CAAJ,EAAkD;AAC9C,cAAI6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB,KAA2C,KAAKua,KAAL,CAAWva,GAAX,CAAe,4BAAf,CAA/C,EAA6F;AACzF,iBAAKu2G,qBAAL,CACI1nF,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB,CADJ;AAGH;AACJ,SAND,MAMO;AACH,eAAK86D,MAAL;AACH;AACJ,OArZiC;;AAuZlC;;;;;;;AAOAs8C,4BAAsB,CAAE/lE,IAAF,EAAQ;AAC1B,cAAM6mE,gBAAgB,GAAG93H,KAAK,CAACkC,IAAN,CAAW,KAAK/G,EAAL,CAAQ21D,gBAAR,CAAyB,gBAAzB,CAAX,EACpB1wD,MADoB,CACb,CAACD,MAAD,EAASub,KAAT,KAAmB;AACvB,cAAIA,KAAK,CAACvlB,KAAN,KAAgB,EAApB,EAAwB;AACpBulB,iBAAK,CAAC+hE,SAAN,CAAgB7rD,GAAhB,CAAoB,OAApB;AACA,mBAAOzxB,MAAM,GAAG,CAAhB;AACH;;AACD,iBAAOA,MAAP;AACH,SAPoB,EAOlB,CAPkB,CAAzB;;AAQA,YAAI23H,gBAAJ,EAAsB;AAAE;AAAS;;AAEjC,cAAMhY,MAAM,GAAGt5E,wBAAM,CAAC,8CAAD,EAAiDyqB,IAAjD,CAArB;AACA,cAAM5iD,EAAE,GAAGzX,qBAAG,CAAC;AAAC,kBAAQ,KAAT;AAAgB,gBAAMsuC,mBAAC,CAAC/+B,WAAF;AAAtB,SAAD,CAAH,CACEhS,CADF,CACI,OADJ,EACa;AAAC0M,eAAK,EAACpK,yBAAO,CAACM,EAAR,CAAW0/H;AAAlB,SADb,CAAX;;AAGA,YAAI,KAAKK,SAAL,KAAmB,OAAvB,EAAgC;AAC5BzoH,YAAE,CAACla,CAAH,CAAK,GAAL,EAAU;AAAC0M,iBAAK,EAAEpK,yBAAO,CAACM,EAAR,CAAWi6D,KAAnB;AAA0BhvD,gBAAI,EAAE;AAAhC,WAAV;AAEA,gBAAM+1H,SAAS,GAAGjY,MAAM,CAAC5/G,GAAP,CAAWhN,CAAC,IAAI+B,UAAK,CAACuhE,aAAN,CAAoBtjE,CAApB,CAAhB,EAAwC2Z,MAAxC,CAA+CxM,CAAC,IAAIA,CAApD,CAAlB;AACA03H,mBAAS,CAAC3tH,OAAV,CAAkB/J,CAAC,IAAIgO,EAAE,CAAChN,KAAH,CAAShB,CAAT,EAAYW,EAAZ,EAAvB;AACH,SALD,MAKO;AACH8+G,gBAAM,CAAC11G,OAAP,CAAesR,KAAK,IAAIrN,EAAE,CAACla,CAAH,CAAKunB,KAAK,CAACpe,YAAN,CAAmB,MAAnB,CAAL,EAAiC,EAAjC,EAAqCoe,KAAK,CAACvlB,KAA3C,CAAxB;AACH;;AACDm4C,8BAAS,CAAC5+B,UAAV,CAAqBnC,cAArB,CAAoC,KAAKyqH,aAAL,CAAmBjtH,IAAnB,CAAwB,IAAxB,CAApC,EAAmE,IAAnE,EAAyE,IAAzE,EAA+E,IAA/E,EAAqF,IAArF;;AACAujC,8BAAS,CAAC5+B,UAAV,CAAqBjH,IAArB,CAA0B4F,EAA1B;;AACA,aAAKqoH,SAAL,CAAeroH,EAAE,CAACvO,IAAH,EAAf;AACH,OAxbiC;;AA0blC;;;;;AAKA42H,eAAS,CAAEvtH,MAAF,EAAU;AACf,cAAM4M,KAAK,GAAG5M,MAAM,CAACkgB,aAAP,CAAqB,OAArB,CAAd;AACA,cAAMskB,KAAK,GAAGnH,wBAAM,qBAAa/vC,yBAAO,CAACM,EAAR,CAAWi6D,KAAxB,UAAmCj7C,KAAnC,CAApB;;AACA,YAAI43B,KAAK,CAACx6C,MAAN,GAAe,CAAnB,EAAsB;AAClB,eAAK8kI,mBAAL,CAAyBtqF,KAAK,CAAC9hC,GAAN,EAAzB;AACH,SAFD,MAEO;AACH,eAAKqsH,oBAAL,CAA0BniH,KAA1B;AACH;AACJ,OAvciC;;AAyclCmiH,0BAAoB,CAAEniH,KAAF,EAAS;AACzB,WAAG3L,OAAH,CAAW1U,IAAX,CAAgBqgB,KAAK,CAAC+8B,QAAtB,EAAgCwd,KAAK,IAAI;AACrC,cAAIA,KAAK,CAACl1D,OAAN,CAAciC,WAAd,OAAgC,cAApC,EAAoD;AAChD,iBAAK27G,YAAL,GAAoBviH,yBAAO,CAACuG,OAAR,CAAgBszD,KAAhB,CAApB;AACA;AACH,WAHD,MAGO,IAAIA,KAAK,CAACl1D,OAAN,CAAciC,WAAd,OAAgC,GAApC,EAAyC;AAC5C,gBAAIizD,KAAK,CAAChzD,YAAN,CAAmB,OAAnB,MAAgC,cAApC,EAAoD;AAChD,mBAAKs5H,IAAL,CAAU/kH,MAAV,CAAiB20B,wBAAM,CAAC,KAAD,EAAQ8pB,KAAR,CAAN,CAAqBpwD,GAArB,CAAyBglC,CAAC,IAAIA,CAAC,CAACt4B,WAAhC,CAAjB;AACH;;AACD;AACH;;AACD,eAAKgjD,MAAL,CAAYU,KAAK,CAACl1D,OAAN,CAAciC,WAAd,EAAZ,IAA2C5G,yBAAO,CAACuG,OAAR,CAAgBszD,KAAhB,CAA3C;AACH,SAXD;AAYA,aAAKwmE,SAAL,GAAiB,QAAjB;AACH,OAvdiC;;AAydlCmB,yBAAmB,CAAEtqF,KAAF,EAAS;AAAA;;AACxB,aAAKoP,KAAL,2BAAapP,KAAK,CAACtkB,aAAN,CAAoB,OAApB,CAAb,yDAAa,qBAA8Bzc,WAA3C;AACA,aAAKosG,YAAL,4BAAoBrrE,KAAK,CAACtkB,aAAN,CAAoB,cAApB,CAApB,0DAAoB,sBAAqCzc,WAAzD;AACA+gC,aAAK,CAACmjB,gBAAN,CAAuB,OAAvB,EAAgC1mD,OAAhC,CAAwCkmD,KAAK,IAAI;AAC7C,gBAAM6nE,IAAI,GAAG7nE,KAAK,CAAChzD,YAAN,CAAmB,KAAnB,CAAb;;AACA,cAAI66H,IAAJ,EAAU;AAAA;;AACN,iBAAKvoE,MAAL,CAAYuoE,IAAI,CAAC96H,WAAL,EAAZ,qDAAkCizD,KAAK,CAACjnC,aAAN,CAAoB,OAApB,CAAlC,yDAAkC,qBAA8Bzc,WAAhE,yEAA+E,EAA/E;AACH,WAFD,MAEO;AACH;AACAvN,wBAAG,CAACO,IAAJ,CAAS,+BAAT;AACH;AACJ,SARD;AASA,aAAKk3H,SAAL,GAAiB,OAAjB;AACH,OAteiC;;AAwelC;;;;;;;;AAQAkB,mBAAa,CAAE7uH,MAAF,EAAU;AACnB,YAAIA,MAAM,CAAC7L,YAAP,CAAoB,MAApB,MAAgC,OAApC,EAA6C;AACzC+B,sBAAG,CAACI,KAAJ,CAAU,sBAAV;AACA,eAAKm4H,YAAL,CAAkBzuH,MAAlB;AAEA,cAAI1J,KAAK,GAAG0J,MAAM,CAAC8C,oBAAP,CAA4B,OAA5B,CAAZ;;AACA,cAAIxM,KAAK,CAACtM,MAAN,KAAiB,CAArB,EAAwB;AACpBm7C,kCAAS,CAAC5+B,UAAV,CAAqBrI,oBAArB,CAA0C5Q,yBAAO,CAACiC,MAAR,CAAe88H,QAAzD,EAAmE,SAAnE;;AACA,mBAAO,KAAP;AACH;;AACD/1H,eAAK,GAAGA,KAAK,CAAC,CAAD,CAAL,CAAS+lC,iBAAT,CAA2BpqC,OAA3B,CAAmCiC,WAAnC,EAAR;;AACA,cAAIoC,KAAK,KAAK,UAAd,EAA0B;AACtB6uC,kCAAS,CAAC5+B,UAAV,CAAqBrI,oBAArB,CAA0C5Q,yBAAO,CAACiC,MAAR,CAAegB,QAAzD,EAAmE+F,KAAnE;AACH,WAFD,MAEO,IAAIA,KAAK,KAAK,gBAAd,EAAgC;AACnC6uC,kCAAS,CAAC5+B,UAAV,CAAqBrI,oBAArB,CAA0C5Q,yBAAO,CAACiC,MAAR,CAAeg9H,aAAzD,EAAwEj2H,KAAxE;AACH,WAFM,MAEA;AACH6uC,kCAAS,CAAC5+B,UAAV,CAAqBrI,oBAArB,CAA0C5Q,yBAAO,CAACiC,MAAR,CAAe88H,QAAzD,EAAmE/1H,KAAnE;AACH;AACJ,SAjBD,MAiBO;AACH6uC,gCAAS,CAAC5+B,UAAV,CAAqBrI,oBAArB,CAA0C5Q,yBAAO,CAACiC,MAAR,CAAe+8H,UAAzD,EAAqE,IAArE;AACH;;AACD,eAAO,KAAP;AACH;;AAtgBiC,KAAZ,CAA1B;AAygBA;;AACAhnF,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,uBAAd,EAAuC8pC,IAAI,IAAI;AAC3CA,UAAI,CAACrwC,KAAL,CAAWuG,EAAX,CAAc,oBAAd,EAAoC8pC,IAAI,CAACorD,uBAAzC,EAAkEprD,IAAlE;AACH,KAFD;AAGA;AACH;;AAxmBqC,CAA1C,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtCA;AACA;;AAGA,MAAMnF,mBAAQ,GAAIj+B,CAAD,IAAO;AACpB,QAAMgxF,iBAAiB,GAAG9/E,KAAE,CAAC,yBAAD,CAA5B;;AACA,QAAM+/E,oBAAoB,GAAG//E,KAAE,CAAC,2BAAD,CAA/B;;AACA,MAAIlR,CAAC,CAAC02C,UAAN,EAAkB;AACd,WAAOphF,aAAP,8BAEwB0qC,CAAC,CAACw9B,IAAF,CAAOhlD,GAAP,CAAW,KAAX,CAFxB,EAG6BwnB,CAAC,CAACw9B,IAAF,CAAOjd,cAAP,EAH7B,EAIgBvgB,CAAC,CAACiyC,cAJlB,EAKiBjyC,CAAC,CAAC02C,UAAF,GAAeu6C,oBAAf,GAAsCD,iBALvD;AAMH,GAPD,MAOO;AACH,WAAO17H,aAAP,+BAEwB0qC,CAAC,CAACw9B,IAAF,CAAOhlD,GAAP,CAAW,KAAX,CAFxB,EAG6BwnB,CAAC,CAACw9B,IAAF,CAAOjd,cAAP,EAH7B,EAIgBvgB,CAAC,CAACkxF,WAJlB,EAKiBlxF,CAAC,CAAC02C,UAAF,GAAeu6C,oBAAf,GAAsCD,iBALvD;AAMH;AACJ,CAlBD;;AAqBA,MAAMG,SAAS,GAAInxF,CAAD,IAAO;AACrB,QAAMoxF,eAAe,GAAGlgF,KAAE,CAAC,sBAAD,CAA1B;;AACA,QAAMmgF,gBAAgB,GAAIrxF,CAAD,IAAO1qC,aAAP,CAAC,8BAA4E0qC,CAAC,CAACw9B,IAAF,CAAOhlD,GAAP,CAAW,YAAX,CAA7E,CAAzB;;AACA,SAAOljB,aAAP,+BACkF0qC,CAAC,CAACsxF,cAAF,CAAiBtxF,CAAC,CAACw9B,IAAnB,IAA2B,MAA3B,GAAoC,EADtH,EAC8Hx9B,CAAC,CAACw9B,IAAF,CAAOhlD,GAAP,CAAW,oBAAX,IAAmC,aAAnC,GAAmD,EADjL,EAEyBwnB,CAAC,CAACw9B,IAAF,CAAOhlD,GAAP,CAAW,KAAX,CAFzB,EAIWwnB,CAAC,CAACw9B,IAAF,CAAOhlD,GAAP,CAAW,YAAX,IAA2B64G,gBAAgB,CAACrxF,CAAD,CAA3C,GAAiD,EAJ5D,EAMyBA,CAAC,CAACw9B,IAAF,CAAOhlD,GAAP,CAAW,KAAX,CANzB,EAOiB04B,KAAE,CAAC,8BAAD,CAPnB,EAQiBlR,CAAC,CAACmxB,QARnB,EAQ+BnxB,CAAC,CAACw9B,IAAF,CAAOjd,cAAP,EAR/B,EAUWvgB,CAAC,CAACm+B,eAAF,GAAoBF,mBAAQ,CAACj+B,CAAD,CAA5B,GAAkC,EAV7C,EAayBA,CAAC,CAACw9B,IAAF,CAAOhlD,GAAP,CAAW,KAAX,CAbzB,EAciB04B,KAAE,CAAC,yCAAD,CAdnB,EAeiBlR,CAAC,CAAC80E,oBAfnB,EAkByB90E,CAAC,CAACw9B,IAAF,CAAOhlD,GAAP,CAAW,KAAX,CAlBzB,EAmB0BwnB,CAAC,CAACw9B,IAAF,CAAOjd,cAAP,EAnB1B,EAoBiB6wE,eApBjB,EAqBiBpxF,CAAC,CAACuxF,SArBnB;AAuBH,CA1BD;;AA4BgBvxF,gDAAD,IAAO;AAClB,QAAMwxF,eAAe,GAAGtgF,KAAE,CAAC,6CAAD,CAA1B;;AACA,SAAO57C,aAAP,+BAC4D0qC,CAAC,CAACoxB,KAAF,CAAQrlE,MAAR,GAAiB,EAAjB,GAAsB,QADlF,EAE4EylI,eAF5E,EAEuGxxF,CAAC,CAACyxF,eAFzG,EAG4BzxF,CAAC,CAACqyC,YAAF,KAAmBryC,CAAC,CAACkH,SAAF,CAAYoR,MAAhC,GAA0C,eAA1C,GAA4D,gBAHvF,EAGqHpH,KAAE,CAAC,iBAAD,CAHvH,EAI6DlR,CAAC,CAACokE,SAAF,IAAe,WAJ5E,EAKepkE,CAAC,CAACoxB,KAAF,CAAQt4D,GAAR,CAAY0kE,IAAI,IAAI2zD,SAAS,CAAChjI,MAAM,CAACsmC,MAAP,CAAc;AAAC+oC;AAAD,GAAd,EAAsBx9B,CAAtB,CAAD,CAA7B,CALf;AAQH,CAVD,E;;ACrDA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,MAAM;AAAE3wC,SAAOA;AAAT,IAAck7B,QAAQ,CAAC20B,GAA7B;AACA,MAAMphB,oBAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;AAGA08B,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,oBAArB,EAA2C;AAEvC;;;;;;;;;;;;AAYAwL,cAAY,EAAE,CAAC,oBAAD,EAAuB,qBAAvB,EAA8C,cAA9C,EAA8D,oBAA9D,CAdyB;;AAgBvCvL,YAAU,GAAI;AACV;;;AAIA;AACA4c,qBAAG,CAAC6Q,QAAJ,CAAa1tB,GAAb,CAAiB,sBAAjB;AAGA0c,0BAAS,CAACwqF,SAAV,GAAsB/1F,WAAK,CAACtG,MAAN,CAAa;AAC/B2G,cAAQ,EAAE;AACN,wBAAiBkL,sBAAS,CAACoR;AADrB;AADqB,KAAb,CAAtB;AAOApR,0BAAS,CAACyqF,aAAV,GAA0B3+C,IAAI,CAAC39C,MAAL,CAAY;AAClCrhC,aAAO,EAAE,MADyB;;AAGlCy2B,gBAAU,GAAI;AACV,aAAKqP,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,KAA1B,EAAiC,KAAK6+F,gBAAtC;AACA,aAAK93F,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,QAA1B,EAAoC,KAAK6+F,gBAAzC;AACA,aAAK93F,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,SAA1B,EAAqC,KAAK6+F,gBAA1C;AACA,aAAK93F,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,QAA1B,EAAoC,KAAK8+F,sBAAzC;AAEA,cAAMh3H,EAAE,+BAAwBqsC,sBAAS,CAACsB,QAAlC,CAAR;AACA,aAAKstC,UAAL,GAAkB,IAAI5uC,sBAAS,CAACwqF,SAAd,CAAwB;AAAC72H;AAAD,SAAxB,CAAlB;AACA,aAAKi7E,UAAL,CAAgBzzC,cAAhB,GAAiC6E,sBAAS,CAACkT,WAAV,CAAsBv/C,EAAtB,CAAjC;AACA,aAAKi7E,UAAL,CAAgBh9C,KAAhB;AACA,aAAKw6C,MAAL;AACA,aAAKyC,oBAAL;AACH,OAfiC;;AAiBlC67C,sBAAgB,CAAE7+F,KAAF,EAAS;AACrB+K,4BAAC,CAACgC,UAAF,CAAa/M,KAAb,KAAuB,KAAKugD,MAAL,EAAvB;AACH,OAnBiC;;AAqBlCu+C,4BAAsB,CAAE9+F,KAAF,EAAS;AAC3B,cAAM3jC,KAAK,GAAG,CAAC,YAAD,EAAe,QAAf,EAAyB,MAAzB,EAAiC,YAAjC,EAA+C,oBAA/C,CAAd;AACA,cAAM6sC,OAAO,GAAGlJ,KAAK,CAACkJ,OAAN,IAAiB,EAAjC;;AACA,YAAI6B,oBAAC,CAACgC,UAAF,CAAa/M,KAAb,KAAuB5kC,MAAM,CAAC0K,IAAP,CAAYojC,OAAZ,EAAqBx2B,MAArB,CAA4BxC,CAAC,IAAI7T,KAAK,CAACo8B,QAAN,CAAevoB,CAAf,CAAjC,EAAoDlX,MAA/E,EAAuF;AACnF,eAAKunF,MAAL;AACH;AACJ,OA3BiC;;AA6BlCE,YAAM,GAAI;AACN,eAAOs+C,UAAc,CAAC;AAClB,uBAAa5qF,sBADK;AAElB,yBAAe9a,EAAE,IAAI,KAAK8kG,WAAL,CAAiB9kG,EAAjB,CAFH;AAGlB,6BAAmB8a,sBAAS,CAACi3B,eAAV,IAA6Bj3B,sBAAS,CAAC62B,SAHxC;AAIlB,uBAAa3xC,EAAE,IAAI,KAAKmlG,SAAL,CAAenlG,EAAf,CAJD;AAKlB,uBAAa,KAAK0pD,UAAL,CAAgBt9D,GAAhB,CAAoB,cAApB,MAAwC0uB,sBAAS,CAACoR,MAL7C;AAMlB,4BAAkBklB,IAAI,IAAIt2B,sBAAS,CAACsU,SAAV,MAAyB,CAACgiB,IAAI,CAAChlD,GAAL,CAAS,QAAT,CANlC;AAOlB,sBAAY4T,EAAE,IAAI,KAAK+kC,QAAL,CAAc/kC,EAAd,CAPA;AAQlB,4BAAkBA,EAAE,IAAI,KAAK6lD,cAAL,CAAoB7lD,EAApB,CARN;AASlB,mBAAS,KAAK2G,KAAL,CAAWttB,MAAX,CAAkBxC,CAAC,IAAIA,CAAC,CAACuV,GAAF,CAAM,MAAN,MAAkB0uB,sBAAS,CAACkS,cAAnD,CATS;AAUlB,kCAAwBhtB,EAAE,IAAI,KAAK0oF,oBAAL,CAA0B1oF,EAA1B,CAVZ;AAWlB,6BAAmBA,EAAE,IAAI,KAAKqlG,eAAL,CAAqBrlG,EAArB,CAXP;AAYlB,0BAAgB,KAAK0pD,UAAL,CAAgBt9D,GAAhB,CAAoB,cAApB;AAZE,SAAD,CAArB;AAcH,OA5CiC;;AA8ClCu9D,0BAAoB,GAAI;AACpB,cAAME,cAAc,GAAG/uC,sBAAS,CAAC0tC,YAAV,CAAuBp8D,GAAvB,CAA2B,YAA3B,CAAvB;;AACA,YAAIy9D,cAAc,KAAKphF,SAAnB,IAAgC,CAACipC,oBAAC,CAAC+D,YAAF,CAAeqF,sBAAS,CAACptC,IAAzB,EAA+B,KAAK/F,EAApC,CAArC,EAA8E;AAC1E,gBAAMA,EAAE,GAAGkiF,cAAc,CAACliF,EAAf,CAAkBkuB,aAAlB,CAAgC,4BAAhC,CAAX;AACAluB,YAAE,IAAIA,EAAE,CAAC8F,UAAH,CAAcq8E,YAAd,CAA2B,KAAKniF,EAAhC,EAAoCA,EAApC,CAAN;AACH;AACJ,OApDiC;;AAsDlC+gH,0BAAoB,CAAE1oF,EAAF,EAAM;AACtB,cAAMp1B,GAAG,GAAGo1B,EAAE,CAAC8kD,MAAH,CAAUh7E,YAAV,CAAuB,eAAvB,CAAZ;;AACA,cAAMsnE,IAAI,GAAGt2B,sBAAS,CAACogB,SAAV,CAAoB9uC,GAApB,CAAwBxhB,GAAxB,CAAb;;AACAo1B,UAAE,CAACglD,cAAH;;AACA,YAAI5T,IAAI,CAACu3C,kBAAL,KAA4BlgH,SAAhC,EAA2C;AACvC2oE,cAAI,CAACu3C,kBAAL,GAA0B,IAAIC,WAAJ,CAAqB;AAAC,qBAASx3C;AAAV,WAArB,CAA1B;AACH;;AACDA,YAAI,CAACu3C,kBAAL,CAAwBppE,IAAxB,CAA6Bvf,EAA7B;AACH,OA9DiC;;AAgElC,YAAM+kC,QAAN,CAAgB/kC,EAAhB,EAAoB;AAChBA,UAAE,CAACglD,cAAH;AACA,cAAMjiF,IAAI,GAAGi9B,EAAE,CAAC8kD,MAAH,CAAU1rE,WAAvB;AACA,cAAMxO,GAAG,GAAGo1B,EAAE,CAAC8kD,MAAH,CAAUh7E,YAAV,CAAuB,eAAvB,CAAZ;AACA,cAAMgL,IAAI,GAAG;AACT,kBAAQ/R,IAAI,IAAIE,0BAAO,CAACyH,YAAR,CAAqBzH,0BAAO,CAAC0H,cAAR,CAAuBC,GAAvB,CAArB,CAAR,IAA6DA;AAD5D,SAAb;AAGA,cAAMqwC,iBAAG,CAAC+pB,KAAJ,CAAU7sC,IAAV,CAAevtB,GAAf,EAAoBkK,IAApB,EAA0B,IAA1B,CAAN;AACAmmC,yBAAG,CAACiuD,SAAJ,CAAc98E,GAAd,CAAkBxhB,GAAlB,EAAuBqmG,UAAvB;AACH,OAzEiC;;AA2ElCk0B,eAAS,CAAEnlG,EAAF,EAAM;AACXA,UAAE,CAACglD,cAAH;AACA,cAAMjiF,IAAI,GAAGi9B,EAAE,CAAC8kD,MAAH,CAAUh7E,YAAV,CAAuB,gBAAvB,CAAb;AACA,cAAMc,GAAG,GAAGo1B,EAAE,CAAC8kD,MAAH,CAAUh7E,YAAV,CAAuB,eAAvB,CAAZ;;AACA,YAAIknE,OAAO,CAAClsB,KAAE,CAAC,oDAAD,EAAuD/hD,IAAvD,CAAH,CAAX,EAA6E;AACzE;AACA+3C,gCAAS,CAAC0tC,YAAV,CAAuBp8D,GAAvB,CAA2BxhB,GAA3B,EAAgCwmB,KAAhC;AACH;AACJ,OAnFiC;;AAqFlCy0D,oBAAc,EAAE/qC,sBAAS,CAACutC,sBArFQ;AAsFlCy8C,iBAAW,EAAEhqF,sBAAS,CAACytC,mBAtFW;;AAwFlC88C,qBAAe,CAAErlG,EAAF,EAAM;AACjB,YAAIA,EAAE,IAAIA,EAAE,CAACglD,cAAb,EAA6B;AAAEhlD,YAAE,CAACglD,cAAH;AAAsB;;AACrD,cAAM+E,OAAO,GAAG/pD,EAAE,CAAC8kD,MAAH,CAAU5pE,OAAV,CAAkB,KAAlB,IAA2B8kB,EAAE,CAAC8kD,MAA9B,GAAuC9kD,EAAE,CAAC8kD,MAAH,CAAUjvD,aAAV,CAAwB,KAAxB,CAAvD;;AACA,YAAIk0D,OAAO,CAACE,SAAR,CAAkB90C,QAAlB,CAA2B,eAA3B,CAAJ,EAAiD;AAC7CzD,8BAAC,CAACs4C,OAAF,CAAU,KAAKriF,EAAL,CAAQkuB,aAAR,CAAsB,kBAAtB,CAAV,EAAqDyK,IAArD,CAA0D,MAAM;AAC5D,iBAAKopD,UAAL,CAAgB7hD,IAAhB,CAAqB;AAAC,8BAAgBiT,sBAAS,CAAC3pB;AAA3B,aAArB;AACA44D,mBAAO,CAACE,SAAR,CAAkB9pC,MAAlB,CAAyB,eAAzB;AACA4pC,mBAAO,CAACE,SAAR,CAAkB7rD,GAAlB,CAAsB,gBAAtB;AACH,WAJD;AAKH,SAND,MAMO;AACHsT,8BAAC,CAACw4C,QAAF,CAAW,KAAKviF,EAAL,CAAQkuB,aAAR,CAAsB,kBAAtB,CAAX,EAAsDyK,IAAtD,CAA2D,MAAM;AAC7D,iBAAKopD,UAAL,CAAgB7hD,IAAhB,CAAqB;AAAC,8BAAgBiT,sBAAS,CAACoR;AAA3B,aAArB;AACA69B,mBAAO,CAACE,SAAR,CAAkB9pC,MAAlB,CAAyB,gBAAzB;AACA4pC,mBAAO,CAACE,SAAR,CAAkB7rD,GAAlB,CAAsB,eAAtB;AACH,WAJD;AAKH;AACJ;;AAxGiC,KAAZ,CAA1B;;AA2GA,UAAMunG,iBAAiB,GAAG,YAAY;AAClC7qF,4BAAS,CAAC8qF,eAAV,GAA4B,IAAI9qF,sBAAS,CAACyqF,aAAd,CAA4B;AAAC,iBAASzqF,sBAAS,CAACogB;AAApB,OAA5B,CAA5B;AACA;;;;;;AAKAjgB,uBAAG,CAAClP,OAAJ,CAAY,sBAAZ;AACH,KARD;;AAUAkP,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,WAAd,EAA2B,YAAa;AACpC,UAAI4N,sBAAS,CAACi3B,eAAd,EAA+B;AAC3B,cAAM92B,iBAAG,CAAC1B,SAAJ,CAAc,sBAAd,CAAN;AACH,OAFD,MAEO;AACH,cAAMrU,OAAO,CAACqB,GAAR,CAAY,CACd0U,iBAAG,CAAC1B,SAAJ,CAAc,kBAAd,CADc,EAEd0B,iBAAG,CAAC1B,SAAJ,CAAc,oBAAd,CAFc,CAAZ,CAAN;AAIH;;AACDosF,uBAAiB;AACpB,KAVD;AAYA1qF,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,aAAd,EAA6By4F,iBAA7B;AACH;;AAlKsC,CAA3C,E;;;;;;;;;;;;;;ACrBA;AACA;AACA;AAGgB/xF,uDAAD,IAAO;AAClB,QAAMiyF,wBAAwB,GAAG/gF,KAAE,CAAC,kBAAD,CAAnC;;AACA,QAAMghF,QAAQ,GAAGhhF,KAAE,CAAC,KAAD,CAAnB;;AACA,QAAMi4D,kBAAkB,GAAGj4D,KAAE,CAAC,mCAAD,CAA7B;;AACA,QAAMihF,gBAAgB,GAAGjhF,KAAE,CAAC,eAAD,CAA3B;;AACA,QAAM6tD,iBAAiB,GAAG7tD,KAAE,CAAC,cAAD,CAA5B;;AACA,QAAMomD,aAAa,GAAGpmD,KAAE,CAAC,UAAD,CAAxB;;AACA,SAAO57C,aAAP,qCAIoE68H,gBAJpE,EAKkBt7C,yBALlB,EAW4DkoB,iBAX5D,EAcuE,CAAC/+D,CAAC,CAACkH,SAAF,CAAYkrF,mBAdpF,EAeyCpyF,CAAC,CAAChpC,GAAF,IAAS,EAflD,EAiB+Ci7H,wBAjB/C,EAsB6D36B,aAtB7D,EAyBoEt3D,CAAC,CAACgL,QAAF,IAAc,EAzBlF,EA2B+CssD,aA3B/C,EAgCwD6R,kBAhCxD,EAkCoE+oB,QAlCpE;AAwCH,CA/CD,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLA;AAGgBlyF,mDAAD,IAAO1qC,aAAP,CAAC,gCAC6D,CAAC0qC,CAAC,CAACqyF,OAAJ,GAAe,QAAf,GAA0B,SADvF,EAEKryF,CAAC,CAACsyF,YAFP,EAKgBtyF,CAAC,CAACuyF,gBALlB,EAK0DvyF,CAAC,CAACwyF,WAAF,KAAkB,UAAnB,GAAiC,UAAjC,GAA8C,EALvG,EAK2IxyF,CAAC,CAACyyF,oBAL7I,EAMgBzyF,CAAC,CAACuyF,gBANlB,EAM2DvyF,CAAC,CAACwyF,WAAF,KAAkB,QAAnB,GAA+B,UAA/B,GAA4C,EANtG,EAMwIxyF,CAAC,CAAC0yF,kBAN1I,EAOgB1yF,CAAC,CAACuyF,gBAPlB,EAO4DvyF,CAAC,CAACwyF,WAAF,KAAkB,OAAnB,GAA8B,UAA9B,GAA2C,EAPtG,EAOuIxyF,CAAC,CAAC2yF,mBAPzI,EAUkB3yF,CAAC,CAAC4yF,WAAF,IAAiB,EAVnC,EAWmB5yF,CAAC,CAAC6yF,UAXrB,EAY8C7yF,CAAC,CAACwyF,WAAF,KAAkB,OAAnB,GAA8B,QAA9B,GAAyC,EAZtF,EAauBxyF,CAAC,CAACxhB,WAbzB,EAc0C,CAACwhB,CAAC,CAAC4yF,WAAH,IAAkB5yF,CAAC,CAACwyF,WAAF,KAAkB,OAArC,GAAgD,QAAhD,GAA2D,EAdpG,EAegBxyF,CAAC,CAAC8yF,WAflB,EAkBwC9yF,CAAC,CAACwyF,WAAF,KAAkB,OAAnB,GAA8B,QAA9B,GAAyC,EAlBhF,EAmBexyF,CAAC,CAAC+yF,qBAnBjB,EAoBoB/yF,CAAC,CAACgzF,SApBtB,EAqBqBhzF,CAAC,CAACqjB,UAAF,KAAiB,iBArBtC,EAqBmFrjB,CAAC,CAACizF,qBArBrF,EAsBqBjzF,CAAC,CAACqjB,UAAF,KAAiB,QAtBtC,EAsBiErjB,CAAC,CAACk/E,YAtBnE,EAuBqBl/E,CAAC,CAACqjB,UAAF,KAAiB,MAvBtC,EAuB6DrjB,CAAC,CAACkzF,YAvB/D,EAwBqBlzF,CAAC,CAACqjB,UAAF,KAAiB,KAxBtC,EAwB2DrjB,CAAC,CAACm/E,UAxB7D,EAyBqBn/E,CAAC,CAACqjB,UAAF,KAAiB,MAzBtC,EAyB6DrjB,CAAC,CAACo/E,UAzB/D,EA0BqBp/E,CAAC,CAACqjB,UAAF,KAAiB,IA1BtC,EA0ByDrjB,CAAC,CAACq/E,QA1B3D,EA2BqBr/E,CAAC,CAACqjB,UAAF,KAAiB,SA3BtC,EA2BmErjB,CAAC,CAACmzF,aA3BrE,CAAf,E;;;;;;ACHA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM;AAAE9jI,SAAOA;AAAT,IAAck7B,QAAQ,CAAC20B,GAA7B;AACA,MAAMphB,qBAAC,GAAGvT,QAAQ,CAAC20B,GAAT,CAAarxD,KAAvB;AAGA08B,QAAQ,CAACD,OAAT,CAAiBE,GAAjB,CAAqB,qBAArB,EAA4C;AAExCwL,cAAY,EAAE,CAAC,iBAAD,EAAoB,gBAApB,EAAsC,uBAAtC,CAF0B;;AAIxCvL,YAAU,GAAI;AACV;;;AAIA4c,qBAAG,CAAC3c,QAAJ,CAAa2K,MAAb,CAAoB;AAChB,kCAA4B,IADZ;AAEhB,qCAA+B,IAFf;AAGhB,+BAAyB,IAHT;AAIhB,4BAAsB,KAJN;AAKhB,uBAAiB,IALD;AAMhB,6BAAuB;AANP,KAApB;AAQAgS,qBAAG,CAAC6Q,QAAJ,CAAa1tB,GAAb,CAAiB,uBAAjB;AAEA,UAAM4oG,QAAQ,GAAG;AACb,aAAOliF,KAAE,CAAC,sBAAD,CADI;AAEb,gBAAUA,KAAE,CAAC,wBAAD,CAFC;AAGb,iBAAWA,KAAE,CAAC,yBAAD,CAHA;AAIb,qBAAeA,KAAE,CAAC,6BAAD,CAJJ;AAKb,YAAMA,KAAE,CAAC,6CAAD,CALK;AAMb,cAAQA,KAAE,CAAC,sBAAD;AANG,KAAjB;AAUAhK,0BAAS,CAACmsF,eAAV,GAA4Bp8C,cAAc,CAAC5hD,MAAf,CAAsB;AAC9Cx6B,QAAE,EAAE,mBAD0C;AAE9Cu+B,YAAM,EAAE;AACJ,uBAAe;AADX,OAFsC;;AAM9C3O,gBAAU,GAAI;AACVwsD,sBAAc,CAAC7oF,SAAf,CAAyBq8B,UAAzB,CAAoCvL,KAApC,CAA0C,IAA1C,EAAgD3qB,SAAhD;AACA,aAAKulC,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,QAA1B,EAAoC,KAAKugD,MAAzC;AACH,OAT6C;;AAW9CE,YAAM,GAAI;AACN,cAAM8/C,cAAc,GAAGjsF,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB,IAA0C04B,KAAE,CAAC,cAAD,CAA5C,GAA+DA,KAAE,CAAC,mBAAD,CAAxF;AACA,eAAOqiF,iBAAqB,CAACplI,MAAM,CAACsmC,MAAP,CAAc,KAAK1B,KAAL,CAAWmB,MAAX,EAAd,EAAmC;AAAEgT,2CAAF;AAAaosF;AAAb,SAAnC,CAAD,CAA5B;AACH,OAd6C;;AAgB9C7/C,iBAAW,GAAI;AACX,YAAI,OAAOpsC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB,CAAP,KAAmD,QAAvD,EAAiE;AAC7D,eAAKg7G,mBAAL;AACH,SAFD,MAEO;AACH,eAAKC,mBAAL;AACH;;AACD,cAAMC,SAAS,GAAG,KAAK3/H,EAAL,CAAQkuB,aAAR,CAAsB,mBAAtB,CAAlB;AACA,aAAKluB,EAAL,CAAQqhD,gBAAR,CAAyB,gBAAzB,EAA2C,MAAMs+E,SAAS,CAACruF,KAAV,EAAjD,EAAoE,KAApE;AACH,OAxB6C;;AA0B9CouF,yBAAmB,GAAI;AACnB,YAAI,CAACpsF,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,0BAAjB,CAAL,EAAmD;AAC/C;AACH;;AACD,cAAMzkB,EAAE,GAAG,KAAKA,EAAL,CAAQkuB,aAAR,CAAsB,sBAAtB,EAA8Cm2C,aAAzD;AACA,aAAKu7D,iBAAL,GAAyB,IAAIzsF,sBAAS,CAACuoC,YAAd,CAA2B17E,EAA3B,EAA+B;AACpD,kBAAQ,CAACkB,IAAD,EAAOqf,KAAP,eAAoBA,KAAK,CAAC/G,KAAN,CAAY,CAAZ,EAAe+G,KAAK,CAACrd,OAAN,CAAc,GAAd,CAAf,CAApB,cAA0DhC,IAA1D,CAD4C;AAEpD,oBAAUiyC,sBAAS,CAAC0nC,iBAFgC;AAGpD,kBAAQ,CAAC,GAAG,IAAI5iB,GAAJ,CAAQ9kB,sBAAS,CAACi2B,MAAV,CAAiBrkE,GAAjB,CAAqBu7B,IAAI,IAAIhlC,2BAAO,CAAC6H,gBAAR,CAAyBm9B,IAAI,CAAC7b,GAAL,CAAS,KAAT,CAAzB,CAA7B,CAAR,CAAJ;AAH4C,SAA/B,CAAzB;AAKH,OApC6C;;AAsC9Cg7G,yBAAmB,GAAI;AACnB,YAAI,CAACnsF,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,0BAAjB,CAAL,EAAmD;AAC/C,iBAAO,KAAKo7G,YAAL,EAAP;AACH;;AACD,cAAM7/H,EAAE,GAAG,KAAKA,EAAL,CAAQkuB,aAAR,CAAsB,uBAAtB,EAA+Cm2C,aAA1D;AACA,aAAKy7D,kBAAL,GAA0B,IAAI3sF,sBAAS,CAACuoC,YAAd,CAA2B17E,EAA3B,EAA+B;AACrD,2BAAiB,KADoC;AAErD,oBAAUmzC,sBAAS,CAAC0nC,iBAFiC;AAGrD,kBAAQ;AAH6C,SAA/B,CAA1B;AAKA,cAAM/sD,GAAG,GAAG,IAAIjG,MAAM,CAACsG,cAAX,EAAZ,CAVmB,CAWnB;;AACAL,WAAG,CAAC0N,MAAJ,GAAa,MAAM;AACf,cAAI1N,GAAG,CAAC5Y,YAAR,EAAsB;AAClB,kBAAM/J,CAAC,GAAG2iB,GAAG,CAAC5Y,YAAd;AACA,iBAAK4qH,kBAAL,CAAwBhmH,IAAxB,GAA+BlN,IAAI,CAACwR,KAAL,CAAWjT,CAAX,EAAcpG,GAAd,CAAkBhN,CAAC,KAAK;AAAC,uBAASA,CAAC,CAACo8D,QAAF,IAAcp8D,CAAC,CAACkL,GAA1B;AAA+B,uBAASlL,CAAC,CAACkL;AAA1C,aAAL,CAAnB,CAA/B;AACA,iBAAK68H,kBAAL,CAAwB9iD,eAAxB,GAA0C,IAA1C;AACA,iBAAK8iD,kBAAL,CAAwB5jD,QAAxB;AACH;AACJ,SAPD;;AAQA,cAAM6jD,QAAQ,GAAG,KAAK//H,EAAL,CAAQkuB,aAAR,CAAsB,oBAAtB,CAAjB;AACA6xG,gBAAQ,CAAC1+E,gBAAT,CAA0B,OAA1B,EAAmC7E,kBAAQ,CAAC,MAAM;AAC9C1uB,aAAG,CAAC0C,IAAJ,CAAS,KAAT,YAAmB8iB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB,CAAnB,eAA+DjI,kBAAkB,CAACujH,QAAQ,CAAC/kI,KAAV,CAAjF,GAAqG,IAArG;AACA8yB,aAAG,CAACxgB,IAAJ;AACH,SAH0C,EAGvC,GAHuC,CAA3C;AAIA,aAAKwyH,kBAAL,CAAwBv6F,EAAxB,CAA2B,+BAA3B,EAA4DlN,EAAE,IAAI;AAC9D,eAAKr4B,EAAL,CAAQkuB,aAAR,CAAsB,oBAAtB,EAA4ClzB,KAA5C,GAAoDq9B,EAAE,CAACn3B,IAAH,CAAQ85E,KAA5D;AACA,eAAKh7E,EAAL,CAAQkuB,aAAR,CAAsB,mBAAtB,EAA2ClzB,KAA3C,GAAmDq9B,EAAE,CAACn3B,IAAH,CAAQlG,KAA3D;AACH,SAHD;AAIH,OAnE6C;;AAqE9C6kI,kBAAY,GAAI;AACZ,aAAK/xG,GAAL,GAAW,IAAIjG,MAAM,CAACsG,cAAX,EAAX;;AACA,aAAKL,GAAL,CAAS0N,MAAT,GAAkB,MAAM;AACpB,cAAI,KAAK1N,GAAL,CAAS5Y,YAAb,EAA2B;AACvB,kBAAM/J,CAAC,GAAG,KAAK2iB,GAAL,CAAS5Y,YAAnB;AACA,kBAAM4E,IAAI,GAAGlN,IAAI,CAACwR,KAAL,CAAWjT,CAAX,EAAcpG,GAAd,CAAkBhN,CAAC,KAAK;AAAC,uBAASA,CAAC,CAACo8D,QAAF,IAAcp8D,CAAC,CAACkL,GAA1B;AAA+B,uBAASlL,CAAC,CAACkL;AAA1C,aAAL,CAAnB,CAAb;;AACA,gBAAI6W,IAAI,CAAC9hB,MAAL,KAAgB,CAApB,EAAuB;AACnB,oBAAMgI,EAAE,GAAG,KAAKA,EAAL,CAAQkuB,aAAR,CAAsB,mBAAtB,CAAX;AACAluB,gBAAE,CAACyR,WAAH,GAAiB0rC,KAAE,CAAC,gDAAD,CAAnB;AACApT,mCAAC,CAAC85C,QAAF,CAAW,SAAX,EAAsB7jF,EAAtB;AACA;AACH;;AACD,kBAAMiD,GAAG,GAAG6W,IAAI,CAAC,CAAD,CAAJ,CAAQ9e,KAApB;;AACA,gBAAI,KAAKglI,kBAAL,CAAwB/8H,GAAxB,CAAJ,EAAkC;AAC9B,oBAAM6yD,IAAI,GAAG,KAAK91D,EAAL,CAAQkuB,aAAR,CAAsB,MAAtB,CAAb;AACI,oBAAM9yB,IAAI,GAAG0e,IAAI,CAAC,CAAD,CAAJ,CAAQkhE,KAArB;AACJ,mBAAKilD,eAAL,CAAqBnqE,IAArB,EAA2B7yD,GAA3B,EAAgC7H,IAAhC;AACH;AACJ;AACJ,SAjBD;AAkBH,OAzF6C;;AA2F9C4kI,wBAAkB,CAAE/8H,GAAF,EAAO;AACrB,cAAMjD,EAAE,GAAG,KAAKA,EAAL,CAAQkuB,aAAR,CAAsB,mBAAtB,CAAX;;AACA,YAAI,CAACjrB,GAAD,IAAQ6nC,iBAAO,CAAC7nC,GAAG,CAACX,KAAJ,CAAU,GAAV,CAAD,CAAP,CAAwBtK,MAAxB,GAAiC,CAA7C,EAAgD;AAC5C+xC,+BAAC,CAAC85C,QAAF,CAAW,YAAX,EAAyB,KAAK7jF,EAAL,CAAQkuB,aAAR,CAAsB,mBAAtB,CAAzB;AACA6b,+BAAC,CAAC85C,QAAF,CAAW,SAAX,EAAsB7jF,EAAtB;AACA,iBAAO,KAAP;AACH,SAJD,MAIO,IAAImzC,sBAAS,CAACi2B,MAAV,CAAiB3kD,GAAjB,CAAqBnpB,2BAAO,CAAC+H,iBAAR,CAA0BJ,GAA1B,CAArB,CAAJ,EAA0D;AAC7DjD,YAAE,CAACyR,WAAH,GAAiB0rC,KAAE,CAAC,qCAAD,CAAnB;AACApT,+BAAC,CAAC85C,QAAF,CAAW,SAAX,EAAsB7jF,EAAtB;AACA,iBAAO,KAAP;AACH;;AACD+pC,6BAAC,CAAC25C,WAAF,CAAc,SAAd,EAAyB1jF,EAAzB;AACA,eAAO,IAAP;AACH,OAxG6C;;AA0G9CigI,qBAAe,CAAEnqE,IAAF,EAAQ7yD,GAAR,EAAa7H,IAAb,EAAmB;AAC9B+3C,8BAAS,CAACi2B,MAAV,CAAiBoL,eAAjB,CAAiCvxE,GAAjC,EAAsC7H,IAAtC;;AACA,aAAK4jC,KAAL,CAAWjC,KAAX;AACA,aAAKwmD,KAAL,CAAWgB,IAAX;AACH,OA9G6C;;AAgH9C27C,wBAAkB,CAAE7nG,EAAF,EAAM;AACpBA,UAAE,CAACglD,cAAH;AACA,cAAMlwE,IAAI,GAAG,IAAIm3E,QAAJ,CAAajsD,EAAE,CAAC8kD,MAAhB,CAAb;AAAA,cACMl6E,GAAG,GAAG,CAACkK,IAAI,CAACsX,GAAL,CAAS,KAAT,KAAmB,EAApB,EAAwBhJ,IAAxB,EADZ;;AAGA,YAAI,CAACxY,GAAD,IAAQ,OAAOqwC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB,CAAP,KAAmD,QAA/D,EAAyE;AACrE,gBAAMs7G,QAAQ,GAAG,KAAK//H,EAAL,CAAQkuB,aAAR,CAAsB,oBAAtB,CAAjB;AACA,eAAKJ,GAAL,CAAS0C,IAAT,CAAc,KAAd,YAAwB8iB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,qBAAjB,CAAxB,eAAoEjI,kBAAkB,CAACujH,QAAQ,CAAC/kI,KAAV,CAAtF,GAA0G,IAA1G;AACA,eAAK8yB,GAAL,CAASxgB,IAAT;AACA;AACH;;AACD,YAAI,KAAK0yH,kBAAL,CAAwB/8H,GAAxB,CAAJ,EAAkC;AAC9B,eAAKg9H,eAAL,CAAqB5nG,EAAE,CAAC8kD,MAAxB,EAAgCl6E,GAAhC,EAAqCkK,IAAI,CAACsX,GAAL,CAAS,MAAT,CAArC;AACH;AACJ;;AA9H6C,KAAtB,CAA5B;AAkIA0uB,0BAAS,CAACgtF,YAAV,GAAyBv4F,WAAK,CAACtG,MAAN,CAAa;AAClC5K,gBAAU,GAAI;AACV,aAAK0J,GAAL,CAAS;AACL,yBAAe,EADV;AAEL,yBAAe,UAFV;AAGL,wBAAc;AAHT,SAAT;AAKH;;AAPiC,KAAb,CAAzB;AAUA+S,0BAAS,CAACitF,gBAAV,GAA6BnhD,IAAI,CAAC39C,MAAL,CAAY;AACrCrhC,aAAO,EAAE,MAD4B;;AAGrCy2B,gBAAU,GAAI;AACV,aAAKqP,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,oBAA1B,EAAgD,KAAKugD,MAArD;AACA,aAAKx5C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,oBAA1B,EAAgD,KAAKugD,MAArD;AACH,OANoC;;AAQrCE,YAAM,GAAI;AACN,eAAO4gD,aAAiB,CACpBjmI,MAAM,CAACsmC,MAAP,CAAc,KAAK1B,KAAL,CAAWmB,MAAX,EAAd,EAAmC;AAC/Bm+F,iBAAO,EAAE,KAAKgC,eAAL,EADsB;AAE/B71G,qBAAW,EAAE0yB,KAAE,CAAC,QAAD,CAFgB;AAG/BuhF,8BAAoB,EAAEvhF,KAAE,CAAC,wBAAD,CAHO;AAI/BwhF,4BAAkB,EAAExhF,KAAE,CAAC,sBAAD,CAJS;AAK/ByhF,6BAAmB,EAAEzhF,KAAE,CAAC,kBAAD,CALQ;AAM/B8hF,mBAAS,EAAE9hF,KAAE,CAAC,KAAD,CANkB;AAO/B+hF,+BAAqB,EAAE/hF,KAAE,CAAC,QAAD,CAPM;AAQ/BguE,sBAAY,EAAEhuE,KAAE,CAAC,QAAD,CARe;AAS/BgiF,sBAAY,EAAEhiF,KAAE,CAAC,QAAD,CATe;AAU/BiuE,oBAAU,EAAEjuE,KAAE,CAAC,MAAD,CAViB;AAW/BkuE,oBAAU,EAAEluE,KAAE,CAAC,MAAD,CAXiB;AAY/BmuE,kBAAQ,EAAEnuE,KAAE,CAAC,eAAD,CAZmB;AAa/BiiF,uBAAa,EAAEjiF,KAAE,CAAC,SAAD,CAbc;AAc/B6hF,+BAAqB,EAAE3mG,EAAE,IAAI,KAAK2mG,qBAAL,CAA2B3mG,EAA3B,CAdE;AAe/BmmG,0BAAgB,EAAEnmG,EAAE,IAAI,KAAKmmG,gBAAL,CAAsBnmG,EAAtB,CAfO;AAgB/B0mG,qBAAW,EAAE1mG,EAAE,IAAI,KAAK0mG,WAAL,CAAiB1mG,EAAjB,CAhBY;AAiB/BymG,oBAAU,EAAEzmG,EAAE,IAAI,KAAKymG,UAAL,CAAgBzmG,EAAhB,CAjBa;AAkB/BkmG,sBAAY,EAAElmG,EAAE,IAAI,KAAKkmG,YAAL,CAAkBlmG,EAAlB;AAlBW,SAAnC,CADoB,CAAxB;AAqBH,OA9BoC;;AAgCrC2mG,2BAAqB,CAAE3mG,EAAF,EAAM;AACvBA,UAAE,IAAIA,EAAE,CAACglD,cAAH,EAAN;AACA,aAAKr+C,KAAL,CAAWkB,IAAX,CAAgB;AAAC,wBAAc,KAAKlgC,EAAL,CAAQkuB,aAAR,CAAsB,aAAtB,EAAqClzB;AAApD,SAAhB;AACH,OAnCoC;;AAqCrCwjI,sBAAgB,CAAEnmG,EAAF,EAAM;AAClBA,UAAE,IAAIA,EAAE,CAACglD,cAAH,EAAN;AACA,cAAMx2E,IAAI,GAAGwxB,EAAE,CAAC8kD,MAAH,CAAUumC,OAAV,CAAkB78G,IAA/B;;AACA,YAAIA,IAAI,KAAK,OAAb,EAAsB;AAClB,eAAKm4B,KAAL,CAAWkB,IAAX,CAAgB;AACZ,2BAAer5B,IADH;AAEZ,0BAAc,KAAK7G,EAAL,CAAQkuB,aAAR,CAAsB,aAAtB,EAAqClzB;AAFvC,WAAhB;AAIH,SALD,MAKO;AACH,eAAKgkC,KAAL,CAAWkB,IAAX,CAAgB;AACZ,2BAAer5B,IADH;AAEZ,2BAAe,KAAK7G,EAAL,CAAQkuB,aAAR,CAAsB,gBAAtB,EAAwClzB;AAF3C,WAAhB;AAIH;AACJ,OAnDoC;;AAqDrC8jI,gBAAU,EAAEtiF,kBAAQ,CAAC,YAAY;AAC7B,aAAKxd,KAAL,CAAWkB,IAAX,CAAgB;AAAC,yBAAe,KAAKlgC,EAAL,CAAQkuB,aAAR,CAAsB,gBAAtB,EAAwClzB;AAAxD,SAAhB;AACH,OAFmB,EAEjB,GAFiB,CArDiB;;AAyDrCujI,kBAAY,CAAElmG,EAAF,EAAM;AACdA,UAAE,IAAIA,EAAE,CAACglD,cAAH,EAAN;AACA,aAAKyhD,UAAL;AACH,OA5DoC;;AA8DrC;;;;;;AAMAyB,cAAQ,GAAI;AACR,eAAQ,KAAKvhG,KAAL,CAAWva,GAAX,CAAe,aAAf,MAAkC,OAAlC,IAA6C,KAAKua,KAAL,CAAWva,GAAX,CAAe,aAAf,CAArD;AACH,OAtEoC;;AAwErC67G,qBAAe,GAAI;AACf,eAAOntF,sBAAS,CAACi2B,MAAV,IAAoBj2B,sBAAS,CAACi2B,MAAV,CAAiBpxE,MAAjB,IAA2B,CAA/C,IAAoD,KAAKuoI,QAAL,EAA3D;AACH,OA1EoC;;AA4ErCxB,iBAAW,CAAE1mG,EAAF,EAAM;AACbA,UAAE,IAAIA,EAAE,CAACglD,cAAH,EAAN;AACA,aAAKr+C,KAAL,CAAWkB,IAAX,CAAgB;AAAC,yBAAe;AAAhB,SAAhB;AACH;;AA/EoC,KAAZ,CAA7B;AAmFAiT,0BAAS,CAACqtF,iBAAV,GAA8BrtF,sBAAS,CAACstD,cAAV,CAAyBn/D,MAAzB,CAAgC;AAC1DrhC,aAAO,EAAE,IADiD;AAE1DsgF,eAAS,EAAE,2CAF+C;AAI1Dl7C,YAAM,EAAE;AACJ,sCAA8B,eAD1B;AAEJ,uCAA+B,gBAF3B;AAGJ,4BAAoB,UAHhB;AAIJ,sCAA8B;AAJ1B,OAJkD;;AAW1D,YAAM3O,UAAN,GAAoB;AAChB,cAAM,KAAKsI,KAAL,CAAW+sB,WAAjB;AACA,aAAKqpE,eAAL,GAAuB54E,kBAAQ,CAAC,KAAK+iC,MAAN,EAAc,EAAd,CAA/B;AACA,aAAKx5C,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,QAA1B,EAAoC,KAAKo2F,eAAzC;AACA,aAAKrvF,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,SAA1B,EAAqC,KAAKwZ,MAA1C;AACA,aAAKzS,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,WAA1B,EAAuC,KAAKyhG,SAA5C;AACA,aAAK16F,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,QAA1B,EAAoC,KAAKwZ,MAAzC;AACA,aAAKzS,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,cAA1B,EAA0C,KAAKo2F,eAA/C;AACA,aAAKrvF,QAAL,CAAc,KAAK/G,KAAL,CAAW0uB,QAAzB,EAAmC,aAAnC,EAAkD,KAAK0nE,eAAvD;AACA,aAAK71C,MAAL;AACH,OArByD;;AAuB1DA,YAAM,GAAI;AACN,YAAI,CAAC,KAAKmhD,UAAL,EAAL,EAAwB;AACpB32F,+BAAC,CAAC4hD,WAAF,CAAc,KAAK3rF,EAAnB;AACA,iBAAO,IAAP;AACH;;AACD,cAAMm1E,GAAG,GAAG,KAAKn2C,KAAL,CAAWva,GAAX,CAAe,KAAf,CAAZ;AAAA,cACImzB,IAAI,GAAG,KAAK5Y,KAAL,CAAW0uB,QAAX,CAAoBjpC,GAApB,CAAwB,MAAxB,CADX;AAAA,cAEIk8G,UAAU,GAAI,KAAK3hG,KAAL,CAAWva,GAAX,CAAe,YAAf,CAFlB;AAAA,cAGIkvD,YAAY,GAAG,KAAK30C,KAAL,CAAWva,GAAX,CAAe,cAAf,CAHnB;AAAA,cAIIxhB,GAAG,GAAG,KAAK+7B,KAAL,CAAWva,GAAX,CAAe,KAAf,CAJV;AAMA,cAAMm8G,iBAAiB,GAAG,CACtB,sBADsB,EAEtB,sBAFsB,EAGtB,yBAHsB,EAIpBlqH,MAJoB,CAIbtc,MAAM,CAAC0K,IAAP,CAAYu6H,QAAZ,CAJa,CAA1B;AAKAuB,yBAAiB,CAAC3xH,OAAlB,CAA0BjW,CAAC,IAAI+wC,qBAAC,CAAC25C,WAAF,CAAc1qF,CAAd,EAAiB,KAAKgH,EAAtB,CAA/B;AAEA,aAAKA,EAAL,CAAQsiF,SAAR,CAAkB7rD,GAAlB,CAAsBmhB,IAAtB;AACA,aAAK53C,EAAL,CAAQe,YAAR,CAAqB,aAArB,EAAoC62C,IAApC;AACA,aAAK6oF,SAAL;;AAEA,YAAIttF,sBAAS,CAACsU,SAAV,EAAJ,EAA2B;AACvB,gBAAMnQ,OAAO,GAAGnE,sBAAS,CAACogB,SAAV,CAAoB9uC,GAApB,CAAwB,KAAKua,KAAL,CAAWva,GAAX,CAAe,KAAf,CAAxB,CAAhB;;AACA,cAAI6yB,OAAJ,EAAa;AACT,gBAAIA,OAAO,CAAC7yB,GAAR,CAAY,QAAZ,CAAJ,EAA2B;AACvB,mBAAKzkB,EAAL,CAAQsiF,SAAR,CAAkB9pC,MAAlB,CAAyB,MAAzB;AACH,aAFD,MAEO;AACH,mBAAKx4C,EAAL,CAAQsiF,SAAR,CAAkB7rD,GAAlB,CAAsB,MAAtB;AACH;AACJ;AACJ;;AAED,YAAK0+C,GAAG,KAAK,WAAT,IAA0BxB,YAAY,KAAK,MAA/C,EAAwD;AACpD;;;;;;;;;;;AAWA,gBAAMouB,YAAY,GAAG,KAAK/iE,KAAL,CAAWwtB,cAAX,EAArB;AACA,eAAKxsD,EAAL,CAAQsiF,SAAR,CAAkB7rD,GAAlB,CAAsB,sBAAtB;AACA,eAAKz2B,EAAL,CAAQyG,SAAR,GAAoBo6H,yBAAmB,CACnCzmI,MAAM,CAACsmC,MAAP,CAAc,KAAK1B,KAAL,CAAWmB,MAAX,EAAd,EAAmC;AAC/B4hE,wBAD+B;AAE/B,2BAAe5kD,KAAE,CAAC,mCAAD,EAAsC4kD,YAAtC,CAFc;AAG/B,2CAA+BzuD,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,6BAAjB;AAHA,WAAnC,CADmC,CAAvC;AAOH,SArBD,MAqBO,IAAIk8G,UAAU,KAAK,IAAnB,EAAyB;AAC5B,gBAAM5+B,YAAY,GAAG,KAAK/iE,KAAL,CAAWwtB,cAAX,EAArB;AACA,eAAKxsD,EAAL,CAAQsiF,SAAR,CAAkB7rD,GAAlB,CAAsB,yBAAtB;AACA,eAAKz2B,EAAL,CAAQyG,SAAR,GAAoBq6H,4BAAsB,CACtC1mI,MAAM,CAACsmC,MAAP,CAAc,KAAK1B,KAAL,CAAWmB,MAAX,EAAd,EAAmC;AAC/B4hE,wBAD+B;AAE/B,2BAAe5kD,KAAE,CAAC,+CAAD,EAAkD4kD,YAAlD,CAFc;AAG/B,4BAAgB5kD,KAAE,CAAC,gDAAD,EAAmD4kD,YAAnD,CAHa;AAI/B,2CAA+BzuD,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,6BAAjB;AAJA,WAAnC,CADsC,CAA1C;AAQH,SAXM,MAWA,IAAIkvD,YAAY,KAAK,MAAjB,IAA2BA,YAAY,KAAK,IAA5C,IAAoDxgC,sBAAS,CAAC4tF,UAAV,CAAqB14D,MAArB,CAA4BplE,GAA5B,CAAxD,EAA0F;AAC7F,eAAKjD,EAAL,CAAQsiF,SAAR,CAAkB7rD,GAAlB,CAAsB,sBAAtB;AACA,eAAKz2B,EAAL,CAAQsiF,SAAR,CAAkB9pC,MAAlB,CAAyBinD,iBAAO,CAAC,CAAC,MAAD,EAAS,IAAT,CAAD,EAAiB9rB,YAAjB,CAAP,CAAsC,CAAtC,CAAzB;AACA,eAAK3zE,EAAL,CAAQsiF,SAAR,CAAkB7rD,GAAlB,CAAsBk9C,YAAtB;AACA,eAAKqtD,gBAAL,CAAsB,KAAKhiG,KAA3B;AACH;;AACD,eAAO,IAAP;AACH,OA/FyD;;AAiG1D;;;;;AAKAyhG,eAAS,GAAI;AACT,YAAIttF,sBAAS,CAACsU,SAAV,EAAJ,EAA2B;AACvB,gBAAMnQ,OAAO,GAAGnE,sBAAS,CAACogB,SAAV,CAAoB9uC,GAApB,CAAwB,KAAKua,KAAL,CAAWva,GAAX,CAAe,KAAf,CAAxB,CAAhB;;AACA,cAAK6yB,OAAO,IAAIA,OAAO,CAAC7yB,GAAR,CAAY,QAAZ,CAAZ,IAAsC,CAAC6yB,OAA3C,EAAoD;AAChD,iBAAKt3C,EAAL,CAAQsiF,SAAR,CAAkB9pC,MAAlB,CAAyB,MAAzB;AACH,WAFD,MAEO;AACH,iBAAKx4C,EAAL,CAAQsiF,SAAR,CAAkB7rD,GAAlB,CAAsB,MAAtB;AACH;AACJ;AACJ,OA/GyD;;AAiH1DuqG,sBAAgB,CAAE1gG,IAAF,EAAQ;AACpB,cAAMsX,IAAI,GAAGtX,IAAI,CAACotB,QAAL,CAAcjpC,GAAd,CAAkB,MAAlB,KAA6B,SAA1C;AACA,YAAIw8G,WAAJ;;AACA,YAAIrpF,IAAI,KAAK,QAAb,EAAuB;AACnBqpF,qBAAW,GAAG,8CAAd;AACH,SAFD,MAEO,IAAIrpF,IAAI,KAAK,MAAb,EAAqB;AACxBqpF,qBAAW,GAAG,4CAAd;AACH,SAFM,MAEA,IAAIrpF,IAAI,KAAK,IAAb,EAAmB;AACtBqpF,qBAAW,GAAG,0CAAd;AACH,SAFM,MAEA,IAAIrpF,IAAI,KAAK,KAAb,EAAoB;AACvBqpF,qBAAW,GAAG,kDAAd;AACH,SAFM,MAEA;AACHA,qBAAW,GAAG,qDAAd;AACH;;AACD,cAAMl/B,YAAY,GAAGzhE,IAAI,CAACksB,cAAL,EAArB;AACA,aAAKxsD,EAAL,CAAQyG,SAAR,GAAoBy6H,qBAAe,CAC/B9mI,MAAM,CAACsmC,MAAP,CAAcJ,IAAI,CAACH,MAAL,EAAd,EAA6B;AACzByX,cADyB;AAEzBmqD,sBAFyB;AAGzBk/B,qBAHyB;AAIzB,yBAAe5B,QAAQ,CAACznF,IAAD,CAJE;AAKzB,uBAAauF,KAAE,CAAC,8CAAD,EAAiD4kD,YAAjD,EAA+DzhE,IAAI,CAAC7b,GAAL,CAAS,KAAT,CAA/D,CALU;AAMzB,yBAAe04B,KAAE,CAAC,mCAAD,EAAsC4kD,YAAtC,CANQ;AAOzB,mCAAyBzuD,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,uBAAjB,CAPA;AAQzB,wBAAc6b,IAAI,CAAC7b,GAAL,CAAS,YAAT,KAA0B,CARf;AASzB0uE,iBAAO,EAAE;AATgB,SAA7B,CAD+B,CAAnC;AAaA,aAAKC,YAAL;AACA,eAAO,IAAP;AACH,OA/IyD;;AAiJ1D;;;;;;;;AAQAstC,gBAAU,GAAI;AACV,cAAMS,UAAU,GAAG,KAAKniG,KAAL,CAAW0uB,QAAX,CAAoBjpC,GAApB,CAAwB,MAAxB,CAAnB;;AACA,YAAI6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,oBAAjB,KAA0C08G,UAAU,KAAK,SAA7D,EAAwE;AACpE;AACA,cAAK,KAAKniG,KAAL,CAAWva,GAAX,CAAe,KAAf,MAA0B,WAA3B,IACK,KAAKua,KAAL,CAAWva,GAAX,CAAe,cAAf,MAAmC,MADxC,IAEK,KAAKua,KAAL,CAAWva,GAAX,CAAe,YAAf,MAAiC,IAF1C,EAEiD;AAC7C,mBAAO,IAAP;AACH;;AACD,iBAAO,KAAP;AACH;;AACD,eAAO,IAAP;AACH,OArKyD;;AAuK1DwvC,cAAQ,CAAE57B,EAAF,EAAM;AACV,YAAIA,EAAE,IAAIA,EAAE,CAACglD,cAAb,EAA6B;AAAEhlD,YAAE,CAACglD,cAAH;AAAsB;;AACrD,aAAKr+C,KAAL,CAAWi1B,QAAX;AACH,OA1KyD;;AA4K1D,YAAMkvC,aAAN,CAAqB9qE,EAArB,EAAyB;AACrB,YAAIA,EAAE,IAAIA,EAAE,CAACglD,cAAb,EAA6B;AAAEhlD,YAAE,CAACglD,cAAH;AAAsB;;AACrD,YAAI,CAAC/pC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,uBAAjB,CAAL,EAAgD;AAAE;AAAS;;AAC3D,YAAI,CAAC4kD,OAAO,CAAClsB,KAAE,CAAC,+CAAD,CAAH,CAAZ,EAAmE;AAAE;AAAS;;AAE9E,YAAI;AACA,gBAAM,KAAKne,KAAL,CAAWw0C,gBAAX,EAAN;AACA,eAAKh7B,MAAL;;AACA,cAAI,KAAKxZ,KAAL,CAAWI,UAAf,EAA2B;AACvB;AACA;AACA,iBAAKJ,KAAL,CAAWU,OAAX;AACH;AACJ,SARD,CAQE,OAAO98B,CAAP,EAAU;AACRsB,sBAAG,CAACI,KAAJ,CAAU1B,CAAV;AACA0wC,2BAAG,CAAC+3B,KAAJ,CAAU,OAAV,EAAmBluB,KAAE,CAAC,OAAD,CAArB,EACI,CAACA,KAAE,CAAC,qEAAD,EAAwE,KAAKne,KAAL,CAAWwtB,cAAX,EAAxE,CAAH,CADJ;AAGH;AACJ,OA/LyD;;AAiM1D,YAAM40E,aAAN,CAAqB/oG,EAArB,EAAyB;AACrB,YAAIA,EAAE,IAAIA,EAAE,CAACglD,cAAb,EAA6B;AAAEhlD,YAAE,CAACglD,cAAH;AAAsB;;AAErD,cAAMlqC,sBAAS,CAACi2B,MAAV,CAAiBuL,gBAAjB,CACF,KAAK31C,KAAL,CAAWva,GAAX,CAAe,KAAf,CADE,EAEF,KAAKua,KAAL,CAAWqxC,WAAX,EAFE,EAGF,EAHE,CAAN;AAKA,aAAKrxC,KAAL,CAAW00C,SAAX,GAAuBN,SAAvB;AACH,OA1MyD;;AA4M1DiuD,oBAAc,CAAEhpG,EAAF,EAAM;AAChB,YAAIA,EAAE,IAAIA,EAAE,CAACglD,cAAb,EAA6B;AAAEhlD,YAAE,CAACglD,cAAH;AAAsB;;AACrD,cAAMr4E,MAAM,GAAGqkE,OAAO,CAAClsB,KAAE,CAAC,wDAAD,CAAH,CAAtB;;AACA,YAAIn4C,MAAM,KAAK,IAAf,EAAqB;AACjB,eAAKg6B,KAAL,CAAWy0C,WAAX,GAAyB/zC,OAAzB;AACH;;AACD,eAAO,IAAP;AACH;;AAnNyD,KAAhC,CAA9B;AAsNA;;;;;;AAKAyT,0BAAS,CAACmuF,eAAV,GAA4B5hC,eAAe,CAACp+D,MAAhB,CAAuB;AAC/CrhC,aAAO,EAAE,KADsC;AAE/CsgF,eAAS,EAAE,qBAFoC;AAG/Cl7C,YAAM,EAAE;AACJ,gCAAwB;AADpB,OAHuC;AAO/Cw6D,0BAAoB,EAAE,IAPyB;AAQ/CE,cAAQ,EAAE5sD,sBAAS,CAACqtF,iBAR2B;AAS/C7gC,eAAS,EAAE,gBAToC;AAU/CG,kBAAY,EAAE,wBAViC;AAW/CF,eAAS,EAAE,iBAXoC;;AAa/ClpE,gBAAU,GAAI;AACVgpE,uBAAe,CAACrlG,SAAhB,CAA0Bq8B,UAA1B,CAAqCvL,KAArC,CAA2C,IAA3C,EAAiD3qB,SAAjD;;AAEA,YAAI,KAAKw+B,KAAL,CAAWva,GAAX,CAAe,MAAf,MAA2B0uB,sBAAS,CAACs+B,aAAzC,EAAwD;AACpD,eAAK1rC,QAAL,CAAc,KAAK/G,KAAL,CAAW+X,QAAzB,EAAmC,mBAAnC,EACI/9C,CAAC,IAAI,CAAC,KAAKgmC,KAAL,CAAWva,GAAX,CAAe,iBAAf,CAAD,IAAsC,KAAK0+E,aAAL,CAAmBnqG,CAAnB,CAD/C;AAGH;;AACD,YAAI,KAAKgmC,KAAL,CAAWva,GAAX,CAAe,MAAf,MAA2B0uB,sBAAS,CAACo+B,0BAAzC,EAAqE;AACjE,eAAKxrC,QAAL,CAAc,KAAK/G,KAAL,CAAW+X,QAAzB,EAAmC,mBAAnC,EACI/9C,CAAC,IAAI,CAACA,CAAC,CAACyrB,GAAF,CAAM,YAAN,CAAD,IAAwB,KAAK0+E,aAAL,CAAmBnqG,CAAnB,CADjC;AAGH;;AACD,YAAI,KAAKgmC,KAAL,CAAWva,GAAX,CAAe,MAAf,MAA2B0uB,sBAAS,CAACm+B,uBAAzC,EAAkE;AAC9D,eAAKvrC,QAAL,CAAc,KAAK/G,KAAL,CAAW+X,QAAzB,EAAmC,qBAAnC,EACI/9C,CAAC,IAAKA,CAAC,CAACyrB,GAAF,CAAM,cAAN,MAA0B,MAA3B,IAAsC,KAAK0+E,aAAL,CAAmBnqG,CAAnB,CAD/C;AAGH;;AAED,aAAK+sC,QAAL,CAAc,KAAK/G,KAAL,CAAW+X,QAAzB,EAAmC,QAAnC,EAA6C,KAAKwqF,QAAlD;AACA,aAAKx7F,QAAL,CAAcoN,sBAAS,CAACi2B,MAAxB,EAAgC,eAAhC,EAAiD,KAAKo4D,oBAAtD,EApBU,CAsBV;AACA;AACA;AACA;;AACAruF,8BAAS,CAAC4tF,UAAV,CAAqBx7F,EAArB,CACI,mCADJ,EAEI,MAAM,KAAK26D,uBAAL,EAFV;AAIH,OA3C8C;;AA6C/C3gB,YAAM,GAAI;AACN,aAAKv/E,EAAL,CAAQe,YAAR,CAAqB,YAArB,EAAmC,KAAKi+B,KAAL,CAAWva,GAAX,CAAe,MAAf,CAAnC;AACA,aAAKzkB,EAAL,CAAQyG,SAAR,GAAoBg7H,sBAAgB,CAAC;AACjC,yBAAe,KAAKziG,KAAL,CAAWva,GAAX,CAAe,MAAf,CADkB;AAEjC,+BAAqB,KAAKua,KAAL,CAAWva,GAAX,CAAe,aAAf,CAFY;AAGjC,0BAAgB,KAAKua,KAAL,CAAWva,GAAX,CAAe,OAAf,CAHiB;AAIjC,uBAAa0uB,sBAASA;AAJW,SAAD,CAApC;AAMA,aAAKuuF,WAAL,GAAmB,KAAK1hI,EAAL,CAAQkuB,aAAR,CAAsB,wBAAtB,CAAnB;AACA,eAAO,IAAP;AACH,OAvD8C;;AAyD/C0pB,UAAI,GAAI;AACJ7N,6BAAC,CAACu3C,WAAF,CAAc,KAAKthF,EAAnB;;AACA,YAAI,KAAKg/B,KAAL,CAAWva,GAAX,CAAe,OAAf,MAA4B0uB,sBAAS,CAACoR,MAA1C,EAAkD;AAC9CnqD,gBAAM,CAAC+oC,MAAP,CAAc,KAAK87D,MAAL,EAAd,EACKvtF,MADL,CACYpG,CAAC,IAAIA,CAAC,CAACo1H,UAAF,EADjB,EAEKzxH,OAFL,CAEa3D,CAAC,IAAIy+B,qBAAC,CAACu3C,WAAF,CAAch2E,CAAC,CAACtL,EAAhB,CAFlB;AAGH;;AACD,eAAO,IAAP;AACH,OAjE8C;;AAmE/C2hI,cAAQ,GAAI;AACR,eAAO53F,qBAAC,CAACs4C,OAAF,CAAU,KAAKq/C,WAAf,CAAP;AACH,OArE8C;;AAuE/C;;;;;;;AAOAE,uBAAiB,CAAE7qF,QAAQ,GAAC,EAAX,EAAe;AAC5B,YAAI8qF,KAAK,GAAG,CAAZ;AACA,aAAK7iG,KAAL,CAAW+X,QAAX,CAAoB9nC,OAApB,CAA4B4nC,OAAO,IAAI;AACnC,gBAAMirF,YAAY,GAAG,KAAKr9G,GAAL,CAASoyB,OAAO,CAACpyB,GAAR,CAAY,IAAZ,CAAT,CAArB;;AACA,cAAIsyB,QAAQ,CAACtf,QAAT,CAAkBof,OAAlB,CAAJ,EAAgC;AAC5B9M,iCAAC,CAAC4hD,WAAF,CAAcm2C,YAAY,CAAC9hI,EAA3B;AACH,WAFD,MAEO,IAAI8hI,YAAY,CAACpB,UAAb,EAAJ,EAA+B;AAClC32F,iCAAC,CAACu3C,WAAF,CAAcwgD,YAAY,CAAC9hI,EAA3B;AACA6hI,iBAAK,IAAI,CAAT;AACH;AACJ,SARD;;AASA,YAAIA,KAAJ,EAAW;AACP93F,+BAAC,CAACu3C,WAAF,CAAc,KAAKthF,EAAnB;AACH,SAFD,MAEO;AACH+pC,+BAAC,CAAC4hD,WAAF,CAAc,KAAK3rF,EAAnB;AACH;AACJ,OA9F8C;;AAgG/C;;;;;;;;AAQA+hI,sBAAgB,CAAErpI,CAAF,EAAKmO,IAAL,EAAW;AACvB,YAAInO,CAAC,CAACV,MAAF,KAAa,CAAjB,EAAoB;AAChB,iBAAO,EAAP;AACH;;AACDU,SAAC,GAAGA,CAAC,CAACwJ,WAAF,EAAJ;AACA,cAAM60C,QAAQ,GAAG,KAAK/X,KAAL,CAAW+X,QAA5B;;AACA,YAAIlwC,IAAI,KAAK,OAAb,EAAsB;AAClB,gBAAMm7H,aAAa,GAAG,CAAC7uF,sBAAS,CAACo+B,0BAAX,EAAuCp+B,sBAAS,CAACs+B,aAAjD,CAAtB;;AACA,cAAIuwD,aAAa,CAACvqG,QAAd,CAAuB,KAAKuH,KAAL,CAAWva,GAAX,CAAe,MAAf,CAAvB,CAAJ,EAAoD;AAChD;AACA;AACA;AACA,mBAAO,EAAP;AACH,WALD,MAKO,IAAI/rB,CAAC,KAAK,iBAAV,EAA6B;AAChC,mBAAOq+C,QAAQ,CAACrlC,MAAT,CAAgB;AAAC,4BAAc;AAAf,aAAhB,CAAP;AACH,WAFM,MAEA,IAAIhZ,CAAC,KAAK,QAAV,EAAoB;AACvB,mBAAOq+C,QAAQ,CAACrlC,MAAT,CAAgB1Y,CAAC,IAAI,CAAC,SAAD,EAAY,aAAZ,EAA2By+B,QAA3B,CAAoCz+B,CAAC,CAAC00D,QAAF,CAAWjpC,GAAX,CAAe,MAAf,CAApC,CAArB,CAAP;AACH,WAFM,MAEA;AACH,mBAAOsyB,QAAQ,CAACrlC,MAAT,CAAgB1Y,CAAC,IAAI,CAACA,CAAC,CAAC00D,QAAF,CAAWjpC,GAAX,CAAe,MAAf,EAAuBgT,QAAvB,CAAgC/+B,CAAhC,CAAtB,CAAP;AACH;AACJ,SAdD,MAcQ;AACJ,iBAAOq+C,QAAQ,CAACrlC,MAAT,CAAgB1Y,CAAC,IAAI,CAACA,CAAC,CAACk6E,iBAAF,GAAsBz7C,QAAtB,CAA+B/+B,CAA/B,CAAtB,CAAP;AACH;AACJ,OA/H8C;;AAiI/C;;;;;;;;;;AAUAgZ,YAAM,CAAEhZ,CAAF,EAAKmO,IAAL,EAAW;AACb,YAAInO,CAAC,KAAK,IAAN,IAAcA,CAAC,KAAKoI,SAAxB,EAAmC;AAC/B+F,cAAI,GAAGA,IAAI,IAAIssC,sBAAS,CAAC4tF,UAAV,CAAqBkB,WAArB,CAAiCjjG,KAAjC,CAAuCva,GAAvC,CAA2C,aAA3C,CAAf;;AACA,cAAI5d,IAAI,KAAK,OAAb,EAAsB;AAClBnO,aAAC,GAAGy6C,sBAAS,CAAC4tF,UAAV,CAAqBkB,WAArB,CAAiCjjG,KAAjC,CAAuCva,GAAvC,CAA2C,YAA3C,CAAJ;AACH,WAFD,MAEO;AACH/rB,aAAC,GAAGy6C,sBAAS,CAAC4tF,UAAV,CAAqBkB,WAArB,CAAiCjjG,KAAjC,CAAuCva,GAAvC,CAA2C,aAA3C,CAAJ;AACH;AACJ;;AACD,aAAKm9G,iBAAL,CAAuB,KAAKG,gBAAL,CAAsBrpI,CAAtB,EAAyBmO,IAAzB,CAAvB;AACH,OArJ8C;;AAuJ/C,YAAMspG,MAAN,CAAc93E,EAAd,EAAkB;AACd,YAAIA,EAAE,IAAIA,EAAE,CAACglD,cAAb,EAA6B;AAAEhlD,YAAE,CAACglD,cAAH;AAAsB;;AACrD,cAAM+E,OAAO,GAAG/pD,EAAE,CAAC8kD,MAAH,CAAU5pE,OAAV,CAAkB,KAAlB,IAA2B8kB,EAAE,CAAC8kD,MAA9B,GAAuC9kD,EAAE,CAAC8kD,MAAH,CAAUjvD,aAAV,CAAwB,KAAxB,CAAvD;;AACA,YAAI6b,qBAAC,CAAC6xC,QAAF,CAAW,eAAX,EAA4BwG,OAA5B,CAAJ,EAA0C;AACtC,eAAKpjD,KAAL,CAAWkB,IAAX,CAAgB;AAACqpB,iBAAK,EAAEpW,sBAAS,CAAC3pB;AAAlB,WAAhB;AACA,gBAAM,KAAKm4G,QAAL,EAAN;AACAv/C,iBAAO,CAACE,SAAR,CAAkB9pC,MAAlB,CAAyB,eAAzB;AACA4pC,iBAAO,CAACE,SAAR,CAAkB7rD,GAAlB,CAAsB,gBAAtB;AACH,SALD,MAKO;AACH2rD,iBAAO,CAACE,SAAR,CAAkB9pC,MAAlB,CAAyB,gBAAzB;AACA4pC,iBAAO,CAACE,SAAR,CAAkB7rD,GAAlB,CAAsB,eAAtB;AACA,eAAKuI,KAAL,CAAWkB,IAAX,CAAgB;AAACqpB,iBAAK,EAAEpW,sBAAS,CAACoR;AAAlB,WAAhB;AACA,eAAK7yC,MAAL;AACAq4B,+BAAC,CAACu3C,WAAF,CAAc,KAAKthF,EAAnB;AACA+pC,+BAAC,CAACw4C,QAAF,CAAW,KAAKm/C,WAAhB;AACH;AACJ,OAvK8C;;AAyK/CF,0BAAoB,CAAE3qF,OAAF,EAAW;AAC3B,cAAMqrF,aAAa,GAAGrrF,OAAO,CAACpyB,GAAR,CAAY,QAAZ,EAAsBgT,QAAtB,CAA+B,KAAKuH,KAAL,CAAWva,GAAX,CAAe,MAAf,CAA/B,CAAtB;AACA,cAAMqjB,GAAG,GAAG+O,OAAO,CAACpyB,GAAR,CAAY,IAAZ,CAAZ;AACA,cAAM09G,gBAAgB,GAAG,CAAC,KAAK19G,GAAL,CAASqjB,GAAT,CAA1B;;AACA,YAAIo6F,aAAa,IAAI,CAACC,gBAAtB,EAAwC;AACpC,eAAKhjH,KAAL,CAAWilB,OAAX,CAAmB,KAAnB,EAA0ByS,OAA1B;AACH,SAFD,MAEO,IAAI,CAACqrF,aAAL,EAAoB;AACvB,eAAK/+B,aAAL,CAAmBtsD,OAAnB;AACH;AACJ,OAlL8C;;AAoL/CssD,mBAAa,CAAEtsD,OAAF,EAAW;AACpB;AACA;AACA;AACA,aAAK7X,KAAL,CAAW+X,QAAX,CAAoByB,MAApB,CAA2B3B,OAA3B,EAAoC;AAAC,oBAAU;AAAX,SAApC;AACA,aAAK0qF,QAAL,CAAc1qF,OAAd;AACH,OA1L8C;;AA4L/C0qF,cAAQ,CAAE1qF,OAAF,EAAW;AACf,aAAK2B,MAAL,CAAY3B,OAAO,CAACpyB,GAAR,CAAY,KAAZ,CAAZ;;AACA,YAAI,KAAKua,KAAL,CAAW+X,QAAX,CAAoB/+C,MAApB,KAA+B,CAAnC,EAAsC;AAClC,eAAKwgD,MAAL;AACH;AACJ;;AAjM8C,KAAvB,CAA5B;AAqMA;;;;;;AAKArF,0BAAS,CAACivF,UAAV,GAAuB1iC,eAAe,CAACp+D,MAAhB,CAAuB;AAC1CrhC,aAAO,EAAE,KADiC;AAE1C6G,QAAE,EAAE,iBAFsC;AAG1Cy5E,eAAS,EAAE,oBAH+B;AAK1Cwf,cAAQ,EAAE5sD,sBAAS,CAACmuF,eALsB;AAM1C3hC,eAAS,EAAE,OAN+B;AAO1CG,kBAAY,EAAE,kBAP4B;AAQ1CF,eAAS,EAAE,IAR+B;AAQzB;AACjBI,kBAAY,EAAE,MAT4B;AAU1CH,0BAAoB,EAAE,IAVoB;AAY1Cx6D,YAAM,EAAE;AACJ,uDAA+C,qBAD3C;AAEJ,yDAAiD;AAF7C,OAZkC;;AAiB1C3O,gBAAU,GAAI;AACVgpE,uBAAe,CAACrlG,SAAhB,CAA0Bq8B,UAA1B,CAAqCvL,KAArC,CAA2C,IAA3C,EAAiD3qB,SAAjD;AAEA,aAAKulC,QAAL,CAAcoN,sBAAS,CAACi2B,MAAxB,EAAgC,KAAhC,EAAuC,KAAKi5D,cAA5C;AACA,aAAKt8F,QAAL,CAAcoN,sBAAS,CAACi2B,MAAxB,EAAgC,eAAhC,EAAiD,KAAKi5D,cAAtD;AACA,aAAKt8F,QAAL,CAAcoN,sBAAS,CAACi2B,MAAxB,EAAgC,QAAhC,EAA0C,KAAKk5D,eAA/C;AACA,aAAKv8F,QAAL,CAAcoN,sBAAS,CAACi2B,MAAxB,EAAgC,SAAhC,EAA2C,KAAK3pC,MAAhD;AACA,aAAKsG,QAAL,CAAcoN,sBAAS,CAACi2B,MAAxB,EAAgC,QAAhC,EAA0C,KAAK3pC,MAA/C;;AACA0T,8BAAS,CAACwa,SAAV,CAAoBpoB,EAApB,CAAuB,aAAvB,EAAsC,MAAM;AACxC,eAAK9F,MAAL;AACA,eAAK8iG,YAAL;AACH,SAHD;;AAKA,aAAKx8F,QAAL,CAAc,KAAK/G,KAAnB,EAA0B,OAA1B,EAAmC,KAAK92B,KAAxC,EAbU,CAeV;AACA;AACA;AACA;;AACAorC,yBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,qBAAd,EAAqC,KAAK26D,uBAAL,CAA6BtwF,IAA7B,CAAkC,IAAlC,CAArC;AAEA0jC,yBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,uBAAd,EAAuC,MAAM;AACzC4N,gCAAS,CAACi2B,MAAV,CAAiBrnC,IAAjB,CAAsB8U,OAAO,IAAI,KAAK2rF,gBAAL,CAAsB3rF,OAAtB,EAA+B;AAAC,sBAAU;AAAX,WAA/B,CAAjC;;AACA,eAAKpX,MAAL;AACA,eAAK8iG,YAAL;AACA,eAAKn+F,OAAL,CAAa,mCAAb;AACH,SALD;AAMA,aAAKq+F,kBAAL;AACH,OA7CyC;;AA+C1CljD,YAAM,GAAI;AACN,aAAKv/E,EAAL,CAAQyG,SAAR,GAAoBi8H,gBAAU,CAAC;AAC3B,oCAA0BvvF,sBAAS,CAACwvF,sBADT;AAE3B,8BAAoBxlF,KAAE,CAAC,UAAD,CAFK;AAG3B,+BAAqBA,KAAE,CAAC,eAAD,CAHI;AAI3B,iCAAuBA,KAAE,CAAC,uBAAD;AAJE,SAAD,CAA9B;AAMA,cAAM2Y,IAAI,GAAG,KAAK91D,EAAL,CAAQkuB,aAAR,CAAsB,qBAAtB,CAAb;AACA,aAAKluB,EAAL,CAAQmiF,YAAR,CAAqB,KAAK8/C,WAAL,CAAiB1iD,MAAjB,GAA0Bv/E,EAA/C,EAAmD81D,IAAnD;AACA,aAAK8sE,SAAL,GAAiB,KAAK5iI,EAAL,CAAQkuB,aAAR,CAAsB,kBAAtB,CAAjB;AACA,eAAO,IAAP;AACH,OA1DyC;;AA4D1C20G,yBAAmB,CAAExqG,EAAF,EAAM;AACrB,YAAI,KAAKyqG,iBAAL,KAA2BhiI,SAA/B,EAA0C;AACtC,eAAKgiI,iBAAL,GAAyB,IAAI3vF,sBAAS,CAACmsF,eAAd,CAA8B;AAAC,qBAAS,IAAI13F,WAAJ;AAAV,WAA9B,CAAzB;AACH;;AACD,aAAKk7F,iBAAL,CAAuBlrF,IAAvB,CAA4Bvf,EAA5B;AACH,OAjEyC;;AAmE1CoqG,wBAAkB,GAAI;AAClB;AACA,cAAMzjG,KAAK,GAAG,IAAImU,sBAAS,CAACgtF,YAAd,EAAd;AACAnhG,aAAK,CAACl4B,EAAN,oCAAqCqsC,sBAAS,CAACsB,QAA/C;AACAzV,aAAK,CAACsP,cAAN,GAAuB6E,sBAAS,CAACkT,WAAV,CAAsBrnB,KAAK,CAACl4B,EAA5B,CAAvB;AACA,aAAKm7H,WAAL,GAAmB,IAAI9uF,sBAAS,CAACitF,gBAAd,CAA+B;AAACphG;AAAD,SAA/B,CAAnB;AACA,aAAK+G,QAAL,CAAc,KAAKk8F,WAAL,CAAiBjjG,KAA/B,EAAsC,QAAtC,EAAgD,KAAKujG,YAArD;AACA,aAAKN,WAAL,CAAiBjjG,KAAjB,CAAuB+F,KAAvB;AACH,OA3EyC;;AA6E1C;;;;;;;AAOAw9F,kBAAY,EAAE/lF,kBAAQ,CAAC,YAAY;AAC/B,cAAM31C,IAAI,GAAG,KAAKo7H,WAAL,CAAiBjjG,KAAjB,CAAuBva,GAAvB,CAA2B,aAA3B,CAAb;;AACA,YAAI5d,IAAI,KAAK,OAAb,EAAsB;AAClB,eAAK6K,MAAL,CAAY,KAAKuwH,WAAL,CAAiBjjG,KAAjB,CAAuBva,GAAvB,CAA2B,YAA3B,CAAZ,EAAsD5d,IAAtD;AACH,SAFD,MAEO;AACH,eAAK6K,MAAL,CAAY,KAAKuwH,WAAL,CAAiBjjG,KAAjB,CAAuBva,GAAvB,CAA2B,aAA3B,CAAZ,EAAuD5d,IAAvD;AACH;AACJ,OAPqB,EAOnB,GAPmB,CApFoB;;AA6F1C44B,YAAM,GAAI;AACN,YAAI,CAACsK,qBAAC,CAAC4jD,SAAF,CAAY,KAAKi1C,SAAjB,CAAL,EAAkC;AAC9B74F,+BAAC,CAACu3C,WAAF,CAAc,KAAKshD,SAAnB;AACH;;AACD,aAAKX,WAAL,CAAiB1iD,MAAjB;AACA,eAAO,IAAP;AACH,OAnGyC;;AAqG1C7tE,YAAM,CAAEkJ,KAAF,EAAS/T,IAAT,EAAe;AACjB,cAAMm4F,KAAK,GAAG5kG,MAAM,CAAC+oC,MAAP,CAAc,KAAK87D,MAAL,EAAd,CAAd,CADiB,CAEjB;;AACAD,aAAK,CAAC/vF,OAAN,CAAc3D,CAAC,IAAKA,CAAC,CAAC0zB,KAAF,CAAQ+X,QAAR,CAAiB/+C,MAAjB,GAA0B,CAA3B,IAAiCsT,CAAC,CAACssC,IAAF,GAASlmC,MAAT,CAAgB,EAAhB,CAApD,EAHiB,CAIjB;;AACAkJ,aAAK,GAAGA,KAAK,CAAC1Y,WAAN,EAAR;;AACA,YAAI2E,IAAI,KAAK,QAAb,EAAuB;AACnBm4F,eAAK,CAAC/vF,OAAN,CAAcogE,IAAI,IAAI;AAClB,gBAAI,CAACA,IAAI,CAACrwC,KAAL,CAAWva,GAAX,CAAe,MAAf,EAAuBviB,WAAvB,GAAqCu1B,QAArC,CAA8C7c,KAA9C,CAAL,EAA2D;AACvDmvB,mCAAC,CAACs4C,OAAF,CAAUhT,IAAI,CAACrvE,EAAf;AACH,aAFD,MAEO,IAAIqvE,IAAI,CAACrwC,KAAL,CAAW+X,QAAX,CAAoB/+C,MAApB,GAA6B,CAAjC,EAAoC;AACvC+xC,mCAAC,CAACw4C,QAAF,CAAWlT,IAAI,CAACrvE,EAAhB;AACH;AACJ,WAND;AAOH,SARD,MAQO;AACHg/F,eAAK,CAAC/vF,OAAN,CAAc3D,CAAC,IAAIA,CAAC,CAACoG,MAAF,CAASkJ,KAAT,EAAgB/T,IAAhB,CAAnB;AACH;AACJ,OAtHyC;;AAwH1C,YAAMk8H,YAAN,CAAoB1qG,EAApB,EAAwB;AACpBA,UAAE,CAACglD,cAAH;AACAtzC,6BAAC,CAAC85C,QAAF,CAAW,SAAX,EAAsBxrD,EAAE,CAAC8kD,MAAzB;;AACAhqC,8BAAS,CAACi2B,MAAV,CAAiBj8D,IAAjB,CAAsB+yB,IAAtB,CAA2B,SAA3B,EAAsC,IAAtC;;AACA,cAAMiT,sBAAS,CAACi2B,MAAV,CAAiBmL,eAAjB,EAAN;AACAjhC,yBAAG,CAACnsC,IAAJ,CAASumD,QAAT,CAAkBpgD,IAAlB;AACAy8B,6BAAC,CAAC25C,WAAF,CAAc,SAAd,EAAyBrrD,EAAE,CAAC8kD,MAA5B;AACH,OA/HyC;;AAiI1Cj1E,WAAK,GAAI;AACL,aAAKoa,SAAL;AACA,aAAKi9D,MAAL,GAAc9/C,MAAd;AACA,eAAO,IAAP;AACH,OArIyC;;AAuI1C4iG,oBAAc,CAAExrF,OAAF,EAAW;AACrB,aAAK2rF,gBAAL,CAAsB3rF,OAAtB;AACA,aAAKpX,MAAL;AACA,aAAK8iG,YAAL;AACH,OA3IyC;;AA6I1CD,qBAAe,CAAEzrF,OAAF,EAAW;AACtB,aAAKpX,MAAL;;AACA,YAAI7b,aAAG,CAACizB,OAAO,CAAC3O,OAAT,EAAkB,cAAlB,CAAP,EAA0C;AACtC,cAAI2O,OAAO,CAAC3O,OAAR,CAAgByrC,YAAhB,KAAiC,MAArC,EAA6C;AACzC,iBAAKqvD,iBAAL,CAAuBnsF,OAAvB,EAAgC1D,sBAAS,CAACm+B,uBAA1C;AACH,WAFD,MAEO,IAAI,CAAC,MAAD,EAAS,IAAT,EAAe75C,QAAf,CAAwBof,OAAO,CAACpyB,GAAR,CAAY,cAAZ,CAAxB,CAAJ,EAA0D;AAC7D,iBAAKw+G,kBAAL,CAAwBpsF,OAAxB;AACH;AACJ;;AACD,YAAIjzB,aAAG,CAACizB,OAAO,CAAC3O,OAAT,EAAkB,YAAlB,CAAH,IAAsC2O,OAAO,CAACpyB,GAAR,CAAY,YAAZ,CAA1C,EAAqE;AACjE,eAAKu+G,iBAAL,CAAuBnsF,OAAvB,EAAgC1D,sBAAS,CAACs+B,aAA1C;AACH;;AACD,YAAI7tD,aAAG,CAACizB,OAAO,CAAC3O,OAAT,EAAkB,KAAlB,CAAH,IAA+B2O,OAAO,CAAC3O,OAAR,CAAgBitC,GAAhB,KAAwB,WAA3D,EAAwE;AACpE,eAAK6tD,iBAAL,CAAuBnsF,OAAvB,EAAgC1D,sBAAS,CAACm+B,uBAA1C;AACH;;AACD,YAAI1tD,aAAG,CAACizB,OAAO,CAAC3O,OAAT,EAAkB,cAAlB,CAAH,IAAwC2O,OAAO,CAAC3O,OAAR,CAAgBy4F,UAAhB,KAA+B,MAA3E,EAAmF;AAC/E,eAAKqC,iBAAL,CAAuBnsF,OAAvB,EAAgC1D,sBAAS,CAACo+B,0BAA1C;AACH;;AACD,aAAKgxD,YAAL;AACH,OAhKyC;;AAkK1C;;;;;;;AAOAW,cAAQ,CAAE9nI,IAAF,EAAQ;AACZ,cAAMi0E,IAAI,GAAI,KAAK5qD,GAAL,CAASrpB,IAAT,CAAd;;AACA,YAAIi0E,IAAJ,EAAU;AACN,iBAAOA,IAAI,CAACrwC,KAAZ;AACH;;AACD,eAAO,KAAKA,KAAL,CAAWnS,MAAX,CAAkB;AAACzxB;AAAD,SAAlB,CAAP;AACH,OA/KyC;;AAiL1C4nI,uBAAiB,CAAEnsF,OAAF,EAAWz7C,IAAX,EAAiB4L,OAAjB,EAA0B;AACvC,aAAKk8H,QAAL,CAAc9nI,IAAd,EAAoB27C,QAApB,CAA6BtgB,GAA7B,CAAiCogB,OAAjC,EAA0C7vC,OAA1C;AACA,aAAKk5F,uBAAL;AACH,OApLyC;;AAsL1C+iC,wBAAkB,CAAEpsF,OAAF,EAAW7vC,OAAX,EAAoB;AAClC,YAAIytE,MAAJ;;AACA,YAAInhC,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,eAAjB,CAAJ,EAAuC;AACnCgwD,gBAAM,GAAG59B,OAAO,CAACpyB,GAAR,CAAY,QAAZ,CAAT;AACAgwD,gBAAM,GAAIA,MAAM,CAACz8E,MAAP,KAAkB,CAAnB,GAAwB,CAACm7C,sBAAS,CAACq+B,gBAAX,CAAxB,GAAuDiD,MAAhE;AACH,SAHD,MAGO;AACHA,gBAAM,GAAG,CAACthC,sBAAS,CAACk+B,uBAAX,CAAT;AACH;;AACD,YAAIx6B,OAAO,CAACpyB,GAAR,CAAY,YAAZ,CAAJ,EAA+B;AAC3BgwD,gBAAM,CAAC/xE,IAAP,CAAYywC,sBAAS,CAACs+B,aAAtB;AACH;;AACDgD,cAAM,CAACxlE,OAAP,CAAe2lE,CAAC,IAAI,KAAKouD,iBAAL,CAAuBnsF,OAAvB,EAAgC+9B,CAAhC,EAAmC5tE,OAAnC,CAApB;AACH,OAlMyC;;AAoM1CqhE,YAAM,CAAEplE,GAAF,EAAO;AACT,eAAO8mC,qBAAC,CAACiB,aAAF,CAAgB/nC,GAAhB,EAAqBkwC,sBAAS,CAAC5+B,UAAV,CAAqBtR,GAA1C,CAAP;AACH,OAtMyC;;AAwM1Cu/H,sBAAgB,CAAE3rF,OAAF,EAAW7vC,OAAX,EAAoB;AAChC,cAAM/D,GAAG,GAAG4zC,OAAO,CAACpyB,GAAR,CAAY,KAAZ,CAAZ;;AACA,YAAIoyB,OAAO,CAACpyB,GAAR,CAAY,cAAZ,MAAgC,MAAhC,IAA0CoyB,OAAO,CAACpyB,GAAR,CAAY,cAAZ,MAAgC,IAA1E,IAAkF,KAAK4jD,MAAL,CAAYplE,GAAZ,CAAtF,EAAwG;AACpG,eAAKggI,kBAAL,CAAwBpsF,OAAxB,EAAiC7vC,OAAjC;AACH,SAFD,MAEO;AACH,cAAI,CAACmsC,sBAAS,CAACwvF,sBAAf,EAAuC;AACnCz+H,wBAAG,CAACK,KAAJ,CACI,mDAA4CtB,GAA5C,kDADJ;AAIA;AACH;;AACD,cAAK4zC,OAAO,CAACpyB,GAAR,CAAY,KAAZ,MAAuB,WAAxB,IAAyCoyB,OAAO,CAACpyB,GAAR,CAAY,cAAZ,MAAgC,MAA7E,EAAsF;AAClF,iBAAKu+G,iBAAL,CAAuBnsF,OAAvB,EAAgC1D,sBAAS,CAACm+B,uBAA1C,EAAmEtqE,OAAnE;AACH,WAFD,MAEO,IAAI6vC,OAAO,CAACpyB,GAAR,CAAY,YAAZ,MAA8B,IAAlC,EAAwC;AAC3C,iBAAKu+G,iBAAL,CAAuBnsF,OAAvB,EAAgC1D,sBAAS,CAACo+B,0BAA1C,EAAsEvqE,OAAtE;AACH;AACJ;;AACD,eAAO,IAAP;AACH;;AA3NyC,KAAvB,CAAvB;AA8NA;;AACAssC,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,sBAAd,EAAsC,MAAM;AACxC,eAAS49F,mBAAT,CAA8B7rF,OAA9B,EAAuC;AACnC,cAAMT,OAAO,GAAG1D,sBAAS,CAACi2B,MAAV,IAAoBj2B,sBAAS,CAACi2B,MAAV,CAAiBhuB,SAAjB,CAA2B;AAAC,iBAAO9D,OAAO,CAAC7yB,GAAR,CAAY,KAAZ;AAAR,SAA3B,CAApC;;AACA,YAAIoyB,OAAO,KAAK/1C,SAAhB,EAA2B;AACvB+1C,iBAAO,CAACzS,OAAR,CAAgB,WAAhB;AACH;AACJ;;AACD+O,4BAAS,CAACogB,SAAV,CAAoBhuB,EAApB,CAAuB,SAAvB,EAAkC+R,OAAO,IAAI6rF,mBAAmB,CAAC7rF,OAAD,CAAhE;;AACAnE,4BAAS,CAACogB,SAAV,CAAoBhuB,EAApB,CAAuB,eAAvB,EAAwC+R,OAAO,IAAI6rF,mBAAmB,CAAC7rF,OAAD,CAAtE;AACH,KATD;AAYAhE,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,uBAAd,EAAwC8pC,IAAD,IAAU;AAC7C,eAAS+zD,YAAT,GAAyB;AACrB,YAAI,CAAC/zD,IAAI,CAACrwC,KAAL,CAAWva,GAAX,CAAe,WAAf,CAAD,IAAgC6uB,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,gBAAjB,MAAuC0uB,sBAAS,CAACgL,SAArF,EAAgG;AAC5F;AACH;AACD;;;AACA7K,yBAAG,CAAC1B,SAAJ,CAAc,uBAAd,EACKjZ,IADL,CACU,MAAM02C,IAAI,CAAC49B,eAAL,CAAqBjtG,EAArB,CAAwBqhF,qBAAxB,CAA8C,WAA9C,EAA2DluC,sBAAS,CAAC4tF,UAAV,CAAqB/gI,EAAhF,CADhB,EAEK0+B,KAFL,CAEW97B,CAAC,IAAIsB,YAAG,CAACP,KAAJ,CAAUf,CAAV,CAFhB;AAGH;;AACDwgI,kBAAY;AACZ/zD,UAAI,CAACrwC,KAAL,CAAWuG,EAAX,CAAc,kBAAd,EAAkC69F,YAAlC;AACH,KAZD;;AAeA,aAASC,cAAT,GAA2B;AACvB;;;AAGA,UAAI/vF,iBAAG,CAAC3c,QAAJ,CAAalS,GAAb,CAAiB,gBAAjB,MAAuC0uB,sBAAS,CAACgL,SAArD,EAAgE;AAC5D;AACH;;AACDhL,4BAAS,CAAC4tF,UAAV,GAAuB,IAAI5tF,sBAAS,CAACivF,UAAd,CAAyB;AAC5C,iBAASjvF,sBAAS,CAAC++B;AADyB,OAAzB,CAAvB;;AAGA/+B,4BAAS,CAAC4tF,UAAV,CAAqBxhD,MAArB;AACA;;;;;;;AAKAjsC,uBAAG,CAAClP,OAAJ,CAAY,uBAAZ;AACH;;AACDkP,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,mBAAd,EAAmC89F,cAAnC;AACA/vF,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,8BAAd,EAA8C89F,cAA9C;AAEA/vF,qBAAG,CAAC4T,MAAJ,CAAW3hB,EAAX,CAAc,eAAd,EAA+B,MAAM;AACjC,UAAI/O,QAAQ,CAACuqG,UAAb,EAAyB;AACrBvqG,gBAAQ,CAACuqG,UAAT,CAAoB/hG,KAApB,CAA0BuH,GAA1B,GAAgCr+B,KAAhC;AACAsuB,gBAAQ,CAACuqG,UAAT,CAAoBh/F,IAApB,CAAyBuhG,SAAS,IAAIA,SAAS,CAAChhH,SAAV,GAAsBk2B,MAAtB,EAAtC;AACAhiB,gBAAQ,CAACuqG,UAAT,CAAoBz+G,SAApB,GAAgCk2B,MAAhC;AACA,eAAOhiB,QAAQ,CAACuqG,UAAhB;AACH;AACJ,KAPD;AAQH;;AAx7BuC,CAA5C,E;;;;;AC5BA;;;;;AAMA;AAEA;;;;;AAIA;AACA;AACA;AACA;CACmC;;CACA;;CACA;;CACA;;AACnC;AACA;CACmC;;CACA;;AACnC;CACmC;;AACnC;AACA;CACmC;;CACA;;CACA;;AACnC;AACA;AACA;AACA;;AAEA;AAEA;AAEA,MAAMwC,mBAAmB,GAAG,CACxB,uBADwB,EAExB,yBAFwB,EAGxB,uBAHwB,EAIxB,mBAJwB,EAKxB,qBALwB,EAMxB,qBANwB,EAOxB,qBAPwB,EAQxB,oBARwB,EASxB,mBATwB,EAUxB,gBAVwB,EAWxB,oBAXwB,EAYxB,yBAZwB,EAaxB,uBAbwB,EAcxB,gBAdwB,EAexB,kBAfwB,EAgBxB,eAhBwB,EAiBxB,mBAjBwB,EAkBxB,oBAlBwB,EAmBxB,qBAnBwB,EAoBxB,oBApBwB,CAA5B,C,CAuBA;;AACA;;;;AAGA77G,2BAAC,CAAC87G,gBAAF,GAAqB;AACjB,YAAU,yBADO;AAEjB,cAAY,qBAFK;AAGjB,iBAAe,qBAHE;AAIjB,aAAW;AAAE,SAAK97G,2BAACA;AAAR;AAJM,CAArB;AAOA8O,QAAQ,CAAC20B,GAAT,CAAazjC,CAAb,GAAiBA,2BAAjB;AAGA,MAAMgP,UAAU,GAAGF,QAAQ,CAACE,UAA5B;;AAEAF,QAAQ,CAACE,UAAT,GAAsB,UAAUC,QAAV,EAAoBlrB,QAApB,EAA8B;AAChD,MAAI5G,KAAK,CAAC8C,OAAN,CAAcgvB,QAAQ,CAACstB,mBAAvB,CAAJ,EAAiD;AAC7CttB,YAAQ,CAACstB,mBAAT,GAA+BttB,QAAQ,CAACstB,mBAAT,CAA6BvtC,MAA7B,CAAoC6sH,mBAApC,CAA/B;AACH,GAFD,MAEO;AACH5sG,YAAQ,CAACstB,mBAAT,GAA+Bs/E,mBAA/B;AACH;;AACD,SAAO7sG,UAAU,CAACC,QAAD,EAAWlrB,QAAX,CAAjB;AACH,CAPD;;AASe+qB,0FAAf,E","file":"converse.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t178: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"0\":\"locales/dayjs/af\",\"1\":\"locales/dayjs/ar\",\"2\":\"locales/dayjs/ar-dz\",\"3\":\"locales/dayjs/ar-kw\",\"4\":\"locales/dayjs/ar-ly\",\"5\":\"locales/dayjs/ar-ma\",\"6\":\"locales/dayjs/ar-sa\",\"7\":\"locales/dayjs/ar-tn\",\"8\":\"locales/dayjs/az\",\"9\":\"locales/dayjs/be\",\"10\":\"locales/dayjs/bg\",\"11\":\"locales/dayjs/bi\",\"12\":\"locales/dayjs/bm\",\"13\":\"locales/dayjs/bn\",\"14\":\"locales/dayjs/bo\",\"15\":\"locales/dayjs/br\",\"16\":\"locales/dayjs/bs\",\"17\":\"locales/dayjs/ca\",\"18\":\"locales/dayjs/cs\",\"19\":\"locales/dayjs/cv\",\"20\":\"locales/dayjs/cy\",\"21\":\"locales/dayjs/da\",\"22\":\"locales/dayjs/de\",\"23\":\"locales/dayjs/de-at\",\"24\":\"locales/dayjs/de-ch\",\"25\":\"locales/dayjs/dv\",\"26\":\"locales/dayjs/el\",\"27\":\"locales/dayjs/en\",\"28\":\"locales/dayjs/en-SG\",\"29\":\"locales/dayjs/en-au\",\"30\":\"locales/dayjs/en-ca\",\"31\":\"locales/dayjs/en-gb\",\"32\":\"locales/dayjs/en-ie\",\"33\":\"locales/dayjs/en-il\",\"34\":\"locales/dayjs/en-in\",\"35\":\"locales/dayjs/en-nz\",\"36\":\"locales/dayjs/en-tt\",\"37\":\"locales/dayjs/eo\",\"38\":\"locales/dayjs/es\",\"39\":\"locales/dayjs/es-do\",\"40\":\"locales/dayjs/es-pr\",\"41\":\"locales/dayjs/es-us\",\"42\":\"locales/dayjs/et\",\"43\":\"locales/dayjs/eu\",\"44\":\"locales/dayjs/fa\",\"45\":\"locales/dayjs/fi\",\"46\":\"locales/dayjs/fo\",\"47\":\"locales/dayjs/fr\",\"48\":\"locales/dayjs/fr-ca\",\"49\":\"locales/dayjs/fr-ch\",\"50\":\"locales/dayjs/fy\",\"51\":\"locales/dayjs/ga\",\"52\":\"locales/dayjs/gd\",\"53\":\"locales/dayjs/gl\",\"54\":\"locales/dayjs/gom-latn\",\"55\":\"locales/dayjs/gu\",\"56\":\"locales/dayjs/he\",\"57\":\"locales/dayjs/hi\",\"58\":\"locales/dayjs/hr\",\"59\":\"locales/dayjs/ht\",\"60\":\"locales/dayjs/hu\",\"61\":\"locales/dayjs/hy-am\",\"62\":\"locales/dayjs/id\",\"63\":\"locales/dayjs/is\",\"64\":\"locales/dayjs/it\",\"65\":\"locales/dayjs/it-ch\",\"66\":\"locales/dayjs/ja\",\"67\":\"locales/dayjs/jv\",\"68\":\"locales/dayjs/ka\",\"69\":\"locales/dayjs/kk\",\"70\":\"locales/dayjs/km\",\"71\":\"locales/dayjs/kn\",\"72\":\"locales/dayjs/ko\",\"73\":\"locales/dayjs/ku\",\"74\":\"locales/dayjs/ky\",\"75\":\"locales/dayjs/lb\",\"76\":\"locales/dayjs/lo\",\"77\":\"locales/dayjs/lt\",\"78\":\"locales/dayjs/lv\",\"79\":\"locales/dayjs/me\",\"80\":\"locales/dayjs/mi\",\"81\":\"locales/dayjs/mk\",\"82\":\"locales/dayjs/ml\",\"83\":\"locales/dayjs/mn\",\"84\":\"locales/dayjs/mr\",\"85\":\"locales/dayjs/ms\",\"86\":\"locales/dayjs/ms-my\",\"87\":\"locales/dayjs/mt\",\"88\":\"locales/dayjs/my\",\"89\":\"locales/dayjs/nb\",\"90\":\"locales/dayjs/ne\",\"91\":\"locales/dayjs/nl\",\"92\":\"locales/dayjs/nl-be\",\"93\":\"locales/dayjs/nn\",\"94\":\"locales/dayjs/oc-lnc\",\"95\":\"locales/dayjs/pa-in\",\"96\":\"locales/dayjs/pl\",\"97\":\"locales/dayjs/pt\",\"98\":\"locales/dayjs/pt-br\",\"99\":\"locales/dayjs/ro\",\"100\":\"locales/dayjs/ru\",\"101\":\"locales/dayjs/rw\",\"102\":\"locales/dayjs/sd\",\"103\":\"locales/dayjs/se\",\"104\":\"locales/dayjs/si\",\"105\":\"locales/dayjs/sk\",\"106\":\"locales/dayjs/sl\",\"107\":\"locales/dayjs/sq\",\"108\":\"locales/dayjs/sr\",\"109\":\"locales/dayjs/sr-cyrl\",\"110\":\"locales/dayjs/ss\",\"111\":\"locales/dayjs/sv\",\"112\":\"locales/dayjs/sw\",\"113\":\"locales/dayjs/ta\",\"114\":\"locales/dayjs/te\",\"115\":\"locales/dayjs/tet\",\"116\":\"locales/dayjs/tg\",\"117\":\"locales/dayjs/th\",\"118\":\"locales/dayjs/tk\",\"119\":\"locales/dayjs/tl-ph\",\"120\":\"locales/dayjs/tlh\",\"121\":\"locales/dayjs/tr\",\"122\":\"locales/dayjs/tzl\",\"123\":\"locales/dayjs/tzm\",\"124\":\"locales/dayjs/tzm-latn\",\"125\":\"locales/dayjs/ug-cn\",\"126\":\"locales/dayjs/uk\",\"127\":\"locales/dayjs/ur\",\"128\":\"locales/dayjs/uz\",\"129\":\"locales/dayjs/uz-latn\",\"130\":\"locales/dayjs/vi\",\"131\":\"locales/dayjs/x-pseudo\",\"132\":\"locales/dayjs/yo\",\"133\":\"locales/dayjs/zh\",\"134\":\"locales/dayjs/zh-cn\",\"135\":\"locales/dayjs/zh-hk\",\"136\":\"locales/dayjs/zh-tw\",\"137\":\"emojis\",\"138\":\"icons\",\"139\":\"locales/af-LC_MESSAGES-converse-po\",\"140\":\"locales/ar-LC_MESSAGES-converse-po\",\"141\":\"locales/bg-LC_MESSAGES-converse-po\",\"142\":\"locales/ca-LC_MESSAGES-converse-po\",\"143\":\"locales/cs-LC_MESSAGES-converse-po\",\"144\":\"locales/da-LC_MESSAGES-converse-po\",\"145\":\"locales/dayjs/index-d-ts\",\"146\":\"locales/dayjs/types-d-ts\",\"147\":\"locales/de-LC_MESSAGES-converse-po\",\"148\":\"locales/eo-LC_MESSAGES-converse-po\",\"149\":\"locales/es-LC_MESSAGES-converse-po\",\"150\":\"locales/eu-LC_MESSAGES-converse-po\",\"151\":\"locales/fi-LC_MESSAGES-converse-po\",\"152\":\"locales/fr-LC_MESSAGES-converse-po\",\"153\":\"locales/gl-LC_MESSAGES-converse-po\",\"154\":\"locales/he-LC_MESSAGES-converse-po\",\"155\":\"locales/hi-LC_MESSAGES-converse-po\",\"156\":\"locales/hu-LC_MESSAGES-converse-po\",\"157\":\"locales/id-LC_MESSAGES-converse-po\",\"158\":\"locales/it-LC_MESSAGES-converse-po\",\"159\":\"locales/ja-LC_MESSAGES-converse-po\",\"160\":\"locales/lt-LC_MESSAGES-converse-po\",\"161\":\"locales/mr-LC_MESSAGES-converse-po\",\"162\":\"locales/nb-LC_MESSAGES-converse-po\",\"163\":\"locales/nl-LC_MESSAGES-converse-po\",\"164\":\"locales/nl_BE-LC_MESSAGES-converse-po\",\"165\":\"locales/oc-LC_MESSAGES-converse-po\",\"166\":\"locales/pl-LC_MESSAGES-converse-po\",\"167\":\"locales/pt-LC_MESSAGES-converse-po\",\"168\":\"locales/pt_BR-LC_MESSAGES-converse-po\",\"169\":\"locales/ro-LC_MESSAGES-converse-po\",\"170\":\"locales/ru-LC_MESSAGES-converse-po\",\"171\":\"locales/sv-LC_MESSAGES-converse-po\",\"172\":\"locales/th-LC_MESSAGES-converse-po\",\"173\":\"locales/tr-LC_MESSAGES-converse-po\",\"174\":\"locales/uk-LC_MESSAGES-converse-po\",\"175\":\"locales/vi-LC_MESSAGES-converse-po\",\"176\":\"locales/zh_CN-LC_MESSAGES-converse-po\",\"177\":\"locales/zh_TW-LC_MESSAGES-converse-po\"}[chunkId]||chunkId) + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 326);\n","/*\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\n/*\n * Everything that isn't used by Strophe has been stripped here!\n */\n\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\nconst safe_add = function (x, y) {\n const lsw = (x & 0xFFFF) + (y & 0xFFFF);\n const msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n};\n\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\nconst bit_rol = function (num, cnt) {\n return (num << cnt) | (num >>> (32 - cnt));\n};\n\n/*\n * Convert a string to an array of little-endian words\n */\nconst str2binl = function (str) {\n if (typeof str !== \"string\") {\n throw new Error(\"str2binl was passed a non-string\");\n }\n const bin = [];\n for(let i = 0; i < str.length * 8; i += 8)\n {\n bin[i>>5] |= (str.charCodeAt(i / 8) & 255) << (i%32);\n }\n return bin;\n};\n\n/*\n * Convert an array of little-endian words to a string\n */\nconst binl2str = function (bin) {\n let str = \"\";\n for(let i = 0; i < bin.length * 32; i += 8)\n {\n str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & 255);\n }\n return str;\n};\n\n/*\n * Convert an array of little-endian words to a hex string.\n */\nconst binl2hex = function (binarray) {\n const hex_tab = \"0123456789abcdef\";\n let str = \"\";\n for(let i = 0; i < binarray.length * 4; i++)\n {\n str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +\n hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);\n }\n return str;\n};\n\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\nconst md5_cmn = function (q, a, b, x, s, t) {\n return safe_add(bit_rol(safe_add(safe_add(a, q),safe_add(x, t)), s),b);\n};\n\nconst md5_ff = function (a, b, c, d, x, s, t) {\n return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);\n};\n\nconst md5_gg = function (a, b, c, d, x, s, t) {\n return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);\n};\n\nconst md5_hh = function (a, b, c, d, x, s, t) {\n return md5_cmn(b ^ c ^ d, a, b, x, s, t);\n};\n\nconst md5_ii = function (a, b, c, d, x, s, t) {\n return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);\n};\n\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length\n */\nconst core_md5 = function (x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << ((len) % 32);\n x[(((len + 64) >>> 9) << 4) + 14] = len;\n\n let a = 1732584193;\n let b = -271733879;\n let c = -1732584194;\n let d = 271733878;\n\n let olda, oldb, oldc, oldd;\n for (let i = 0; i < x.length; i += 16)\n {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n\n a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);\n d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);\n c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);\n b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);\n a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);\n d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);\n c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);\n b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);\n a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);\n d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);\n c = md5_ff(c, d, a, b, x[i+10], 17, -42063);\n b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);\n a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);\n d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);\n c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);\n b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);\n\n a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);\n d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);\n c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);\n b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);\n a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);\n d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);\n c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);\n b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);\n a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);\n d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);\n c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);\n b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);\n a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);\n d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);\n c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);\n b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);\n\n a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);\n d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);\n c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);\n b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);\n a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);\n d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);\n c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);\n b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);\n a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);\n d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);\n c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);\n b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);\n a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);\n d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);\n c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);\n b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);\n\n a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);\n d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);\n c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);\n b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);\n a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);\n d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);\n c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);\n b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);\n a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);\n d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);\n c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);\n b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);\n a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);\n d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);\n c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);\n b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);\n\n a = safe_add(a, olda);\n b = safe_add(b, oldb);\n c = safe_add(c, oldc);\n d = safe_add(d, oldd);\n }\n return [a, b, c, d];\n};\n\n/*\n * These are the functions you'll usually want to call.\n * They take string arguments and return either hex or base-64 encoded\n * strings.\n */\nconst MD5 = {\n hexdigest: function (s) {\n return binl2hex(core_md5(str2binl(s), s.length * 8));\n },\n hash: function (s) {\n return binl2str(core_md5(str2binl(s), s.length * 8));\n }\n};\nexport { MD5 as default };\n","const utils = {\n\n utf16to8: function (str) {\n var i, c;\n var out = \"\";\n var len = str.length;\n for (i = 0; i < len; i++) {\n c = str.charCodeAt(i);\n if ((c >= 0x0000) && (c <= 0x007F)) {\n out += str.charAt(i);\n } else if (c > 0x07FF) {\n out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));\n out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));\n } else {\n out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));\n }\n }\n return out;\n },\n\n addCookies: function (cookies) {\n /* Parameters:\n * (Object) cookies - either a map of cookie names\n * to string values or to maps of cookie values.\n *\n * For example:\n * { \"myCookie\": \"1234\" }\n *\n * or:\n * { \"myCookie\": {\n * \"value\": \"1234\",\n * \"domain\": \".example.org\",\n * \"path\": \"/\",\n * \"expires\": expirationDate\n * }\n * }\n *\n * These values get passed to Strophe.Connection via\n * options.cookies\n */\n cookies = cookies || {};\n for (const cookieName in cookies) {\n if (Object.prototype.hasOwnProperty.call(cookies, cookieName)) {\n let expires = '';\n let domain = '';\n let path = '';\n const cookieObj = cookies[cookieName];\n const isObj = typeof cookieObj === \"object\";\n const cookieValue = escape(unescape(isObj ? cookieObj.value : cookieObj));\n if (isObj) {\n expires = cookieObj.expires ? \";expires=\"+cookieObj.expires : '';\n domain = cookieObj.domain ? \";domain=\"+cookieObj.domain : '';\n path = cookieObj.path ? \";path=\"+cookieObj.path : '';\n }\n document.cookie = cookieName+'='+cookieValue + expires + domain + path;\n }\n }\n }\n};\n\nexport { utils as default };\n","/*\n This program is distributed under the terms of the MIT license.\n Please see the LICENSE file for details.\n\n Copyright 2006-2018, OGG, LLC\n*/\n/*global define, document, sessionStorage, setTimeout, clearTimeout, ActiveXObject, DOMParser, btoa, atob */\n\nimport * as shims from './shims';\nimport MD5 from './md5';\nimport SHA1 from './sha1';\nimport utils from './utils';\nimport { atob, btoa } from 'abab'\n\n/** Function: $build\n * Create a Strophe.Builder.\n * This is an alias for 'new Strophe.Builder(name, attrs)'.\n *\n * Parameters:\n * (String) name - The root element name.\n * (Object) attrs - The attributes for the root element in object notation.\n *\n * Returns:\n * A new Strophe.Builder object.\n */\nexport function $build(name, attrs) {\n return new Strophe.Builder(name, attrs);\n}\n\n/** Function: $msg\n * Create a Strophe.Builder with a element as the root.\n *\n * Parameters:\n * (Object) attrs - The element attributes in object notation.\n *\n * Returns:\n * A new Strophe.Builder object.\n */\nexport function $msg(attrs) {\n return new Strophe.Builder(\"message\", attrs);\n}\n\n/** Function: $iq\n * Create a Strophe.Builder with an element as the root.\n *\n * Parameters:\n * (Object) attrs - The element attributes in object notation.\n *\n * Returns:\n * A new Strophe.Builder object.\n */\nexport function $iq(attrs) {\n return new Strophe.Builder(\"iq\", attrs);\n}\n\n/** Function: $pres\n * Create a Strophe.Builder with a element as the root.\n *\n * Parameters:\n * (Object) attrs - The element attributes in object notation.\n *\n * Returns:\n * A new Strophe.Builder object.\n */\nexport function $pres(attrs) {\n return new Strophe.Builder(\"presence\", attrs);\n}\n\n/** Class: Strophe\n * An object container for all Strophe library functions.\n *\n * This class is just a container for all the objects and constants\n * used in the library. It is not meant to be instantiated, but to\n * provide a namespace for library objects, constants, and functions.\n */\nexport const Strophe = {\n /** Constant: VERSION */\n VERSION: \"1.4.0\",\n\n /** Constants: XMPP Namespace Constants\n * Common namespace constants from the XMPP RFCs and XEPs.\n *\n * NS.HTTPBIND - HTTP BIND namespace from XEP 124.\n * NS.BOSH - BOSH namespace from XEP 206.\n * NS.CLIENT - Main XMPP client namespace.\n * NS.AUTH - Legacy authentication namespace.\n * NS.ROSTER - Roster operations namespace.\n * NS.PROFILE - Profile namespace.\n * NS.DISCO_INFO - Service discovery info namespace from XEP 30.\n * NS.DISCO_ITEMS - Service discovery items namespace from XEP 30.\n * NS.MUC - Multi-User Chat namespace from XEP 45.\n * NS.SASL - XMPP SASL namespace from RFC 3920.\n * NS.STREAM - XMPP Streams namespace from RFC 3920.\n * NS.BIND - XMPP Binding namespace from RFC 3920 and RFC 6120.\n * NS.SESSION - XMPP Session namespace from RFC 3920.\n * NS.XHTML_IM - XHTML-IM namespace from XEP 71.\n * NS.XHTML - XHTML body namespace from XEP 71.\n */\n NS: {\n HTTPBIND: \"http://jabber.org/protocol/httpbind\",\n BOSH: \"urn:xmpp:xbosh\",\n CLIENT: \"jabber:client\",\n AUTH: \"jabber:iq:auth\",\n ROSTER: \"jabber:iq:roster\",\n PROFILE: \"jabber:iq:profile\",\n DISCO_INFO: \"http://jabber.org/protocol/disco#info\",\n DISCO_ITEMS: \"http://jabber.org/protocol/disco#items\",\n MUC: \"http://jabber.org/protocol/muc\",\n SASL: \"urn:ietf:params:xml:ns:xmpp-sasl\",\n STREAM: \"http://etherx.jabber.org/streams\",\n FRAMING: \"urn:ietf:params:xml:ns:xmpp-framing\",\n BIND: \"urn:ietf:params:xml:ns:xmpp-bind\",\n SESSION: \"urn:ietf:params:xml:ns:xmpp-session\",\n VERSION: \"jabber:iq:version\",\n STANZAS: \"urn:ietf:params:xml:ns:xmpp-stanzas\",\n XHTML_IM: \"http://jabber.org/protocol/xhtml-im\",\n XHTML: \"http://www.w3.org/1999/xhtml\"\n },\n\n /** Constants: XHTML_IM Namespace\n * contains allowed tags, tag attributes, and css properties.\n * Used in the createHtml function to filter incoming html into the allowed XHTML-IM subset.\n * See http://xmpp.org/extensions/xep-0071.html#profile-summary for the list of recommended\n * allowed tags and their attributes.\n */\n XHTML: {\n tags: ['a','blockquote','br','cite','em','img','li','ol','p','span','strong','ul','body'],\n attributes: {\n 'a': ['href'],\n 'blockquote': ['style'],\n 'br': [],\n 'cite': ['style'],\n 'em': [],\n 'img': ['src', 'alt', 'style', 'height', 'width'],\n 'li': ['style'],\n 'ol': ['style'],\n 'p': ['style'],\n 'span': ['style'],\n 'strong': [],\n 'ul': ['style'],\n 'body': []\n },\n css: ['background-color','color','font-family','font-size','font-style','font-weight','margin-left','margin-right','text-align','text-decoration'],\n /** Function: XHTML.validTag\n *\n * Utility method to determine whether a tag is allowed\n * in the XHTML_IM namespace.\n *\n * XHTML tag names are case sensitive and must be lower case.\n */\n validTag (tag) {\n for (let i=0; i 0) {\n for (let i=0; i/g, \">\");\n text = text.replace(/'/g, \"'\");\n text = text.replace(/\"/g, \""\");\n return text;\n },\n\n /* Function: xmlunescape\n * Unexcapes invalid xml characters.\n *\n * Parameters:\n * (String) text - text to unescape.\n *\n * Returns:\n * Unescaped text.\n */\n xmlunescape (text) {\n text = text.replace(/\\&/g, \"&\");\n text = text.replace(/</g, \"<\");\n text = text.replace(/>/g, \">\");\n text = text.replace(/'/g, \"'\");\n text = text.replace(/"/g, \"\\\"\");\n return text;\n },\n\n /** Function: xmlTextNode\n * Creates an XML DOM text node.\n *\n * Provides a cross implementation version of document.createTextNode.\n *\n * Parameters:\n * (String) text - The content of the text node.\n *\n * Returns:\n * A new XML DOM text node.\n */\n xmlTextNode (text) {\n return Strophe.xmlGenerator().createTextNode(text);\n },\n\n /** Function: xmlHtmlNode\n * Creates an XML DOM html node.\n *\n * Parameters:\n * (String) html - The content of the html node.\n *\n * Returns:\n * A new XML DOM text node.\n */\n xmlHtmlNode (html) {\n let node;\n //ensure text is escaped\n if (shims.DOMParser) {\n const parser = new shims.DOMParser();\n node = parser.parseFromString(html, \"text/xml\");\n } else {\n node = new ActiveXObject(\"Microsoft.XMLDOM\");\n node.async=\"false\";\n node.loadXML(html);\n }\n return node;\n },\n\n /** Function: getText\n * Get the concatenation of all text children of an element.\n *\n * Parameters:\n * (XMLElement) elem - A DOM element.\n *\n * Returns:\n * A String with the concatenated text of all text element children.\n */\n getText (elem) {\n if (!elem) { return null; }\n\n let str = \"\";\n if (elem.childNodes.length === 0 && elem.nodeType === Strophe.ElementType.TEXT) {\n str += elem.nodeValue;\n }\n for (let i=0; i 0) {\n value = css.join('; ');\n el.setAttribute(attribute, value);\n }\n } else {\n el.setAttribute(attribute, value);\n }\n }\n for (let i=0; i < elem.childNodes.length; i++) {\n el.appendChild(Strophe.createHtml(elem.childNodes[i]));\n }\n } catch(e) { // invalid elements\n el = Strophe.xmlTextNode('');\n }\n } else {\n el = Strophe.xmlGenerator().createDocumentFragment();\n for (let i=0; i < elem.childNodes.length; i++) {\n el.appendChild(Strophe.createHtml(elem.childNodes[i]));\n }\n }\n } else if (elem.nodeType === Strophe.ElementType.FRAGMENT) {\n el = Strophe.xmlGenerator().createDocumentFragment();\n for (let i=0; i < elem.childNodes.length; i++) {\n el.appendChild(Strophe.createHtml(elem.childNodes[i]));\n }\n } else if (elem.nodeType === Strophe.ElementType.TEXT) {\n el = Strophe.xmlTextNode(elem.nodeValue);\n }\n return el;\n },\n\n /** Function: escapeNode\n * Escape the node part (also called local part) of a JID.\n *\n * Parameters:\n * (String) node - A node (or local part).\n *\n * Returns:\n * An escaped node (or local part).\n */\n escapeNode (node) {\n if (typeof node !== \"string\") { return node; }\n return node.replace(/^\\s+|\\s+$/g, '')\n .replace(/\\\\/g, \"\\\\5c\")\n .replace(/ /g, \"\\\\20\")\n .replace(/\\\"/g, \"\\\\22\")\n .replace(/\\&/g, \"\\\\26\")\n .replace(/\\'/g, \"\\\\27\")\n .replace(/\\//g, \"\\\\2f\")\n .replace(/:/g, \"\\\\3a\")\n .replace(//g, \"\\\\3e\")\n .replace(/@/g, \"\\\\40\");\n },\n\n /** Function: unescapeNode\n * Unescape a node part (also called local part) of a JID.\n *\n * Parameters:\n * (String) node - A node (or local part).\n *\n * Returns:\n * An unescaped node (or local part).\n */\n unescapeNode (node) {\n if (typeof node !== \"string\") { return node; }\n return node.replace(/\\\\20/g, \" \")\n .replace(/\\\\22/g, '\"')\n .replace(/\\\\26/g, \"&\")\n .replace(/\\\\27/g, \"'\")\n .replace(/\\\\2f/g, \"/\")\n .replace(/\\\\3a/g, \":\")\n .replace(/\\\\3c/g, \"<\")\n .replace(/\\\\3e/g, \">\")\n .replace(/\\\\40/g, \"@\")\n .replace(/\\\\5c/g, \"\\\\\");\n },\n\n /** Function: getNodeFromJid\n * Get the node portion of a JID String.\n *\n * Parameters:\n * (String) jid - A JID.\n *\n * Returns:\n * A String containing the node.\n */\n getNodeFromJid (jid) {\n if (jid.indexOf(\"@\") < 0) { return null; }\n return jid.split(\"@\")[0];\n },\n\n /** Function: getDomainFromJid\n * Get the domain portion of a JID String.\n *\n * Parameters:\n * (String) jid - A JID.\n *\n * Returns:\n * A String containing the domain.\n */\n getDomainFromJid (jid) {\n const bare = Strophe.getBareJidFromJid(jid);\n if (bare.indexOf(\"@\") < 0) {\n return bare;\n } else {\n const parts = bare.split(\"@\");\n parts.splice(0, 1);\n return parts.join('@');\n }\n },\n\n /** Function: getResourceFromJid\n * Get the resource portion of a JID String.\n *\n * Parameters:\n * (String) jid - A JID.\n *\n * Returns:\n * A String containing the resource.\n */\n getResourceFromJid (jid) {\n if (!jid) { return null; }\n const s = jid.split(\"/\");\n if (s.length < 2) { return null; }\n s.splice(0, 1);\n return s.join('/');\n },\n\n /** Function: getBareJidFromJid\n * Get the bare JID from a JID String.\n *\n * Parameters:\n * (String) jid - A JID.\n *\n * Returns:\n * A String containing the bare JID.\n */\n getBareJidFromJid (jid) {\n return jid ? jid.split(\"/\")[0] : null;\n },\n\n /** PrivateFunction: _handleError\n * _Private_ function that properly logs an error to the console\n */\n _handleError (e) {\n if (typeof e.stack !== \"undefined\") {\n Strophe.fatal(e.stack);\n }\n if (e.sourceURL) {\n Strophe.fatal(\"error: \" + this.handler + \" \" + e.sourceURL + \":\" +\n e.line + \" - \" + e.name + \": \" + e.message);\n } else if (e.fileName) {\n Strophe.fatal(\"error: \" + this.handler + \" \" +\n e.fileName + \":\" + e.lineNumber + \" - \" +\n e.name + \": \" + e.message);\n } else {\n Strophe.fatal(\"error: \" + e.message);\n }\n },\n\n /** Function: log\n * User overrideable logging function.\n *\n * This function is called whenever the Strophe library calls any\n * of the logging functions. The default implementation of this\n * function logs only fatal errors. If client code wishes to handle the logging\n * messages, it should override this with\n * > Strophe.log = function (level, msg) {\n * > (user code here)\n * > };\n *\n * Please note that data sent and received over the wire is logged\n * via Strophe.Connection.rawInput() and Strophe.Connection.rawOutput().\n *\n * The different levels and their meanings are\n *\n * DEBUG - Messages useful for debugging purposes.\n * INFO - Informational messages. This is mostly information like\n * 'disconnect was called' or 'SASL auth succeeded'.\n * WARN - Warnings about potential problems. This is mostly used\n * to report transient connection errors like request timeouts.\n * ERROR - Some error occurred.\n * FATAL - A non-recoverable fatal error occurred.\n *\n * Parameters:\n * (Integer) level - The log level of the log message. This will\n * be one of the values in Strophe.LogLevel.\n * (String) msg - The log message.\n */\n log (level, msg) {\n if (level === this.LogLevel.FATAL) {\n console?.error(msg);\n }\n },\n\n /** Function: debug\n * Log a message at the Strophe.LogLevel.DEBUG level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n debug (msg) {\n this.log(this.LogLevel.DEBUG, msg);\n },\n\n /** Function: info\n * Log a message at the Strophe.LogLevel.INFO level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n info (msg) {\n this.log(this.LogLevel.INFO, msg);\n },\n\n /** Function: warn\n * Log a message at the Strophe.LogLevel.WARN level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n warn (msg) {\n this.log(this.LogLevel.WARN, msg);\n },\n\n /** Function: error\n * Log a message at the Strophe.LogLevel.ERROR level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n error (msg) {\n this.log(this.LogLevel.ERROR, msg);\n },\n\n /** Function: fatal\n * Log a message at the Strophe.LogLevel.FATAL level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n fatal (msg) {\n this.log(this.LogLevel.FATAL, msg);\n },\n\n /** Function: serialize\n * Render a DOM element and all descendants to a String.\n *\n * Parameters:\n * (XMLElement) elem - A DOM element.\n *\n * Returns:\n * The serialized element tree as a String.\n */\n serialize (elem) {\n if (!elem) { return null; }\n if (typeof(elem.tree) === \"function\") {\n elem = elem.tree();\n }\n const names = [...Array(elem.attributes.length).keys()].map(i => elem.attributes[i].nodeName);\n names.sort();\n let result = names.reduce(\n (a, n) => `${a} ${n}=\"${Strophe.xmlescape(elem.attributes.getNamedItem(n).value)}\"`,\n `<${elem.nodeName}`\n );\n\n if (elem.childNodes.length > 0) {\n result += \">\";\n for (let i=0; i < elem.childNodes.length; i++) {\n const child = elem.childNodes[i];\n switch (child.nodeType) {\n case Strophe.ElementType.NORMAL:\n // normal element, so recurse\n result += Strophe.serialize(child);\n break;\n case Strophe.ElementType.TEXT:\n // text element to escape values\n result += Strophe.xmlescape(child.nodeValue);\n break;\n case Strophe.ElementType.CDATA:\n // cdata section so don't escape values\n result += \"\";\n }\n }\n result += \"\";\n } else {\n result += \"/>\";\n }\n return result;\n },\n\n /** PrivateVariable: _requestId\n * _Private_ variable that keeps track of the request ids for\n * connections.\n */\n _requestId: 0,\n\n /** PrivateVariable: Strophe.connectionPlugins\n * _Private_ variable Used to store plugin names that need\n * initialization on Strophe.Connection construction.\n */\n _connectionPlugins: {},\n\n /** Function: addConnectionPlugin\n * Extends the Strophe.Connection object with the given plugin.\n *\n * Parameters:\n * (String) name - The name of the extension.\n * (Object) ptype - The plugin's prototype.\n */\n addConnectionPlugin (name, ptype) {\n Strophe._connectionPlugins[name] = ptype;\n }\n};\n\n/** Class: Strophe.Builder\n * XML DOM builder.\n *\n * This object provides an interface similar to JQuery but for building\n * DOM elements easily and rapidly. All the functions except for toString()\n * and tree() return the object, so calls can be chained. Here's an\n * example using the $iq() builder helper.\n * > $iq({to: 'you', from: 'me', type: 'get', id: '1'})\n * > .c('query', {xmlns: 'strophe:example'})\n * > .c('example')\n * > .toString()\n *\n * The above generates this XML fragment\n * > \n * > \n * > \n * > \n * > \n * The corresponding DOM manipulations to get a similar fragment would be\n * a lot more tedious and probably involve several helper variables.\n *\n * Since adding children makes new operations operate on the child, up()\n * is provided to traverse up the tree. To add two children, do\n * > builder.c('child1', ...).up().c('child2', ...)\n * The next operation on the Builder will be relative to the second child.\n */\n\n/** Constructor: Strophe.Builder\n * Create a Strophe.Builder object.\n *\n * The attributes should be passed in object notation. For example\n * > let b = new Builder('message', {to: 'you', from: 'me'});\n * or\n * > let b = new Builder('messsage', {'xml:lang': 'en'});\n *\n * Parameters:\n * (String) name - The name of the root element.\n * (Object) attrs - The attributes for the root element in object notation.\n *\n * Returns:\n * A new Strophe.Builder.\n */\n\nStrophe.Builder = class Builder {\n\n constructor (name, attrs) {\n // Set correct namespace for jabber:client elements\n if (name === \"presence\" || name === \"message\" || name === \"iq\") {\n if (attrs && !attrs.xmlns) {\n attrs.xmlns = Strophe.NS.CLIENT;\n } else if (!attrs) {\n attrs = {xmlns: Strophe.NS.CLIENT};\n }\n }\n // Holds the tree being built.\n this.nodeTree = Strophe.xmlElement(name, attrs);\n // Points to the current operation node.\n this.node = this.nodeTree;\n }\n\n /** Function: tree\n * Return the DOM tree.\n *\n * This function returns the current DOM tree as an element object. This\n * is suitable for passing to functions like Strophe.Connection.send().\n *\n * Returns:\n * The DOM tree as a element object.\n */\n tree () {\n return this.nodeTree;\n }\n\n /** Function: toString\n * Serialize the DOM tree to a String.\n *\n * This function returns a string serialization of the current DOM\n * tree. It is often used internally to pass data to a\n * Strophe.Request object.\n *\n * Returns:\n * The serialized DOM tree in a String.\n */\n toString () {\n return Strophe.serialize(this.nodeTree);\n }\n\n /** Function: up\n * Make the current parent element the new current element.\n *\n * This function is often used after c() to traverse back up the tree.\n * For example, to add two children to the same element\n * > builder.c('child1', {}).up().c('child2', {});\n *\n * Returns:\n * The Stophe.Builder object.\n */\n up () {\n this.node = this.node.parentNode;\n return this;\n }\n\n /** Function: root\n * Make the root element the new current element.\n *\n * When at a deeply nested element in the tree, this function can be used\n * to jump back to the root of the tree, instead of having to repeatedly\n * call up().\n *\n * Returns:\n * The Stophe.Builder object.\n */\n root () {\n this.node = this.nodeTree;\n return this;\n }\n\n /** Function: attrs\n * Add or modify attributes of the current element.\n *\n * The attributes should be passed in object notation. This function\n * does not move the current element pointer.\n *\n * Parameters:\n * (Object) moreattrs - The attributes to add/modify in object notation.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n attrs (moreattrs) {\n for (const k in moreattrs) {\n if (Object.prototype.hasOwnProperty.call(moreattrs, k)) {\n if (moreattrs[k] === undefined) {\n this.node.removeAttribute(k);\n } else {\n this.node.setAttribute(k, moreattrs[k]);\n }\n }\n }\n return this;\n }\n\n /** Function: c\n * Add a child to the current element and make it the new current\n * element.\n *\n * This function moves the current element pointer to the child,\n * unless text is provided. If you need to add another child, it\n * is necessary to use up() to go back to the parent in the tree.\n *\n * Parameters:\n * (String) name - The name of the child.\n * (Object) attrs - The attributes of the child in object notation.\n * (String) text - The text to add to the child.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n c (name, attrs, text) {\n const child = Strophe.xmlElement(name, attrs, text);\n this.node.appendChild(child);\n if (typeof text !== \"string\" && typeof text !==\"number\") {\n this.node = child;\n }\n return this;\n }\n\n /** Function: cnode\n * Add a child to the current element and make it the new current\n * element.\n *\n * This function is the same as c() except that instead of using a\n * name and an attributes object to create the child it uses an\n * existing DOM element object.\n *\n * Parameters:\n * (XMLElement) elem - A DOM element.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n cnode (elem) {\n let impNode;\n const xmlGen = Strophe.xmlGenerator();\n try {\n impNode = (xmlGen.importNode !== undefined);\n } catch (e) {\n impNode = false;\n }\n const newElem = impNode ? xmlGen.importNode(elem, true) : Strophe.copyElement(elem);\n this.node.appendChild(newElem);\n this.node = newElem;\n return this;\n }\n\n /** Function: t\n * Add a child text element.\n *\n * This *does not* make the child the new current element since there\n * are no children of text elements.\n *\n * Parameters:\n * (String) text - The text data to append to the current element.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n t (text) {\n const child = Strophe.xmlTextNode(text);\n this.node.appendChild(child);\n return this;\n }\n\n /** Function: h\n * Replace current element contents with the HTML passed in.\n *\n * This *does not* make the child the new current element\n *\n * Parameters:\n * (String) html - The html to insert as contents of current element.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n h (html) {\n const fragment = Strophe.xmlGenerator().createElement('body');\n // force the browser to try and fix any invalid HTML tags\n fragment.innerHTML = html;\n // copy cleaned html into an xml dom\n const xhtml = Strophe.createHtml(fragment);\n while (xhtml.childNodes.length > 0) {\n this.node.appendChild(xhtml.childNodes[0]);\n }\n return this;\n }\n};\n\n/** PrivateClass: Strophe.Handler\n * _Private_ helper class for managing stanza handlers.\n *\n * A Strophe.Handler encapsulates a user provided callback function to be\n * executed when matching stanzas are received by the connection.\n * Handlers can be either one-off or persistant depending on their\n * return value. Returning true will cause a Handler to remain active, and\n * returning false will remove the Handler.\n *\n * Users will not use Strophe.Handler objects directly, but instead they\n * will use Strophe.Connection.addHandler() and\n * Strophe.Connection.deleteHandler().\n */\n\n/** PrivateConstructor: Strophe.Handler\n * Create and initialize a new Strophe.Handler.\n *\n * Parameters:\n * (Function) handler - A function to be executed when the handler is run.\n * (String) ns - The namespace to match.\n * (String) name - The element name to match.\n * (String) type - The element type to match.\n * (String) id - The element id attribute to match.\n * (String) from - The element from attribute to match.\n * (Object) options - Handler options\n *\n * Returns:\n * A new Strophe.Handler object.\n */\nStrophe.Handler = function (handler, ns, name, type, id, from, options) {\n this.handler = handler;\n this.ns = ns;\n this.name = name;\n this.type = type;\n this.id = id;\n this.options = options || {'matchBareFromJid': false, 'ignoreNamespaceFragment': false};\n // BBB: Maintain backward compatibility with old `matchBare` option\n if (this.options.matchBare) {\n Strophe.warn('The \"matchBare\" option is deprecated, use \"matchBareFromJid\" instead.');\n this.options.matchBareFromJid = this.options.matchBare;\n delete this.options.matchBare;\n }\n if (this.options.matchBareFromJid) {\n this.from = from ? Strophe.getBareJidFromJid(from) : null;\n } else {\n this.from = from;\n }\n // whether the handler is a user handler or a system handler\n this.user = true;\n};\n\nStrophe.Handler.prototype = {\n /** PrivateFunction: getNamespace\n * Returns the XML namespace attribute on an element.\n * If `ignoreNamespaceFragment` was passed in for this handler, then the\n * URL fragment will be stripped.\n *\n * Parameters:\n * (XMLElement) elem - The XML element with the namespace.\n *\n * Returns:\n * The namespace, with optionally the fragment stripped.\n */\n getNamespace (elem) {\n let elNamespace = elem.getAttribute(\"xmlns\");\n if (elNamespace && this.options.ignoreNamespaceFragment) {\n elNamespace = elNamespace.split('#')[0];\n }\n return elNamespace;\n },\n\n /** PrivateFunction: namespaceMatch\n * Tests if a stanza matches the namespace set for this Strophe.Handler.\n *\n * Parameters:\n * (XMLElement) elem - The XML element to test.\n *\n * Returns:\n * true if the stanza matches and false otherwise.\n */\n namespaceMatch (elem) {\n let nsMatch = false;\n if (!this.ns) {\n return true;\n } else {\n Strophe.forEachChild(elem, null, (elem) => {\n if (this.getNamespace(elem) === this.ns) {\n nsMatch = true;\n }\n });\n return nsMatch || this.getNamespace(elem) === this.ns;\n }\n },\n\n /** PrivateFunction: isMatch\n * Tests if a stanza matches the Strophe.Handler.\n *\n * Parameters:\n * (XMLElement) elem - The XML element to test.\n *\n * Returns:\n * true if the stanza matches and false otherwise.\n */\n isMatch (elem) {\n let from = elem.getAttribute('from');\n if (this.options.matchBareFromJid) {\n from = Strophe.getBareJidFromJid(from);\n }\n const elem_type = elem.getAttribute(\"type\");\n if (this.namespaceMatch(elem) &&\n (!this.name || Strophe.isTagEqual(elem, this.name)) &&\n (!this.type || (Array.isArray(this.type) ? this.type.indexOf(elem_type) !== -1 : elem_type === this.type)) &&\n (!this.id || elem.getAttribute(\"id\") === this.id) &&\n (!this.from || from === this.from)) {\n return true;\n }\n return false;\n },\n\n /** PrivateFunction: run\n * Run the callback on a matching stanza.\n *\n * Parameters:\n * (XMLElement) elem - The DOM element that triggered the\n * Strophe.Handler.\n *\n * Returns:\n * A boolean indicating if the handler should remain active.\n */\n run (elem) {\n let result = null;\n try {\n result = this.handler(elem);\n } catch (e) {\n Strophe._handleError(e);\n throw e;\n }\n return result;\n },\n\n /** PrivateFunction: toString\n * Get a String representation of the Strophe.Handler object.\n *\n * Returns:\n * A String.\n */\n toString () {\n return \"{Handler: \" + this.handler + \"(\" + this.name + \",\" +\n this.id + \",\" + this.ns + \")}\";\n }\n};\n\n/** PrivateClass: Strophe.TimedHandler\n * _Private_ helper class for managing timed handlers.\n *\n * A Strophe.TimedHandler encapsulates a user provided callback that\n * should be called after a certain period of time or at regular\n * intervals. The return value of the callback determines whether the\n * Strophe.TimedHandler will continue to fire.\n *\n * Users will not use Strophe.TimedHandler objects directly, but instead\n * they will use Strophe.Connection.addTimedHandler() and\n * Strophe.Connection.deleteTimedHandler().\n */\nStrophe.TimedHandler = class TimedHandler {\n\n /** PrivateConstructor: Strophe.TimedHandler\n * Create and initialize a new Strophe.TimedHandler object.\n *\n * Parameters:\n * (Integer) period - The number of milliseconds to wait before the\n * handler is called.\n * (Function) handler - The callback to run when the handler fires. This\n * function should take no arguments.\n *\n * Returns:\n * A new Strophe.TimedHandler object.\n */\n constructor (period, handler) {\n this.period = period;\n this.handler = handler;\n this.lastCalled = new Date().getTime();\n this.user = true;\n }\n\n /** PrivateFunction: run\n * Run the callback for the Strophe.TimedHandler.\n *\n * Returns:\n * true if the Strophe.TimedHandler should be called again, and false\n * otherwise.\n */\n run () {\n this.lastCalled = new Date().getTime();\n return this.handler();\n }\n\n /** PrivateFunction: reset\n * Reset the last called time for the Strophe.TimedHandler.\n */\n reset () {\n this.lastCalled = new Date().getTime();\n }\n\n /** PrivateFunction: toString\n * Get a string representation of the Strophe.TimedHandler object.\n *\n * Returns:\n * The string representation.\n */\n toString () {\n return \"{TimedHandler: \" + this.handler + \"(\" + this.period +\")}\";\n }\n};\n\n/** Class: Strophe.Connection\n * XMPP Connection manager.\n *\n * This class is the main part of Strophe. It manages a BOSH or websocket\n * connection to an XMPP server and dispatches events to the user callbacks\n * as data arrives. It supports SASL PLAIN, SASL SCRAM-SHA-1\n * and legacy authentication.\n *\n * After creating a Strophe.Connection object, the user will typically\n * call connect() with a user supplied callback to handle connection level\n * events like authentication failure, disconnection, or connection\n * complete.\n *\n * The user will also have several event handlers defined by using\n * addHandler() and addTimedHandler(). These will allow the user code to\n * respond to interesting stanzas or do something periodically with the\n * connection. These handlers will be active once authentication is\n * finished.\n *\n * To send data to the connection, use send().\n */\n\n/** Constructor: Strophe.Connection\n * Create and initialize a Strophe.Connection object.\n *\n * The transport-protocol for this connection will be chosen automatically\n * based on the given service parameter. URLs starting with \"ws://\" or\n * \"wss://\" will use WebSockets, URLs starting with \"http://\", \"https://\"\n * or without a protocol will use BOSH.\n *\n * To make Strophe connect to the current host you can leave out the protocol\n * and host part and just pass the path, e.g.\n *\n * > let conn = new Strophe.Connection(\"/http-bind/\");\n *\n * Options common to both Websocket and BOSH:\n * ------------------------------------------\n *\n * cookies:\n *\n * The *cookies* option allows you to pass in cookies to be added to the\n * document. These cookies will then be included in the BOSH XMLHttpRequest\n * or in the websocket connection.\n *\n * The passed in value must be a map of cookie names and string values.\n *\n * > { \"myCookie\": {\n * > \"value\": \"1234\",\n * > \"domain\": \".example.org\",\n * > \"path\": \"/\",\n * > \"expires\": expirationDate\n * > }\n * > }\n *\n * Note that cookies can't be set in this way for other domains (i.e. cross-domain).\n * Those cookies need to be set under those domains, for example they can be\n * set server-side by making a XHR call to that domain to ask it to set any\n * necessary cookies.\n *\n * mechanisms:\n *\n * The *mechanisms* option allows you to specify the SASL mechanisms that this\n * instance of Strophe.Connection (and therefore your XMPP client) will\n * support.\n *\n * The value must be an array of objects with Strophe.SASLMechanism\n * prototypes.\n *\n * If nothing is specified, then the following mechanisms (and their\n * priorities) are registered:\n *\n * SCRAM-SHA-1 - 60\n * PLAIN - 50\n * OAUTHBEARER - 40\n * X-OAUTH2 - 30\n * ANONYMOUS - 20\n * EXTERNAL - 10\n *\n * explicitResourceBinding:\n *\n * If `explicitResourceBinding` is set to a truthy value, then the XMPP client\n * needs to explicitly call `Strophe.Connection.prototype.bind` once the XMPP\n * server has advertised the \"urn:ietf:params:xml:ns:xmpp-bind\" feature.\n *\n * Making this step explicit allows client authors to first finish other\n * stream related tasks, such as setting up an XEP-0198 Stream Management\n * session, before binding the JID resource for this session.\n *\n * WebSocket options:\n * ------------------\n *\n * protocol:\n *\n * If you want to connect to the current host with a WebSocket connection you\n * can tell Strophe to use WebSockets through a \"protocol\" attribute in the\n * optional options parameter. Valid values are \"ws\" for WebSocket and \"wss\"\n * for Secure WebSocket.\n * So to connect to \"wss://CURRENT_HOSTNAME/xmpp-websocket\" you would call\n *\n * > let conn = new Strophe.Connection(\"/xmpp-websocket/\", {protocol: \"wss\"});\n *\n * Note that relative URLs _NOT_ starting with a \"/\" will also include the path\n * of the current site.\n *\n * Also because downgrading security is not permitted by browsers, when using\n * relative URLs both BOSH and WebSocket connections will use their secure\n * variants if the current connection to the site is also secure (https).\n *\n * worker:\n *\n * Set this option to URL from where the shared worker script should be loaded.\n *\n * To run the websocket connection inside a shared worker.\n * This allows you to share a single websocket-based connection between\n * multiple Strophe.Connection instances, for example one per browser tab.\n *\n * The script to use is the one in `src/shared-connection-worker.js`.\n *\n * BOSH options:\n * -------------\n *\n * By adding \"sync\" to the options, you can control if requests will\n * be made synchronously or not. The default behaviour is asynchronous.\n * If you want to make requests synchronous, make \"sync\" evaluate to true.\n * > let conn = new Strophe.Connection(\"/http-bind/\", {sync: true});\n *\n * You can also toggle this on an already established connection.\n * > conn.options.sync = true;\n *\n * The *customHeaders* option can be used to provide custom HTTP headers to be\n * included in the XMLHttpRequests made.\n *\n * The *keepalive* option can be used to instruct Strophe to maintain the\n * current BOSH session across interruptions such as webpage reloads.\n *\n * It will do this by caching the sessions tokens in sessionStorage, and when\n * \"restore\" is called it will check whether there are cached tokens with\n * which it can resume an existing session.\n *\n * The *withCredentials* option should receive a Boolean value and is used to\n * indicate wether cookies should be included in ajax requests (by default\n * they're not).\n * Set this value to true if you are connecting to a BOSH service\n * and for some reason need to send cookies to it.\n * In order for this to work cross-domain, the server must also enable\n * credentials by setting the Access-Control-Allow-Credentials response header\n * to \"true\". For most usecases however this setting should be false (which\n * is the default).\n * Additionally, when using Access-Control-Allow-Credentials, the\n * Access-Control-Allow-Origin header can't be set to the wildcard \"*\", but\n * instead must be restricted to actual domains.\n *\n * The *contentType* option can be set to change the default Content-Type\n * of \"text/xml; charset=utf-8\", which can be useful to reduce the amount of\n * CORS preflight requests that are sent to the server.\n *\n * Parameters:\n * (String) service - The BOSH or WebSocket service URL.\n * (Object) options - A hash of configuration options\n *\n * Returns:\n * A new Strophe.Connection object.\n */\n\nStrophe.Connection = class Connection {\n\n constructor (service, options) {\n // The service URL\n this.service = service;\n // Configuration options\n this.options = options || {};\n\n this.setProtocol();\n\n /* The connected JID. */\n this.jid = \"\";\n /* the JIDs domain */\n this.domain = null;\n /* stream:features */\n this.features = null;\n\n // SASL\n this._sasl_data = {};\n this.do_bind = false;\n this.do_session = false;\n this.mechanisms = {}\n\n // handler lists\n this.timedHandlers = [];\n this.handlers = [];\n this.removeTimeds = [];\n this.removeHandlers = [];\n this.addTimeds = [];\n this.addHandlers = [];\n this.protocolErrorHandlers = {\n 'HTTP': {},\n 'websocket': {}\n };\n\n this._idleTimeout = null;\n this._disconnectTimeout = null;\n\n this.authenticated = false;\n this.connected = false;\n this.disconnecting = false;\n this.do_authentication = true;\n this.paused = false;\n this.restored = false;\n\n this._data = [];\n this._uniqueId = 0;\n\n this._sasl_success_handler = null;\n this._sasl_failure_handler = null;\n this._sasl_challenge_handler = null;\n\n // Max retries before disconnecting\n this.maxRetries = 5;\n\n // Call onIdle callback every 1/10th of a second\n this._idleTimeout = setTimeout(() => this._onIdle(), 100);\n\n utils.addCookies(this.options.cookies);\n this.registerSASLMechanisms(this.options.mechanisms);\n\n // initialize plugins\n for (const k in Strophe._connectionPlugins) {\n if (Object.prototype.hasOwnProperty.call(Strophe._connectionPlugins, k)) {\n const F = function () {};\n F.prototype = Strophe._connectionPlugins[k];\n this[k] = new F();\n this[k].init(this);\n }\n }\n }\n\n /** Function: setProtocol\n * Select protocal based on this.options or this.service\n */\n setProtocol () {\n const proto = this.options.protocol || \"\";\n if (this.options.worker) {\n this._proto = new Strophe.WorkerWebsocket(this);\n } else if (\n this.service.indexOf(\"ws:\") === 0 ||\n this.service.indexOf(\"wss:\") === 0 ||\n proto.indexOf(\"ws\") === 0) {\n this._proto = new Strophe.Websocket(this);\n } else {\n this._proto = new Strophe.Bosh(this);\n }\n }\n\n /** Function: reset\n * Reset the connection.\n *\n * This function should be called after a connection is disconnected\n * before that connection is reused.\n */\n reset () {\n this._proto._reset();\n\n // SASL\n this.do_session = false;\n this.do_bind = false;\n\n // handler lists\n this.timedHandlers = [];\n this.handlers = [];\n this.removeTimeds = [];\n this.removeHandlers = [];\n this.addTimeds = [];\n this.addHandlers = [];\n\n this.authenticated = false;\n this.connected = false;\n this.disconnecting = false;\n this.restored = false;\n\n this._data = [];\n this._requests = [];\n this._uniqueId = 0;\n }\n\n /** Function: pause\n * Pause the request manager.\n *\n * This will prevent Strophe from sending any more requests to the\n * server. This is very useful for temporarily pausing\n * BOSH-Connections while a lot of send() calls are happening quickly.\n * This causes Strophe to send the data in a single request, saving\n * many request trips.\n */\n pause () {\n this.paused = true;\n }\n\n /** Function: resume\n * Resume the request manager.\n *\n * This resumes after pause() has been called.\n */\n resume () {\n this.paused = false;\n }\n\n /** Function: getUniqueId\n * Generate a unique ID for use in elements.\n *\n * All stanzas are required to have unique id attributes. This\n * function makes creating these easy. Each connection instance has\n * a counter which starts from zero, and the value of this counter\n * plus a colon followed by the suffix becomes the unique id. If no\n * suffix is supplied, the counter is used as the unique id.\n *\n * Suffixes are used to make debugging easier when reading the stream\n * data, and their use is recommended. The counter resets to 0 for\n * every new connection for the same reason. For connections to the\n * same server that authenticate the same way, all the ids should be\n * the same, which makes it easy to see changes. This is useful for\n * automated testing as well.\n *\n * Parameters:\n * (String) suffix - A optional suffix to append to the id.\n *\n * Returns:\n * A unique string to be used for the id attribute.\n */\n getUniqueId (suffix) { // eslint-disable-line class-methods-use-this\n const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = Math.random() * 16 | 0,\n v = c === 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n if (typeof(suffix) === \"string\" || typeof(suffix) === \"number\") {\n return uuid + \":\" + suffix;\n } else {\n return uuid + \"\";\n }\n }\n\n /** Function: addProtocolErrorHandler\n * Register a handler function for when a protocol (websocker or HTTP)\n * error occurs.\n *\n * NOTE: Currently only HTTP errors for BOSH requests are handled.\n * Patches that handle websocket errors would be very welcome.\n *\n * Parameters:\n * (String) protocol - 'HTTP' or 'websocket'\n * (Integer) status_code - Error status code (e.g 500, 400 or 404)\n * (Function) callback - Function that will fire on Http error\n *\n * Example:\n * function onError(err_code){\n * //do stuff\n * }\n *\n * let conn = Strophe.connect('http://example.com/http-bind');\n * conn.addProtocolErrorHandler('HTTP', 500, onError);\n * // Triggers HTTP 500 error and onError handler will be called\n * conn.connect('user_jid@incorrect_jabber_host', 'secret', onConnect);\n */\n addProtocolErrorHandler (protocol, status_code, callback){\n this.protocolErrorHandlers[protocol][status_code] = callback;\n }\n\n /** Function: connect\n * Starts the connection process.\n *\n * As the connection process proceeds, the user supplied callback will\n * be triggered multiple times with status updates. The callback\n * should take two arguments - the status code and the error condition.\n *\n * The status code will be one of the values in the Strophe.Status\n * constants. The error condition will be one of the conditions\n * defined in RFC 3920 or the condition 'strophe-parsererror'.\n *\n * The Parameters _wait_, _hold_ and _route_ are optional and only relevant\n * for BOSH connections. Please see XEP 124 for a more detailed explanation\n * of the optional parameters.\n *\n * Parameters:\n * (String) jid - The user's JID. This may be a bare JID,\n * or a full JID. If a node is not supplied, SASL OAUTHBEARER or\n * SASL ANONYMOUS authentication will be attempted (OAUTHBEARER will\n * process the provided password value as an access token).\n * (String) pass - The user's password.\n * (Function) callback - The connect callback function.\n * (Integer) wait - The optional HTTPBIND wait value. This is the\n * time the server will wait before returning an empty result for\n * a request. The default setting of 60 seconds is recommended.\n * (Integer) hold - The optional HTTPBIND hold value. This is the\n * number of connections the server will hold at one time. This\n * should almost always be set to 1 (the default).\n * (String) route - The optional route value.\n * (String) authcid - The optional alternative authentication identity\n * (username) if intending to impersonate another user.\n * When using the SASL-EXTERNAL authentication mechanism, for example\n * with client certificates, then the authcid value is used to\n * determine whether an authorization JID (authzid) should be sent to\n * the server. The authzid should NOT be sent to the server if the\n * authzid and authcid are the same. So to prevent it from being sent\n * (for example when the JID is already contained in the client\n * certificate), set authcid to that same JID. See XEP-178 for more\n * details.\n */\n connect (jid, pass, callback, wait, hold, route, authcid) {\n this.jid = jid;\n /** Variable: authzid\n * Authorization identity.\n */\n this.authzid = Strophe.getBareJidFromJid(this.jid);\n\n /** Variable: authcid\n * Authentication identity (User name).\n */\n this.authcid = authcid || Strophe.getNodeFromJid(this.jid);\n\n /** Variable: pass\n * Authentication identity (User password).\n */\n this.pass = pass;\n\n this.connect_callback = callback;\n this.disconnecting = false;\n this.connected = false;\n this.authenticated = false;\n this.restored = false;\n\n // parse jid for domain\n this.domain = Strophe.getDomainFromJid(this.jid);\n\n this._changeConnectStatus(Strophe.Status.CONNECTING, null);\n\n this._proto._connect(wait, hold, route);\n }\n\n /** Function: attach\n * Attach to an already created and authenticated BOSH session.\n *\n * This function is provided to allow Strophe to attach to BOSH\n * sessions which have been created externally, perhaps by a Web\n * application. This is often used to support auto-login type features\n * without putting user credentials into the page.\n *\n * Parameters:\n * (String) jid - The full JID that is bound by the session.\n * (String) sid - The SID of the BOSH session.\n * (String) rid - The current RID of the BOSH session. This RID\n * will be used by the next request.\n * (Function) callback The connect callback function.\n * (Integer) wait - The optional HTTPBIND wait value. This is the\n * time the server will wait before returning an empty result for\n * a request. The default setting of 60 seconds is recommended.\n * Other settings will require tweaks to the Strophe.TIMEOUT value.\n * (Integer) hold - The optional HTTPBIND hold value. This is the\n * number of connections the server will hold at one time. This\n * should almost always be set to 1 (the default).\n * (Integer) wind - The optional HTTBIND window value. This is the\n * allowed range of request ids that are valid. The default is 5.\n */\n attach (jid, sid, rid, callback, wait, hold, wind) {\n if (this._proto._attach) {\n return this._proto._attach(jid, sid, rid, callback, wait, hold, wind);\n } else {\n const error = new Error('The \"attach\" method is not available for your connection protocol');\n error.name = 'StropheSessionError';\n throw error;\n }\n }\n\n /** Function: restore\n * Attempt to restore a cached BOSH session.\n *\n * This function is only useful in conjunction with providing the\n * \"keepalive\":true option when instantiating a new Strophe.Connection.\n *\n * When \"keepalive\" is set to true, Strophe will cache the BOSH tokens\n * RID (Request ID) and SID (Session ID) and then when this function is\n * called, it will attempt to restore the session from those cached\n * tokens.\n *\n * This function must therefore be called instead of connect or attach.\n *\n * For an example on how to use it, please see examples/restore.js\n *\n * Parameters:\n * (String) jid - The user's JID. This may be a bare JID or a full JID.\n * (Function) callback - The connect callback function.\n * (Integer) wait - The optional HTTPBIND wait value. This is the\n * time the server will wait before returning an empty result for\n * a request. The default setting of 60 seconds is recommended.\n * (Integer) hold - The optional HTTPBIND hold value. This is the\n * number of connections the server will hold at one time. This\n * should almost always be set to 1 (the default).\n * (Integer) wind - The optional HTTBIND window value. This is the\n * allowed range of request ids that are valid. The default is 5.\n */\n restore (jid, callback, wait, hold, wind) {\n if (this._sessionCachingSupported()) {\n this._proto._restore(jid, callback, wait, hold, wind);\n } else {\n const error = new Error('The \"restore\" method can only be used with a BOSH connection.');\n error.name = 'StropheSessionError';\n throw error;\n }\n }\n\n /** PrivateFunction: _sessionCachingSupported\n * Checks whether sessionStorage and JSON are supported and whether we're\n * using BOSH.\n */\n _sessionCachingSupported () {\n if (this._proto instanceof Strophe.Bosh) {\n if (!JSON) { return false; }\n try {\n sessionStorage.setItem('_strophe_', '_strophe_');\n sessionStorage.removeItem('_strophe_');\n } catch (e) {\n return false;\n }\n return true;\n }\n return false;\n }\n\n /** Function: xmlInput\n * User overrideable function that receives XML data coming into the\n * connection.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.xmlInput = function (elem) {\n * > (user code)\n * > };\n *\n * Due to limitations of current Browsers' XML-Parsers the opening and closing\n * tag for WebSocket-Connoctions will be passed as selfclosing here.\n *\n * BOSH-Connections will have all stanzas wrapped in a tag. See\n * if you want to strip this tag.\n *\n * Parameters:\n * (XMLElement) elem - The XML data received by the connection.\n */\n xmlInput (elem) { // eslint-disable-line\n return;\n }\n\n /** Function: xmlOutput\n * User overrideable function that receives XML data sent to the\n * connection.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.xmlOutput = function (elem) {\n * > (user code)\n * > };\n *\n * Due to limitations of current Browsers' XML-Parsers the opening and closing\n * tag for WebSocket-Connoctions will be passed as selfclosing here.\n *\n * BOSH-Connections will have all stanzas wrapped in a tag. See\n * if you want to strip this tag.\n *\n * Parameters:\n * (XMLElement) elem - The XMLdata sent by the connection.\n */\n xmlOutput (elem) { // eslint-disable-line\n return;\n }\n\n /** Function: rawInput\n * User overrideable function that receives raw data coming into the\n * connection.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.rawInput = function (data) {\n * > (user code)\n * > };\n *\n * Parameters:\n * (String) data - The data received by the connection.\n */\n rawInput (data) { // eslint-disable-line\n return;\n }\n\n /** Function: rawOutput\n * User overrideable function that receives raw data sent to the\n * connection.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.rawOutput = function (data) {\n * > (user code)\n * > };\n *\n * Parameters:\n * (String) data - The data sent by the connection.\n */\n rawOutput (data) { // eslint-disable-line\n return;\n }\n\n /** Function: nextValidRid\n * User overrideable function that receives the new valid rid.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.nextValidRid = function (rid) {\n * > (user code)\n * > };\n *\n * Parameters:\n * (Number) rid - The next valid rid\n */\n nextValidRid (rid) { // eslint-disable-line\n return;\n }\n\n /** Function: send\n * Send a stanza.\n *\n * This function is called to push data onto the send queue to\n * go out over the wire. Whenever a request is sent to the BOSH\n * server, all pending data is sent and the queue is flushed.\n *\n * Parameters:\n * (XMLElement |\n * [XMLElement] |\n * Strophe.Builder) elem - The stanza to send.\n */\n send (elem) {\n if (elem === null) { return ; }\n if (typeof(elem.sort) === \"function\") {\n for (let i=0; i < elem.length; i++) {\n this._queueData(elem[i]);\n }\n } else if (typeof(elem.tree) === \"function\") {\n this._queueData(elem.tree());\n } else {\n this._queueData(elem);\n }\n this._proto._send();\n }\n\n /** Function: flush\n * Immediately send any pending outgoing data.\n *\n * Normally send() queues outgoing data until the next idle period\n * (100ms), which optimizes network use in the common cases when\n * several send()s are called in succession. flush() can be used to\n * immediately send all pending data.\n */\n flush () {\n // cancel the pending idle period and run the idle function\n // immediately\n clearTimeout(this._idleTimeout);\n this._onIdle();\n }\n\n /** Function: sendPresence\n * Helper function to send presence stanzas. The main benefit is for\n * sending presence stanzas for which you expect a responding presence\n * stanza with the same id (for example when leaving a chat room).\n *\n * Parameters:\n * (XMLElement) elem - The stanza to send.\n * (Function) callback - The callback function for a successful request.\n * (Function) errback - The callback function for a failed or timed\n * out request. On timeout, the stanza will be null.\n * (Integer) timeout - The time specified in milliseconds for a\n * timeout to occur.\n *\n * Returns:\n * The id used to send the presence.\n */\n sendPresence (elem, callback, errback, timeout) {\n let timeoutHandler = null;\n if (typeof(elem.tree) === \"function\") {\n elem = elem.tree();\n }\n let id = elem.getAttribute('id');\n if (!id) { // inject id if not found\n id = this.getUniqueId(\"sendPresence\");\n elem.setAttribute(\"id\", id);\n }\n\n if (typeof callback === \"function\" || typeof errback === \"function\") {\n const handler = this.addHandler(stanza => {\n // remove timeout handler if there is one\n if (timeoutHandler) {\n this.deleteTimedHandler(timeoutHandler);\n }\n if (stanza.getAttribute('type') === 'error') {\n if (errback) {\n errback(stanza);\n }\n } else if (callback) {\n callback(stanza);\n }\n }, null, 'presence', null, id);\n\n // if timeout specified, set up a timeout handler.\n if (timeout) {\n timeoutHandler = this.addTimedHandler(timeout, () => {\n // get rid of normal handler\n this.deleteHandler(handler);\n // call errback on timeout with null stanza\n if (errback) {\n errback(null);\n }\n return false;\n });\n }\n }\n this.send(elem);\n return id;\n }\n\n /** Function: sendIQ\n * Helper function to send IQ stanzas.\n *\n * Parameters:\n * (XMLElement) elem - The stanza to send.\n * (Function) callback - The callback function for a successful request.\n * (Function) errback - The callback function for a failed or timed\n * out request. On timeout, the stanza will be null.\n * (Integer) timeout - The time specified in milliseconds for a\n * timeout to occur.\n *\n * Returns:\n * The id used to send the IQ.\n */\n sendIQ (elem, callback, errback, timeout) {\n let timeoutHandler = null;\n if (typeof(elem.tree) === \"function\") {\n elem = elem.tree();\n }\n let id = elem.getAttribute('id');\n if (!id) { // inject id if not found\n id = this.getUniqueId(\"sendIQ\");\n elem.setAttribute(\"id\", id);\n }\n\n if (typeof callback === \"function\" || typeof errback === \"function\") {\n const handler = this.addHandler(stanza => {\n // remove timeout handler if there is one\n if (timeoutHandler) {\n this.deleteTimedHandler(timeoutHandler);\n }\n const iqtype = stanza.getAttribute('type');\n if (iqtype === 'result') {\n if (callback) {\n callback(stanza);\n }\n } else if (iqtype === 'error') {\n if (errback) {\n errback(stanza);\n }\n } else {\n const error = new Error(`Got bad IQ type of ${iqtype}`);\n error.name = \"StropheError\";\n throw(error);\n }\n }, null, 'iq', ['error', 'result'], id);\n\n // if timeout specified, set up a timeout handler.\n if (timeout) {\n timeoutHandler = this.addTimedHandler(timeout, () => {\n // get rid of normal handler\n this.deleteHandler(handler);\n // call errback on timeout with null stanza\n if (errback) {\n errback(null);\n }\n return false;\n });\n }\n }\n this.send(elem);\n return id;\n }\n\n /** PrivateFunction: _queueData\n * Queue outgoing data for later sending. Also ensures that the data\n * is a DOMElement.\n */\n _queueData (element) {\n if (element === null ||\n !element.tagName ||\n !element.childNodes) {\n const error = new Error(\"Cannot queue non-DOMElement.\");\n error.name = \"StropheError\";\n throw(error);\n }\n this._data.push(element);\n }\n\n /** PrivateFunction: _sendRestart\n * Send an xmpp:restart stanza.\n */\n _sendRestart () {\n this._data.push(\"restart\");\n this._proto._sendRestart();\n this._idleTimeout = setTimeout(() => this._onIdle(), 100);\n }\n\n /** Function: addTimedHandler\n * Add a timed handler to the connection.\n *\n * This function adds a timed handler. The provided handler will\n * be called every period milliseconds until it returns false,\n * the connection is terminated, or the handler is removed. Handlers\n * that wish to continue being invoked should return true.\n *\n * Because of method binding it is necessary to save the result of\n * this function if you wish to remove a handler with\n * deleteTimedHandler().\n *\n * Note that user handlers are not active until authentication is\n * successful.\n *\n * Parameters:\n * (Integer) period - The period of the handler.\n * (Function) handler - The callback function.\n *\n * Returns:\n * A reference to the handler that can be used to remove it.\n */\n addTimedHandler (period, handler) {\n const thand = new Strophe.TimedHandler(period, handler);\n this.addTimeds.push(thand);\n return thand;\n }\n\n /** Function: deleteTimedHandler\n * Delete a timed handler for a connection.\n *\n * This function removes a timed handler from the connection. The\n * handRef parameter is *not* the function passed to addTimedHandler(),\n * but is the reference returned from addTimedHandler().\n *\n * Parameters:\n * (Strophe.TimedHandler) handRef - The handler reference.\n */\n deleteTimedHandler (handRef) {\n // this must be done in the Idle loop so that we don't change\n // the handlers during iteration\n this.removeTimeds.push(handRef);\n }\n\n /** Function: addHandler\n * Add a stanza handler for the connection.\n *\n * This function adds a stanza handler to the connection. The\n * handler callback will be called for any stanza that matches\n * the parameters. Note that if multiple parameters are supplied,\n * they must all match for the handler to be invoked.\n *\n * The handler will receive the stanza that triggered it as its argument.\n * *The handler should return true if it is to be invoked again;\n * returning false will remove the handler after it returns.*\n *\n * As a convenience, the ns parameters applies to the top level element\n * and also any of its immediate children. This is primarily to make\n * matching /iq/query elements easy.\n *\n * Options\n * ~~~~~~~\n * With the options argument, you can specify boolean flags that affect how\n * matches are being done.\n *\n * Currently two flags exist:\n *\n * - matchBareFromJid:\n * When set to true, the from parameter and the\n * from attribute on the stanza will be matched as bare JIDs instead\n * of full JIDs. To use this, pass {matchBareFromJid: true} as the\n * value of options. The default value for matchBareFromJid is false.\n *\n * - ignoreNamespaceFragment:\n * When set to true, a fragment specified on the stanza's namespace\n * URL will be ignored when it's matched with the one configured for\n * the handler.\n *\n * This means that if you register like this:\n * > connection.addHandler(\n * > handler,\n * > 'http://jabber.org/protocol/muc',\n * > null, null, null, null,\n * > {'ignoreNamespaceFragment': true}\n * > );\n *\n * Then a stanza with XML namespace of\n * 'http://jabber.org/protocol/muc#user' will also be matched. If\n * 'ignoreNamespaceFragment' is false, then only stanzas with\n * 'http://jabber.org/protocol/muc' will be matched.\n *\n * Deleting the handler\n * ~~~~~~~~~~~~~~~~~~~~\n * The return value should be saved if you wish to remove the handler\n * with deleteHandler().\n *\n * Parameters:\n * (Function) handler - The user callback.\n * (String) ns - The namespace to match.\n * (String) name - The stanza name to match.\n * (String|Array) type - The stanza type (or types if an array) to match.\n * (String) id - The stanza id attribute to match.\n * (String) from - The stanza from attribute to match.\n * (String) options - The handler options\n *\n * Returns:\n * A reference to the handler that can be used to remove it.\n */\n addHandler (handler, ns, name, type, id, from, options) {\n const hand = new Strophe.Handler(handler, ns, name, type, id, from, options);\n this.addHandlers.push(hand);\n return hand;\n }\n\n /** Function: deleteHandler\n * Delete a stanza handler for a connection.\n *\n * This function removes a stanza handler from the connection. The\n * handRef parameter is *not* the function passed to addHandler(),\n * but is the reference returned from addHandler().\n *\n * Parameters:\n * (Strophe.Handler) handRef - The handler reference.\n */\n deleteHandler (handRef) {\n // this must be done in the Idle loop so that we don't change\n // the handlers during iteration\n this.removeHandlers.push(handRef);\n // If a handler is being deleted while it is being added,\n // prevent it from getting added\n const i = this.addHandlers.indexOf(handRef);\n if (i >= 0) {\n this.addHandlers.splice(i, 1);\n }\n }\n\n /** Function: registerSASLMechanisms\n *\n * Register the SASL mechanisms which will be supported by this instance of\n * Strophe.Connection (i.e. which this XMPP client will support).\n *\n * Parameters:\n * (Array) mechanisms - Array of objects with Strophe.SASLMechanism prototypes\n *\n */\n registerSASLMechanisms (mechanisms) {\n this.mechanisms = {};\n mechanisms = mechanisms || [\n Strophe.SASLAnonymous,\n Strophe.SASLExternal,\n Strophe.SASLOAuthBearer,\n Strophe.SASLXOAuth2,\n Strophe.SASLPlain,\n Strophe.SASLSHA1\n ];\n mechanisms.forEach(m => this.registerSASLMechanism(m));\n }\n\n /** Function: registerSASLMechanism\n *\n * Register a single SASL mechanism, to be supported by this client.\n *\n * Parameters:\n * (Object) mechanism - Object with a Strophe.SASLMechanism prototype\n *\n */\n registerSASLMechanism (Mechanism) {\n const mechanism = new Mechanism()\n this.mechanisms[mechanism.mechname] = mechanism;\n }\n\n /** Function: disconnect\n * Start the graceful disconnection process.\n *\n * This function starts the disconnection process. This process starts\n * by sending unavailable presence and sending BOSH body of type\n * terminate. A timeout handler makes sure that disconnection happens\n * even if the BOSH server does not respond.\n * If the Connection object isn't connected, at least tries to abort all pending requests\n * so the connection object won't generate successful requests (which were already opened).\n *\n * The user supplied connection callback will be notified of the\n * progress as this process happens.\n *\n * Parameters:\n * (String) reason - The reason the disconnect is occuring.\n */\n disconnect (reason) {\n this._changeConnectStatus(Strophe.Status.DISCONNECTING, reason);\n if (reason) {\n Strophe.warn(\"Disconnect was called because: \" + reason);\n } else {\n Strophe.info(\"Disconnect was called\");\n }\n if (this.connected) {\n let pres = false;\n this.disconnecting = true;\n if (this.authenticated) {\n pres = $pres({\n 'xmlns': Strophe.NS.CLIENT,\n 'type': 'unavailable'\n });\n }\n // setup timeout handler\n this._disconnectTimeout = this._addSysTimedHandler(\n 3000, this._onDisconnectTimeout.bind(this));\n this._proto._disconnect(pres);\n } else {\n Strophe.warn(\"Disconnect was called before Strophe connected to the server\");\n this._proto._abortAllRequests();\n this._doDisconnect();\n }\n }\n\n /** PrivateFunction: _changeConnectStatus\n * _Private_ helper function that makes sure plugins and the user's\n * callback are notified of connection status changes.\n *\n * Parameters:\n * (Integer) status - the new connection status, one of the values\n * in Strophe.Status\n * (String) condition - the error condition or null\n * (XMLElement) elem - The triggering stanza.\n */\n _changeConnectStatus (status, condition, elem) {\n // notify all plugins listening for status changes\n for (const k in Strophe._connectionPlugins) {\n if (Object.prototype.hasOwnProperty.call(Strophe._connectionPlugins, k)) {\n const plugin = this[k];\n if (plugin.statusChanged) {\n try {\n plugin.statusChanged(status, condition);\n } catch (err) {\n Strophe.error(`${k} plugin caused an exception changing status: ${err}`);\n }\n }\n }\n }\n // notify the user's callback\n if (this.connect_callback) {\n try {\n this.connect_callback(status, condition, elem);\n } catch (e) {\n Strophe._handleError(e);\n Strophe.error(`User connection callback caused an exception: ${e}`);\n }\n }\n }\n\n /** PrivateFunction: _doDisconnect\n * _Private_ function to disconnect.\n *\n * This is the last piece of the disconnection logic. This resets the\n * connection and alerts the user's connection callback.\n */\n _doDisconnect (condition) {\n if (typeof this._idleTimeout === \"number\") {\n clearTimeout(this._idleTimeout);\n }\n\n // Cancel Disconnect Timeout\n if (this._disconnectTimeout !== null) {\n this.deleteTimedHandler(this._disconnectTimeout);\n this._disconnectTimeout = null;\n }\n\n Strophe.debug(\"_doDisconnect was called\");\n this._proto._doDisconnect();\n\n this.authenticated = false;\n this.disconnecting = false;\n this.restored = false;\n\n // delete handlers\n this.handlers = [];\n this.timedHandlers = [];\n this.removeTimeds = [];\n this.removeHandlers = [];\n this.addTimeds = [];\n this.addHandlers = [];\n\n // tell the parent we disconnected\n this._changeConnectStatus(Strophe.Status.DISCONNECTED, condition);\n this.connected = false;\n }\n\n /** PrivateFunction: _dataRecv\n * _Private_ handler to processes incoming data from the the connection.\n *\n * Except for _connect_cb handling the initial connection request,\n * this function handles the incoming data for all requests. This\n * function also fires stanza handlers that match each incoming\n * stanza.\n *\n * Parameters:\n * (Strophe.Request) req - The request that has data ready.\n * (string) req - The stanza a raw string (optiona).\n */\n _dataRecv (req, raw) {\n const elem = this._proto._reqToData(req);\n if (elem === null) { return; }\n\n if (this.xmlInput !== Strophe.Connection.prototype.xmlInput) {\n if (elem.nodeName === this._proto.strip && elem.childNodes.length) {\n this.xmlInput(elem.childNodes[0]);\n } else {\n this.xmlInput(elem);\n }\n }\n if (this.rawInput !== Strophe.Connection.prototype.rawInput) {\n if (raw) {\n this.rawInput(raw);\n } else {\n this.rawInput(Strophe.serialize(elem));\n }\n }\n\n // remove handlers scheduled for deletion\n while (this.removeHandlers.length > 0) {\n const hand = this.removeHandlers.pop();\n const i = this.handlers.indexOf(hand);\n if (i >= 0) {\n this.handlers.splice(i, 1);\n }\n }\n\n // add handlers scheduled for addition\n while (this.addHandlers.length > 0) {\n this.handlers.push(this.addHandlers.pop());\n }\n\n // handle graceful disconnect\n if (this.disconnecting && this._proto._emptyQueue()) {\n this._doDisconnect();\n return;\n }\n\n const type = elem.getAttribute(\"type\");\n if (type !== null && type === \"terminate\") {\n // Don't process stanzas that come in after disconnect\n if (this.disconnecting) {\n return;\n }\n // an error occurred\n let cond = elem.getAttribute(\"condition\");\n const conflict = elem.getElementsByTagName(\"conflict\");\n if (cond !== null) {\n if (cond === \"remote-stream-error\" && conflict.length > 0) {\n cond = \"conflict\";\n }\n this._changeConnectStatus(Strophe.Status.CONNFAIL, cond);\n } else {\n this._changeConnectStatus(\n Strophe.Status.CONNFAIL,\n Strophe.ErrorCondition.UNKOWN_REASON\n );\n }\n this._doDisconnect(cond);\n return;\n }\n\n // send each incoming stanza through the handler chain\n Strophe.forEachChild(elem, null, child => {\n // process handlers\n const newList = this.handlers;\n this.handlers = [];\n for (let i=0; i < newList.length; i++) {\n const hand = newList[i];\n // encapsulate 'handler.run' not to lose the whole handler list if\n // one of the handlers throws an exception\n try {\n if (hand.isMatch(child) &&\n (this.authenticated || !hand.user)) {\n if (hand.run(child)) {\n this.handlers.push(hand);\n }\n } else {\n this.handlers.push(hand);\n }\n } catch(e) {\n // if the handler throws an exception, we consider it as false\n Strophe.warn('Removing Strophe handlers due to uncaught exception: '+e.message);\n }\n }\n });\n }\n\n /** PrivateFunction: _connect_cb\n * _Private_ handler for initial connection request.\n *\n * This handler is used to process the initial connection request\n * response from the BOSH server. It is used to set up authentication\n * handlers and start the authentication process.\n *\n * SASL authentication will be attempted if available, otherwise\n * the code will fall back to legacy authentication.\n *\n * Parameters:\n * (Strophe.Request) req - The current request.\n * (Function) _callback - low level (xmpp) connect callback function.\n * Useful for plugins with their own xmpp connect callback (when they\n * want to do something special).\n */\n _connect_cb (req, _callback, raw) {\n Strophe.debug(\"_connect_cb was called\");\n this.connected = true;\n\n let bodyWrap;\n try {\n bodyWrap = this._proto._reqToData(req);\n } catch (e) {\n if (e.name !== Strophe.ErrorCondition.BAD_FORMAT) { throw e; }\n this._changeConnectStatus(\n Strophe.Status.CONNFAIL,\n Strophe.ErrorCondition.BAD_FORMAT\n );\n this._doDisconnect(Strophe.ErrorCondition.BAD_FORMAT);\n }\n if (!bodyWrap) { return; }\n\n if (this.xmlInput !== Strophe.Connection.prototype.xmlInput) {\n if (bodyWrap.nodeName === this._proto.strip && bodyWrap.childNodes.length) {\n this.xmlInput(bodyWrap.childNodes[0]);\n } else {\n this.xmlInput(bodyWrap);\n }\n }\n if (this.rawInput !== Strophe.Connection.prototype.rawInput) {\n if (raw) {\n this.rawInput(raw);\n } else {\n this.rawInput(Strophe.serialize(bodyWrap));\n }\n }\n\n const conncheck = this._proto._connect_cb(bodyWrap);\n if (conncheck === Strophe.Status.CONNFAIL) {\n return;\n }\n\n // Check for the stream:features tag\n let hasFeatures;\n if (bodyWrap.getElementsByTagNameNS) {\n hasFeatures = bodyWrap.getElementsByTagNameNS(Strophe.NS.STREAM, \"features\").length > 0;\n } else {\n hasFeatures = bodyWrap.getElementsByTagName(\"stream:features\").length > 0 ||\n bodyWrap.getElementsByTagName(\"features\").length > 0;\n }\n if (!hasFeatures) {\n this._proto._no_auth_received(_callback);\n return;\n }\n\n const matched = Array.from(bodyWrap.getElementsByTagName(\"mechanism\"))\n .map(m => this.mechanisms[m.textContent])\n .filter(m => m);\n\n if (matched.length === 0) {\n if (bodyWrap.getElementsByTagName(\"auth\").length === 0) {\n // There are no matching SASL mechanisms and also no legacy\n // auth available.\n this._proto._no_auth_received(_callback);\n return;\n }\n }\n if (this.do_authentication !== false) {\n this.authenticate(matched);\n }\n }\n\n /** Function: sortMechanismsByPriority\n *\n * Sorts an array of objects with prototype SASLMechanism according to\n * their priorities.\n *\n * Parameters:\n * (Array) mechanisms - Array of SASL mechanisms.\n *\n */\n sortMechanismsByPriority (mechanisms) { // eslint-disable-line class-methods-use-this\n // Sorting mechanisms according to priority.\n for (let i=0; i < mechanisms.length - 1; ++i) {\n let higher = i;\n for (let j=i + 1; j < mechanisms.length; ++j) {\n if (mechanisms[j].priority > mechanisms[higher].priority) {\n higher = j;\n }\n }\n if (higher !== i) {\n const swap = mechanisms[i];\n mechanisms[i] = mechanisms[higher];\n mechanisms[higher] = swap;\n }\n }\n return mechanisms;\n }\n\n /** Function: authenticate\n * Set up authentication\n *\n * Continues the initial connection request by setting up authentication\n * handlers and starting the authentication process.\n *\n * SASL authentication will be attempted if available, otherwise\n * the code will fall back to legacy authentication.\n *\n * Parameters:\n * (Array) matched - Array of SASL mechanisms supported.\n *\n */\n authenticate (matched) {\n if (!this._attemptSASLAuth(matched)) {\n this._attemptLegacyAuth();\n }\n }\n\n /** PrivateFunction: _attemptSASLAuth\n *\n * Iterate through an array of SASL mechanisms and attempt authentication\n * with the highest priority (enabled) mechanism.\n *\n * Parameters:\n * (Array) mechanisms - Array of SASL mechanisms.\n *\n * Returns:\n * (Boolean) mechanism_found - true or false, depending on whether a\n * valid SASL mechanism was found with which authentication could be\n * started.\n */\n _attemptSASLAuth (mechanisms) {\n mechanisms = this.sortMechanismsByPriority(mechanisms || []);\n let mechanism_found = false;\n for (let i=0; i < mechanisms.length; ++i) {\n if (!mechanisms[i].test(this)) {\n continue;\n }\n this._sasl_success_handler = this._addSysHandler(\n this._sasl_success_cb.bind(this), null,\n \"success\", null, null);\n this._sasl_failure_handler = this._addSysHandler(\n this._sasl_failure_cb.bind(this), null,\n \"failure\", null, null);\n this._sasl_challenge_handler = this._addSysHandler(\n this._sasl_challenge_cb.bind(this), null,\n \"challenge\", null, null);\n\n this._sasl_mechanism = mechanisms[i];\n this._sasl_mechanism.onStart(this);\n\n const request_auth_exchange = $build(\"auth\", {\n 'xmlns': Strophe.NS.SASL,\n 'mechanism': this._sasl_mechanism.mechname\n });\n if (this._sasl_mechanism.isClientFirst) {\n const response = this._sasl_mechanism.onChallenge(this, null);\n request_auth_exchange.t(btoa(response));\n }\n this.send(request_auth_exchange.tree());\n mechanism_found = true;\n break;\n }\n return mechanism_found;\n }\n\n /** PrivateFunction: _sasl_challenge_cb\n * _Private_ handler for the SASL challenge\n *\n */\n _sasl_challenge_cb (elem) {\n const challenge = atob(Strophe.getText(elem));\n const response = this._sasl_mechanism.onChallenge(this, challenge);\n const stanza = $build('response', {'xmlns': Strophe.NS.SASL});\n if (response !== \"\") {\n stanza.t(btoa(response));\n }\n this.send(stanza.tree());\n return true;\n }\n\n /** PrivateFunction: _attemptLegacyAuth\n *\n * Attempt legacy (i.e. non-SASL) authentication.\n */\n _attemptLegacyAuth () {\n if (Strophe.getNodeFromJid(this.jid) === null) {\n // we don't have a node, which is required for non-anonymous\n // client connections\n this._changeConnectStatus(\n Strophe.Status.CONNFAIL,\n Strophe.ErrorCondition.MISSING_JID_NODE\n );\n this.disconnect(Strophe.ErrorCondition.MISSING_JID_NODE);\n } else {\n // Fall back to legacy authentication\n this._changeConnectStatus(Strophe.Status.AUTHENTICATING, null);\n this._addSysHandler(\n this._onLegacyAuthIQResult.bind(this),\n null, null, null, \"_auth_1\"\n );\n this.send($iq({\n 'type': \"get\",\n 'to': this.domain,\n 'id': \"_auth_1\"\n }).c(\"query\", {xmlns: Strophe.NS.AUTH})\n .c(\"username\", {}).t(Strophe.getNodeFromJid(this.jid))\n .tree());\n }\n }\n\n /** PrivateFunction: _onLegacyAuthIQResult\n * _Private_ handler for legacy authentication.\n *\n * This handler is called in response to the initial \n * for legacy authentication. It builds an authentication and\n * sends it, creating a handler (calling back to _auth2_cb()) to\n * handle the result\n *\n * Parameters:\n * (XMLElement) elem - The stanza that triggered the callback.\n *\n * Returns:\n * false to remove the handler.\n */\n _onLegacyAuthIQResult (elem) { // eslint-disable-line no-unused-vars\n // build plaintext auth iq\n const iq = $iq({type: \"set\", id: \"_auth_2\"})\n .c('query', {xmlns: Strophe.NS.AUTH})\n .c('username', {}).t(Strophe.getNodeFromJid(this.jid))\n .up()\n .c('password').t(this.pass);\n\n if (!Strophe.getResourceFromJid(this.jid)) {\n // since the user has not supplied a resource, we pick\n // a default one here. unlike other auth methods, the server\n // cannot do this for us.\n this.jid = Strophe.getBareJidFromJid(this.jid) + '/strophe';\n }\n iq.up().c('resource', {}).t(Strophe.getResourceFromJid(this.jid));\n\n this._addSysHandler(this._auth2_cb.bind(this), null, null, null, \"_auth_2\");\n this.send(iq.tree());\n return false;\n }\n\n /** PrivateFunction: _sasl_success_cb\n * _Private_ handler for succesful SASL authentication.\n *\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _sasl_success_cb (elem) {\n if (this._sasl_data[\"server-signature\"]) {\n let serverSignature;\n const success = atob(Strophe.getText(elem));\n const attribMatch = /([a-z]+)=([^,]+)(,|$)/;\n const matches = success.match(attribMatch);\n if (matches[1] === \"v\") {\n serverSignature = matches[2];\n }\n if (serverSignature !== this._sasl_data[\"server-signature\"]) {\n // remove old handlers\n this.deleteHandler(this._sasl_failure_handler);\n this._sasl_failure_handler = null;\n if (this._sasl_challenge_handler) {\n this.deleteHandler(this._sasl_challenge_handler);\n this._sasl_challenge_handler = null;\n }\n this._sasl_data = {};\n return this._sasl_failure_cb(null);\n }\n }\n Strophe.info(\"SASL authentication succeeded.\");\n\n if (this._sasl_mechanism) {\n this._sasl_mechanism.onSuccess();\n }\n // remove old handlers\n this.deleteHandler(this._sasl_failure_handler);\n this._sasl_failure_handler = null;\n if (this._sasl_challenge_handler) {\n this.deleteHandler(this._sasl_challenge_handler);\n this._sasl_challenge_handler = null;\n }\n const streamfeature_handlers = [];\n const wrapper = (handlers, elem) => {\n while (handlers.length) {\n this.deleteHandler(handlers.pop());\n }\n this._onStreamFeaturesAfterSASL(elem);\n return false;\n };\n streamfeature_handlers.push(\n this._addSysHandler(elem => wrapper(streamfeature_handlers, elem),\n null, \"stream:features\", null, null)\n );\n\n streamfeature_handlers.push(\n this._addSysHandler(elem => wrapper(streamfeature_handlers, elem),\n Strophe.NS.STREAM, \"features\", null, null)\n );\n\n // we must send an xmpp:restart now\n this._sendRestart();\n return false;\n }\n\n /** PrivateFunction: _onStreamFeaturesAfterSASL\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _onStreamFeaturesAfterSASL (elem) {\n // save stream:features for future usage\n this.features = elem;\n for (let i=0; i < elem.childNodes.length; i++) {\n const child = elem.childNodes[i];\n if (child.nodeName === 'bind') {\n this.do_bind = true;\n }\n if (child.nodeName === 'session') {\n this.do_session = true;\n }\n }\n\n if (!this.do_bind) {\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null);\n return false;\n } else if (!this.options.explicitResourceBinding) {\n this.bind();\n } else {\n this._changeConnectStatus(Strophe.Status.BINDREQUIRED, null);\n }\n return false;\n }\n\n /** Function: bind\n *\n * Sends an IQ to the XMPP server to bind a JID resource for this session.\n *\n * https://tools.ietf.org/html/rfc6120#section-7.5\n *\n * If `explicitResourceBinding` was set to a truthy value in the options\n * passed to the Strophe.Connection constructor, then this function needs\n * to be called explicitly by the client author.\n *\n * Otherwise it'll be called automatically as soon as the XMPP server\n * advertises the \"urn:ietf:params:xml:ns:xmpp-bind\" stream feature.\n */\n bind () {\n if (!this.do_bind) {\n Strophe.log(\n Strophe.LogLevel.INFO,\n `Strophe.Connection.prototype.bind called but \"do_bind\" is false`\n );\n return;\n }\n this._addSysHandler(\n this._onResourceBindResultIQ.bind(this),\n null, null, null, \"_bind_auth_2\");\n\n const resource = Strophe.getResourceFromJid(this.jid);\n if (resource) {\n this.send($iq({type: \"set\", id: \"_bind_auth_2\"})\n .c('bind', {xmlns: Strophe.NS.BIND})\n .c('resource', {}).t(resource).tree());\n } else {\n this.send($iq({type: \"set\", id: \"_bind_auth_2\"})\n .c('bind', {xmlns: Strophe.NS.BIND})\n .tree());\n }\n }\n\n /** PrivateFunction: _onResourceBindIQ\n * _Private_ handler for binding result and session start.\n *\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _onResourceBindResultIQ (elem) {\n if (elem.getAttribute(\"type\") === \"error\") {\n Strophe.warn(\"Resource binding failed.\");\n const conflict = elem.getElementsByTagName(\"conflict\");\n let condition;\n if (conflict.length > 0) {\n condition = Strophe.ErrorCondition.CONFLICT;\n }\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, condition, elem);\n return false;\n }\n // TODO - need to grab errors\n const bind = elem.getElementsByTagName(\"bind\");\n if (bind.length > 0) {\n const jidNode = bind[0].getElementsByTagName(\"jid\");\n if (jidNode.length > 0) {\n this.authenticated = true;\n this.jid = Strophe.getText(jidNode[0]);\n if (this.do_session) {\n this._establishSession();\n } else {\n this._changeConnectStatus(Strophe.Status.CONNECTED, null);\n }\n }\n } else {\n Strophe.warn(\"Resource binding failed.\");\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null, elem);\n return false;\n }\n }\n\n /** PrivateFunction: _establishSession\n * Send IQ request to establish a session with the XMPP server.\n *\n * See https://xmpp.org/rfcs/rfc3921.html#session\n *\n * Note: The protocol for session establishment has been determined as\n * unnecessary and removed in RFC-6121.\n */\n _establishSession () {\n if (!this.do_session) {\n throw new Error(`Strophe.Connection.prototype._establishSession `+\n `called but apparently ${Strophe.NS.SESSION} wasn't advertised by the server`);\n }\n this._addSysHandler(\n this._onSessionResultIQ.bind(this),\n null, null, null, \"_session_auth_2\");\n\n this.send(\n $iq({type: \"set\", id: \"_session_auth_2\"})\n .c('session', {xmlns: Strophe.NS.SESSION})\n .tree());\n }\n\n /** PrivateFunction: _onSessionResultIQ\n * _Private_ handler for the server's IQ response to a client's session\n * request.\n *\n * This sets Connection.authenticated to true on success, which\n * starts the processing of user handlers.\n *\n * See https://xmpp.org/rfcs/rfc3921.html#session\n *\n * Note: The protocol for session establishment has been determined as\n * unnecessary and removed in RFC-6121.\n *\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _onSessionResultIQ (elem) {\n if (elem.getAttribute(\"type\") === \"result\") {\n this.authenticated = true;\n this._changeConnectStatus(Strophe.Status.CONNECTED, null);\n } else if (elem.getAttribute(\"type\") === \"error\") {\n this.authenticated = false;\n Strophe.warn(\"Session creation failed.\");\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null, elem);\n return false;\n }\n return false;\n }\n\n /** PrivateFunction: _sasl_failure_cb\n * _Private_ handler for SASL authentication failure.\n *\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _sasl_failure_cb (elem) {\n // delete unneeded handlers\n if (this._sasl_success_handler) {\n this.deleteHandler(this._sasl_success_handler);\n this._sasl_success_handler = null;\n }\n if (this._sasl_challenge_handler) {\n this.deleteHandler(this._sasl_challenge_handler);\n this._sasl_challenge_handler = null;\n }\n\n if(this._sasl_mechanism)\n this._sasl_mechanism.onFailure();\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null, elem);\n return false;\n }\n\n /** PrivateFunction: _auth2_cb\n * _Private_ handler to finish legacy authentication.\n *\n * This handler is called when the result from the jabber:iq:auth\n * stanza is returned.\n *\n * Parameters:\n * (XMLElement) elem - The stanza that triggered the callback.\n *\n * Returns:\n * false to remove the handler.\n */\n _auth2_cb (elem) {\n if (elem.getAttribute(\"type\") === \"result\") {\n this.authenticated = true;\n this._changeConnectStatus(Strophe.Status.CONNECTED, null);\n } else if (elem.getAttribute(\"type\") === \"error\") {\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null, elem);\n this.disconnect('authentication failed');\n }\n return false;\n }\n\n /** PrivateFunction: _addSysTimedHandler\n * _Private_ function to add a system level timed handler.\n *\n * This function is used to add a Strophe.TimedHandler for the\n * library code. System timed handlers are allowed to run before\n * authentication is complete.\n *\n * Parameters:\n * (Integer) period - The period of the handler.\n * (Function) handler - The callback function.\n */\n _addSysTimedHandler (period, handler) {\n const thand = new Strophe.TimedHandler(period, handler);\n thand.user = false;\n this.addTimeds.push(thand);\n return thand;\n }\n\n /** PrivateFunction: _addSysHandler\n * _Private_ function to add a system level stanza handler.\n *\n * This function is used to add a Strophe.Handler for the\n * library code. System stanza handlers are allowed to run before\n * authentication is complete.\n *\n * Parameters:\n * (Function) handler - The callback function.\n * (String) ns - The namespace to match.\n * (String) name - The stanza name to match.\n * (String) type - The stanza type attribute to match.\n * (String) id - The stanza id attribute to match.\n */\n _addSysHandler (handler, ns, name, type, id) {\n const hand = new Strophe.Handler(handler, ns, name, type, id);\n hand.user = false;\n this.addHandlers.push(hand);\n return hand;\n }\n\n /** PrivateFunction: _onDisconnectTimeout\n * _Private_ timeout handler for handling non-graceful disconnection.\n *\n * If the graceful disconnect process does not complete within the\n * time allotted, this handler finishes the disconnect anyway.\n *\n * Returns:\n * false to remove the handler.\n */\n _onDisconnectTimeout () {\n Strophe.debug(\"_onDisconnectTimeout was called\");\n this._changeConnectStatus(Strophe.Status.CONNTIMEOUT, null);\n this._proto._onDisconnectTimeout();\n // actually disconnect\n this._doDisconnect();\n return false;\n }\n\n /** PrivateFunction: _onIdle\n * _Private_ handler to process events during idle cycle.\n *\n * This handler is called every 100ms to fire timed handlers that\n * are ready and keep poll requests going.\n */\n _onIdle () {\n // add timed handlers scheduled for addition\n // NOTE: we add before remove in the case a timed handler is\n // added and then deleted before the next _onIdle() call.\n while (this.addTimeds.length > 0) {\n this.timedHandlers.push(this.addTimeds.pop());\n }\n\n // remove timed handlers that have been scheduled for deletion\n while (this.removeTimeds.length > 0) {\n const thand = this.removeTimeds.pop();\n const i = this.timedHandlers.indexOf(thand);\n if (i >= 0) {\n this.timedHandlers.splice(i, 1);\n }\n }\n\n // call ready timed handlers\n const now = new Date().getTime();\n const newList = [];\n for (let i=0; i < this.timedHandlers.length; i++) {\n const thand = this.timedHandlers[i];\n if (this.authenticated || !thand.user) {\n const since = thand.lastCalled + thand.period;\n if (since - now <= 0) {\n if (thand.run()) {\n newList.push(thand);\n }\n } else {\n newList.push(thand);\n }\n }\n }\n this.timedHandlers = newList;\n clearTimeout(this._idleTimeout);\n this._proto._onIdle();\n\n // reactivate the timer only if connected\n if (this.connected) {\n this._idleTimeout = setTimeout(() => this._onIdle(), 100);\n }\n }\n};\n\n/** Class: Strophe.SASLMechanism\n *\n * Encapsulates an SASL authentication mechanism.\n *\n * User code may override the priority for each mechanism or disable it completely.\n * See for information about changing priority and for informatian on\n * how to disable a mechanism.\n *\n * By default, all mechanisms are enabled and the priorities are\n *\n * SCRAM-SHA-1 - 60\n * PLAIN - 50\n * OAUTHBEARER - 40\n * X-OAUTH2 - 30\n * ANONYMOUS - 20\n * EXTERNAL - 10\n *\n * See: Strophe.Connection.addSupportedSASLMechanisms\n */\nStrophe.SASLMechanism = class SASLMechanism {\n\n /**\n * PrivateConstructor: Strophe.SASLMechanism\n * SASL auth mechanism abstraction.\n *\n * Parameters:\n * (String) name - SASL Mechanism name.\n * (Boolean) isClientFirst - If client should send response first without challenge.\n * (Number) priority - Priority.\n *\n * Returns:\n * A new Strophe.SASLMechanism object.\n */\n constructor (name, isClientFirst, priority) {\n /** PrivateVariable: mechname\n * Mechanism name.\n */\n this.mechname = name;\n\n /** PrivateVariable: isClientFirst\n * If client sends response without initial server challenge.\n */\n this.isClientFirst = isClientFirst;\n\n /** Variable: priority\n * Determines which is chosen for authentication (Higher is better).\n * Users may override this to prioritize mechanisms differently.\n *\n * Example: (This will cause Strophe to choose the mechanism that the server sent first)\n *\n * > Strophe.SASLPlain.priority = Strophe.SASLSHA1.priority;\n *\n * See for a list of available mechanisms.\n *\n */\n this.priority = priority;\n }\n\n /**\n * Function: test\n * Checks if mechanism able to run.\n * To disable a mechanism, make this return false;\n *\n * To disable plain authentication run\n * > Strophe.SASLPlain.test = function() {\n * > return false;\n * > }\n *\n * See for a list of available mechanisms.\n *\n * Parameters:\n * (Strophe.Connection) connection - Target Connection.\n *\n * Returns:\n * (Boolean) If mechanism was able to run.\n */\n test () { // eslint-disable-line class-methods-use-this\n return true;\n }\n\n /** PrivateFunction: onStart\n * Called before starting mechanism on some connection.\n *\n * Parameters:\n * (Strophe.Connection) connection - Target Connection.\n */\n onStart (connection) {\n this._connection = connection;\n }\n\n /** PrivateFunction: onChallenge\n * Called by protocol implementation on incoming challenge. If client is\n * first (isClientFirst === true) challenge will be null on the first call.\n *\n * Parameters:\n * (Strophe.Connection) connection - Target Connection.\n * (String) challenge - current challenge to handle.\n *\n * Returns:\n * (String) Mechanism response.\n */\n onChallenge (connection, challenge) { // eslint-disable-line\n throw new Error(\"You should implement challenge handling!\");\n }\n\n /** PrivateFunction: onFailure\n * Protocol informs mechanism implementation about SASL failure.\n */\n onFailure () {\n this._connection = null;\n }\n\n /** PrivateFunction: onSuccess\n * Protocol informs mechanism implementation about SASL success.\n */\n onSuccess () {\n this._connection = null;\n }\n};\n\n/** Constants: SASL mechanisms\n * Available authentication mechanisms\n *\n * Strophe.SASLAnonymous - SASL ANONYMOUS authentication.\n * Strophe.SASLPlain - SASL PLAIN authentication.\n * Strophe.SASLSHA1 - SASL SCRAM-SHA-1 authentication\n * Strophe.SASLOAuthBearer - SASL OAuth Bearer authentication\n * Strophe.SASLExternal - SASL EXTERNAL authentication\n * Strophe.SASLXOAuth2 - SASL X-OAuth2 authentication\n */\n\n// Building SASL callbacks\n\nStrophe.SASLAnonymous = class SASLAnonymous extends Strophe.SASLMechanism {\n\n /** PrivateConstructor: SASLAnonymous\n * SASL ANONYMOUS authentication.\n */\n constructor (mechname='ANONYMOUS', isClientFirst=false, priority=20) {\n super(mechname, isClientFirst, priority);\n }\n\n test (connection) { // eslint-disable-line class-methods-use-this\n return connection.authcid === null;\n }\n}\n\n\nStrophe.SASLPlain = class SASLPlain extends Strophe.SASLMechanism {\n\n /** PrivateConstructor: SASLPlain\n * SASL PLAIN authentication.\n */\n constructor (mechname='PLAIN', isClientFirst=true, priority=50) {\n super(mechname, isClientFirst, priority);\n }\n\n test (connection) { // eslint-disable-line class-methods-use-this\n return connection.authcid !== null;\n }\n\n onChallenge (connection) { // eslint-disable-line class-methods-use-this\n const { authcid, authzid, domain, pass } = connection;\n if (!domain) {\n throw new Error(\"SASLPlain onChallenge: domain is not defined!\");\n }\n // Only include authzid if it differs from authcid.\n // See: https://tools.ietf.org/html/rfc6120#section-6.3.8\n let auth_str = (authzid !== `${authcid}@${domain}`) ? authzid : '';\n auth_str = auth_str + \"\\u0000\";\n auth_str = auth_str + authcid;\n auth_str = auth_str + \"\\u0000\";\n auth_str = auth_str + pass;\n return utils.utf16to8(auth_str);\n }\n}\n\n\nStrophe.SASLSHA1 = class SASLSHA1 extends Strophe.SASLMechanism {\n\n /** PrivateConstructor: SASLSHA1\n * SASL SCRAM SHA 1 authentication.\n */\n constructor (mechname='SCRAM-SHA-1', isClientFirst=true, priority=60) {\n super(mechname, isClientFirst, priority);\n }\n\n test (connection) { // eslint-disable-line class-methods-use-this\n return connection.authcid !== null;\n }\n\n onChallenge (connection, challenge, test_cnonce) {\n const cnonce = test_cnonce || MD5.hexdigest(\"\" + (Math.random() * 1234567890));\n let auth_str = \"n=\" + utils.utf16to8(connection.authcid);\n auth_str += \",r=\";\n auth_str += cnonce;\n connection._sasl_data.cnonce = cnonce;\n connection._sasl_data[\"client-first-message-bare\"] = auth_str;\n auth_str = \"n,,\" + auth_str;\n\n this.onChallenge = (connection, challenge) => {\n let nonce, salt, iter, Hi, U, U_old, i, k;\n let responseText = \"c=biws,\";\n let authMessage = `${connection._sasl_data[\"client-first-message-bare\"]},${challenge},`;\n const cnonce = connection._sasl_data.cnonce;\n const attribMatch = /([a-z]+)=([^,]+)(,|$)/;\n\n while (challenge.match(attribMatch)) {\n const matches = challenge.match(attribMatch);\n challenge = challenge.replace(matches[0], \"\");\n switch (matches[1]) {\n case \"r\":\n nonce = matches[2];\n break;\n case \"s\":\n salt = matches[2];\n break;\n case \"i\":\n iter = matches[2];\n break;\n }\n }\n\n if (nonce.substr(0, cnonce.length) !== cnonce) {\n connection._sasl_data = {};\n return connection._sasl_failure_cb();\n }\n\n responseText += \"r=\" + nonce;\n authMessage += responseText;\n\n salt = atob(salt);\n salt += \"\\x00\\x00\\x00\\x01\";\n\n const pass = utils.utf16to8(connection.pass);\n Hi = U_old = SHA1.core_hmac_sha1(pass, salt);\n for (i=1; i> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n};\n\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\nconst bit_rol = function (num, cnt) {\n return (num << cnt) | (num >>> (32 - cnt));\n};\n\n/*\n * Convert a string to an array of little-endian words\n */\nconst str2binl = function (str) {\n if (typeof str !== \"string\") {\n throw new Error(\"str2binl was passed a non-string\");\n }\n const bin = [];\n for(let i = 0; i < str.length * 8; i += 8)\n {\n bin[i>>5] |= (str.charCodeAt(i / 8) & 255) << (i%32);\n }\n return bin;\n};\n\n/*\n * Convert an array of little-endian words to a string\n */\nconst binl2str = function (bin) {\n let str = \"\";\n for(let i = 0; i < bin.length * 32; i += 8)\n {\n str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & 255);\n }\n return str;\n};\n\n/*\n * Convert an array of little-endian words to a hex string.\n */\nconst binl2hex = function (binarray) {\n const hex_tab = \"0123456789abcdef\";\n let str = \"\";\n for(let i = 0; i < binarray.length * 4; i++)\n {\n str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +\n hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);\n }\n return str;\n};\n\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\nconst md5_cmn = function (q, a, b, x, s, t) {\n return safe_add(bit_rol(safe_add(safe_add(a, q),safe_add(x, t)), s),b);\n};\n\nconst md5_ff = function (a, b, c, d, x, s, t) {\n return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);\n};\n\nconst md5_gg = function (a, b, c, d, x, s, t) {\n return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);\n};\n\nconst md5_hh = function (a, b, c, d, x, s, t) {\n return md5_cmn(b ^ c ^ d, a, b, x, s, t);\n};\n\nconst md5_ii = function (a, b, c, d, x, s, t) {\n return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);\n};\n\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length\n */\nconst core_md5 = function (x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << ((len) % 32);\n x[(((len + 64) >>> 9) << 4) + 14] = len;\n\n let a = 1732584193;\n let b = -271733879;\n let c = -1732584194;\n let d = 271733878;\n\n let olda, oldb, oldc, oldd;\n for (let i = 0; i < x.length; i += 16)\n {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n\n a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);\n d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);\n c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);\n b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);\n a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);\n d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);\n c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);\n b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);\n a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);\n d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);\n c = md5_ff(c, d, a, b, x[i+10], 17, -42063);\n b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);\n a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);\n d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);\n c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);\n b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);\n\n a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);\n d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);\n c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);\n b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);\n a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);\n d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);\n c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);\n b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);\n a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);\n d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);\n c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);\n b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);\n a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);\n d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);\n c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);\n b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);\n\n a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);\n d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);\n c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);\n b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);\n a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);\n d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);\n c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);\n b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);\n a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);\n d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);\n c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);\n b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);\n a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);\n d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);\n c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);\n b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);\n\n a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);\n d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);\n c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);\n b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);\n a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);\n d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);\n c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);\n b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);\n a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);\n d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);\n c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);\n b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);\n a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);\n d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);\n c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);\n b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);\n\n a = safe_add(a, olda);\n b = safe_add(b, oldb);\n c = safe_add(c, oldc);\n d = safe_add(d, oldd);\n }\n return [a, b, c, d];\n};\n\n/*\n * These are the functions you'll usually want to call.\n * They take string arguments and return either hex or base-64 encoded\n * strings.\n */\nconst MD5 = {\n hexdigest: function (s) {\n return binl2hex(core_md5(str2binl(s), s.length * 8));\n },\n hash: function (s) {\n return binl2str(core_md5(str2binl(s), s.length * 8));\n }\n};\nexport { MD5 as default };\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n/* global define */\n\n/* Some functions and variables have been stripped for use with Strophe */\n\n/*\n * Calculate the SHA-1 of an array of big-endian words, and a bit length\n */\nfunction core_sha1(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << (24 - len % 32);\n x[((len + 64 >> 9) << 4) + 15] = len;\n\n var w = new Array(80);\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n var e = -1009589776;\n\n var i, j, t, olda, oldb, oldc, oldd, olde;\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n olde = e;\n\n for (j = 0; j < 80; j++) {\n if (j < 16) {\n w[j] = x[i + j];\n } else {\n w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);\n }\n\n t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)),\n safe_add(safe_add(e, w[j]), sha1_kt(j)));\n e = d;\n d = c;\n c = rol(b, 30);\n b = a;\n a = t;\n }\n\n a = safe_add(a, olda);\n b = safe_add(b, oldb);\n c = safe_add(c, oldc);\n d = safe_add(d, oldd);\n e = safe_add(e, olde);\n }\n return [a, b, c, d, e];\n}\n\n/*\n * Perform the appropriate triplet combination function for the current\n * iteration\n */\nfunction sha1_ft (t, b, c, d) {\n if (t < 20) { return (b & c) | ((~b) & d); }\n if (t < 40) { return b ^ c ^ d; }\n if (t < 60) { return (b & c) | (b & d) | (c & d); }\n return b ^ c ^ d;\n}\n\n/*\n * Determine the appropriate additive constant for the current iteration\n */\nfunction sha1_kt(t) {\n return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : (t < 60) ? -1894007588 : -899497514;\n}\n\n/*\n * Calculate the HMAC-SHA1 of a key and some data\n */\nfunction core_hmac_sha1(key, data) {\n var bkey = str2binb(key);\n if (bkey.length > 16) {\n bkey = core_sha1(bkey, key.length * 8);\n }\n\n var ipad = new Array(16), opad = new Array(16);\n for (var i = 0; i < 16; i++) {\n ipad[i] = bkey[i] ^ 0x36363636;\n opad[i] = bkey[i] ^ 0x5C5C5C5C;\n }\n\n var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * 8);\n return core_sha1(opad.concat(hash), 512 + 160);\n}\n\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\nfunction safe_add(x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n}\n\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\nfunction rol(num, cnt) {\n return (num << cnt) | (num >>> (32 - cnt));\n}\n\n/*\n * Convert an 8-bit or 16-bit string to an array of big-endian words\n * In 8-bit function, characters >255 have their hi-byte silently ignored.\n */\nfunction str2binb(str) {\n var bin = [];\n var mask = 255;\n for (var i = 0; i < str.length * 8; i += 8) {\n bin[i>>5] |= (str.charCodeAt(i / 8) & mask) << (24 - i%32);\n }\n return bin;\n}\n\n/*\n * Convert an array of big-endian words to a base-64 string\n */\nfunction binb2b64 (binarray) {\n var tab = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var str = \"\";\n var triplet, j;\n for (var i = 0; i < binarray.length * 4; i += 3) {\n triplet = (((binarray[i >> 2] >> 8 * (3 - i %4)) & 0xFF) << 16) |\n (((binarray[i+1 >> 2] >> 8 * (3 - (i+1)%4)) & 0xFF) << 8 ) |\n ((binarray[i+2 >> 2] >> 8 * (3 - (i+2)%4)) & 0xFF);\n\n for (j = 0; j < 4; j++) {\n if (i * 8 + j * 6 > binarray.length * 32) { str += \"=\"; }\n else { str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); }\n }\n }\n return str;\n}\n\n/*\n * Convert an array of big-endian words to a string\n */\nfunction binb2str(bin) {\n var str = \"\";\n var mask = 255;\n for (var i = 0; i < bin.length * 32; i += 8) {\n str += String.fromCharCode((bin[i>>5] >>> (24 - i%32)) & mask);\n }\n return str;\n}\n\n/*\n * These are the functions you'll usually want to call\n * They take string arguments and return either hex or base-64 encoded strings\n */\nconst SHA1 = {\n b64_hmac_sha1: function (key, data){ return binb2b64(core_hmac_sha1(key, data)); },\n b64_sha1: function (s) { return binb2b64(core_sha1(str2binb(s),s.length * 8)); },\n binb2str: binb2str,\n core_hmac_sha1: core_hmac_sha1,\n str_hmac_sha1: function (key, data){ return binb2str(core_hmac_sha1(key, data)); },\n str_sha1: function (s) { return binb2str(core_sha1(str2binb(s),s.length * 8)); },\n};\nexport { SHA1 as default };\n","const utils = {\n\n utf16to8: function (str) {\n var i, c;\n var out = \"\";\n var len = str.length;\n for (i = 0; i < len; i++) {\n c = str.charCodeAt(i);\n if ((c >= 0x0000) && (c <= 0x007F)) {\n out += str.charAt(i);\n } else if (c > 0x07FF) {\n out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));\n out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));\n } else {\n out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));\n }\n }\n return out;\n },\n\n addCookies: function (cookies) {\n /* Parameters:\n * (Object) cookies - either a map of cookie names\n * to string values or to maps of cookie values.\n *\n * For example:\n * { \"myCookie\": \"1234\" }\n *\n * or:\n * { \"myCookie\": {\n * \"value\": \"1234\",\n * \"domain\": \".example.org\",\n * \"path\": \"/\",\n * \"expires\": expirationDate\n * }\n * }\n *\n * These values get passed to Strophe.Connection via\n * options.cookies\n */\n cookies = cookies || {};\n for (const cookieName in cookies) {\n if (Object.prototype.hasOwnProperty.call(cookies, cookieName)) {\n let expires = '';\n let domain = '';\n let path = '';\n const cookieObj = cookies[cookieName];\n const isObj = typeof cookieObj === \"object\";\n const cookieValue = escape(unescape(isObj ? cookieObj.value : cookieObj));\n if (isObj) {\n expires = cookieObj.expires ? \";expires=\"+cookieObj.expires : '';\n domain = cookieObj.domain ? \";domain=\"+cookieObj.domain : '';\n path = cookieObj.path ? \";path=\"+cookieObj.path : '';\n }\n document.cookie = cookieName+'='+cookieValue + expires + domain + path;\n }\n }\n }\n};\n\nexport { utils as default };\n","/*\n This program is distributed under the terms of the MIT license.\n Please see the LICENSE file for details.\n\n Copyright 2006-2018, OGG, LLC\n*/\n/*global define, document, sessionStorage, setTimeout, clearTimeout, ActiveXObject, DOMParser, btoa, atob */\n\nimport * as shims from './shims';\nimport MD5 from './md5';\nimport SHA1 from './sha1';\nimport utils from './utils';\nimport { atob, btoa } from 'abab'\n\n/** Function: $build\n * Create a Strophe.Builder.\n * This is an alias for 'new Strophe.Builder(name, attrs)'.\n *\n * Parameters:\n * (String) name - The root element name.\n * (Object) attrs - The attributes for the root element in object notation.\n *\n * Returns:\n * A new Strophe.Builder object.\n */\nexport function $build(name, attrs) {\n return new Strophe.Builder(name, attrs);\n}\n\n/** Function: $msg\n * Create a Strophe.Builder with a element as the root.\n *\n * Parameters:\n * (Object) attrs - The element attributes in object notation.\n *\n * Returns:\n * A new Strophe.Builder object.\n */\nexport function $msg(attrs) {\n return new Strophe.Builder(\"message\", attrs);\n}\n\n/** Function: $iq\n * Create a Strophe.Builder with an element as the root.\n *\n * Parameters:\n * (Object) attrs - The element attributes in object notation.\n *\n * Returns:\n * A new Strophe.Builder object.\n */\nexport function $iq(attrs) {\n return new Strophe.Builder(\"iq\", attrs);\n}\n\n/** Function: $pres\n * Create a Strophe.Builder with a element as the root.\n *\n * Parameters:\n * (Object) attrs - The element attributes in object notation.\n *\n * Returns:\n * A new Strophe.Builder object.\n */\nexport function $pres(attrs) {\n return new Strophe.Builder(\"presence\", attrs);\n}\n\n/** Class: Strophe\n * An object container for all Strophe library functions.\n *\n * This class is just a container for all the objects and constants\n * used in the library. It is not meant to be instantiated, but to\n * provide a namespace for library objects, constants, and functions.\n */\nexport const Strophe = {\n /** Constant: VERSION */\n VERSION: \"1.4.0\",\n\n /** Constants: XMPP Namespace Constants\n * Common namespace constants from the XMPP RFCs and XEPs.\n *\n * NS.HTTPBIND - HTTP BIND namespace from XEP 124.\n * NS.BOSH - BOSH namespace from XEP 206.\n * NS.CLIENT - Main XMPP client namespace.\n * NS.AUTH - Legacy authentication namespace.\n * NS.ROSTER - Roster operations namespace.\n * NS.PROFILE - Profile namespace.\n * NS.DISCO_INFO - Service discovery info namespace from XEP 30.\n * NS.DISCO_ITEMS - Service discovery items namespace from XEP 30.\n * NS.MUC - Multi-User Chat namespace from XEP 45.\n * NS.SASL - XMPP SASL namespace from RFC 3920.\n * NS.STREAM - XMPP Streams namespace from RFC 3920.\n * NS.BIND - XMPP Binding namespace from RFC 3920 and RFC 6120.\n * NS.SESSION - XMPP Session namespace from RFC 3920.\n * NS.XHTML_IM - XHTML-IM namespace from XEP 71.\n * NS.XHTML - XHTML body namespace from XEP 71.\n */\n NS: {\n HTTPBIND: \"http://jabber.org/protocol/httpbind\",\n BOSH: \"urn:xmpp:xbosh\",\n CLIENT: \"jabber:client\",\n AUTH: \"jabber:iq:auth\",\n ROSTER: \"jabber:iq:roster\",\n PROFILE: \"jabber:iq:profile\",\n DISCO_INFO: \"http://jabber.org/protocol/disco#info\",\n DISCO_ITEMS: \"http://jabber.org/protocol/disco#items\",\n MUC: \"http://jabber.org/protocol/muc\",\n SASL: \"urn:ietf:params:xml:ns:xmpp-sasl\",\n STREAM: \"http://etherx.jabber.org/streams\",\n FRAMING: \"urn:ietf:params:xml:ns:xmpp-framing\",\n BIND: \"urn:ietf:params:xml:ns:xmpp-bind\",\n SESSION: \"urn:ietf:params:xml:ns:xmpp-session\",\n VERSION: \"jabber:iq:version\",\n STANZAS: \"urn:ietf:params:xml:ns:xmpp-stanzas\",\n XHTML_IM: \"http://jabber.org/protocol/xhtml-im\",\n XHTML: \"http://www.w3.org/1999/xhtml\"\n },\n\n /** Constants: XHTML_IM Namespace\n * contains allowed tags, tag attributes, and css properties.\n * Used in the createHtml function to filter incoming html into the allowed XHTML-IM subset.\n * See http://xmpp.org/extensions/xep-0071.html#profile-summary for the list of recommended\n * allowed tags and their attributes.\n */\n XHTML: {\n tags: ['a','blockquote','br','cite','em','img','li','ol','p','span','strong','ul','body'],\n attributes: {\n 'a': ['href'],\n 'blockquote': ['style'],\n 'br': [],\n 'cite': ['style'],\n 'em': [],\n 'img': ['src', 'alt', 'style', 'height', 'width'],\n 'li': ['style'],\n 'ol': ['style'],\n 'p': ['style'],\n 'span': ['style'],\n 'strong': [],\n 'ul': ['style'],\n 'body': []\n },\n css: ['background-color','color','font-family','font-size','font-style','font-weight','margin-left','margin-right','text-align','text-decoration'],\n /** Function: XHTML.validTag\n *\n * Utility method to determine whether a tag is allowed\n * in the XHTML_IM namespace.\n *\n * XHTML tag names are case sensitive and must be lower case.\n */\n validTag (tag) {\n for (let i=0; i 0) {\n for (let i=0; i/g, \">\");\n text = text.replace(/'/g, \"'\");\n text = text.replace(/\"/g, \""\");\n return text;\n },\n\n /* Function: xmlunescape\n * Unexcapes invalid xml characters.\n *\n * Parameters:\n * (String) text - text to unescape.\n *\n * Returns:\n * Unescaped text.\n */\n xmlunescape (text) {\n text = text.replace(/\\&/g, \"&\");\n text = text.replace(/</g, \"<\");\n text = text.replace(/>/g, \">\");\n text = text.replace(/'/g, \"'\");\n text = text.replace(/"/g, \"\\\"\");\n return text;\n },\n\n /** Function: xmlTextNode\n * Creates an XML DOM text node.\n *\n * Provides a cross implementation version of document.createTextNode.\n *\n * Parameters:\n * (String) text - The content of the text node.\n *\n * Returns:\n * A new XML DOM text node.\n */\n xmlTextNode (text) {\n return Strophe.xmlGenerator().createTextNode(text);\n },\n\n /** Function: xmlHtmlNode\n * Creates an XML DOM html node.\n *\n * Parameters:\n * (String) html - The content of the html node.\n *\n * Returns:\n * A new XML DOM text node.\n */\n xmlHtmlNode (html) {\n let node;\n //ensure text is escaped\n if (shims.DOMParser) {\n const parser = new shims.DOMParser();\n node = parser.parseFromString(html, \"text/xml\");\n } else {\n node = new ActiveXObject(\"Microsoft.XMLDOM\");\n node.async=\"false\";\n node.loadXML(html);\n }\n return node;\n },\n\n /** Function: getText\n * Get the concatenation of all text children of an element.\n *\n * Parameters:\n * (XMLElement) elem - A DOM element.\n *\n * Returns:\n * A String with the concatenated text of all text element children.\n */\n getText (elem) {\n if (!elem) { return null; }\n\n let str = \"\";\n if (elem.childNodes.length === 0 && elem.nodeType === Strophe.ElementType.TEXT) {\n str += elem.nodeValue;\n }\n for (let i=0; i 0) {\n value = css.join('; ');\n el.setAttribute(attribute, value);\n }\n } else {\n el.setAttribute(attribute, value);\n }\n }\n for (let i=0; i < elem.childNodes.length; i++) {\n el.appendChild(Strophe.createHtml(elem.childNodes[i]));\n }\n } catch(e) { // invalid elements\n el = Strophe.xmlTextNode('');\n }\n } else {\n el = Strophe.xmlGenerator().createDocumentFragment();\n for (let i=0; i < elem.childNodes.length; i++) {\n el.appendChild(Strophe.createHtml(elem.childNodes[i]));\n }\n }\n } else if (elem.nodeType === Strophe.ElementType.FRAGMENT) {\n el = Strophe.xmlGenerator().createDocumentFragment();\n for (let i=0; i < elem.childNodes.length; i++) {\n el.appendChild(Strophe.createHtml(elem.childNodes[i]));\n }\n } else if (elem.nodeType === Strophe.ElementType.TEXT) {\n el = Strophe.xmlTextNode(elem.nodeValue);\n }\n return el;\n },\n\n /** Function: escapeNode\n * Escape the node part (also called local part) of a JID.\n *\n * Parameters:\n * (String) node - A node (or local part).\n *\n * Returns:\n * An escaped node (or local part).\n */\n escapeNode (node) {\n if (typeof node !== \"string\") { return node; }\n return node.replace(/^\\s+|\\s+$/g, '')\n .replace(/\\\\/g, \"\\\\5c\")\n .replace(/ /g, \"\\\\20\")\n .replace(/\\\"/g, \"\\\\22\")\n .replace(/\\&/g, \"\\\\26\")\n .replace(/\\'/g, \"\\\\27\")\n .replace(/\\//g, \"\\\\2f\")\n .replace(/:/g, \"\\\\3a\")\n .replace(//g, \"\\\\3e\")\n .replace(/@/g, \"\\\\40\");\n },\n\n /** Function: unescapeNode\n * Unescape a node part (also called local part) of a JID.\n *\n * Parameters:\n * (String) node - A node (or local part).\n *\n * Returns:\n * An unescaped node (or local part).\n */\n unescapeNode (node) {\n if (typeof node !== \"string\") { return node; }\n return node.replace(/\\\\20/g, \" \")\n .replace(/\\\\22/g, '\"')\n .replace(/\\\\26/g, \"&\")\n .replace(/\\\\27/g, \"'\")\n .replace(/\\\\2f/g, \"/\")\n .replace(/\\\\3a/g, \":\")\n .replace(/\\\\3c/g, \"<\")\n .replace(/\\\\3e/g, \">\")\n .replace(/\\\\40/g, \"@\")\n .replace(/\\\\5c/g, \"\\\\\");\n },\n\n /** Function: getNodeFromJid\n * Get the node portion of a JID String.\n *\n * Parameters:\n * (String) jid - A JID.\n *\n * Returns:\n * A String containing the node.\n */\n getNodeFromJid (jid) {\n if (jid.indexOf(\"@\") < 0) { return null; }\n return jid.split(\"@\")[0];\n },\n\n /** Function: getDomainFromJid\n * Get the domain portion of a JID String.\n *\n * Parameters:\n * (String) jid - A JID.\n *\n * Returns:\n * A String containing the domain.\n */\n getDomainFromJid (jid) {\n const bare = Strophe.getBareJidFromJid(jid);\n if (bare.indexOf(\"@\") < 0) {\n return bare;\n } else {\n const parts = bare.split(\"@\");\n parts.splice(0, 1);\n return parts.join('@');\n }\n },\n\n /** Function: getResourceFromJid\n * Get the resource portion of a JID String.\n *\n * Parameters:\n * (String) jid - A JID.\n *\n * Returns:\n * A String containing the resource.\n */\n getResourceFromJid (jid) {\n if (!jid) { return null; }\n const s = jid.split(\"/\");\n if (s.length < 2) { return null; }\n s.splice(0, 1);\n return s.join('/');\n },\n\n /** Function: getBareJidFromJid\n * Get the bare JID from a JID String.\n *\n * Parameters:\n * (String) jid - A JID.\n *\n * Returns:\n * A String containing the bare JID.\n */\n getBareJidFromJid (jid) {\n return jid ? jid.split(\"/\")[0] : null;\n },\n\n /** PrivateFunction: _handleError\n * _Private_ function that properly logs an error to the console\n */\n _handleError (e) {\n if (typeof e.stack !== \"undefined\") {\n Strophe.fatal(e.stack);\n }\n if (e.sourceURL) {\n Strophe.fatal(\"error: \" + this.handler + \" \" + e.sourceURL + \":\" +\n e.line + \" - \" + e.name + \": \" + e.message);\n } else if (e.fileName) {\n Strophe.fatal(\"error: \" + this.handler + \" \" +\n e.fileName + \":\" + e.lineNumber + \" - \" +\n e.name + \": \" + e.message);\n } else {\n Strophe.fatal(\"error: \" + e.message);\n }\n },\n\n /** Function: log\n * User overrideable logging function.\n *\n * This function is called whenever the Strophe library calls any\n * of the logging functions. The default implementation of this\n * function logs only fatal errors. If client code wishes to handle the logging\n * messages, it should override this with\n * > Strophe.log = function (level, msg) {\n * > (user code here)\n * > };\n *\n * Please note that data sent and received over the wire is logged\n * via Strophe.Connection.rawInput() and Strophe.Connection.rawOutput().\n *\n * The different levels and their meanings are\n *\n * DEBUG - Messages useful for debugging purposes.\n * INFO - Informational messages. This is mostly information like\n * 'disconnect was called' or 'SASL auth succeeded'.\n * WARN - Warnings about potential problems. This is mostly used\n * to report transient connection errors like request timeouts.\n * ERROR - Some error occurred.\n * FATAL - A non-recoverable fatal error occurred.\n *\n * Parameters:\n * (Integer) level - The log level of the log message. This will\n * be one of the values in Strophe.LogLevel.\n * (String) msg - The log message.\n */\n log (level, msg) {\n if (level === this.LogLevel.FATAL) {\n console?.error(msg);\n }\n },\n\n /** Function: debug\n * Log a message at the Strophe.LogLevel.DEBUG level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n debug (msg) {\n this.log(this.LogLevel.DEBUG, msg);\n },\n\n /** Function: info\n * Log a message at the Strophe.LogLevel.INFO level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n info (msg) {\n this.log(this.LogLevel.INFO, msg);\n },\n\n /** Function: warn\n * Log a message at the Strophe.LogLevel.WARN level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n warn (msg) {\n this.log(this.LogLevel.WARN, msg);\n },\n\n /** Function: error\n * Log a message at the Strophe.LogLevel.ERROR level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n error (msg) {\n this.log(this.LogLevel.ERROR, msg);\n },\n\n /** Function: fatal\n * Log a message at the Strophe.LogLevel.FATAL level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n fatal (msg) {\n this.log(this.LogLevel.FATAL, msg);\n },\n\n /** Function: serialize\n * Render a DOM element and all descendants to a String.\n *\n * Parameters:\n * (XMLElement) elem - A DOM element.\n *\n * Returns:\n * The serialized element tree as a String.\n */\n serialize (elem) {\n if (!elem) { return null; }\n if (typeof(elem.tree) === \"function\") {\n elem = elem.tree();\n }\n const names = [...Array(elem.attributes.length).keys()].map(i => elem.attributes[i].nodeName);\n names.sort();\n let result = names.reduce(\n (a, n) => `${a} ${n}=\"${Strophe.xmlescape(elem.attributes.getNamedItem(n).value)}\"`,\n `<${elem.nodeName}`\n );\n\n if (elem.childNodes.length > 0) {\n result += \">\";\n for (let i=0; i < elem.childNodes.length; i++) {\n const child = elem.childNodes[i];\n switch (child.nodeType) {\n case Strophe.ElementType.NORMAL:\n // normal element, so recurse\n result += Strophe.serialize(child);\n break;\n case Strophe.ElementType.TEXT:\n // text element to escape values\n result += Strophe.xmlescape(child.nodeValue);\n break;\n case Strophe.ElementType.CDATA:\n // cdata section so don't escape values\n result += \"\";\n }\n }\n result += \"\";\n } else {\n result += \"/>\";\n }\n return result;\n },\n\n /** PrivateVariable: _requestId\n * _Private_ variable that keeps track of the request ids for\n * connections.\n */\n _requestId: 0,\n\n /** PrivateVariable: Strophe.connectionPlugins\n * _Private_ variable Used to store plugin names that need\n * initialization on Strophe.Connection construction.\n */\n _connectionPlugins: {},\n\n /** Function: addConnectionPlugin\n * Extends the Strophe.Connection object with the given plugin.\n *\n * Parameters:\n * (String) name - The name of the extension.\n * (Object) ptype - The plugin's prototype.\n */\n addConnectionPlugin (name, ptype) {\n Strophe._connectionPlugins[name] = ptype;\n }\n};\n\n/** Class: Strophe.Builder\n * XML DOM builder.\n *\n * This object provides an interface similar to JQuery but for building\n * DOM elements easily and rapidly. All the functions except for toString()\n * and tree() return the object, so calls can be chained. Here's an\n * example using the $iq() builder helper.\n * > $iq({to: 'you', from: 'me', type: 'get', id: '1'})\n * > .c('query', {xmlns: 'strophe:example'})\n * > .c('example')\n * > .toString()\n *\n * The above generates this XML fragment\n * > \n * > \n * > \n * > \n * > \n * The corresponding DOM manipulations to get a similar fragment would be\n * a lot more tedious and probably involve several helper variables.\n *\n * Since adding children makes new operations operate on the child, up()\n * is provided to traverse up the tree. To add two children, do\n * > builder.c('child1', ...).up().c('child2', ...)\n * The next operation on the Builder will be relative to the second child.\n */\n\n/** Constructor: Strophe.Builder\n * Create a Strophe.Builder object.\n *\n * The attributes should be passed in object notation. For example\n * > let b = new Builder('message', {to: 'you', from: 'me'});\n * or\n * > let b = new Builder('messsage', {'xml:lang': 'en'});\n *\n * Parameters:\n * (String) name - The name of the root element.\n * (Object) attrs - The attributes for the root element in object notation.\n *\n * Returns:\n * A new Strophe.Builder.\n */\n\nStrophe.Builder = class Builder {\n\n constructor (name, attrs) {\n // Set correct namespace for jabber:client elements\n if (name === \"presence\" || name === \"message\" || name === \"iq\") {\n if (attrs && !attrs.xmlns) {\n attrs.xmlns = Strophe.NS.CLIENT;\n } else if (!attrs) {\n attrs = {xmlns: Strophe.NS.CLIENT};\n }\n }\n // Holds the tree being built.\n this.nodeTree = Strophe.xmlElement(name, attrs);\n // Points to the current operation node.\n this.node = this.nodeTree;\n }\n\n /** Function: tree\n * Return the DOM tree.\n *\n * This function returns the current DOM tree as an element object. This\n * is suitable for passing to functions like Strophe.Connection.send().\n *\n * Returns:\n * The DOM tree as a element object.\n */\n tree () {\n return this.nodeTree;\n }\n\n /** Function: toString\n * Serialize the DOM tree to a String.\n *\n * This function returns a string serialization of the current DOM\n * tree. It is often used internally to pass data to a\n * Strophe.Request object.\n *\n * Returns:\n * The serialized DOM tree in a String.\n */\n toString () {\n return Strophe.serialize(this.nodeTree);\n }\n\n /** Function: up\n * Make the current parent element the new current element.\n *\n * This function is often used after c() to traverse back up the tree.\n * For example, to add two children to the same element\n * > builder.c('child1', {}).up().c('child2', {});\n *\n * Returns:\n * The Stophe.Builder object.\n */\n up () {\n this.node = this.node.parentNode;\n return this;\n }\n\n /** Function: root\n * Make the root element the new current element.\n *\n * When at a deeply nested element in the tree, this function can be used\n * to jump back to the root of the tree, instead of having to repeatedly\n * call up().\n *\n * Returns:\n * The Stophe.Builder object.\n */\n root () {\n this.node = this.nodeTree;\n return this;\n }\n\n /** Function: attrs\n * Add or modify attributes of the current element.\n *\n * The attributes should be passed in object notation. This function\n * does not move the current element pointer.\n *\n * Parameters:\n * (Object) moreattrs - The attributes to add/modify in object notation.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n attrs (moreattrs) {\n for (const k in moreattrs) {\n if (Object.prototype.hasOwnProperty.call(moreattrs, k)) {\n if (moreattrs[k] === undefined) {\n this.node.removeAttribute(k);\n } else {\n this.node.setAttribute(k, moreattrs[k]);\n }\n }\n }\n return this;\n }\n\n /** Function: c\n * Add a child to the current element and make it the new current\n * element.\n *\n * This function moves the current element pointer to the child,\n * unless text is provided. If you need to add another child, it\n * is necessary to use up() to go back to the parent in the tree.\n *\n * Parameters:\n * (String) name - The name of the child.\n * (Object) attrs - The attributes of the child in object notation.\n * (String) text - The text to add to the child.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n c (name, attrs, text) {\n const child = Strophe.xmlElement(name, attrs, text);\n this.node.appendChild(child);\n if (typeof text !== \"string\" && typeof text !==\"number\") {\n this.node = child;\n }\n return this;\n }\n\n /** Function: cnode\n * Add a child to the current element and make it the new current\n * element.\n *\n * This function is the same as c() except that instead of using a\n * name and an attributes object to create the child it uses an\n * existing DOM element object.\n *\n * Parameters:\n * (XMLElement) elem - A DOM element.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n cnode (elem) {\n let impNode;\n const xmlGen = Strophe.xmlGenerator();\n try {\n impNode = (xmlGen.importNode !== undefined);\n } catch (e) {\n impNode = false;\n }\n const newElem = impNode ? xmlGen.importNode(elem, true) : Strophe.copyElement(elem);\n this.node.appendChild(newElem);\n this.node = newElem;\n return this;\n }\n\n /** Function: t\n * Add a child text element.\n *\n * This *does not* make the child the new current element since there\n * are no children of text elements.\n *\n * Parameters:\n * (String) text - The text data to append to the current element.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n t (text) {\n const child = Strophe.xmlTextNode(text);\n this.node.appendChild(child);\n return this;\n }\n\n /** Function: h\n * Replace current element contents with the HTML passed in.\n *\n * This *does not* make the child the new current element\n *\n * Parameters:\n * (String) html - The html to insert as contents of current element.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n h (html) {\n const fragment = Strophe.xmlGenerator().createElement('body');\n // force the browser to try and fix any invalid HTML tags\n fragment.innerHTML = html;\n // copy cleaned html into an xml dom\n const xhtml = Strophe.createHtml(fragment);\n while (xhtml.childNodes.length > 0) {\n this.node.appendChild(xhtml.childNodes[0]);\n }\n return this;\n }\n};\n\n/** PrivateClass: Strophe.Handler\n * _Private_ helper class for managing stanza handlers.\n *\n * A Strophe.Handler encapsulates a user provided callback function to be\n * executed when matching stanzas are received by the connection.\n * Handlers can be either one-off or persistant depending on their\n * return value. Returning true will cause a Handler to remain active, and\n * returning false will remove the Handler.\n *\n * Users will not use Strophe.Handler objects directly, but instead they\n * will use Strophe.Connection.addHandler() and\n * Strophe.Connection.deleteHandler().\n */\n\n/** PrivateConstructor: Strophe.Handler\n * Create and initialize a new Strophe.Handler.\n *\n * Parameters:\n * (Function) handler - A function to be executed when the handler is run.\n * (String) ns - The namespace to match.\n * (String) name - The element name to match.\n * (String) type - The element type to match.\n * (String) id - The element id attribute to match.\n * (String) from - The element from attribute to match.\n * (Object) options - Handler options\n *\n * Returns:\n * A new Strophe.Handler object.\n */\nStrophe.Handler = function (handler, ns, name, type, id, from, options) {\n this.handler = handler;\n this.ns = ns;\n this.name = name;\n this.type = type;\n this.id = id;\n this.options = options || {'matchBareFromJid': false, 'ignoreNamespaceFragment': false};\n // BBB: Maintain backward compatibility with old `matchBare` option\n if (this.options.matchBare) {\n Strophe.warn('The \"matchBare\" option is deprecated, use \"matchBareFromJid\" instead.');\n this.options.matchBareFromJid = this.options.matchBare;\n delete this.options.matchBare;\n }\n if (this.options.matchBareFromJid) {\n this.from = from ? Strophe.getBareJidFromJid(from) : null;\n } else {\n this.from = from;\n }\n // whether the handler is a user handler or a system handler\n this.user = true;\n};\n\nStrophe.Handler.prototype = {\n /** PrivateFunction: getNamespace\n * Returns the XML namespace attribute on an element.\n * If `ignoreNamespaceFragment` was passed in for this handler, then the\n * URL fragment will be stripped.\n *\n * Parameters:\n * (XMLElement) elem - The XML element with the namespace.\n *\n * Returns:\n * The namespace, with optionally the fragment stripped.\n */\n getNamespace (elem) {\n let elNamespace = elem.getAttribute(\"xmlns\");\n if (elNamespace && this.options.ignoreNamespaceFragment) {\n elNamespace = elNamespace.split('#')[0];\n }\n return elNamespace;\n },\n\n /** PrivateFunction: namespaceMatch\n * Tests if a stanza matches the namespace set for this Strophe.Handler.\n *\n * Parameters:\n * (XMLElement) elem - The XML element to test.\n *\n * Returns:\n * true if the stanza matches and false otherwise.\n */\n namespaceMatch (elem) {\n let nsMatch = false;\n if (!this.ns) {\n return true;\n } else {\n Strophe.forEachChild(elem, null, (elem) => {\n if (this.getNamespace(elem) === this.ns) {\n nsMatch = true;\n }\n });\n return nsMatch || this.getNamespace(elem) === this.ns;\n }\n },\n\n /** PrivateFunction: isMatch\n * Tests if a stanza matches the Strophe.Handler.\n *\n * Parameters:\n * (XMLElement) elem - The XML element to test.\n *\n * Returns:\n * true if the stanza matches and false otherwise.\n */\n isMatch (elem) {\n let from = elem.getAttribute('from');\n if (this.options.matchBareFromJid) {\n from = Strophe.getBareJidFromJid(from);\n }\n const elem_type = elem.getAttribute(\"type\");\n if (this.namespaceMatch(elem) &&\n (!this.name || Strophe.isTagEqual(elem, this.name)) &&\n (!this.type || (Array.isArray(this.type) ? this.type.indexOf(elem_type) !== -1 : elem_type === this.type)) &&\n (!this.id || elem.getAttribute(\"id\") === this.id) &&\n (!this.from || from === this.from)) {\n return true;\n }\n return false;\n },\n\n /** PrivateFunction: run\n * Run the callback on a matching stanza.\n *\n * Parameters:\n * (XMLElement) elem - The DOM element that triggered the\n * Strophe.Handler.\n *\n * Returns:\n * A boolean indicating if the handler should remain active.\n */\n run (elem) {\n let result = null;\n try {\n result = this.handler(elem);\n } catch (e) {\n Strophe._handleError(e);\n throw e;\n }\n return result;\n },\n\n /** PrivateFunction: toString\n * Get a String representation of the Strophe.Handler object.\n *\n * Returns:\n * A String.\n */\n toString () {\n return \"{Handler: \" + this.handler + \"(\" + this.name + \",\" +\n this.id + \",\" + this.ns + \")}\";\n }\n};\n\n/** PrivateClass: Strophe.TimedHandler\n * _Private_ helper class for managing timed handlers.\n *\n * A Strophe.TimedHandler encapsulates a user provided callback that\n * should be called after a certain period of time or at regular\n * intervals. The return value of the callback determines whether the\n * Strophe.TimedHandler will continue to fire.\n *\n * Users will not use Strophe.TimedHandler objects directly, but instead\n * they will use Strophe.Connection.addTimedHandler() and\n * Strophe.Connection.deleteTimedHandler().\n */\nStrophe.TimedHandler = class TimedHandler {\n\n /** PrivateConstructor: Strophe.TimedHandler\n * Create and initialize a new Strophe.TimedHandler object.\n *\n * Parameters:\n * (Integer) period - The number of milliseconds to wait before the\n * handler is called.\n * (Function) handler - The callback to run when the handler fires. This\n * function should take no arguments.\n *\n * Returns:\n * A new Strophe.TimedHandler object.\n */\n constructor (period, handler) {\n this.period = period;\n this.handler = handler;\n this.lastCalled = new Date().getTime();\n this.user = true;\n }\n\n /** PrivateFunction: run\n * Run the callback for the Strophe.TimedHandler.\n *\n * Returns:\n * true if the Strophe.TimedHandler should be called again, and false\n * otherwise.\n */\n run () {\n this.lastCalled = new Date().getTime();\n return this.handler();\n }\n\n /** PrivateFunction: reset\n * Reset the last called time for the Strophe.TimedHandler.\n */\n reset () {\n this.lastCalled = new Date().getTime();\n }\n\n /** PrivateFunction: toString\n * Get a string representation of the Strophe.TimedHandler object.\n *\n * Returns:\n * The string representation.\n */\n toString () {\n return \"{TimedHandler: \" + this.handler + \"(\" + this.period +\")}\";\n }\n};\n\n/** Class: Strophe.Connection\n * XMPP Connection manager.\n *\n * This class is the main part of Strophe. It manages a BOSH or websocket\n * connection to an XMPP server and dispatches events to the user callbacks\n * as data arrives. It supports SASL PLAIN, SASL SCRAM-SHA-1\n * and legacy authentication.\n *\n * After creating a Strophe.Connection object, the user will typically\n * call connect() with a user supplied callback to handle connection level\n * events like authentication failure, disconnection, or connection\n * complete.\n *\n * The user will also have several event handlers defined by using\n * addHandler() and addTimedHandler(). These will allow the user code to\n * respond to interesting stanzas or do something periodically with the\n * connection. These handlers will be active once authentication is\n * finished.\n *\n * To send data to the connection, use send().\n */\n\n/** Constructor: Strophe.Connection\n * Create and initialize a Strophe.Connection object.\n *\n * The transport-protocol for this connection will be chosen automatically\n * based on the given service parameter. URLs starting with \"ws://\" or\n * \"wss://\" will use WebSockets, URLs starting with \"http://\", \"https://\"\n * or without a protocol will use BOSH.\n *\n * To make Strophe connect to the current host you can leave out the protocol\n * and host part and just pass the path, e.g.\n *\n * > let conn = new Strophe.Connection(\"/http-bind/\");\n *\n * Options common to both Websocket and BOSH:\n * ------------------------------------------\n *\n * cookies:\n *\n * The *cookies* option allows you to pass in cookies to be added to the\n * document. These cookies will then be included in the BOSH XMLHttpRequest\n * or in the websocket connection.\n *\n * The passed in value must be a map of cookie names and string values.\n *\n * > { \"myCookie\": {\n * > \"value\": \"1234\",\n * > \"domain\": \".example.org\",\n * > \"path\": \"/\",\n * > \"expires\": expirationDate\n * > }\n * > }\n *\n * Note that cookies can't be set in this way for other domains (i.e. cross-domain).\n * Those cookies need to be set under those domains, for example they can be\n * set server-side by making a XHR call to that domain to ask it to set any\n * necessary cookies.\n *\n * mechanisms:\n *\n * The *mechanisms* option allows you to specify the SASL mechanisms that this\n * instance of Strophe.Connection (and therefore your XMPP client) will\n * support.\n *\n * The value must be an array of objects with Strophe.SASLMechanism\n * prototypes.\n *\n * If nothing is specified, then the following mechanisms (and their\n * priorities) are registered:\n *\n * SCRAM-SHA-1 - 60\n * PLAIN - 50\n * OAUTHBEARER - 40\n * X-OAUTH2 - 30\n * ANONYMOUS - 20\n * EXTERNAL - 10\n *\n * explicitResourceBinding:\n *\n * If `explicitResourceBinding` is set to a truthy value, then the XMPP client\n * needs to explicitly call `Strophe.Connection.prototype.bind` once the XMPP\n * server has advertised the \"urn:ietf:params:xml:ns:xmpp-bind\" feature.\n *\n * Making this step explicit allows client authors to first finish other\n * stream related tasks, such as setting up an XEP-0198 Stream Management\n * session, before binding the JID resource for this session.\n *\n * WebSocket options:\n * ------------------\n *\n * protocol:\n *\n * If you want to connect to the current host with a WebSocket connection you\n * can tell Strophe to use WebSockets through a \"protocol\" attribute in the\n * optional options parameter. Valid values are \"ws\" for WebSocket and \"wss\"\n * for Secure WebSocket.\n * So to connect to \"wss://CURRENT_HOSTNAME/xmpp-websocket\" you would call\n *\n * > let conn = new Strophe.Connection(\"/xmpp-websocket/\", {protocol: \"wss\"});\n *\n * Note that relative URLs _NOT_ starting with a \"/\" will also include the path\n * of the current site.\n *\n * Also because downgrading security is not permitted by browsers, when using\n * relative URLs both BOSH and WebSocket connections will use their secure\n * variants if the current connection to the site is also secure (https).\n *\n * worker:\n *\n * Set this option to URL from where the shared worker script should be loaded.\n *\n * To run the websocket connection inside a shared worker.\n * This allows you to share a single websocket-based connection between\n * multiple Strophe.Connection instances, for example one per browser tab.\n *\n * The script to use is the one in `src/shared-connection-worker.js`.\n *\n * BOSH options:\n * -------------\n *\n * By adding \"sync\" to the options, you can control if requests will\n * be made synchronously or not. The default behaviour is asynchronous.\n * If you want to make requests synchronous, make \"sync\" evaluate to true.\n * > let conn = new Strophe.Connection(\"/http-bind/\", {sync: true});\n *\n * You can also toggle this on an already established connection.\n * > conn.options.sync = true;\n *\n * The *customHeaders* option can be used to provide custom HTTP headers to be\n * included in the XMLHttpRequests made.\n *\n * The *keepalive* option can be used to instruct Strophe to maintain the\n * current BOSH session across interruptions such as webpage reloads.\n *\n * It will do this by caching the sessions tokens in sessionStorage, and when\n * \"restore\" is called it will check whether there are cached tokens with\n * which it can resume an existing session.\n *\n * The *withCredentials* option should receive a Boolean value and is used to\n * indicate wether cookies should be included in ajax requests (by default\n * they're not).\n * Set this value to true if you are connecting to a BOSH service\n * and for some reason need to send cookies to it.\n * In order for this to work cross-domain, the server must also enable\n * credentials by setting the Access-Control-Allow-Credentials response header\n * to \"true\". For most usecases however this setting should be false (which\n * is the default).\n * Additionally, when using Access-Control-Allow-Credentials, the\n * Access-Control-Allow-Origin header can't be set to the wildcard \"*\", but\n * instead must be restricted to actual domains.\n *\n * The *contentType* option can be set to change the default Content-Type\n * of \"text/xml; charset=utf-8\", which can be useful to reduce the amount of\n * CORS preflight requests that are sent to the server.\n *\n * Parameters:\n * (String) service - The BOSH or WebSocket service URL.\n * (Object) options - A hash of configuration options\n *\n * Returns:\n * A new Strophe.Connection object.\n */\n\nStrophe.Connection = class Connection {\n\n constructor (service, options) {\n // The service URL\n this.service = service;\n // Configuration options\n this.options = options || {};\n\n this.setProtocol();\n\n /* The connected JID. */\n this.jid = \"\";\n /* the JIDs domain */\n this.domain = null;\n /* stream:features */\n this.features = null;\n\n // SASL\n this._sasl_data = {};\n this.do_bind = false;\n this.do_session = false;\n this.mechanisms = {}\n\n // handler lists\n this.timedHandlers = [];\n this.handlers = [];\n this.removeTimeds = [];\n this.removeHandlers = [];\n this.addTimeds = [];\n this.addHandlers = [];\n this.protocolErrorHandlers = {\n 'HTTP': {},\n 'websocket': {}\n };\n\n this._idleTimeout = null;\n this._disconnectTimeout = null;\n\n this.authenticated = false;\n this.connected = false;\n this.disconnecting = false;\n this.do_authentication = true;\n this.paused = false;\n this.restored = false;\n\n this._data = [];\n this._uniqueId = 0;\n\n this._sasl_success_handler = null;\n this._sasl_failure_handler = null;\n this._sasl_challenge_handler = null;\n\n // Max retries before disconnecting\n this.maxRetries = 5;\n\n // Call onIdle callback every 1/10th of a second\n this._idleTimeout = setTimeout(() => this._onIdle(), 100);\n\n utils.addCookies(this.options.cookies);\n this.registerSASLMechanisms(this.options.mechanisms);\n\n // initialize plugins\n for (const k in Strophe._connectionPlugins) {\n if (Object.prototype.hasOwnProperty.call(Strophe._connectionPlugins, k)) {\n const F = function () {};\n F.prototype = Strophe._connectionPlugins[k];\n this[k] = new F();\n this[k].init(this);\n }\n }\n }\n\n /** Function: setProtocol\n * Select protocal based on this.options or this.service\n */\n setProtocol () {\n const proto = this.options.protocol || \"\";\n if (this.options.worker) {\n this._proto = new Strophe.WorkerWebsocket(this);\n } else if (\n this.service.indexOf(\"ws:\") === 0 ||\n this.service.indexOf(\"wss:\") === 0 ||\n proto.indexOf(\"ws\") === 0) {\n this._proto = new Strophe.Websocket(this);\n } else {\n this._proto = new Strophe.Bosh(this);\n }\n }\n\n /** Function: reset\n * Reset the connection.\n *\n * This function should be called after a connection is disconnected\n * before that connection is reused.\n */\n reset () {\n this._proto._reset();\n\n // SASL\n this.do_session = false;\n this.do_bind = false;\n\n // handler lists\n this.timedHandlers = [];\n this.handlers = [];\n this.removeTimeds = [];\n this.removeHandlers = [];\n this.addTimeds = [];\n this.addHandlers = [];\n\n this.authenticated = false;\n this.connected = false;\n this.disconnecting = false;\n this.restored = false;\n\n this._data = [];\n this._requests = [];\n this._uniqueId = 0;\n }\n\n /** Function: pause\n * Pause the request manager.\n *\n * This will prevent Strophe from sending any more requests to the\n * server. This is very useful for temporarily pausing\n * BOSH-Connections while a lot of send() calls are happening quickly.\n * This causes Strophe to send the data in a single request, saving\n * many request trips.\n */\n pause () {\n this.paused = true;\n }\n\n /** Function: resume\n * Resume the request manager.\n *\n * This resumes after pause() has been called.\n */\n resume () {\n this.paused = false;\n }\n\n /** Function: getUniqueId\n * Generate a unique ID for use in elements.\n *\n * All stanzas are required to have unique id attributes. This\n * function makes creating these easy. Each connection instance has\n * a counter which starts from zero, and the value of this counter\n * plus a colon followed by the suffix becomes the unique id. If no\n * suffix is supplied, the counter is used as the unique id.\n *\n * Suffixes are used to make debugging easier when reading the stream\n * data, and their use is recommended. The counter resets to 0 for\n * every new connection for the same reason. For connections to the\n * same server that authenticate the same way, all the ids should be\n * the same, which makes it easy to see changes. This is useful for\n * automated testing as well.\n *\n * Parameters:\n * (String) suffix - A optional suffix to append to the id.\n *\n * Returns:\n * A unique string to be used for the id attribute.\n */\n getUniqueId (suffix) { // eslint-disable-line class-methods-use-this\n const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = Math.random() * 16 | 0,\n v = c === 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n if (typeof(suffix) === \"string\" || typeof(suffix) === \"number\") {\n return uuid + \":\" + suffix;\n } else {\n return uuid + \"\";\n }\n }\n\n /** Function: addProtocolErrorHandler\n * Register a handler function for when a protocol (websocker or HTTP)\n * error occurs.\n *\n * NOTE: Currently only HTTP errors for BOSH requests are handled.\n * Patches that handle websocket errors would be very welcome.\n *\n * Parameters:\n * (String) protocol - 'HTTP' or 'websocket'\n * (Integer) status_code - Error status code (e.g 500, 400 or 404)\n * (Function) callback - Function that will fire on Http error\n *\n * Example:\n * function onError(err_code){\n * //do stuff\n * }\n *\n * let conn = Strophe.connect('http://example.com/http-bind');\n * conn.addProtocolErrorHandler('HTTP', 500, onError);\n * // Triggers HTTP 500 error and onError handler will be called\n * conn.connect('user_jid@incorrect_jabber_host', 'secret', onConnect);\n */\n addProtocolErrorHandler (protocol, status_code, callback){\n this.protocolErrorHandlers[protocol][status_code] = callback;\n }\n\n /** Function: connect\n * Starts the connection process.\n *\n * As the connection process proceeds, the user supplied callback will\n * be triggered multiple times with status updates. The callback\n * should take two arguments - the status code and the error condition.\n *\n * The status code will be one of the values in the Strophe.Status\n * constants. The error condition will be one of the conditions\n * defined in RFC 3920 or the condition 'strophe-parsererror'.\n *\n * The Parameters _wait_, _hold_ and _route_ are optional and only relevant\n * for BOSH connections. Please see XEP 124 for a more detailed explanation\n * of the optional parameters.\n *\n * Parameters:\n * (String) jid - The user's JID. This may be a bare JID,\n * or a full JID. If a node is not supplied, SASL OAUTHBEARER or\n * SASL ANONYMOUS authentication will be attempted (OAUTHBEARER will\n * process the provided password value as an access token).\n * (String) pass - The user's password.\n * (Function) callback - The connect callback function.\n * (Integer) wait - The optional HTTPBIND wait value. This is the\n * time the server will wait before returning an empty result for\n * a request. The default setting of 60 seconds is recommended.\n * (Integer) hold - The optional HTTPBIND hold value. This is the\n * number of connections the server will hold at one time. This\n * should almost always be set to 1 (the default).\n * (String) route - The optional route value.\n * (String) authcid - The optional alternative authentication identity\n * (username) if intending to impersonate another user.\n * When using the SASL-EXTERNAL authentication mechanism, for example\n * with client certificates, then the authcid value is used to\n * determine whether an authorization JID (authzid) should be sent to\n * the server. The authzid should NOT be sent to the server if the\n * authzid and authcid are the same. So to prevent it from being sent\n * (for example when the JID is already contained in the client\n * certificate), set authcid to that same JID. See XEP-178 for more\n * details.\n */\n connect (jid, pass, callback, wait, hold, route, authcid) {\n this.jid = jid;\n /** Variable: authzid\n * Authorization identity.\n */\n this.authzid = Strophe.getBareJidFromJid(this.jid);\n\n /** Variable: authcid\n * Authentication identity (User name).\n */\n this.authcid = authcid || Strophe.getNodeFromJid(this.jid);\n\n /** Variable: pass\n * Authentication identity (User password).\n */\n this.pass = pass;\n\n this.connect_callback = callback;\n this.disconnecting = false;\n this.connected = false;\n this.authenticated = false;\n this.restored = false;\n\n // parse jid for domain\n this.domain = Strophe.getDomainFromJid(this.jid);\n\n this._changeConnectStatus(Strophe.Status.CONNECTING, null);\n\n this._proto._connect(wait, hold, route);\n }\n\n /** Function: attach\n * Attach to an already created and authenticated BOSH session.\n *\n * This function is provided to allow Strophe to attach to BOSH\n * sessions which have been created externally, perhaps by a Web\n * application. This is often used to support auto-login type features\n * without putting user credentials into the page.\n *\n * Parameters:\n * (String) jid - The full JID that is bound by the session.\n * (String) sid - The SID of the BOSH session.\n * (String) rid - The current RID of the BOSH session. This RID\n * will be used by the next request.\n * (Function) callback The connect callback function.\n * (Integer) wait - The optional HTTPBIND wait value. This is the\n * time the server will wait before returning an empty result for\n * a request. The default setting of 60 seconds is recommended.\n * Other settings will require tweaks to the Strophe.TIMEOUT value.\n * (Integer) hold - The optional HTTPBIND hold value. This is the\n * number of connections the server will hold at one time. This\n * should almost always be set to 1 (the default).\n * (Integer) wind - The optional HTTBIND window value. This is the\n * allowed range of request ids that are valid. The default is 5.\n */\n attach (jid, sid, rid, callback, wait, hold, wind) {\n if (this._proto._attach) {\n return this._proto._attach(jid, sid, rid, callback, wait, hold, wind);\n } else {\n const error = new Error('The \"attach\" method is not available for your connection protocol');\n error.name = 'StropheSessionError';\n throw error;\n }\n }\n\n /** Function: restore\n * Attempt to restore a cached BOSH session.\n *\n * This function is only useful in conjunction with providing the\n * \"keepalive\":true option when instantiating a new Strophe.Connection.\n *\n * When \"keepalive\" is set to true, Strophe will cache the BOSH tokens\n * RID (Request ID) and SID (Session ID) and then when this function is\n * called, it will attempt to restore the session from those cached\n * tokens.\n *\n * This function must therefore be called instead of connect or attach.\n *\n * For an example on how to use it, please see examples/restore.js\n *\n * Parameters:\n * (String) jid - The user's JID. This may be a bare JID or a full JID.\n * (Function) callback - The connect callback function.\n * (Integer) wait - The optional HTTPBIND wait value. This is the\n * time the server will wait before returning an empty result for\n * a request. The default setting of 60 seconds is recommended.\n * (Integer) hold - The optional HTTPBIND hold value. This is the\n * number of connections the server will hold at one time. This\n * should almost always be set to 1 (the default).\n * (Integer) wind - The optional HTTBIND window value. This is the\n * allowed range of request ids that are valid. The default is 5.\n */\n restore (jid, callback, wait, hold, wind) {\n if (this._sessionCachingSupported()) {\n this._proto._restore(jid, callback, wait, hold, wind);\n } else {\n const error = new Error('The \"restore\" method can only be used with a BOSH connection.');\n error.name = 'StropheSessionError';\n throw error;\n }\n }\n\n /** PrivateFunction: _sessionCachingSupported\n * Checks whether sessionStorage and JSON are supported and whether we're\n * using BOSH.\n */\n _sessionCachingSupported () {\n if (this._proto instanceof Strophe.Bosh) {\n if (!JSON) { return false; }\n try {\n sessionStorage.setItem('_strophe_', '_strophe_');\n sessionStorage.removeItem('_strophe_');\n } catch (e) {\n return false;\n }\n return true;\n }\n return false;\n }\n\n /** Function: xmlInput\n * User overrideable function that receives XML data coming into the\n * connection.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.xmlInput = function (elem) {\n * > (user code)\n * > };\n *\n * Due to limitations of current Browsers' XML-Parsers the opening and closing\n * tag for WebSocket-Connoctions will be passed as selfclosing here.\n *\n * BOSH-Connections will have all stanzas wrapped in a tag. See\n * if you want to strip this tag.\n *\n * Parameters:\n * (XMLElement) elem - The XML data received by the connection.\n */\n xmlInput (elem) { // eslint-disable-line\n return;\n }\n\n /** Function: xmlOutput\n * User overrideable function that receives XML data sent to the\n * connection.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.xmlOutput = function (elem) {\n * > (user code)\n * > };\n *\n * Due to limitations of current Browsers' XML-Parsers the opening and closing\n * tag for WebSocket-Connoctions will be passed as selfclosing here.\n *\n * BOSH-Connections will have all stanzas wrapped in a tag. See\n * if you want to strip this tag.\n *\n * Parameters:\n * (XMLElement) elem - The XMLdata sent by the connection.\n */\n xmlOutput (elem) { // eslint-disable-line\n return;\n }\n\n /** Function: rawInput\n * User overrideable function that receives raw data coming into the\n * connection.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.rawInput = function (data) {\n * > (user code)\n * > };\n *\n * Parameters:\n * (String) data - The data received by the connection.\n */\n rawInput (data) { // eslint-disable-line\n return;\n }\n\n /** Function: rawOutput\n * User overrideable function that receives raw data sent to the\n * connection.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.rawOutput = function (data) {\n * > (user code)\n * > };\n *\n * Parameters:\n * (String) data - The data sent by the connection.\n */\n rawOutput (data) { // eslint-disable-line\n return;\n }\n\n /** Function: nextValidRid\n * User overrideable function that receives the new valid rid.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.nextValidRid = function (rid) {\n * > (user code)\n * > };\n *\n * Parameters:\n * (Number) rid - The next valid rid\n */\n nextValidRid (rid) { // eslint-disable-line\n return;\n }\n\n /** Function: send\n * Send a stanza.\n *\n * This function is called to push data onto the send queue to\n * go out over the wire. Whenever a request is sent to the BOSH\n * server, all pending data is sent and the queue is flushed.\n *\n * Parameters:\n * (XMLElement |\n * [XMLElement] |\n * Strophe.Builder) elem - The stanza to send.\n */\n send (elem) {\n if (elem === null) { return ; }\n if (typeof(elem.sort) === \"function\") {\n for (let i=0; i < elem.length; i++) {\n this._queueData(elem[i]);\n }\n } else if (typeof(elem.tree) === \"function\") {\n this._queueData(elem.tree());\n } else {\n this._queueData(elem);\n }\n this._proto._send();\n }\n\n /** Function: flush\n * Immediately send any pending outgoing data.\n *\n * Normally send() queues outgoing data until the next idle period\n * (100ms), which optimizes network use in the common cases when\n * several send()s are called in succession. flush() can be used to\n * immediately send all pending data.\n */\n flush () {\n // cancel the pending idle period and run the idle function\n // immediately\n clearTimeout(this._idleTimeout);\n this._onIdle();\n }\n\n /** Function: sendPresence\n * Helper function to send presence stanzas. The main benefit is for\n * sending presence stanzas for which you expect a responding presence\n * stanza with the same id (for example when leaving a chat room).\n *\n * Parameters:\n * (XMLElement) elem - The stanza to send.\n * (Function) callback - The callback function for a successful request.\n * (Function) errback - The callback function for a failed or timed\n * out request. On timeout, the stanza will be null.\n * (Integer) timeout - The time specified in milliseconds for a\n * timeout to occur.\n *\n * Returns:\n * The id used to send the presence.\n */\n sendPresence (elem, callback, errback, timeout) {\n let timeoutHandler = null;\n if (typeof(elem.tree) === \"function\") {\n elem = elem.tree();\n }\n let id = elem.getAttribute('id');\n if (!id) { // inject id if not found\n id = this.getUniqueId(\"sendPresence\");\n elem.setAttribute(\"id\", id);\n }\n\n if (typeof callback === \"function\" || typeof errback === \"function\") {\n const handler = this.addHandler(stanza => {\n // remove timeout handler if there is one\n if (timeoutHandler) {\n this.deleteTimedHandler(timeoutHandler);\n }\n if (stanza.getAttribute('type') === 'error') {\n if (errback) {\n errback(stanza);\n }\n } else if (callback) {\n callback(stanza);\n }\n }, null, 'presence', null, id);\n\n // if timeout specified, set up a timeout handler.\n if (timeout) {\n timeoutHandler = this.addTimedHandler(timeout, () => {\n // get rid of normal handler\n this.deleteHandler(handler);\n // call errback on timeout with null stanza\n if (errback) {\n errback(null);\n }\n return false;\n });\n }\n }\n this.send(elem);\n return id;\n }\n\n /** Function: sendIQ\n * Helper function to send IQ stanzas.\n *\n * Parameters:\n * (XMLElement) elem - The stanza to send.\n * (Function) callback - The callback function for a successful request.\n * (Function) errback - The callback function for a failed or timed\n * out request. On timeout, the stanza will be null.\n * (Integer) timeout - The time specified in milliseconds for a\n * timeout to occur.\n *\n * Returns:\n * The id used to send the IQ.\n */\n sendIQ (elem, callback, errback, timeout) {\n let timeoutHandler = null;\n if (typeof(elem.tree) === \"function\") {\n elem = elem.tree();\n }\n let id = elem.getAttribute('id');\n if (!id) { // inject id if not found\n id = this.getUniqueId(\"sendIQ\");\n elem.setAttribute(\"id\", id);\n }\n\n if (typeof callback === \"function\" || typeof errback === \"function\") {\n const handler = this.addHandler(stanza => {\n // remove timeout handler if there is one\n if (timeoutHandler) {\n this.deleteTimedHandler(timeoutHandler);\n }\n const iqtype = stanza.getAttribute('type');\n if (iqtype === 'result') {\n if (callback) {\n callback(stanza);\n }\n } else if (iqtype === 'error') {\n if (errback) {\n errback(stanza);\n }\n } else {\n const error = new Error(`Got bad IQ type of ${iqtype}`);\n error.name = \"StropheError\";\n throw(error);\n }\n }, null, 'iq', ['error', 'result'], id);\n\n // if timeout specified, set up a timeout handler.\n if (timeout) {\n timeoutHandler = this.addTimedHandler(timeout, () => {\n // get rid of normal handler\n this.deleteHandler(handler);\n // call errback on timeout with null stanza\n if (errback) {\n errback(null);\n }\n return false;\n });\n }\n }\n this.send(elem);\n return id;\n }\n\n /** PrivateFunction: _queueData\n * Queue outgoing data for later sending. Also ensures that the data\n * is a DOMElement.\n */\n _queueData (element) {\n if (element === null ||\n !element.tagName ||\n !element.childNodes) {\n const error = new Error(\"Cannot queue non-DOMElement.\");\n error.name = \"StropheError\";\n throw(error);\n }\n this._data.push(element);\n }\n\n /** PrivateFunction: _sendRestart\n * Send an xmpp:restart stanza.\n */\n _sendRestart () {\n this._data.push(\"restart\");\n this._proto._sendRestart();\n this._idleTimeout = setTimeout(() => this._onIdle(), 100);\n }\n\n /** Function: addTimedHandler\n * Add a timed handler to the connection.\n *\n * This function adds a timed handler. The provided handler will\n * be called every period milliseconds until it returns false,\n * the connection is terminated, or the handler is removed. Handlers\n * that wish to continue being invoked should return true.\n *\n * Because of method binding it is necessary to save the result of\n * this function if you wish to remove a handler with\n * deleteTimedHandler().\n *\n * Note that user handlers are not active until authentication is\n * successful.\n *\n * Parameters:\n * (Integer) period - The period of the handler.\n * (Function) handler - The callback function.\n *\n * Returns:\n * A reference to the handler that can be used to remove it.\n */\n addTimedHandler (period, handler) {\n const thand = new Strophe.TimedHandler(period, handler);\n this.addTimeds.push(thand);\n return thand;\n }\n\n /** Function: deleteTimedHandler\n * Delete a timed handler for a connection.\n *\n * This function removes a timed handler from the connection. The\n * handRef parameter is *not* the function passed to addTimedHandler(),\n * but is the reference returned from addTimedHandler().\n *\n * Parameters:\n * (Strophe.TimedHandler) handRef - The handler reference.\n */\n deleteTimedHandler (handRef) {\n // this must be done in the Idle loop so that we don't change\n // the handlers during iteration\n this.removeTimeds.push(handRef);\n }\n\n /** Function: addHandler\n * Add a stanza handler for the connection.\n *\n * This function adds a stanza handler to the connection. The\n * handler callback will be called for any stanza that matches\n * the parameters. Note that if multiple parameters are supplied,\n * they must all match for the handler to be invoked.\n *\n * The handler will receive the stanza that triggered it as its argument.\n * *The handler should return true if it is to be invoked again;\n * returning false will remove the handler after it returns.*\n *\n * As a convenience, the ns parameters applies to the top level element\n * and also any of its immediate children. This is primarily to make\n * matching /iq/query elements easy.\n *\n * Options\n * ~~~~~~~\n * With the options argument, you can specify boolean flags that affect how\n * matches are being done.\n *\n * Currently two flags exist:\n *\n * - matchBareFromJid:\n * When set to true, the from parameter and the\n * from attribute on the stanza will be matched as bare JIDs instead\n * of full JIDs. To use this, pass {matchBareFromJid: true} as the\n * value of options. The default value for matchBareFromJid is false.\n *\n * - ignoreNamespaceFragment:\n * When set to true, a fragment specified on the stanza's namespace\n * URL will be ignored when it's matched with the one configured for\n * the handler.\n *\n * This means that if you register like this:\n * > connection.addHandler(\n * > handler,\n * > 'http://jabber.org/protocol/muc',\n * > null, null, null, null,\n * > {'ignoreNamespaceFragment': true}\n * > );\n *\n * Then a stanza with XML namespace of\n * 'http://jabber.org/protocol/muc#user' will also be matched. If\n * 'ignoreNamespaceFragment' is false, then only stanzas with\n * 'http://jabber.org/protocol/muc' will be matched.\n *\n * Deleting the handler\n * ~~~~~~~~~~~~~~~~~~~~\n * The return value should be saved if you wish to remove the handler\n * with deleteHandler().\n *\n * Parameters:\n * (Function) handler - The user callback.\n * (String) ns - The namespace to match.\n * (String) name - The stanza name to match.\n * (String|Array) type - The stanza type (or types if an array) to match.\n * (String) id - The stanza id attribute to match.\n * (String) from - The stanza from attribute to match.\n * (String) options - The handler options\n *\n * Returns:\n * A reference to the handler that can be used to remove it.\n */\n addHandler (handler, ns, name, type, id, from, options) {\n const hand = new Strophe.Handler(handler, ns, name, type, id, from, options);\n this.addHandlers.push(hand);\n return hand;\n }\n\n /** Function: deleteHandler\n * Delete a stanza handler for a connection.\n *\n * This function removes a stanza handler from the connection. The\n * handRef parameter is *not* the function passed to addHandler(),\n * but is the reference returned from addHandler().\n *\n * Parameters:\n * (Strophe.Handler) handRef - The handler reference.\n */\n deleteHandler (handRef) {\n // this must be done in the Idle loop so that we don't change\n // the handlers during iteration\n this.removeHandlers.push(handRef);\n // If a handler is being deleted while it is being added,\n // prevent it from getting added\n const i = this.addHandlers.indexOf(handRef);\n if (i >= 0) {\n this.addHandlers.splice(i, 1);\n }\n }\n\n /** Function: registerSASLMechanisms\n *\n * Register the SASL mechanisms which will be supported by this instance of\n * Strophe.Connection (i.e. which this XMPP client will support).\n *\n * Parameters:\n * (Array) mechanisms - Array of objects with Strophe.SASLMechanism prototypes\n *\n */\n registerSASLMechanisms (mechanisms) {\n this.mechanisms = {};\n mechanisms = mechanisms || [\n Strophe.SASLAnonymous,\n Strophe.SASLExternal,\n Strophe.SASLOAuthBearer,\n Strophe.SASLXOAuth2,\n Strophe.SASLPlain,\n Strophe.SASLSHA1\n ];\n mechanisms.forEach(m => this.registerSASLMechanism(m));\n }\n\n /** Function: registerSASLMechanism\n *\n * Register a single SASL mechanism, to be supported by this client.\n *\n * Parameters:\n * (Object) mechanism - Object with a Strophe.SASLMechanism prototype\n *\n */\n registerSASLMechanism (Mechanism) {\n const mechanism = new Mechanism()\n this.mechanisms[mechanism.mechname] = mechanism;\n }\n\n /** Function: disconnect\n * Start the graceful disconnection process.\n *\n * This function starts the disconnection process. This process starts\n * by sending unavailable presence and sending BOSH body of type\n * terminate. A timeout handler makes sure that disconnection happens\n * even if the BOSH server does not respond.\n * If the Connection object isn't connected, at least tries to abort all pending requests\n * so the connection object won't generate successful requests (which were already opened).\n *\n * The user supplied connection callback will be notified of the\n * progress as this process happens.\n *\n * Parameters:\n * (String) reason - The reason the disconnect is occuring.\n */\n disconnect (reason) {\n this._changeConnectStatus(Strophe.Status.DISCONNECTING, reason);\n if (reason) {\n Strophe.warn(\"Disconnect was called because: \" + reason);\n } else {\n Strophe.info(\"Disconnect was called\");\n }\n if (this.connected) {\n let pres = false;\n this.disconnecting = true;\n if (this.authenticated) {\n pres = $pres({\n 'xmlns': Strophe.NS.CLIENT,\n 'type': 'unavailable'\n });\n }\n // setup timeout handler\n this._disconnectTimeout = this._addSysTimedHandler(\n 3000, this._onDisconnectTimeout.bind(this));\n this._proto._disconnect(pres);\n } else {\n Strophe.warn(\"Disconnect was called before Strophe connected to the server\");\n this._proto._abortAllRequests();\n this._doDisconnect();\n }\n }\n\n /** PrivateFunction: _changeConnectStatus\n * _Private_ helper function that makes sure plugins and the user's\n * callback are notified of connection status changes.\n *\n * Parameters:\n * (Integer) status - the new connection status, one of the values\n * in Strophe.Status\n * (String) condition - the error condition or null\n * (XMLElement) elem - The triggering stanza.\n */\n _changeConnectStatus (status, condition, elem) {\n // notify all plugins listening for status changes\n for (const k in Strophe._connectionPlugins) {\n if (Object.prototype.hasOwnProperty.call(Strophe._connectionPlugins, k)) {\n const plugin = this[k];\n if (plugin.statusChanged) {\n try {\n plugin.statusChanged(status, condition);\n } catch (err) {\n Strophe.error(`${k} plugin caused an exception changing status: ${err}`);\n }\n }\n }\n }\n // notify the user's callback\n if (this.connect_callback) {\n try {\n this.connect_callback(status, condition, elem);\n } catch (e) {\n Strophe._handleError(e);\n Strophe.error(`User connection callback caused an exception: ${e}`);\n }\n }\n }\n\n /** PrivateFunction: _doDisconnect\n * _Private_ function to disconnect.\n *\n * This is the last piece of the disconnection logic. This resets the\n * connection and alerts the user's connection callback.\n */\n _doDisconnect (condition) {\n if (typeof this._idleTimeout === \"number\") {\n clearTimeout(this._idleTimeout);\n }\n\n // Cancel Disconnect Timeout\n if (this._disconnectTimeout !== null) {\n this.deleteTimedHandler(this._disconnectTimeout);\n this._disconnectTimeout = null;\n }\n\n Strophe.debug(\"_doDisconnect was called\");\n this._proto._doDisconnect();\n\n this.authenticated = false;\n this.disconnecting = false;\n this.restored = false;\n\n // delete handlers\n this.handlers = [];\n this.timedHandlers = [];\n this.removeTimeds = [];\n this.removeHandlers = [];\n this.addTimeds = [];\n this.addHandlers = [];\n\n // tell the parent we disconnected\n this._changeConnectStatus(Strophe.Status.DISCONNECTED, condition);\n this.connected = false;\n }\n\n /** PrivateFunction: _dataRecv\n * _Private_ handler to processes incoming data from the the connection.\n *\n * Except for _connect_cb handling the initial connection request,\n * this function handles the incoming data for all requests. This\n * function also fires stanza handlers that match each incoming\n * stanza.\n *\n * Parameters:\n * (Strophe.Request) req - The request that has data ready.\n * (string) req - The stanza a raw string (optiona).\n */\n _dataRecv (req, raw) {\n const elem = this._proto._reqToData(req);\n if (elem === null) { return; }\n\n if (this.xmlInput !== Strophe.Connection.prototype.xmlInput) {\n if (elem.nodeName === this._proto.strip && elem.childNodes.length) {\n this.xmlInput(elem.childNodes[0]);\n } else {\n this.xmlInput(elem);\n }\n }\n if (this.rawInput !== Strophe.Connection.prototype.rawInput) {\n if (raw) {\n this.rawInput(raw);\n } else {\n this.rawInput(Strophe.serialize(elem));\n }\n }\n\n // remove handlers scheduled for deletion\n while (this.removeHandlers.length > 0) {\n const hand = this.removeHandlers.pop();\n const i = this.handlers.indexOf(hand);\n if (i >= 0) {\n this.handlers.splice(i, 1);\n }\n }\n\n // add handlers scheduled for addition\n while (this.addHandlers.length > 0) {\n this.handlers.push(this.addHandlers.pop());\n }\n\n // handle graceful disconnect\n if (this.disconnecting && this._proto._emptyQueue()) {\n this._doDisconnect();\n return;\n }\n\n const type = elem.getAttribute(\"type\");\n if (type !== null && type === \"terminate\") {\n // Don't process stanzas that come in after disconnect\n if (this.disconnecting) {\n return;\n }\n // an error occurred\n let cond = elem.getAttribute(\"condition\");\n const conflict = elem.getElementsByTagName(\"conflict\");\n if (cond !== null) {\n if (cond === \"remote-stream-error\" && conflict.length > 0) {\n cond = \"conflict\";\n }\n this._changeConnectStatus(Strophe.Status.CONNFAIL, cond);\n } else {\n this._changeConnectStatus(\n Strophe.Status.CONNFAIL,\n Strophe.ErrorCondition.UNKOWN_REASON\n );\n }\n this._doDisconnect(cond);\n return;\n }\n\n // send each incoming stanza through the handler chain\n Strophe.forEachChild(elem, null, child => {\n // process handlers\n const newList = this.handlers;\n this.handlers = [];\n for (let i=0; i < newList.length; i++) {\n const hand = newList[i];\n // encapsulate 'handler.run' not to lose the whole handler list if\n // one of the handlers throws an exception\n try {\n if (hand.isMatch(child) &&\n (this.authenticated || !hand.user)) {\n if (hand.run(child)) {\n this.handlers.push(hand);\n }\n } else {\n this.handlers.push(hand);\n }\n } catch(e) {\n // if the handler throws an exception, we consider it as false\n Strophe.warn('Removing Strophe handlers due to uncaught exception: '+e.message);\n }\n }\n });\n }\n\n /** PrivateFunction: _connect_cb\n * _Private_ handler for initial connection request.\n *\n * This handler is used to process the initial connection request\n * response from the BOSH server. It is used to set up authentication\n * handlers and start the authentication process.\n *\n * SASL authentication will be attempted if available, otherwise\n * the code will fall back to legacy authentication.\n *\n * Parameters:\n * (Strophe.Request) req - The current request.\n * (Function) _callback - low level (xmpp) connect callback function.\n * Useful for plugins with their own xmpp connect callback (when they\n * want to do something special).\n */\n _connect_cb (req, _callback, raw) {\n Strophe.debug(\"_connect_cb was called\");\n this.connected = true;\n\n let bodyWrap;\n try {\n bodyWrap = this._proto._reqToData(req);\n } catch (e) {\n if (e.name !== Strophe.ErrorCondition.BAD_FORMAT) { throw e; }\n this._changeConnectStatus(\n Strophe.Status.CONNFAIL,\n Strophe.ErrorCondition.BAD_FORMAT\n );\n this._doDisconnect(Strophe.ErrorCondition.BAD_FORMAT);\n }\n if (!bodyWrap) { return; }\n\n if (this.xmlInput !== Strophe.Connection.prototype.xmlInput) {\n if (bodyWrap.nodeName === this._proto.strip && bodyWrap.childNodes.length) {\n this.xmlInput(bodyWrap.childNodes[0]);\n } else {\n this.xmlInput(bodyWrap);\n }\n }\n if (this.rawInput !== Strophe.Connection.prototype.rawInput) {\n if (raw) {\n this.rawInput(raw);\n } else {\n this.rawInput(Strophe.serialize(bodyWrap));\n }\n }\n\n const conncheck = this._proto._connect_cb(bodyWrap);\n if (conncheck === Strophe.Status.CONNFAIL) {\n return;\n }\n\n // Check for the stream:features tag\n let hasFeatures;\n if (bodyWrap.getElementsByTagNameNS) {\n hasFeatures = bodyWrap.getElementsByTagNameNS(Strophe.NS.STREAM, \"features\").length > 0;\n } else {\n hasFeatures = bodyWrap.getElementsByTagName(\"stream:features\").length > 0 ||\n bodyWrap.getElementsByTagName(\"features\").length > 0;\n }\n if (!hasFeatures) {\n this._proto._no_auth_received(_callback);\n return;\n }\n\n const matched = Array.from(bodyWrap.getElementsByTagName(\"mechanism\"))\n .map(m => this.mechanisms[m.textContent])\n .filter(m => m);\n\n if (matched.length === 0) {\n if (bodyWrap.getElementsByTagName(\"auth\").length === 0) {\n // There are no matching SASL mechanisms and also no legacy\n // auth available.\n this._proto._no_auth_received(_callback);\n return;\n }\n }\n if (this.do_authentication !== false) {\n this.authenticate(matched);\n }\n }\n\n /** Function: sortMechanismsByPriority\n *\n * Sorts an array of objects with prototype SASLMechanism according to\n * their priorities.\n *\n * Parameters:\n * (Array) mechanisms - Array of SASL mechanisms.\n *\n */\n sortMechanismsByPriority (mechanisms) { // eslint-disable-line class-methods-use-this\n // Sorting mechanisms according to priority.\n for (let i=0; i < mechanisms.length - 1; ++i) {\n let higher = i;\n for (let j=i + 1; j < mechanisms.length; ++j) {\n if (mechanisms[j].priority > mechanisms[higher].priority) {\n higher = j;\n }\n }\n if (higher !== i) {\n const swap = mechanisms[i];\n mechanisms[i] = mechanisms[higher];\n mechanisms[higher] = swap;\n }\n }\n return mechanisms;\n }\n\n /** Function: authenticate\n * Set up authentication\n *\n * Continues the initial connection request by setting up authentication\n * handlers and starting the authentication process.\n *\n * SASL authentication will be attempted if available, otherwise\n * the code will fall back to legacy authentication.\n *\n * Parameters:\n * (Array) matched - Array of SASL mechanisms supported.\n *\n */\n authenticate (matched) {\n if (!this._attemptSASLAuth(matched)) {\n this._attemptLegacyAuth();\n }\n }\n\n /** PrivateFunction: _attemptSASLAuth\n *\n * Iterate through an array of SASL mechanisms and attempt authentication\n * with the highest priority (enabled) mechanism.\n *\n * Parameters:\n * (Array) mechanisms - Array of SASL mechanisms.\n *\n * Returns:\n * (Boolean) mechanism_found - true or false, depending on whether a\n * valid SASL mechanism was found with which authentication could be\n * started.\n */\n _attemptSASLAuth (mechanisms) {\n mechanisms = this.sortMechanismsByPriority(mechanisms || []);\n let mechanism_found = false;\n for (let i=0; i < mechanisms.length; ++i) {\n if (!mechanisms[i].test(this)) {\n continue;\n }\n this._sasl_success_handler = this._addSysHandler(\n this._sasl_success_cb.bind(this), null,\n \"success\", null, null);\n this._sasl_failure_handler = this._addSysHandler(\n this._sasl_failure_cb.bind(this), null,\n \"failure\", null, null);\n this._sasl_challenge_handler = this._addSysHandler(\n this._sasl_challenge_cb.bind(this), null,\n \"challenge\", null, null);\n\n this._sasl_mechanism = mechanisms[i];\n this._sasl_mechanism.onStart(this);\n\n const request_auth_exchange = $build(\"auth\", {\n 'xmlns': Strophe.NS.SASL,\n 'mechanism': this._sasl_mechanism.mechname\n });\n if (this._sasl_mechanism.isClientFirst) {\n const response = this._sasl_mechanism.onChallenge(this, null);\n request_auth_exchange.t(btoa(response));\n }\n this.send(request_auth_exchange.tree());\n mechanism_found = true;\n break;\n }\n return mechanism_found;\n }\n\n /** PrivateFunction: _sasl_challenge_cb\n * _Private_ handler for the SASL challenge\n *\n */\n _sasl_challenge_cb (elem) {\n const challenge = atob(Strophe.getText(elem));\n const response = this._sasl_mechanism.onChallenge(this, challenge);\n const stanza = $build('response', {'xmlns': Strophe.NS.SASL});\n if (response !== \"\") {\n stanza.t(btoa(response));\n }\n this.send(stanza.tree());\n return true;\n }\n\n /** PrivateFunction: _attemptLegacyAuth\n *\n * Attempt legacy (i.e. non-SASL) authentication.\n */\n _attemptLegacyAuth () {\n if (Strophe.getNodeFromJid(this.jid) === null) {\n // we don't have a node, which is required for non-anonymous\n // client connections\n this._changeConnectStatus(\n Strophe.Status.CONNFAIL,\n Strophe.ErrorCondition.MISSING_JID_NODE\n );\n this.disconnect(Strophe.ErrorCondition.MISSING_JID_NODE);\n } else {\n // Fall back to legacy authentication\n this._changeConnectStatus(Strophe.Status.AUTHENTICATING, null);\n this._addSysHandler(\n this._onLegacyAuthIQResult.bind(this),\n null, null, null, \"_auth_1\"\n );\n this.send($iq({\n 'type': \"get\",\n 'to': this.domain,\n 'id': \"_auth_1\"\n }).c(\"query\", {xmlns: Strophe.NS.AUTH})\n .c(\"username\", {}).t(Strophe.getNodeFromJid(this.jid))\n .tree());\n }\n }\n\n /** PrivateFunction: _onLegacyAuthIQResult\n * _Private_ handler for legacy authentication.\n *\n * This handler is called in response to the initial \n * for legacy authentication. It builds an authentication and\n * sends it, creating a handler (calling back to _auth2_cb()) to\n * handle the result\n *\n * Parameters:\n * (XMLElement) elem - The stanza that triggered the callback.\n *\n * Returns:\n * false to remove the handler.\n */\n _onLegacyAuthIQResult (elem) { // eslint-disable-line no-unused-vars\n // build plaintext auth iq\n const iq = $iq({type: \"set\", id: \"_auth_2\"})\n .c('query', {xmlns: Strophe.NS.AUTH})\n .c('username', {}).t(Strophe.getNodeFromJid(this.jid))\n .up()\n .c('password').t(this.pass);\n\n if (!Strophe.getResourceFromJid(this.jid)) {\n // since the user has not supplied a resource, we pick\n // a default one here. unlike other auth methods, the server\n // cannot do this for us.\n this.jid = Strophe.getBareJidFromJid(this.jid) + '/strophe';\n }\n iq.up().c('resource', {}).t(Strophe.getResourceFromJid(this.jid));\n\n this._addSysHandler(this._auth2_cb.bind(this), null, null, null, \"_auth_2\");\n this.send(iq.tree());\n return false;\n }\n\n /** PrivateFunction: _sasl_success_cb\n * _Private_ handler for succesful SASL authentication.\n *\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _sasl_success_cb (elem) {\n if (this._sasl_data[\"server-signature\"]) {\n let serverSignature;\n const success = atob(Strophe.getText(elem));\n const attribMatch = /([a-z]+)=([^,]+)(,|$)/;\n const matches = success.match(attribMatch);\n if (matches[1] === \"v\") {\n serverSignature = matches[2];\n }\n if (serverSignature !== this._sasl_data[\"server-signature\"]) {\n // remove old handlers\n this.deleteHandler(this._sasl_failure_handler);\n this._sasl_failure_handler = null;\n if (this._sasl_challenge_handler) {\n this.deleteHandler(this._sasl_challenge_handler);\n this._sasl_challenge_handler = null;\n }\n this._sasl_data = {};\n return this._sasl_failure_cb(null);\n }\n }\n Strophe.info(\"SASL authentication succeeded.\");\n\n if (this._sasl_mechanism) {\n this._sasl_mechanism.onSuccess();\n }\n // remove old handlers\n this.deleteHandler(this._sasl_failure_handler);\n this._sasl_failure_handler = null;\n if (this._sasl_challenge_handler) {\n this.deleteHandler(this._sasl_challenge_handler);\n this._sasl_challenge_handler = null;\n }\n const streamfeature_handlers = [];\n const wrapper = (handlers, elem) => {\n while (handlers.length) {\n this.deleteHandler(handlers.pop());\n }\n this._onStreamFeaturesAfterSASL(elem);\n return false;\n };\n streamfeature_handlers.push(\n this._addSysHandler(elem => wrapper(streamfeature_handlers, elem),\n null, \"stream:features\", null, null)\n );\n\n streamfeature_handlers.push(\n this._addSysHandler(elem => wrapper(streamfeature_handlers, elem),\n Strophe.NS.STREAM, \"features\", null, null)\n );\n\n // we must send an xmpp:restart now\n this._sendRestart();\n return false;\n }\n\n /** PrivateFunction: _onStreamFeaturesAfterSASL\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _onStreamFeaturesAfterSASL (elem) {\n // save stream:features for future usage\n this.features = elem;\n for (let i=0; i < elem.childNodes.length; i++) {\n const child = elem.childNodes[i];\n if (child.nodeName === 'bind') {\n this.do_bind = true;\n }\n if (child.nodeName === 'session') {\n this.do_session = true;\n }\n }\n\n if (!this.do_bind) {\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null);\n return false;\n } else if (!this.options.explicitResourceBinding) {\n this.bind();\n } else {\n this._changeConnectStatus(Strophe.Status.BINDREQUIRED, null);\n }\n return false;\n }\n\n /** Function: bind\n *\n * Sends an IQ to the XMPP server to bind a JID resource for this session.\n *\n * https://tools.ietf.org/html/rfc6120#section-7.5\n *\n * If `explicitResourceBinding` was set to a truthy value in the options\n * passed to the Strophe.Connection constructor, then this function needs\n * to be called explicitly by the client author.\n *\n * Otherwise it'll be called automatically as soon as the XMPP server\n * advertises the \"urn:ietf:params:xml:ns:xmpp-bind\" stream feature.\n */\n bind () {\n if (!this.do_bind) {\n Strophe.log(\n Strophe.LogLevel.INFO,\n `Strophe.Connection.prototype.bind called but \"do_bind\" is false`\n );\n return;\n }\n this._addSysHandler(\n this._onResourceBindResultIQ.bind(this),\n null, null, null, \"_bind_auth_2\");\n\n const resource = Strophe.getResourceFromJid(this.jid);\n if (resource) {\n this.send($iq({type: \"set\", id: \"_bind_auth_2\"})\n .c('bind', {xmlns: Strophe.NS.BIND})\n .c('resource', {}).t(resource).tree());\n } else {\n this.send($iq({type: \"set\", id: \"_bind_auth_2\"})\n .c('bind', {xmlns: Strophe.NS.BIND})\n .tree());\n }\n }\n\n /** PrivateFunction: _onResourceBindIQ\n * _Private_ handler for binding result and session start.\n *\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _onResourceBindResultIQ (elem) {\n if (elem.getAttribute(\"type\") === \"error\") {\n Strophe.warn(\"Resource binding failed.\");\n const conflict = elem.getElementsByTagName(\"conflict\");\n let condition;\n if (conflict.length > 0) {\n condition = Strophe.ErrorCondition.CONFLICT;\n }\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, condition, elem);\n return false;\n }\n // TODO - need to grab errors\n const bind = elem.getElementsByTagName(\"bind\");\n if (bind.length > 0) {\n const jidNode = bind[0].getElementsByTagName(\"jid\");\n if (jidNode.length > 0) {\n this.authenticated = true;\n this.jid = Strophe.getText(jidNode[0]);\n if (this.do_session) {\n this._establishSession();\n } else {\n this._changeConnectStatus(Strophe.Status.CONNECTED, null);\n }\n }\n } else {\n Strophe.warn(\"Resource binding failed.\");\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null, elem);\n return false;\n }\n }\n\n /** PrivateFunction: _establishSession\n * Send IQ request to establish a session with the XMPP server.\n *\n * See https://xmpp.org/rfcs/rfc3921.html#session\n *\n * Note: The protocol for session establishment has been determined as\n * unnecessary and removed in RFC-6121.\n */\n _establishSession () {\n if (!this.do_session) {\n throw new Error(`Strophe.Connection.prototype._establishSession `+\n `called but apparently ${Strophe.NS.SESSION} wasn't advertised by the server`);\n }\n this._addSysHandler(\n this._onSessionResultIQ.bind(this),\n null, null, null, \"_session_auth_2\");\n\n this.send(\n $iq({type: \"set\", id: \"_session_auth_2\"})\n .c('session', {xmlns: Strophe.NS.SESSION})\n .tree());\n }\n\n /** PrivateFunction: _onSessionResultIQ\n * _Private_ handler for the server's IQ response to a client's session\n * request.\n *\n * This sets Connection.authenticated to true on success, which\n * starts the processing of user handlers.\n *\n * See https://xmpp.org/rfcs/rfc3921.html#session\n *\n * Note: The protocol for session establishment has been determined as\n * unnecessary and removed in RFC-6121.\n *\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _onSessionResultIQ (elem) {\n if (elem.getAttribute(\"type\") === \"result\") {\n this.authenticated = true;\n this._changeConnectStatus(Strophe.Status.CONNECTED, null);\n } else if (elem.getAttribute(\"type\") === \"error\") {\n this.authenticated = false;\n Strophe.warn(\"Session creation failed.\");\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null, elem);\n return false;\n }\n return false;\n }\n\n /** PrivateFunction: _sasl_failure_cb\n * _Private_ handler for SASL authentication failure.\n *\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _sasl_failure_cb (elem) {\n // delete unneeded handlers\n if (this._sasl_success_handler) {\n this.deleteHandler(this._sasl_success_handler);\n this._sasl_success_handler = null;\n }\n if (this._sasl_challenge_handler) {\n this.deleteHandler(this._sasl_challenge_handler);\n this._sasl_challenge_handler = null;\n }\n\n if(this._sasl_mechanism)\n this._sasl_mechanism.onFailure();\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null, elem);\n return false;\n }\n\n /** PrivateFunction: _auth2_cb\n * _Private_ handler to finish legacy authentication.\n *\n * This handler is called when the result from the jabber:iq:auth\n * stanza is returned.\n *\n * Parameters:\n * (XMLElement) elem - The stanza that triggered the callback.\n *\n * Returns:\n * false to remove the handler.\n */\n _auth2_cb (elem) {\n if (elem.getAttribute(\"type\") === \"result\") {\n this.authenticated = true;\n this._changeConnectStatus(Strophe.Status.CONNECTED, null);\n } else if (elem.getAttribute(\"type\") === \"error\") {\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null, elem);\n this.disconnect('authentication failed');\n }\n return false;\n }\n\n /** PrivateFunction: _addSysTimedHandler\n * _Private_ function to add a system level timed handler.\n *\n * This function is used to add a Strophe.TimedHandler for the\n * library code. System timed handlers are allowed to run before\n * authentication is complete.\n *\n * Parameters:\n * (Integer) period - The period of the handler.\n * (Function) handler - The callback function.\n */\n _addSysTimedHandler (period, handler) {\n const thand = new Strophe.TimedHandler(period, handler);\n thand.user = false;\n this.addTimeds.push(thand);\n return thand;\n }\n\n /** PrivateFunction: _addSysHandler\n * _Private_ function to add a system level stanza handler.\n *\n * This function is used to add a Strophe.Handler for the\n * library code. System stanza handlers are allowed to run before\n * authentication is complete.\n *\n * Parameters:\n * (Function) handler - The callback function.\n * (String) ns - The namespace to match.\n * (String) name - The stanza name to match.\n * (String) type - The stanza type attribute to match.\n * (String) id - The stanza id attribute to match.\n */\n _addSysHandler (handler, ns, name, type, id) {\n const hand = new Strophe.Handler(handler, ns, name, type, id);\n hand.user = false;\n this.addHandlers.push(hand);\n return hand;\n }\n\n /** PrivateFunction: _onDisconnectTimeout\n * _Private_ timeout handler for handling non-graceful disconnection.\n *\n * If the graceful disconnect process does not complete within the\n * time allotted, this handler finishes the disconnect anyway.\n *\n * Returns:\n * false to remove the handler.\n */\n _onDisconnectTimeout () {\n Strophe.debug(\"_onDisconnectTimeout was called\");\n this._changeConnectStatus(Strophe.Status.CONNTIMEOUT, null);\n this._proto._onDisconnectTimeout();\n // actually disconnect\n this._doDisconnect();\n return false;\n }\n\n /** PrivateFunction: _onIdle\n * _Private_ handler to process events during idle cycle.\n *\n * This handler is called every 100ms to fire timed handlers that\n * are ready and keep poll requests going.\n */\n _onIdle () {\n // add timed handlers scheduled for addition\n // NOTE: we add before remove in the case a timed handler is\n // added and then deleted before the next _onIdle() call.\n while (this.addTimeds.length > 0) {\n this.timedHandlers.push(this.addTimeds.pop());\n }\n\n // remove timed handlers that have been scheduled for deletion\n while (this.removeTimeds.length > 0) {\n const thand = this.removeTimeds.pop();\n const i = this.timedHandlers.indexOf(thand);\n if (i >= 0) {\n this.timedHandlers.splice(i, 1);\n }\n }\n\n // call ready timed handlers\n const now = new Date().getTime();\n const newList = [];\n for (let i=0; i < this.timedHandlers.length; i++) {\n const thand = this.timedHandlers[i];\n if (this.authenticated || !thand.user) {\n const since = thand.lastCalled + thand.period;\n if (since - now <= 0) {\n if (thand.run()) {\n newList.push(thand);\n }\n } else {\n newList.push(thand);\n }\n }\n }\n this.timedHandlers = newList;\n clearTimeout(this._idleTimeout);\n this._proto._onIdle();\n\n // reactivate the timer only if connected\n if (this.connected) {\n this._idleTimeout = setTimeout(() => this._onIdle(), 100);\n }\n }\n};\n\n/** Class: Strophe.SASLMechanism\n *\n * Encapsulates an SASL authentication mechanism.\n *\n * User code may override the priority for each mechanism or disable it completely.\n * See for information about changing priority and for informatian on\n * how to disable a mechanism.\n *\n * By default, all mechanisms are enabled and the priorities are\n *\n * SCRAM-SHA-1 - 60\n * PLAIN - 50\n * OAUTHBEARER - 40\n * X-OAUTH2 - 30\n * ANONYMOUS - 20\n * EXTERNAL - 10\n *\n * See: Strophe.Connection.addSupportedSASLMechanisms\n */\nStrophe.SASLMechanism = class SASLMechanism {\n\n /**\n * PrivateConstructor: Strophe.SASLMechanism\n * SASL auth mechanism abstraction.\n *\n * Parameters:\n * (String) name - SASL Mechanism name.\n * (Boolean) isClientFirst - If client should send response first without challenge.\n * (Number) priority - Priority.\n *\n * Returns:\n * A new Strophe.SASLMechanism object.\n */\n constructor (name, isClientFirst, priority) {\n /** PrivateVariable: mechname\n * Mechanism name.\n */\n this.mechname = name;\n\n /** PrivateVariable: isClientFirst\n * If client sends response without initial server challenge.\n */\n this.isClientFirst = isClientFirst;\n\n /** Variable: priority\n * Determines which is chosen for authentication (Higher is better).\n * Users may override this to prioritize mechanisms differently.\n *\n * Example: (This will cause Strophe to choose the mechanism that the server sent first)\n *\n * > Strophe.SASLPlain.priority = Strophe.SASLSHA1.priority;\n *\n * See for a list of available mechanisms.\n *\n */\n this.priority = priority;\n }\n\n /**\n * Function: test\n * Checks if mechanism able to run.\n * To disable a mechanism, make this return false;\n *\n * To disable plain authentication run\n * > Strophe.SASLPlain.test = function() {\n * > return false;\n * > }\n *\n * See for a list of available mechanisms.\n *\n * Parameters:\n * (Strophe.Connection) connection - Target Connection.\n *\n * Returns:\n * (Boolean) If mechanism was able to run.\n */\n test () { // eslint-disable-line class-methods-use-this\n return true;\n }\n\n /** PrivateFunction: onStart\n * Called before starting mechanism on some connection.\n *\n * Parameters:\n * (Strophe.Connection) connection - Target Connection.\n */\n onStart (connection) {\n this._connection = connection;\n }\n\n /** PrivateFunction: onChallenge\n * Called by protocol implementation on incoming challenge. If client is\n * first (isClientFirst === true) challenge will be null on the first call.\n *\n * Parameters:\n * (Strophe.Connection) connection - Target Connection.\n * (String) challenge - current challenge to handle.\n *\n * Returns:\n * (String) Mechanism response.\n */\n onChallenge (connection, challenge) { // eslint-disable-line\n throw new Error(\"You should implement challenge handling!\");\n }\n\n /** PrivateFunction: onFailure\n * Protocol informs mechanism implementation about SASL failure.\n */\n onFailure () {\n this._connection = null;\n }\n\n /** PrivateFunction: onSuccess\n * Protocol informs mechanism implementation about SASL success.\n */\n onSuccess () {\n this._connection = null;\n }\n};\n\n/** Constants: SASL mechanisms\n * Available authentication mechanisms\n *\n * Strophe.SASLAnonymous - SASL ANONYMOUS authentication.\n * Strophe.SASLPlain - SASL PLAIN authentication.\n * Strophe.SASLSHA1 - SASL SCRAM-SHA-1 authentication\n * Strophe.SASLOAuthBearer - SASL OAuth Bearer authentication\n * Strophe.SASLExternal - SASL EXTERNAL authentication\n * Strophe.SASLXOAuth2 - SASL X-OAuth2 authentication\n */\n\n// Building SASL callbacks\n\nStrophe.SASLAnonymous = class SASLAnonymous extends Strophe.SASLMechanism {\n\n /** PrivateConstructor: SASLAnonymous\n * SASL ANONYMOUS authentication.\n */\n constructor (mechname='ANONYMOUS', isClientFirst=false, priority=20) {\n super(mechname, isClientFirst, priority);\n }\n\n test (connection) { // eslint-disable-line class-methods-use-this\n return connection.authcid === null;\n }\n}\n\n\nStrophe.SASLPlain = class SASLPlain extends Strophe.SASLMechanism {\n\n /** PrivateConstructor: SASLPlain\n * SASL PLAIN authentication.\n */\n constructor (mechname='PLAIN', isClientFirst=true, priority=50) {\n super(mechname, isClientFirst, priority);\n }\n\n test (connection) { // eslint-disable-line class-methods-use-this\n return connection.authcid !== null;\n }\n\n onChallenge (connection) { // eslint-disable-line class-methods-use-this\n const { authcid, authzid, domain, pass } = connection;\n if (!domain) {\n throw new Error(\"SASLPlain onChallenge: domain is not defined!\");\n }\n // Only include authzid if it differs from authcid.\n // See: https://tools.ietf.org/html/rfc6120#section-6.3.8\n let auth_str = (authzid !== `${authcid}@${domain}`) ? authzid : '';\n auth_str = auth_str + \"\\u0000\";\n auth_str = auth_str + authcid;\n auth_str = auth_str + \"\\u0000\";\n auth_str = auth_str + pass;\n return utils.utf16to8(auth_str);\n }\n}\n\n\nStrophe.SASLSHA1 = class SASLSHA1 extends Strophe.SASLMechanism {\n\n /** PrivateConstructor: SASLSHA1\n * SASL SCRAM SHA 1 authentication.\n */\n constructor (mechname='SCRAM-SHA-1', isClientFirst=true, priority=60) {\n super(mechname, isClientFirst, priority);\n }\n\n test (connection) { // eslint-disable-line class-methods-use-this\n return connection.authcid !== null;\n }\n\n onChallenge (connection, challenge, test_cnonce) {\n const cnonce = test_cnonce || MD5.hexdigest(\"\" + (Math.random() * 1234567890));\n let auth_str = \"n=\" + utils.utf16to8(connection.authcid);\n auth_str += \",r=\";\n auth_str += cnonce;\n connection._sasl_data.cnonce = cnonce;\n connection._sasl_data[\"client-first-message-bare\"] = auth_str;\n auth_str = \"n,,\" + auth_str;\n\n this.onChallenge = (connection, challenge) => {\n let nonce, salt, iter, Hi, U, U_old, i, k;\n let responseText = \"c=biws,\";\n let authMessage = `${connection._sasl_data[\"client-first-message-bare\"]},${challenge},`;\n const cnonce = connection._sasl_data.cnonce;\n const attribMatch = /([a-z]+)=([^,]+)(,|$)/;\n\n while (challenge.match(attribMatch)) {\n const matches = challenge.match(attribMatch);\n challenge = challenge.replace(matches[0], \"\");\n switch (matches[1]) {\n case \"r\":\n nonce = matches[2];\n break;\n case \"s\":\n salt = matches[2];\n break;\n case \"i\":\n iter = matches[2];\n break;\n }\n }\n\n if (nonce.substr(0, cnonce.length) !== cnonce) {\n connection._sasl_data = {};\n return connection._sasl_failure_cb();\n }\n\n responseText += \"r=\" + nonce;\n authMessage += responseText;\n\n salt = atob(salt);\n salt += \"\\x00\\x00\\x00\\x01\";\n\n const pass = utils.utf16to8(connection.pass);\n Hi = U_old = SHA1.core_hmac_sha1(pass, salt);\n for (i=1; i+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\n// EXPOSE\nvar _sizzle = window.Sizzle;\n\nSizzle.noConflict = function() {\n\tif ( window.Sizzle === Sizzle ) {\n\t\twindow.Sizzle = _sizzle;\n\t}\n\n\treturn Sizzle;\n};\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( function() {\n\t\treturn Sizzle;\n\t} );\n\n// Sizzle requires that there be a global window in Common-JS like environments\n} else if ( typeof module !== \"undefined\" && module.exports ) {\n\tmodule.exports = Sizzle;\n} else {\n\twindow.Sizzle = Sizzle;\n}\n\n// EXPOSE\n\n} )( window );\n","/*global global*/\n\nimport './bosh';\nimport './websocket';\nimport './worker-websocket';\nimport * as strophe from './core';\n\nglobal.$build = strophe.default.$build;\nglobal.$iq = strophe.default.$iq;\nglobal.$msg = strophe.default.$msg;\nglobal.$pres = strophe.default.$pres;\nglobal.Strophe = strophe.default.Strophe;\n\nexport { Strophe, $build, $iq, $msg, $pres } from './core';\n\nexport const { b64_sha1 } = strophe.SHA1;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):t.dayjs=e()}(this,function(){\"use strict\";var t=\"millisecond\",e=\"second\",n=\"minute\",r=\"hour\",i=\"day\",s=\"week\",u=\"month\",o=\"quarter\",a=\"year\",h=/^(\\d{4})-?(\\d{1,2})-?(\\d{0,2})[^0-9]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?.?(\\d{1,3})?$/,f=/\\[([^\\]]+)]|Y{2,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,c=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},d={s:c,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+c(r,2,\"0\")+\":\"+c(i,2,\"0\")},m:function(t,e){var n=12*(e.year()-t.year())+(e.month()-t.month()),r=t.clone().add(n,u),i=e-r<0,s=t.clone().add(n+(i?-1:1),u);return Number(-(n+(e-r)/(i?r-s:s-r))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(h){return{M:u,y:a,w:s,d:i,D:\"date\",h:r,m:n,s:e,ms:t,Q:o}[h]||String(h||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},$={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(\"_\")},l=\"en\",m={};m[l]=$;var y=function(t){return t instanceof v},M=function(t,e,n){var r;if(!t)return l;if(\"string\"==typeof t)m[t]&&(r=t),e&&(m[t]=e,r=t);else{var i=t.name;m[i]=t,r=i}return!n&&r&&(l=r),r||!n&&l},g=function(t,e){if(y(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new v(n)},D=d;D.l=M,D.i=y,D.w=function(t,e){return g(t,{locale:e.$L,utc:e.$u,$offset:e.$offset})};var v=function(){function c(t){this.$L=this.$L||M(t.locale,null,!0),this.parse(t)}var d=c.prototype;return d.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(D.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(h);if(r)return n?new Date(Date.UTC(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)):new Date(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)}return new Date(e)}(t),this.init()},d.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()},d.$utils=function(){return D},d.isValid=function(){return!(\"Invalid Date\"===this.$d.toString())},d.isSame=function(t,e){var n=g(t);return this.startOf(e)<=n&&n<=this.endOf(e)},d.isAfter=function(t,e){return g(t)> 5] |= 0x80 << (24 - len % 32);\n x[((len + 64 >> 9) << 4) + 15] = len;\n\n var w = new Array(80);\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n var e = -1009589776;\n\n var i, j, t, olda, oldb, oldc, oldd, olde;\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n olde = e;\n\n for (j = 0; j < 80; j++) {\n if (j < 16) {\n w[j] = x[i + j];\n } else {\n w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);\n }\n\n t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)),\n safe_add(safe_add(e, w[j]), sha1_kt(j)));\n e = d;\n d = c;\n c = rol(b, 30);\n b = a;\n a = t;\n }\n\n a = safe_add(a, olda);\n b = safe_add(b, oldb);\n c = safe_add(c, oldc);\n d = safe_add(d, oldd);\n e = safe_add(e, olde);\n }\n return [a, b, c, d, e];\n}\n\n/*\n * Perform the appropriate triplet combination function for the current\n * iteration\n */\nfunction sha1_ft (t, b, c, d) {\n if (t < 20) { return (b & c) | ((~b) & d); }\n if (t < 40) { return b ^ c ^ d; }\n if (t < 60) { return (b & c) | (b & d) | (c & d); }\n return b ^ c ^ d;\n}\n\n/*\n * Determine the appropriate additive constant for the current iteration\n */\nfunction sha1_kt(t) {\n return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : (t < 60) ? -1894007588 : -899497514;\n}\n\n/*\n * Calculate the HMAC-SHA1 of a key and some data\n */\nfunction core_hmac_sha1(key, data) {\n var bkey = str2binb(key);\n if (bkey.length > 16) {\n bkey = core_sha1(bkey, key.length * 8);\n }\n\n var ipad = new Array(16), opad = new Array(16);\n for (var i = 0; i < 16; i++) {\n ipad[i] = bkey[i] ^ 0x36363636;\n opad[i] = bkey[i] ^ 0x5C5C5C5C;\n }\n\n var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * 8);\n return core_sha1(opad.concat(hash), 512 + 160);\n}\n\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\nfunction safe_add(x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n}\n\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\nfunction rol(num, cnt) {\n return (num << cnt) | (num >>> (32 - cnt));\n}\n\n/*\n * Convert an 8-bit or 16-bit string to an array of big-endian words\n * In 8-bit function, characters >255 have their hi-byte silently ignored.\n */\nfunction str2binb(str) {\n var bin = [];\n var mask = 255;\n for (var i = 0; i < str.length * 8; i += 8) {\n bin[i>>5] |= (str.charCodeAt(i / 8) & mask) << (24 - i%32);\n }\n return bin;\n}\n\n/*\n * Convert an array of big-endian words to a base-64 string\n */\nfunction binb2b64 (binarray) {\n var tab = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var str = \"\";\n var triplet, j;\n for (var i = 0; i < binarray.length * 4; i += 3) {\n triplet = (((binarray[i >> 2] >> 8 * (3 - i %4)) & 0xFF) << 16) |\n (((binarray[i+1 >> 2] >> 8 * (3 - (i+1)%4)) & 0xFF) << 8 ) |\n ((binarray[i+2 >> 2] >> 8 * (3 - (i+2)%4)) & 0xFF);\n\n for (j = 0; j < 4; j++) {\n if (i * 8 + j * 6 > binarray.length * 32) { str += \"=\"; }\n else { str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); }\n }\n }\n return str;\n}\n\n/*\n * Convert an array of big-endian words to a string\n */\nfunction binb2str(bin) {\n var str = \"\";\n var mask = 255;\n for (var i = 0; i < bin.length * 32; i += 8) {\n str += String.fromCharCode((bin[i>>5] >>> (24 - i%32)) & mask);\n }\n return str;\n}\n\n/*\n * These are the functions you'll usually want to call\n * They take string arguments and return either hex or base-64 encoded strings\n */\nconst SHA1 = {\n b64_hmac_sha1: function (key, data){ return binb2b64(core_hmac_sha1(key, data)); },\n b64_sha1: function (s) { return binb2b64(core_sha1(str2binb(s),s.length * 8)); },\n binb2str: binb2str,\n core_hmac_sha1: core_hmac_sha1,\n str_hmac_sha1: function (key, data){ return binb2str(core_hmac_sha1(key, data)); },\n str_sha1: function (s) { return binb2str(core_sha1(str2binb(s),s.length * 8)); },\n};\nexport { SHA1 as default };\n","var escapeHtmlChar = require('./_escapeHtmlChar'),\n toString = require('./toString');\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\nmodule.exports = escape;\n","/*\n * This module provides uniform\n * Shims APIs and globals that are not present in all JS environments,\n * the most common example for Strophe being browser APIs like WebSocket\n * and DOM that don't exist under nodejs.\n *\n * Usually these will be supplied in nodejs by conditionally requiring a\n * NPM module that provides a compatible implementation.\n */\n\n/* global global */\n\n/**\n * WHATWG WebSockets API\n * https://www.w3.org/TR/websockets/\n *\n * Interface to use the web socket protocol\n *\n * Used implementations:\n * - supported browsers: built-in in WebSocket global\n * https://developer.mozilla.org/en-US/docs/Web/API/WebSocket#Browser_compatibility\n * - nodejs: use standard-compliant 'ws' module\n * https://www.npmjs.com/package/ws\n */\nfunction getWebSocketImplementation () {\n let WebSocketImplementation = global.WebSocket\n if (typeof WebSocketImplementation === 'undefined') {\n try {\n WebSocketImplementation = require('ws');\n } catch (err) {\n throw new Error('You must install the \"ws\" package to use Strophe in nodejs.');\n }\n }\n return WebSocketImplementation\n}\nexport const WebSocket = getWebSocketImplementation()\n\n/**\n * DOMParser\n * https://w3c.github.io/DOM-Parsing/#the-domparser-interface\n *\n * Interface to parse XML strings into Document objects\n *\n * Used implementations:\n * - supported browsers: built-in in DOMParser global\n * https://developer.mozilla.org/en-US/docs/Web/API/DOMParser#Browser_compatibility\n * - nodejs: use 'xmldom' module\n * https://www.npmjs.com/package/xmldom\n */\nfunction getDOMParserImplementation () {\n let DOMParserImplementation = global.DOMParser\n if (typeof DOMParserImplementation === 'undefined') {\n try {\n DOMParserImplementation = require('xmldom').DOMParser;\n } catch (err) {\n throw new Error('You must install the \"xmldom\" package to use Strophe in nodejs.');\n }\n }\n return DOMParserImplementation\n}\nexport const DOMParser = getDOMParserImplementation()\n\n/**\n * Gets IE xml doc object. Used by getDummyXMLDocument shim.\n *\n * Returns:\n * A Microsoft XML DOM Object\n * See Also:\n * http://msdn.microsoft.com/en-us/library/ms757837%28VS.85%29.aspx\n */\nfunction _getIEXmlDom () {\n const docStrings = [\n \"Msxml2.DOMDocument.6.0\",\n \"Msxml2.DOMDocument.5.0\",\n \"Msxml2.DOMDocument.4.0\",\n \"MSXML2.DOMDocument.3.0\",\n \"MSXML2.DOMDocument\",\n \"MSXML.DOMDocument\",\n \"Microsoft.XMLDOM\"\n ];\n for (let d = 0; d < docStrings.length; d++) {\n try {\n // eslint-disable-next-line no-undef\n const doc = new ActiveXObject(docStrings[d]);\n return doc\n } catch (e) {\n // Try next one\n }\n }\n}\n\n/**\n * Creates a dummy XML DOM document to serve as an element and text node generator.\n *\n * Used implementations:\n * - IE < 10: avoid using createDocument() due to a memory leak, use ie-specific\n * workaround\n * - other supported browsers: use document's createDocument\n * - nodejs: use 'xmldom'\n */\nexport function getDummyXMLDOMDocument () {\n // nodejs\n if (typeof document === 'undefined') {\n try {\n const DOMImplementation = require('xmldom').DOMImplementation;\n return new DOMImplementation().createDocument('jabber:client', 'strophe', null);\n } catch (err) {\n throw new Error('You must install the \"xmldom\" package to use Strophe in nodejs.');\n }\n }\n // IE < 10\n if (\n document.implementation.createDocument === undefined ||\n document.implementation.createDocument && document.documentMode && document.documentMode < 10\n ) {\n const doc = _getIEXmlDom();\n doc.appendChild(doc.createElement('strophe'));\n return doc\n }\n // All other supported browsers\n return document.implementation.createDocument('jabber:client', 'strophe', null)\n}\n\n","/*\n * This module provides uniform\n * Shims APIs and globals that are not present in all JS environments,\n * the most common example for Strophe being browser APIs like WebSocket\n * and DOM that don't exist under nodejs.\n *\n * Usually these will be supplied in nodejs by conditionally requiring a\n * NPM module that provides a compatible implementation.\n */\n\n/* global global */\n\n/**\n * WHATWG WebSockets API\n * https://www.w3.org/TR/websockets/\n *\n * Interface to use the web socket protocol\n *\n * Used implementations:\n * - supported browsers: built-in in WebSocket global\n * https://developer.mozilla.org/en-US/docs/Web/API/WebSocket#Browser_compatibility\n * - nodejs: use standard-compliant 'ws' module\n * https://www.npmjs.com/package/ws\n */\nfunction getWebSocketImplementation () {\n let WebSocketImplementation = global.WebSocket\n if (typeof WebSocketImplementation === 'undefined') {\n try {\n WebSocketImplementation = require('ws');\n } catch (err) {\n throw new Error('You must install the \"ws\" package to use Strophe in nodejs.');\n }\n }\n return WebSocketImplementation\n}\nexport const WebSocket = getWebSocketImplementation()\n\n/**\n * DOMParser\n * https://w3c.github.io/DOM-Parsing/#the-domparser-interface\n *\n * Interface to parse XML strings into Document objects\n *\n * Used implementations:\n * - supported browsers: built-in in DOMParser global\n * https://developer.mozilla.org/en-US/docs/Web/API/DOMParser#Browser_compatibility\n * - nodejs: use 'xmldom' module\n * https://www.npmjs.com/package/xmldom\n */\nfunction getDOMParserImplementation () {\n let DOMParserImplementation = global.DOMParser\n if (typeof DOMParserImplementation === 'undefined') {\n try {\n DOMParserImplementation = require('xmldom').DOMParser;\n } catch (err) {\n throw new Error('You must install the \"xmldom\" package to use Strophe in nodejs.');\n }\n }\n return DOMParserImplementation\n}\nexport const DOMParser = getDOMParserImplementation()\n\n/**\n * Gets IE xml doc object. Used by getDummyXMLDocument shim.\n *\n * Returns:\n * A Microsoft XML DOM Object\n * See Also:\n * http://msdn.microsoft.com/en-us/library/ms757837%28VS.85%29.aspx\n */\nfunction _getIEXmlDom () {\n const docStrings = [\n \"Msxml2.DOMDocument.6.0\",\n \"Msxml2.DOMDocument.5.0\",\n \"Msxml2.DOMDocument.4.0\",\n \"MSXML2.DOMDocument.3.0\",\n \"MSXML2.DOMDocument\",\n \"MSXML.DOMDocument\",\n \"Microsoft.XMLDOM\"\n ];\n for (let d = 0; d < docStrings.length; d++) {\n try {\n // eslint-disable-next-line no-undef\n const doc = new ActiveXObject(docStrings[d]);\n return doc\n } catch (e) {\n // Try next one\n }\n }\n}\n\n/**\n * Creates a dummy XML DOM document to serve as an element and text node generator.\n *\n * Used implementations:\n * - IE < 10: avoid using createDocument() due to a memory leak, use ie-specific\n * workaround\n * - other supported browsers: use document's createDocument\n * - nodejs: use 'xmldom'\n */\nexport function getDummyXMLDOMDocument () {\n // nodejs\n if (typeof document === 'undefined') {\n try {\n const DOMImplementation = require('xmldom').DOMImplementation;\n return new DOMImplementation().createDocument('jabber:client', 'strophe', null);\n } catch (err) {\n throw new Error('You must install the \"xmldom\" package to use Strophe in nodejs.');\n }\n }\n // IE < 10\n if (\n document.implementation.createDocument === undefined ||\n document.implementation.createDocument && document.documentMode && document.documentMode < 10\n ) {\n const doc = _getIEXmlDom();\n doc.appendChild(doc.createElement('strophe'));\n return doc\n }\n // All other supported browsers\n return document.implementation.createDocument('jabber:client', 'strophe', null)\n}\n\n","\"use strict\";\n\nconst atob = require(\"./lib/atob\");\nconst btoa = require(\"./lib/btoa\");\n\nmodule.exports = {\n atob,\n btoa\n};\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","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","/**\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\nmodule.exports = isArray;\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar getDefaultCSSWhiteList = require(\"cssfilter\").getDefaultWhiteList;\nvar _ = require(\"./util\");\n\nfunction getDefaultWhiteList() {\n return {\n a: [\"target\", \"href\", \"title\"],\n abbr: [\"title\"],\n address: [],\n area: [\"shape\", \"coords\", \"href\", \"alt\"],\n article: [],\n aside: [],\n audio: [\"autoplay\", \"controls\", \"loop\", \"preload\", \"src\"],\n b: [],\n bdi: [\"dir\"],\n bdo: [\"dir\"],\n big: [],\n blockquote: [\"cite\"],\n br: [],\n caption: [],\n center: [],\n cite: [],\n code: [],\n col: [\"align\", \"valign\", \"span\", \"width\"],\n colgroup: [\"align\", \"valign\", \"span\", \"width\"],\n dd: [],\n del: [\"datetime\"],\n details: [\"open\"],\n div: [],\n dl: [],\n dt: [],\n em: [],\n font: [\"color\", \"size\", \"face\"],\n footer: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n header: [],\n hr: [],\n i: [],\n img: [\"src\", \"alt\", \"title\", \"width\", \"height\"],\n ins: [\"datetime\"],\n li: [],\n mark: [],\n nav: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n section: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n table: [\"width\", \"border\", \"align\", \"valign\"],\n tbody: [\"align\", \"valign\"],\n td: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n tfoot: [\"align\", \"valign\"],\n th: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n thead: [\"align\", \"valign\"],\n tr: [\"rowspan\", \"align\", \"valign\"],\n tt: [],\n u: [],\n ul: [],\n video: [\"autoplay\", \"controls\", \"loop\", \"preload\", \"src\", \"height\", \"width\"]\n };\n}\n\nvar defaultCSSFilter = new FilterCSS();\n\n/**\n * default onTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onIgnoreTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default onIgnoreTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onIgnoreTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default escapeHtml function\n *\n * @param {String} html\n */\nfunction escapeHtml(html) {\n return html.replace(REGEXP_LT, \"<\").replace(REGEXP_GT, \">\");\n}\n\n/**\n * default safeAttrValue function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @param {Object} cssFilter\n * @return {String}\n */\nfunction safeAttrValue(tag, name, value, cssFilter) {\n // unescape attribute value firstly\n value = friendlyAttrValue(value);\n\n if (name === \"href\" || name === \"src\") {\n // filter `href` and `src` attribute\n // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`\n value = _.trim(value);\n if (value === \"#\") return \"#\";\n if (\n !(\n value.substr(0, 7) === \"http://\" ||\n value.substr(0, 8) === \"https://\" ||\n value.substr(0, 7) === \"mailto:\" ||\n value.substr(0, 4) === \"tel:\" ||\n value.substr(0, 11) === \"data:image/\" ||\n value.substr(0, 6) === \"ftp://\" ||\n value.substr(0, 2) === \"./\" ||\n value.substr(0, 3) === \"../\" ||\n value[0] === \"#\" ||\n value[0] === \"/\"\n )\n ) {\n return \"\";\n }\n } else if (name === \"background\") {\n // filter `background` attribute (maybe no use)\n // `javascript:`\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n } else if (name === \"style\") {\n // `expression()`\n REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {\n return \"\";\n }\n // `url()`\n REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n }\n if (cssFilter !== false) {\n cssFilter = cssFilter || defaultCSSFilter;\n value = cssFilter.process(value);\n }\n }\n\n // escape `<>\"` before returns\n value = escapeAttrValue(value);\n return value;\n}\n\n// RegExp list\nvar REGEXP_LT = //g;\nvar REGEXP_QUOTE = /\"/g;\nvar REGEXP_QUOTE_2 = /"/g;\nvar REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;\nvar REGEXP_ATTR_VALUE_COLON = /:?/gim;\nvar REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\\/\\*|\\*\\//gm;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_4 = /((j\\s*a\\s*v\\s*a|v\\s*b|l\\s*i\\s*v\\s*e)\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t\\s*|m\\s*o\\s*c\\s*h\\s*a)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:\\s*image\\//gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_7 = /e\\s*x\\s*p\\s*r\\s*e\\s*s\\s*s\\s*i\\s*o\\s*n\\s*\\(.*/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\\s*r\\s*l\\s*\\(.*/gi;\n\n/**\n * escape doube quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction escapeQuote(str) {\n return str.replace(REGEXP_QUOTE, \""\");\n}\n\n/**\n * unescape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction unescapeQuote(str) {\n return str.replace(REGEXP_QUOTE_2, '\"');\n}\n\n/**\n * escape html entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeHtmlEntities(str) {\n return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {\n return code[0] === \"x\" || code[0] === \"X\"\n ? String.fromCharCode(parseInt(code.substr(1), 16))\n : String.fromCharCode(parseInt(code, 10));\n });\n}\n\n/**\n * escape html5 new danger entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeDangerHtml5Entities(str) {\n return str\n .replace(REGEXP_ATTR_VALUE_COLON, \":\")\n .replace(REGEXP_ATTR_VALUE_NEWLINE, \" \");\n}\n\n/**\n * clear nonprintable characters\n *\n * @param {String} str\n * @return {String}\n */\nfunction clearNonPrintableCharacter(str) {\n var str2 = \"\";\n for (var i = 0, len = str.length; i < len; i++) {\n str2 += str.charCodeAt(i) < 32 ? \" \" : str.charAt(i);\n }\n return _.trim(str2);\n}\n\n/**\n * get friendly attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction friendlyAttrValue(str) {\n str = unescapeQuote(str);\n str = escapeHtmlEntities(str);\n str = escapeDangerHtml5Entities(str);\n str = clearNonPrintableCharacter(str);\n return str;\n}\n\n/**\n * unescape attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeAttrValue(str) {\n str = escapeQuote(str);\n str = escapeHtml(str);\n return str;\n}\n\n/**\n * `onIgnoreTag` function for removing all the tags that are not in whitelist\n */\nfunction onIgnoreTagStripAll() {\n return \"\";\n}\n\n/**\n * remove tag body\n * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)\n *\n * @param {array} tags\n * @param {function} next\n */\nfunction StripTagBody(tags, next) {\n if (typeof next !== \"function\") {\n next = function() {};\n }\n\n var isRemoveAllTag = !Array.isArray(tags);\n function isRemoveTag(tag) {\n if (isRemoveAllTag) return true;\n return _.indexOf(tags, tag) !== -1;\n }\n\n var removeList = [];\n var posStart = false;\n\n return {\n onIgnoreTag: function(tag, html, options) {\n if (isRemoveTag(tag)) {\n if (options.isClosing) {\n var ret = \"[/removed]\";\n var end = options.position + ret.length;\n removeList.push([\n posStart !== false ? posStart : options.position,\n end\n ]);\n posStart = false;\n return ret;\n } else {\n if (!posStart) {\n posStart = options.position;\n }\n return \"[removed]\";\n }\n } else {\n return next(tag, html, options);\n }\n },\n remove: function(html) {\n var rethtml = \"\";\n var lastPos = 0;\n _.forEach(removeList, function(pos) {\n rethtml += html.slice(lastPos, pos[0]);\n lastPos = pos[1];\n });\n rethtml += html.slice(lastPos);\n return rethtml;\n }\n };\n}\n\n/**\n * remove html comments\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripCommentTag(html) {\n return html.replace(STRIP_COMMENT_TAG_REGEXP, \"\");\n}\nvar STRIP_COMMENT_TAG_REGEXP = //g;\n\n/**\n * remove invisible characters\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripBlankChar(html) {\n var chars = html.split(\"\");\n chars = chars.filter(function(char) {\n var c = char.charCodeAt(0);\n if (c === 127) return false;\n if (c <= 31) {\n if (c === 10 || c === 13) return true;\n return false;\n }\n return true;\n });\n return chars.join(\"\");\n}\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onTag = onTag;\nexports.onIgnoreTag = onIgnoreTag;\nexports.onTagAttr = onTagAttr;\nexports.onIgnoreTagAttr = onIgnoreTagAttr;\nexports.safeAttrValue = safeAttrValue;\nexports.escapeHtml = escapeHtml;\nexports.escapeQuote = escapeQuote;\nexports.unescapeQuote = unescapeQuote;\nexports.escapeHtmlEntities = escapeHtmlEntities;\nexports.escapeDangerHtml5Entities = escapeDangerHtml5Entities;\nexports.clearNonPrintableCharacter = clearNonPrintableCharacter;\nexports.friendlyAttrValue = friendlyAttrValue;\nexports.escapeAttrValue = escapeAttrValue;\nexports.onIgnoreTagStripAll = onIgnoreTagStripAll;\nexports.StripTagBody = StripTagBody;\nexports.stripCommentTag = stripCommentTag;\nexports.stripBlankChar = stripBlankChar;\nexports.cssFilter = defaultCSSFilter;\nexports.getDefaultCSSWhiteList = getDefaultCSSWhiteList;\n\n},{\"./util\":4,\"cssfilter\":8}],2:[function(require,module,exports){\n/**\n * xss\n *\n * @author Zongmin Lei\n */\n\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar FilterXSS = require(\"./xss\");\n\n/**\n * filter xss function\n *\n * @param {String} html\n * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }\n * @return {String}\n */\nfunction filterXSS(html, options) {\n var xss = new FilterXSS(options);\n return xss.process(html);\n}\n\nexports = module.exports = filterXSS;\nexports.filterXSS = filterXSS;\nexports.FilterXSS = FilterXSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\nfor (var i in parser) exports[i] = parser[i];\n\n// using `xss` on the browser, output `filterXSS` to the globals\nif (typeof window !== \"undefined\") {\n window.filterXSS = module.exports;\n}\n\n// using `xss` on the WebWorker, output `filterXSS` to the globals\nfunction isWorkerEnv() {\n return typeof self !== 'undefined' && typeof DedicatedWorkerGlobalScope !== 'undefined' && self instanceof DedicatedWorkerGlobalScope;\n}\nif (isWorkerEnv()) {\n self.filterXSS = module.exports;\n}\n\n},{\"./default\":1,\"./parser\":3,\"./xss\":5}],3:[function(require,module,exports){\n/**\n * Simple HTML Parser\n *\n * @author Zongmin Lei\n */\n\nvar _ = require(\"./util\");\n\n/**\n * get tag name\n *\n * @param {String} html e.g. ''\n * @return {String}\n */\nfunction getTagName(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n var tagName = html.slice(1, -1);\n } else {\n var tagName = html.slice(1, i + 1);\n }\n tagName = _.trim(tagName).toLowerCase();\n if (tagName.slice(0, 1) === \"/\") tagName = tagName.slice(1);\n if (tagName.slice(-1) === \"/\") tagName = tagName.slice(0, -1);\n return tagName;\n}\n\n/**\n * is close tag?\n *\n * @param {String} html 如:''\n * @return {Boolean}\n */\nfunction isClosing(html) {\n return html.slice(0, 2) === \"\") {\n rethtml += escapeHtml(html.slice(lastPos, tagStart));\n currentHtml = html.slice(tagStart, currentPos + 1);\n currentTagName = getTagName(currentHtml);\n rethtml += onTag(\n tagStart,\n rethtml.length,\n currentTagName,\n currentHtml,\n isClosing(currentHtml)\n );\n lastPos = currentPos + 1;\n tagStart = false;\n continue;\n }\n if ((c === '\"' || c === \"'\")) {\n var i = 1;\n var ic = html.charAt(currentPos - i);\n\n while ((ic === \" \") || (ic === \"=\")) {\n if (ic === \"=\") {\n quoteStart = c;\n continue chariterator;\n }\n ic = html.charAt(currentPos - ++i);\n }\n }\n } else {\n if (c === quoteStart) {\n quoteStart = false;\n continue;\n }\n }\n }\n }\n if (lastPos < html.length) {\n rethtml += escapeHtml(html.substr(lastPos));\n }\n\n return rethtml;\n}\n\nvar REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9_:\\.\\-]/gim;\n\n/**\n * parse input attributes and returns processed attributes\n *\n * @param {String} html e.g. `href=\"#\" target=\"_blank\"`\n * @param {Function} onAttr e.g. `function (name, value)`\n * @return {String}\n */\nfunction parseAttr(html, onAttr) {\n \"use strict\";\n\n var lastPos = 0;\n var retAttrs = [];\n var tmpName = false;\n var len = html.length;\n\n function addAttr(name, value) {\n name = _.trim(name);\n name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, \"\").toLowerCase();\n if (name.length < 1) return;\n var ret = onAttr(name, value || \"\");\n if (ret) retAttrs.push(ret);\n }\n\n // 逐个分析字符\n for (var i = 0; i < len; i++) {\n var c = html.charAt(i);\n var v, j;\n if (tmpName === false && c === \"=\") {\n tmpName = html.slice(lastPos, i);\n lastPos = i + 1;\n continue;\n }\n if (tmpName !== false) {\n if (\n i === lastPos &&\n (c === '\"' || c === \"'\") &&\n html.charAt(i - 1) === \"=\"\n ) {\n j = html.indexOf(c, i + 1);\n if (j === -1) {\n break;\n } else {\n v = _.trim(html.slice(lastPos + 1, j));\n addAttr(tmpName, v);\n tmpName = false;\n i = j;\n lastPos = i + 1;\n continue;\n }\n }\n }\n if (/\\s|\\n|\\t/.test(c)) {\n html = html.replace(/\\s|\\n|\\t/g, \" \");\n if (tmpName === false) {\n j = findNextEqual(html, i);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n addAttr(v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n i = j - 1;\n continue;\n }\n } else {\n j = findBeforeEqual(html, i - 1);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n v = stripQuoteWrap(v);\n addAttr(tmpName, v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n continue;\n }\n }\n }\n }\n\n if (lastPos < html.length) {\n if (tmpName === false) {\n addAttr(html.slice(lastPos));\n } else {\n addAttr(tmpName, stripQuoteWrap(_.trim(html.slice(lastPos))));\n }\n }\n\n return _.trim(retAttrs.join(\" \"));\n}\n\nfunction findNextEqual(str, i) {\n for (; i < str.length; i++) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction findBeforeEqual(str, i) {\n for (; i > 0; i--) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction isQuoteWrapString(text) {\n if (\n (text[0] === '\"' && text[text.length - 1] === '\"') ||\n (text[0] === \"'\" && text[text.length - 1] === \"'\")\n ) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction stripQuoteWrap(text) {\n if (isQuoteWrapString(text)) {\n return text.substr(1, text.length - 2);\n } else {\n return text;\n }\n}\n\nexports.parseTag = parseTag;\nexports.parseAttr = parseAttr;\n\n},{\"./util\":4}],4:[function(require,module,exports){\nmodule.exports = {\n indexOf: function(arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function(arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function(str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, \"\");\n },\n spaceIndex: function(str) {\n var reg = /\\s|\\n|\\t/;\n var match = reg.exec(str);\n return match ? match.index : -1;\n }\n};\n\n},{}],5:[function(require,module,exports){\n/**\n * filter xss\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar parseTag = parser.parseTag;\nvar parseAttr = parser.parseAttr;\nvar _ = require(\"./util\");\n\n/**\n * returns `true` if the input value is `undefined` or `null`\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull(obj) {\n return obj === undefined || obj === null;\n}\n\n/**\n * get attributes for a tag\n *\n * @param {String} html\n * @return {Object}\n * - {String} html\n * - {Boolean} closing\n */\nfunction getAttrs(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n return {\n html: \"\",\n closing: html[html.length - 2] === \"/\"\n };\n }\n html = _.trim(html.slice(i + 1, -1));\n var isClosing = html[html.length - 1] === \"/\";\n if (isClosing) html = _.trim(html.slice(0, -1));\n return {\n html: html,\n closing: isClosing\n };\n}\n\n/**\n * shallow copy\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject(obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * FilterXSS class\n *\n * @param {Object} options\n * whiteList, onTag, onTagAttr, onIgnoreTag,\n * onIgnoreTagAttr, safeAttrValue, escapeHtml\n * stripIgnoreTagBody, allowCommentTag, stripBlankChar\n * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter`\n */\nfunction FilterXSS(options) {\n options = shallowCopyObject(options || {});\n\n if (options.stripIgnoreTag) {\n if (options.onIgnoreTag) {\n console.error(\n 'Notes: cannot use these two options \"stripIgnoreTag\" and \"onIgnoreTag\" at the same time'\n );\n }\n options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll;\n }\n\n options.whiteList = options.whiteList || DEFAULT.whiteList;\n options.onTag = options.onTag || DEFAULT.onTag;\n options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr;\n options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag;\n options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml;\n this.options = options;\n\n if (options.css === false) {\n this.cssFilter = false;\n } else {\n options.css = options.css || {};\n this.cssFilter = new FilterCSS(options.css);\n }\n}\n\n/**\n * start process and returns result\n *\n * @param {String} html\n * @return {String}\n */\nFilterXSS.prototype.process = function(html) {\n // compatible with the input\n html = html || \"\";\n html = html.toString();\n if (!html) return \"\";\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onTag = options.onTag;\n var onIgnoreTag = options.onIgnoreTag;\n var onTagAttr = options.onTagAttr;\n var onIgnoreTagAttr = options.onIgnoreTagAttr;\n var safeAttrValue = options.safeAttrValue;\n var escapeHtml = options.escapeHtml;\n var cssFilter = me.cssFilter;\n\n // remove invisible characters\n if (options.stripBlankChar) {\n html = DEFAULT.stripBlankChar(html);\n }\n\n // remove html comments\n if (!options.allowCommentTag) {\n html = DEFAULT.stripCommentTag(html);\n }\n\n // if enable stripIgnoreTagBody\n var stripIgnoreTagBody = false;\n if (options.stripIgnoreTagBody) {\n var stripIgnoreTagBody = DEFAULT.StripTagBody(\n options.stripIgnoreTagBody,\n onIgnoreTag\n );\n onIgnoreTag = stripIgnoreTagBody.onIgnoreTag;\n }\n\n var retHtml = parseTag(\n html,\n function(sourcePosition, position, tag, html, isClosing) {\n var info = {\n sourcePosition: sourcePosition,\n position: position,\n isClosing: isClosing,\n isWhite: whiteList.hasOwnProperty(tag)\n };\n\n // call `onTag()`\n var ret = onTag(tag, html, info);\n if (!isNull(ret)) return ret;\n\n if (info.isWhite) {\n if (info.isClosing) {\n return \"\";\n }\n\n var attrs = getAttrs(html);\n var whiteAttrList = whiteList[tag];\n var attrsHtml = parseAttr(attrs.html, function(name, value) {\n // call `onTagAttr()`\n var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1;\n var ret = onTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n\n if (isWhiteAttr) {\n // call `safeAttrValue()`\n value = safeAttrValue(tag, name, value, cssFilter);\n if (value) {\n return name + '=\"' + value + '\"';\n } else {\n return name;\n }\n } else {\n // call `onIgnoreTagAttr()`\n var ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n return;\n }\n });\n\n // build new tag html\n var html = \"<\" + tag;\n if (attrsHtml) html += \" \" + attrsHtml;\n if (attrs.closing) html += \" /\";\n html += \">\";\n return html;\n } else {\n // call `onIgnoreTag()`\n var ret = onIgnoreTag(tag, html, info);\n if (!isNull(ret)) return ret;\n return escapeHtml(html);\n }\n },\n escapeHtml\n );\n\n // if enable stripIgnoreTagBody\n if (stripIgnoreTagBody) {\n retHtml = stripIgnoreTagBody.remove(retHtml);\n }\n\n return retHtml;\n};\n\nmodule.exports = FilterXSS;\n\n},{\"./default\":1,\"./parser\":3,\"./util\":4,\"cssfilter\":8}],6:[function(require,module,exports){\n/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar DEFAULT = require('./default');\nvar parseStyle = require('./parser');\nvar _ = require('./util');\n\n\n/**\n * 返回值是否为空\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull (obj) {\n return (obj === undefined || obj === null);\n}\n\n/**\n * 浅拷贝对象\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject (obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * 创建CSS过滤器\n *\n * @param {Object} options\n * - {Object} whiteList\n * - {Function} onAttr\n * - {Function} onIgnoreAttr\n * - {Function} safeAttrValue\n */\nfunction FilterCSS (options) {\n options = shallowCopyObject(options || {});\n options.whiteList = options.whiteList || DEFAULT.whiteList;\n options.onAttr = options.onAttr || DEFAULT.onAttr;\n options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT.onIgnoreAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n this.options = options;\n}\n\nFilterCSS.prototype.process = function (css) {\n // 兼容各种奇葩输入\n css = css || '';\n css = css.toString();\n if (!css) return '';\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onAttr = options.onAttr;\n var onIgnoreAttr = options.onIgnoreAttr;\n var safeAttrValue = options.safeAttrValue;\n\n var retCSS = parseStyle(css, function (sourcePosition, position, name, value, source) {\n\n var check = whiteList[name];\n var isWhite = false;\n if (check === true) isWhite = check;\n else if (typeof check === 'function') isWhite = check(value);\n else if (check instanceof RegExp) isWhite = check.test(value);\n if (isWhite !== true) isWhite = false;\n\n // 如果过滤后 value 为空则直接忽略\n value = safeAttrValue(name, value);\n if (!value) return;\n\n var opts = {\n position: position,\n sourcePosition: sourcePosition,\n source: source,\n isWhite: isWhite\n };\n\n if (isWhite) {\n\n var ret = onAttr(name, value, opts);\n if (isNull(ret)) {\n return name + ':' + value;\n } else {\n return ret;\n }\n\n } else {\n\n var ret = onIgnoreAttr(name, value, opts);\n if (!isNull(ret)) {\n return ret;\n }\n\n }\n });\n\n return retCSS;\n};\n\n\nmodule.exports = FilterCSS;\n\n},{\"./default\":7,\"./parser\":9,\"./util\":10}],7:[function(require,module,exports){\n/**\n * cssfilter\n *\n * @author 老雷\n */\n\nfunction getDefaultWhiteList () {\n // 白名单值说明:\n // true: 允许该属性\n // Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许\n // RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许\n // 除上面列出的值外均表示不允许\n var whiteList = {};\n\n whiteList['align-content'] = false; // default: auto\n whiteList['align-items'] = false; // default: auto\n whiteList['align-self'] = false; // default: auto\n whiteList['alignment-adjust'] = false; // default: auto\n whiteList['alignment-baseline'] = false; // default: baseline\n whiteList['all'] = false; // default: depending on individual properties\n whiteList['anchor-point'] = false; // default: none\n whiteList['animation'] = false; // default: depending on individual properties\n whiteList['animation-delay'] = false; // default: 0\n whiteList['animation-direction'] = false; // default: normal\n whiteList['animation-duration'] = false; // default: 0\n whiteList['animation-fill-mode'] = false; // default: none\n whiteList['animation-iteration-count'] = false; // default: 1\n whiteList['animation-name'] = false; // default: none\n whiteList['animation-play-state'] = false; // default: running\n whiteList['animation-timing-function'] = false; // default: ease\n whiteList['azimuth'] = false; // default: center\n whiteList['backface-visibility'] = false; // default: visible\n whiteList['background'] = true; // default: depending on individual properties\n whiteList['background-attachment'] = true; // default: scroll\n whiteList['background-clip'] = true; // default: border-box\n whiteList['background-color'] = true; // default: transparent\n whiteList['background-image'] = true; // default: none\n whiteList['background-origin'] = true; // default: padding-box\n whiteList['background-position'] = true; // default: 0% 0%\n whiteList['background-repeat'] = true; // default: repeat\n whiteList['background-size'] = true; // default: auto\n whiteList['baseline-shift'] = false; // default: baseline\n whiteList['binding'] = false; // default: none\n whiteList['bleed'] = false; // default: 6pt\n whiteList['bookmark-label'] = false; // default: content()\n whiteList['bookmark-level'] = false; // default: none\n whiteList['bookmark-state'] = false; // default: open\n whiteList['border'] = true; // default: depending on individual properties\n whiteList['border-bottom'] = true; // default: depending on individual properties\n whiteList['border-bottom-color'] = true; // default: current color\n whiteList['border-bottom-left-radius'] = true; // default: 0\n whiteList['border-bottom-right-radius'] = true; // default: 0\n whiteList['border-bottom-style'] = true; // default: none\n whiteList['border-bottom-width'] = true; // default: medium\n whiteList['border-collapse'] = true; // default: separate\n whiteList['border-color'] = true; // default: depending on individual properties\n whiteList['border-image'] = true; // default: none\n whiteList['border-image-outset'] = true; // default: 0\n whiteList['border-image-repeat'] = true; // default: stretch\n whiteList['border-image-slice'] = true; // default: 100%\n whiteList['border-image-source'] = true; // default: none\n whiteList['border-image-width'] = true; // default: 1\n whiteList['border-left'] = true; // default: depending on individual properties\n whiteList['border-left-color'] = true; // default: current color\n whiteList['border-left-style'] = true; // default: none\n whiteList['border-left-width'] = true; // default: medium\n whiteList['border-radius'] = true; // default: 0\n whiteList['border-right'] = true; // default: depending on individual properties\n whiteList['border-right-color'] = true; // default: current color\n whiteList['border-right-style'] = true; // default: none\n whiteList['border-right-width'] = true; // default: medium\n whiteList['border-spacing'] = true; // default: 0\n whiteList['border-style'] = true; // default: depending on individual properties\n whiteList['border-top'] = true; // default: depending on individual properties\n whiteList['border-top-color'] = true; // default: current color\n whiteList['border-top-left-radius'] = true; // default: 0\n whiteList['border-top-right-radius'] = true; // default: 0\n whiteList['border-top-style'] = true; // default: none\n whiteList['border-top-width'] = true; // default: medium\n whiteList['border-width'] = true; // default: depending on individual properties\n whiteList['bottom'] = false; // default: auto\n whiteList['box-decoration-break'] = true; // default: slice\n whiteList['box-shadow'] = true; // default: none\n whiteList['box-sizing'] = true; // default: content-box\n whiteList['box-snap'] = true; // default: none\n whiteList['box-suppress'] = true; // default: show\n whiteList['break-after'] = true; // default: auto\n whiteList['break-before'] = true; // default: auto\n whiteList['break-inside'] = true; // default: auto\n whiteList['caption-side'] = false; // default: top\n whiteList['chains'] = false; // default: none\n whiteList['clear'] = true; // default: none\n whiteList['clip'] = false; // default: auto\n whiteList['clip-path'] = false; // default: none\n whiteList['clip-rule'] = false; // default: nonzero\n whiteList['color'] = true; // default: implementation dependent\n whiteList['color-interpolation-filters'] = true; // default: auto\n whiteList['column-count'] = false; // default: auto\n whiteList['column-fill'] = false; // default: balance\n whiteList['column-gap'] = false; // default: normal\n whiteList['column-rule'] = false; // default: depending on individual properties\n whiteList['column-rule-color'] = false; // default: current color\n whiteList['column-rule-style'] = false; // default: medium\n whiteList['column-rule-width'] = false; // default: medium\n whiteList['column-span'] = false; // default: none\n whiteList['column-width'] = false; // default: auto\n whiteList['columns'] = false; // default: depending on individual properties\n whiteList['contain'] = false; // default: none\n whiteList['content'] = false; // default: normal\n whiteList['counter-increment'] = false; // default: none\n whiteList['counter-reset'] = false; // default: none\n whiteList['counter-set'] = false; // default: none\n whiteList['crop'] = false; // default: auto\n whiteList['cue'] = false; // default: depending on individual properties\n whiteList['cue-after'] = false; // default: none\n whiteList['cue-before'] = false; // default: none\n whiteList['cursor'] = false; // default: auto\n whiteList['direction'] = false; // default: ltr\n whiteList['display'] = true; // default: depending on individual properties\n whiteList['display-inside'] = true; // default: auto\n whiteList['display-list'] = true; // default: none\n whiteList['display-outside'] = true; // default: inline-level\n whiteList['dominant-baseline'] = false; // default: auto\n whiteList['elevation'] = false; // default: level\n whiteList['empty-cells'] = false; // default: show\n whiteList['filter'] = false; // default: none\n whiteList['flex'] = false; // default: depending on individual properties\n whiteList['flex-basis'] = false; // default: auto\n whiteList['flex-direction'] = false; // default: row\n whiteList['flex-flow'] = false; // default: depending on individual properties\n whiteList['flex-grow'] = false; // default: 0\n whiteList['flex-shrink'] = false; // default: 1\n whiteList['flex-wrap'] = false; // default: nowrap\n whiteList['float'] = false; // default: none\n whiteList['float-offset'] = false; // default: 0 0\n whiteList['flood-color'] = false; // default: black\n whiteList['flood-opacity'] = false; // default: 1\n whiteList['flow-from'] = false; // default: none\n whiteList['flow-into'] = false; // default: none\n whiteList['font'] = true; // default: depending on individual properties\n whiteList['font-family'] = true; // default: implementation dependent\n whiteList['font-feature-settings'] = true; // default: normal\n whiteList['font-kerning'] = true; // default: auto\n whiteList['font-language-override'] = true; // default: normal\n whiteList['font-size'] = true; // default: medium\n whiteList['font-size-adjust'] = true; // default: none\n whiteList['font-stretch'] = true; // default: normal\n whiteList['font-style'] = true; // default: normal\n whiteList['font-synthesis'] = true; // default: weight style\n whiteList['font-variant'] = true; // default: normal\n whiteList['font-variant-alternates'] = true; // default: normal\n whiteList['font-variant-caps'] = true; // default: normal\n whiteList['font-variant-east-asian'] = true; // default: normal\n whiteList['font-variant-ligatures'] = true; // default: normal\n whiteList['font-variant-numeric'] = true; // default: normal\n whiteList['font-variant-position'] = true; // default: normal\n whiteList['font-weight'] = true; // default: normal\n whiteList['grid'] = false; // default: depending on individual properties\n whiteList['grid-area'] = false; // default: depending on individual properties\n whiteList['grid-auto-columns'] = false; // default: auto\n whiteList['grid-auto-flow'] = false; // default: none\n whiteList['grid-auto-rows'] = false; // default: auto\n whiteList['grid-column'] = false; // default: depending on individual properties\n whiteList['grid-column-end'] = false; // default: auto\n whiteList['grid-column-start'] = false; // default: auto\n whiteList['grid-row'] = false; // default: depending on individual properties\n whiteList['grid-row-end'] = false; // default: auto\n whiteList['grid-row-start'] = false; // default: auto\n whiteList['grid-template'] = false; // default: depending on individual properties\n whiteList['grid-template-areas'] = false; // default: none\n whiteList['grid-template-columns'] = false; // default: none\n whiteList['grid-template-rows'] = false; // default: none\n whiteList['hanging-punctuation'] = false; // default: none\n whiteList['height'] = true; // default: auto\n whiteList['hyphens'] = false; // default: manual\n whiteList['icon'] = false; // default: auto\n whiteList['image-orientation'] = false; // default: auto\n whiteList['image-resolution'] = false; // default: normal\n whiteList['ime-mode'] = false; // default: auto\n whiteList['initial-letters'] = false; // default: normal\n whiteList['inline-box-align'] = false; // default: last\n whiteList['justify-content'] = false; // default: auto\n whiteList['justify-items'] = false; // default: auto\n whiteList['justify-self'] = false; // default: auto\n whiteList['left'] = false; // default: auto\n whiteList['letter-spacing'] = true; // default: normal\n whiteList['lighting-color'] = true; // default: white\n whiteList['line-box-contain'] = false; // default: block inline replaced\n whiteList['line-break'] = false; // default: auto\n whiteList['line-grid'] = false; // default: match-parent\n whiteList['line-height'] = false; // default: normal\n whiteList['line-snap'] = false; // default: none\n whiteList['line-stacking'] = false; // default: depending on individual properties\n whiteList['line-stacking-ruby'] = false; // default: exclude-ruby\n whiteList['line-stacking-shift'] = false; // default: consider-shifts\n whiteList['line-stacking-strategy'] = false; // default: inline-line-height\n whiteList['list-style'] = true; // default: depending on individual properties\n whiteList['list-style-image'] = true; // default: none\n whiteList['list-style-position'] = true; // default: outside\n whiteList['list-style-type'] = true; // default: disc\n whiteList['margin'] = true; // default: depending on individual properties\n whiteList['margin-bottom'] = true; // default: 0\n whiteList['margin-left'] = true; // default: 0\n whiteList['margin-right'] = true; // default: 0\n whiteList['margin-top'] = true; // default: 0\n whiteList['marker-offset'] = false; // default: auto\n whiteList['marker-side'] = false; // default: list-item\n whiteList['marks'] = false; // default: none\n whiteList['mask'] = false; // default: border-box\n whiteList['mask-box'] = false; // default: see individual properties\n whiteList['mask-box-outset'] = false; // default: 0\n whiteList['mask-box-repeat'] = false; // default: stretch\n whiteList['mask-box-slice'] = false; // default: 0 fill\n whiteList['mask-box-source'] = false; // default: none\n whiteList['mask-box-width'] = false; // default: auto\n whiteList['mask-clip'] = false; // default: border-box\n whiteList['mask-image'] = false; // default: none\n whiteList['mask-origin'] = false; // default: border-box\n whiteList['mask-position'] = false; // default: center\n whiteList['mask-repeat'] = false; // default: no-repeat\n whiteList['mask-size'] = false; // default: border-box\n whiteList['mask-source-type'] = false; // default: auto\n whiteList['mask-type'] = false; // default: luminance\n whiteList['max-height'] = true; // default: none\n whiteList['max-lines'] = false; // default: none\n whiteList['max-width'] = true; // default: none\n whiteList['min-height'] = true; // default: 0\n whiteList['min-width'] = true; // default: 0\n whiteList['move-to'] = false; // default: normal\n whiteList['nav-down'] = false; // default: auto\n whiteList['nav-index'] = false; // default: auto\n whiteList['nav-left'] = false; // default: auto\n whiteList['nav-right'] = false; // default: auto\n whiteList['nav-up'] = false; // default: auto\n whiteList['object-fit'] = false; // default: fill\n whiteList['object-position'] = false; // default: 50% 50%\n whiteList['opacity'] = false; // default: 1\n whiteList['order'] = false; // default: 0\n whiteList['orphans'] = false; // default: 2\n whiteList['outline'] = false; // default: depending on individual properties\n whiteList['outline-color'] = false; // default: invert\n whiteList['outline-offset'] = false; // default: 0\n whiteList['outline-style'] = false; // default: none\n whiteList['outline-width'] = false; // default: medium\n whiteList['overflow'] = false; // default: depending on individual properties\n whiteList['overflow-wrap'] = false; // default: normal\n whiteList['overflow-x'] = false; // default: visible\n whiteList['overflow-y'] = false; // default: visible\n whiteList['padding'] = true; // default: depending on individual properties\n whiteList['padding-bottom'] = true; // default: 0\n whiteList['padding-left'] = true; // default: 0\n whiteList['padding-right'] = true; // default: 0\n whiteList['padding-top'] = true; // default: 0\n whiteList['page'] = false; // default: auto\n whiteList['page-break-after'] = false; // default: auto\n whiteList['page-break-before'] = false; // default: auto\n whiteList['page-break-inside'] = false; // default: auto\n whiteList['page-policy'] = false; // default: start\n whiteList['pause'] = false; // default: implementation dependent\n whiteList['pause-after'] = false; // default: implementation dependent\n whiteList['pause-before'] = false; // default: implementation dependent\n whiteList['perspective'] = false; // default: none\n whiteList['perspective-origin'] = false; // default: 50% 50%\n whiteList['pitch'] = false; // default: medium\n whiteList['pitch-range'] = false; // default: 50\n whiteList['play-during'] = false; // default: auto\n whiteList['position'] = false; // default: static\n whiteList['presentation-level'] = false; // default: 0\n whiteList['quotes'] = false; // default: text\n whiteList['region-fragment'] = false; // default: auto\n whiteList['resize'] = false; // default: none\n whiteList['rest'] = false; // default: depending on individual properties\n whiteList['rest-after'] = false; // default: none\n whiteList['rest-before'] = false; // default: none\n whiteList['richness'] = false; // default: 50\n whiteList['right'] = false; // default: auto\n whiteList['rotation'] = false; // default: 0\n whiteList['rotation-point'] = false; // default: 50% 50%\n whiteList['ruby-align'] = false; // default: auto\n whiteList['ruby-merge'] = false; // default: separate\n whiteList['ruby-position'] = false; // default: before\n whiteList['shape-image-threshold'] = false; // default: 0.0\n whiteList['shape-outside'] = false; // default: none\n whiteList['shape-margin'] = false; // default: 0\n whiteList['size'] = false; // default: auto\n whiteList['speak'] = false; // default: auto\n whiteList['speak-as'] = false; // default: normal\n whiteList['speak-header'] = false; // default: once\n whiteList['speak-numeral'] = false; // default: continuous\n whiteList['speak-punctuation'] = false; // default: none\n whiteList['speech-rate'] = false; // default: medium\n whiteList['stress'] = false; // default: 50\n whiteList['string-set'] = false; // default: none\n whiteList['tab-size'] = false; // default: 8\n whiteList['table-layout'] = false; // default: auto\n whiteList['text-align'] = true; // default: start\n whiteList['text-align-last'] = true; // default: auto\n whiteList['text-combine-upright'] = true; // default: none\n whiteList['text-decoration'] = true; // default: none\n whiteList['text-decoration-color'] = true; // default: currentColor\n whiteList['text-decoration-line'] = true; // default: none\n whiteList['text-decoration-skip'] = true; // default: objects\n whiteList['text-decoration-style'] = true; // default: solid\n whiteList['text-emphasis'] = true; // default: depending on individual properties\n whiteList['text-emphasis-color'] = true; // default: currentColor\n whiteList['text-emphasis-position'] = true; // default: over right\n whiteList['text-emphasis-style'] = true; // default: none\n whiteList['text-height'] = true; // default: auto\n whiteList['text-indent'] = true; // default: 0\n whiteList['text-justify'] = true; // default: auto\n whiteList['text-orientation'] = true; // default: mixed\n whiteList['text-overflow'] = true; // default: clip\n whiteList['text-shadow'] = true; // default: none\n whiteList['text-space-collapse'] = true; // default: collapse\n whiteList['text-transform'] = true; // default: none\n whiteList['text-underline-position'] = true; // default: auto\n whiteList['text-wrap'] = true; // default: normal\n whiteList['top'] = false; // default: auto\n whiteList['transform'] = false; // default: none\n whiteList['transform-origin'] = false; // default: 50% 50% 0\n whiteList['transform-style'] = false; // default: flat\n whiteList['transition'] = false; // default: depending on individual properties\n whiteList['transition-delay'] = false; // default: 0s\n whiteList['transition-duration'] = false; // default: 0s\n whiteList['transition-property'] = false; // default: all\n whiteList['transition-timing-function'] = false; // default: ease\n whiteList['unicode-bidi'] = false; // default: normal\n whiteList['vertical-align'] = false; // default: baseline\n whiteList['visibility'] = false; // default: visible\n whiteList['voice-balance'] = false; // default: center\n whiteList['voice-duration'] = false; // default: auto\n whiteList['voice-family'] = false; // default: implementation dependent\n whiteList['voice-pitch'] = false; // default: medium\n whiteList['voice-range'] = false; // default: medium\n whiteList['voice-rate'] = false; // default: normal\n whiteList['voice-stress'] = false; // default: normal\n whiteList['voice-volume'] = false; // default: medium\n whiteList['volume'] = false; // default: medium\n whiteList['white-space'] = false; // default: normal\n whiteList['widows'] = false; // default: 2\n whiteList['width'] = true; // default: auto\n whiteList['will-change'] = false; // default: auto\n whiteList['word-break'] = true; // default: normal\n whiteList['word-spacing'] = true; // default: normal\n whiteList['word-wrap'] = true; // default: normal\n whiteList['wrap-flow'] = false; // default: auto\n whiteList['wrap-through'] = false; // default: wrap\n whiteList['writing-mode'] = false; // default: horizontal-tb\n whiteList['z-index'] = false; // default: auto\n\n return whiteList;\n}\n\n\n/**\n * 匹配到白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onAttr (name, value, options) {\n // do nothing\n}\n\n/**\n * 匹配到不在白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreAttr (name, value, options) {\n // do nothing\n}\n\nvar REGEXP_URL_JAVASCRIPT = /javascript\\s*\\:/img;\n\n/**\n * 过滤属性值\n *\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction safeAttrValue(name, value) {\n if (REGEXP_URL_JAVASCRIPT.test(value)) return '';\n return value;\n}\n\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onAttr = onAttr;\nexports.onIgnoreAttr = onIgnoreAttr;\nexports.safeAttrValue = safeAttrValue;\n\n},{}],8:[function(require,module,exports){\n/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar DEFAULT = require('./default');\nvar FilterCSS = require('./css');\n\n\n/**\n * XSS过滤\n *\n * @param {String} css 要过滤的CSS代码\n * @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr\n * @return {String}\n */\nfunction filterCSS (html, options) {\n var xss = new FilterCSS(options);\n return xss.process(html);\n}\n\n\n// 输出\nexports = module.exports = filterCSS;\nexports.FilterCSS = FilterCSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\n\n// 在浏览器端使用\nif (typeof window !== 'undefined') {\n window.filterCSS = module.exports;\n}\n\n},{\"./css\":6,\"./default\":7}],9:[function(require,module,exports){\n/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar _ = require('./util');\n\n\n/**\n * 解析style\n *\n * @param {String} css\n * @param {Function} onAttr 处理属性的函数\n * 参数格式: function (sourcePosition, position, name, value, source)\n * @return {String}\n */\nfunction parseStyle (css, onAttr) {\n css = _.trimRight(css);\n if (css[css.length - 1] !== ';') css += ';';\n var cssLength = css.length;\n var isParenthesisOpen = false;\n var lastPos = 0;\n var i = 0;\n var retCSS = '';\n\n function addNewAttr () {\n // 如果没有正常的闭合圆括号,则直接忽略当前属性\n if (!isParenthesisOpen) {\n var source = _.trim(css.slice(lastPos, i));\n var j = source.indexOf(':');\n if (j !== -1) {\n var name = _.trim(source.slice(0, j));\n var value = _.trim(source.slice(j + 1));\n // 必须有属性名称\n if (name) {\n var ret = onAttr(lastPos, retCSS.length, name, value, source);\n if (ret) retCSS += ret + '; ';\n }\n }\n }\n lastPos = i + 1;\n }\n\n for (; i < cssLength; i++) {\n var c = css[i];\n if (c === '/' && css[i + 1] === '*') {\n // 备注开始\n var j = css.indexOf('*/', i + 2);\n // 如果没有正常的备注结束,则后面的部分全部跳过\n if (j === -1) break;\n // 直接将当前位置调到备注结尾,并且初始化状态\n i = j + 1;\n lastPos = i + 1;\n isParenthesisOpen = false;\n } else if (c === '(') {\n isParenthesisOpen = true;\n } else if (c === ')') {\n isParenthesisOpen = false;\n } else if (c === ';') {\n if (isParenthesisOpen) {\n // 在圆括号里面,忽略\n } else {\n addNewAttr();\n }\n } else if (c === '\\n') {\n addNewAttr();\n }\n }\n\n return _.trim(retCSS);\n}\n\nmodule.exports = parseStyle;\n\n},{\"./util\":10}],10:[function(require,module,exports){\nmodule.exports = {\n indexOf: function (arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function (arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function (str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, '');\n },\n trimRight: function (str) {\n if (String.prototype.trimRight) {\n return str.trimRight();\n }\n return str.replace(/(\\s*$)/g, '');\n }\n};\n\n},{}]},{},[2]);\n\n\n/*** EXPORTS FROM exports-loader ***/\nexports[\"filterXSS\"] = (filterXSS);\nexports[\"filterCSS\"] = (filterCSS);","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","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","/**\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\nmodule.exports = isObjectLike;\n","/*global global*/\n\nimport './bosh';\nimport './websocket';\nimport './worker-websocket';\nimport * as strophe from './core';\n\nglobal.$build = strophe.default.$build;\nglobal.$iq = strophe.default.$iq;\nglobal.$msg = strophe.default.$msg;\nglobal.$pres = strophe.default.$pres;\nglobal.Strophe = strophe.default.Strophe;\n\nexport { Strophe, $build, $iq, $msg, $pres } from './core';\n\nexport const { b64_sha1 } = strophe.SHA1;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\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\nmodule.exports = baseGetTag;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","/*!\n localForage -- Offline Storage, Improved\n Version 1.9.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n resolve(openreq.result);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = req.onblocked = function (err) {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(err);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","// Native Javascript for Bootstrap 4 v2.0.27 | © dnp_theme | MIT-License\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD support:\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like:\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n var bsn = factory();\n root.Alert = bsn.Alert;\n root.Button = bsn.Button;\n root.Collapse = bsn.Collapse;\n root.Dropdown = bsn.Dropdown;\n root.Modal = bsn.Modal;\n root.Popover = bsn.Popover;\n root.Tab = bsn.Tab;\n root.Toast = bsn.Toast;\n root.Tooltip = bsn.Tooltip;\n }\n}(this, function () {\n \n /* Native Javascript for Bootstrap 4 | Internal Utility Functions\n ----------------------------------------------------------------*/\n \"use strict\";\n \n // globals\n var globalObject = typeof global !== 'undefined' ? global : this||window,\n DOC = document, HTML = DOC.documentElement, body = 'body', // allow the library to be used in \n \n // Native Javascript for Bootstrap Global Object\n BSN = globalObject.BSN = {},\n supports = BSN.supports = [],\n \n // function toggle attributes\n dataToggle = 'data-toggle',\n dataDismiss = 'data-dismiss',\n dataSpy = 'data-spy',\n dataRide = 'data-ride',\n \n // components\n stringAlert = 'Alert',\n stringButton = 'Button',\n stringCarousel = 'Carousel',\n stringCollapse = 'Collapse',\n stringDropdown = 'Dropdown',\n stringModal = 'Modal',\n stringPopover = 'Popover',\n stringScrollSpy = 'ScrollSpy',\n stringTab = 'Tab',\n stringTooltip = 'Tooltip',\n stringToast = 'Toast',\n \n // options DATA API\n dataAutohide = 'data-autohide',\n databackdrop = 'data-backdrop',\n dataKeyboard = 'data-keyboard',\n dataTarget = 'data-target',\n dataInterval = 'data-interval',\n dataHeight = 'data-height',\n dataPause = 'data-pause',\n dataTitle = 'data-title',\n dataOriginalTitle = 'data-original-title',\n dataDismissible = 'data-dismissible',\n dataTrigger = 'data-trigger',\n dataAnimation = 'data-animation',\n dataContainer = 'data-container',\n dataPlacement = 'data-placement',\n dataDelay = 'data-delay',\n \n // option keys\n backdrop = 'backdrop', keyboard = 'keyboard', delay = 'delay',\n content = 'content', target = 'target', currentTarget = 'currentTarget',\n interval = 'interval', pause = 'pause', animation = 'animation',\n placement = 'placement', container = 'container',\n \n // box model\n offsetTop = 'offsetTop', offsetBottom = 'offsetBottom',\n offsetLeft = 'offsetLeft',\n scrollTop = 'scrollTop', scrollLeft = 'scrollLeft',\n clientWidth = 'clientWidth', clientHeight = 'clientHeight',\n offsetWidth = 'offsetWidth', offsetHeight = 'offsetHeight',\n innerWidth = 'innerWidth', innerHeight = 'innerHeight',\n scrollHeight = 'scrollHeight', scrollWidth = 'scrollWidth',\n height = 'height',\n \n // aria\n ariaExpanded = 'aria-expanded',\n ariaHidden = 'aria-hidden',\n ariaSelected = 'aria-selected',\n \n // event names\n clickEvent = 'click',\n focusEvent = 'focus',\n hoverEvent = 'hover',\n keydownEvent = 'keydown',\n keyupEvent = 'keyup',\n resizeEvent = 'resize', // passive\n scrollEvent = 'scroll', // passive\n mouseHover = ('onmouseleave' in DOC) ? [ 'mouseenter', 'mouseleave'] : [ 'mouseover', 'mouseout' ],\n // touch since 2.0.26\n touchEvents = { start: 'touchstart', end: 'touchend', move:'touchmove' }, // passive\n // originalEvents\n showEvent = 'show',\n shownEvent = 'shown',\n hideEvent = 'hide',\n hiddenEvent = 'hidden',\n closeEvent = 'close',\n closedEvent = 'closed',\n slidEvent = 'slid',\n slideEvent = 'slide',\n changeEvent = 'change',\n \n // other\n getAttribute = 'getAttribute',\n setAttribute = 'setAttribute',\n hasAttribute = 'hasAttribute',\n createElement = 'createElement',\n appendChild = 'appendChild',\n innerHTML = 'innerHTML',\n getElementsByTagName = 'getElementsByTagName',\n preventDefault = 'preventDefault',\n getBoundingClientRect = 'getBoundingClientRect',\n querySelectorAll = 'querySelectorAll',\n getElementsByCLASSNAME = 'getElementsByClassName',\n getComputedStyle = 'getComputedStyle', \n \n indexOf = 'indexOf',\n parentNode = 'parentNode',\n length = 'length',\n toLowerCase = 'toLowerCase',\n Transition = 'Transition',\n Duration = 'Duration',\n Webkit = 'Webkit',\n style = 'style',\n push = 'push',\n tabindex = 'tabindex',\n contains = 'contains',\n \n active = 'active',\n showClass = 'show',\n collapsing = 'collapsing',\n disabled = 'disabled',\n loading = 'loading',\n left = 'left',\n right = 'right',\n top = 'top',\n bottom = 'bottom',\n \n // tooltip / popover\n tipPositions = /\\b(top|bottom|left|right)+/,\n \n // modal\n modalOverlay = 0,\n fixedTop = 'fixed-top',\n fixedBottom = 'fixed-bottom',\n \n // transitionEnd since 2.0.4\n supportTransitions = Webkit+Transition in HTML[style] || Transition[toLowerCase]() in HTML[style],\n transitionEndEvent = Webkit+Transition in HTML[style] ? Webkit[toLowerCase]()+Transition+'End' : Transition[toLowerCase]()+'end',\n transitionDuration = Webkit+Duration in HTML[style] ? Webkit[toLowerCase]()+Transition+Duration : Transition[toLowerCase]()+Duration,\n \n // set new focus element since 2.0.3\n setFocus = function(element){\n element.focus ? element.focus() : element.setActive();\n },\n \n // class manipulation, since 2.0.0 requires polyfill.js\n addClass = function(element,classNAME) {\n element.classList.add(classNAME);\n },\n removeClass = function(element,classNAME) {\n element.classList.remove(classNAME);\n },\n hasClass = function(element,classNAME){ // since 2.0.0\n return element.classList[contains](classNAME);\n },\n \n // selection methods\n getElementsByClassName = function(element,classNAME) { // returns Array\n return [].slice.call(element[getElementsByCLASSNAME]( classNAME ));\n },\n queryElement = function (selector, parent) {\n var lookUp = parent ? parent : DOC;\n return typeof selector === 'object' ? selector : lookUp.querySelector(selector);\n },\n getClosest = function (element, selector) { //element is the element and selector is for the closest parent element to find\n // source http://gomakethings.com/climbing-up-and-down-the-dom-tree-with-vanilla-javascript/\n var firstChar = selector.charAt(0), selectorSubstring = selector.substr(1);\n if ( firstChar === '.' ) {// If selector is a class\n for ( ; element && element !== DOC; element = element[parentNode] ) { // Get closest match\n if ( queryElement(selector,element[parentNode]) !== null && hasClass(element,selectorSubstring) ) { return element; }\n }\n } else if ( firstChar === '#' ) { // If selector is an ID\n for ( ; element && element !== DOC; element = element[parentNode] ) { // Get closest match\n if ( element.id === selectorSubstring ) { return element; }\n }\n }\n return false;\n },\n \n // event attach jQuery style / trigger since 1.2.0\n on = function (element, event, handler, options) {\n options = options || false;\n element.addEventListener(event, handler, options);\n },\n off = function(element, event, handler, options) {\n options = options || false;\n element.removeEventListener(event, handler, options);\n },\n one = function (element, event, handler, options) { // one since 2.0.4\n on(element, event, function handlerWrapper(e){\n handler(e);\n off(element, event, handlerWrapper, options);\n }, options);\n },\n // determine support for passive events\n supportPassive = (function(){\n // Test via a getter in the options object to see if the passive property is accessed\n var result = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function() {\n result = true;\n }\n });\n one(globalObject, 'testPassive', null, opts);\n } catch (e) {}\n \n return result;\n }()),\n // event options\n // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n passiveHandler = supportPassive ? { passive: true } : false,\n // transitions\n getTransitionDurationFromElement = function(element) {\n var duration = supportTransitions ? globalObject[getComputedStyle](element)[transitionDuration] : 0;\n duration = parseFloat(duration);\n duration = typeof duration === 'number' && !isNaN(duration) ? duration * 1000 : 0;\n return duration; // we take a short offset to make sure we fire on the next frame after animation\n },\n emulateTransitionEnd = function(element,handler){ // emulateTransitionEnd since 2.0.4\n var called = 0, duration = getTransitionDurationFromElement(element);\n duration ? one(element, transitionEndEvent, function(e){ !called && handler(e), called = 1; })\n : setTimeout(function() { !called && handler(), called = 1; }, 17);\n },\n bootstrapCustomEvent = function (eventName, componentName, related) {\n var OriginalCustomEvent = new CustomEvent( eventName + '.bs.' + componentName);\n OriginalCustomEvent.relatedTarget = related;\n this.dispatchEvent(OriginalCustomEvent);\n },\n \n // tooltip / popover stuff\n getScroll = function() { // also Affix and ScrollSpy uses it\n return {\n y : globalObject.pageYOffset || HTML[scrollTop],\n x : globalObject.pageXOffset || HTML[scrollLeft]\n }\n },\n styleTip = function(link,element,position,parent) { // both popovers and tooltips (target,tooltip,placement,elementToAppendTo)\n var elementDimensions = { w : element[offsetWidth], h: element[offsetHeight] },\n windowWidth = (HTML[clientWidth] || DOC[body][clientWidth]),\n windowHeight = (HTML[clientHeight] || DOC[body][clientHeight]),\n rect = link[getBoundingClientRect](),\n scroll = parent === DOC[body] ? getScroll() : { x: parent[offsetLeft] + parent[scrollLeft], y: parent[offsetTop] + parent[scrollTop] },\n linkDimensions = { w: rect[right] - rect[left], h: rect[bottom] - rect[top] },\n isPopover = hasClass(element,'popover'),\n topPosition, leftPosition,\n \n arrow = queryElement('.arrow',element),\n arrowTop, arrowLeft, arrowWidth, arrowHeight,\n \n halfTopExceed = rect[top] + linkDimensions.h/2 - elementDimensions.h/2 < 0,\n halfLeftExceed = rect[left] + linkDimensions.w/2 - elementDimensions.w/2 < 0,\n halfRightExceed = rect[left] + elementDimensions.w/2 + linkDimensions.w/2 >= windowWidth,\n halfBottomExceed = rect[top] + elementDimensions.h/2 + linkDimensions.h/2 >= windowHeight,\n topExceed = rect[top] - elementDimensions.h < 0,\n leftExceed = rect[left] - elementDimensions.w < 0,\n bottomExceed = rect[top] + elementDimensions.h + linkDimensions.h >= windowHeight,\n rightExceed = rect[left] + elementDimensions.w + linkDimensions.w >= windowWidth;\n \n // recompute position\n position = (position === left || position === right) && leftExceed && rightExceed ? top : position; // first, when both left and right limits are exceeded, we fall back to top|bottom\n position = position === top && topExceed ? bottom : position;\n position = position === bottom && bottomExceed ? top : position;\n position = position === left && leftExceed ? right : position;\n position = position === right && rightExceed ? left : position;\n \n // update tooltip/popover class\n element.className[indexOf](position) === -1 && (element.className = element.className.replace(tipPositions,position));\n \n // we check the computed width & height and update here\n arrowWidth = arrow[offsetWidth]; arrowHeight = arrow[offsetHeight];\n \n // apply styling to tooltip or popover\n if ( position === left || position === right ) { // secondary|side positions\n if ( position === left ) { // LEFT\n leftPosition = rect[left] + scroll.x - elementDimensions.w - ( isPopover ? arrowWidth : 0 );\n } else { // RIGHT\n leftPosition = rect[left] + scroll.x + linkDimensions.w;\n }\n \n // adjust top and arrow\n if (halfTopExceed) {\n topPosition = rect[top] + scroll.y;\n arrowTop = linkDimensions.h/2 - arrowWidth;\n } else if (halfBottomExceed) {\n topPosition = rect[top] + scroll.y - elementDimensions.h + linkDimensions.h;\n arrowTop = elementDimensions.h - linkDimensions.h/2 - arrowWidth;\n } else {\n topPosition = rect[top] + scroll.y - elementDimensions.h/2 + linkDimensions.h/2;\n arrowTop = elementDimensions.h/2 - (isPopover ? arrowHeight*0.9 : arrowHeight/2);\n }\n } else if ( position === top || position === bottom ) { // primary|vertical positions\n if ( position === top) { // TOP\n topPosition = rect[top] + scroll.y - elementDimensions.h - ( isPopover ? arrowHeight : 0 );\n } else { // BOTTOM\n topPosition = rect[top] + scroll.y + linkDimensions.h;\n }\n // adjust left | right and also the arrow\n if (halfLeftExceed) {\n leftPosition = 0;\n arrowLeft = rect[left] + linkDimensions.w/2 - arrowWidth;\n } else if (halfRightExceed) {\n leftPosition = windowWidth - elementDimensions.w*1.01;\n arrowLeft = elementDimensions.w - ( windowWidth - rect[left] ) + linkDimensions.w/2 - arrowWidth/2;\n } else {\n leftPosition = rect[left] + scroll.x - elementDimensions.w/2 + linkDimensions.w/2;\n arrowLeft = elementDimensions.w/2 - ( isPopover ? arrowWidth : arrowWidth/2 );\n }\n }\n \n // apply style to tooltip/popover and its arrow\n element[style][top] = topPosition + 'px';\n element[style][left] = leftPosition + 'px';\n \n arrowTop && (arrow[style][top] = arrowTop + 'px');\n arrowLeft && (arrow[style][left] = arrowLeft + 'px');\n };\n \n BSN.version = '2.0.27';\n \n /* Native Javascript for Bootstrap 4 | Alert\n -------------------------------------------*/\n \n // ALERT DEFINITION\n // ================\n var Alert = function( element ) {\n \n // initialization element\n element = queryElement(element);\n \n // bind, target alert, duration and stuff\n var self = this, component = 'alert',\n alert = getClosest(element,'.'+component),\n triggerHandler = function(){ hasClass(alert,'fade') ? emulateTransitionEnd(alert,transitionEndHandler) : transitionEndHandler(); },\n // handlers\n clickHandler = function(e){\n alert = getClosest(e[target],'.'+component);\n element = queryElement('['+dataDismiss+'=\"'+component+'\"]',alert);\n element && alert && (element === e[target] || element[contains](e[target])) && self.close();\n },\n transitionEndHandler = function(){\n bootstrapCustomEvent.call(alert, closedEvent, component);\n off(element, clickEvent, clickHandler); // detach it's listener\n alert[parentNode].removeChild(alert);\n };\n \n // public method\n this.close = function() {\n if ( alert && element && hasClass(alert,showClass) ) {\n bootstrapCustomEvent.call(alert, closeEvent, component);\n removeClass(alert,showClass);\n alert && triggerHandler();\n }\n };\n \n // init\n if ( !(stringAlert in element ) ) { // prevent adding event handlers twice\n on(element, clickEvent, clickHandler);\n }\n element[stringAlert] = self;\n };\n \n // ALERT DATA API\n // ==============\n supports[push]([stringAlert, Alert, '['+dataDismiss+'=\"alert\"]']);\n \n \n /* Native Javascript for Bootstrap 4 | Button\n ---------------------------------------------*/\n \n // BUTTON DEFINITION\n // ===================\n var Button = function( element ) {\n \n // initialization element\n element = queryElement(element);\n \n // constant\n var toggled = false, // toggled makes sure to prevent triggering twice the change.bs.button events\n \n // strings\n component = 'button',\n checked = 'checked',\n LABEL = 'LABEL',\n INPUT = 'INPUT',\n \n // private methods\n keyHandler = function(e){ \n var key = e.which || e.keyCode;\n key === 32 && e[target] === DOC.activeElement && toggle(e);\n },\n preventScroll = function(e){ \n var key = e.which || e.keyCode;\n key === 32 && e[preventDefault]();\n },\n toggle = function(e) {\n var label = e[target].tagName === LABEL ? e[target] : e[target][parentNode].tagName === LABEL ? e[target][parentNode] : null; // the .btn label\n \n if ( !label ) return; //react if a label or its immediate child is clicked\n \n var labels = getElementsByClassName(label[parentNode],'btn'), // all the button group buttons\n input = label[getElementsByTagName](INPUT)[0];\n \n if ( !input ) return; // return if no input found\n \n // manage the dom manipulation\n if ( input.type === 'checkbox' ) { //checkboxes\n if ( !input[checked] ) {\n addClass(label,active);\n input[getAttribute](checked);\n input[setAttribute](checked,checked);\n input[checked] = true;\n } else {\n removeClass(label,active);\n input[getAttribute](checked);\n input.removeAttribute(checked);\n input[checked] = false;\n }\n \n if (!toggled) { // prevent triggering the event twice\n toggled = true;\n bootstrapCustomEvent.call(input, changeEvent, component); //trigger the change for the input\n bootstrapCustomEvent.call(element, changeEvent, component); //trigger the change for the btn-group\n }\n }\n \n if ( input.type === 'radio' && !toggled ) { // radio buttons\n // don't trigger if already active (the OR condition is a hack to check if the buttons were selected with key press and NOT mouse click)\n if ( !input[checked] || (e.screenX === 0 && e.screenY == 0) ) {\n addClass(label,active);\n addClass(label,focusEvent);\n input[setAttribute](checked,checked);\n input[checked] = true;\n bootstrapCustomEvent.call(input, changeEvent, component); //trigger the change for the input\n bootstrapCustomEvent.call(element, changeEvent, component); //trigger the change for the btn-group\n \n toggled = true;\n for (var i = 0, ll = labels[length]; i1?idx-1:0)\n : key === 40 ? (idx 1 ) {\n activeTab = activeTabs[activeTabs[length]-1];\n }\n return activeTab;\n },\n getActiveContent = function() {\n return queryElement(getActiveTab()[getAttribute]('href'));\n },\n // handler \n clickHandler = function(e) {\n e[preventDefault]();\n next = e[currentTarget];\n !tabs[isAnimating] && !hasClass(next,active) && self.show();\n };\n \n // public method\n this.show = function() { // the tab we clicked is now the next tab\n next = next || element;\n nextContent = queryElement(next[getAttribute]('href')); //this is the actual object, the next tab content to activate\n activeTab = getActiveTab(); \n activeContent = getActiveContent();\n \n tabs[isAnimating] = true;\n removeClass(activeTab,active);\n activeTab[setAttribute](ariaSelected,'false');\n addClass(next,active);\n next[setAttribute](ariaSelected,'true'); \n \n if ( dropdown ) {\n if ( !hasClass(element[parentNode],'dropdown-menu') ) {\n if (hasClass(dropdown,active)) removeClass(dropdown,active);\n } else {\n if (!hasClass(dropdown,active)) addClass(dropdown,active);\n }\n }\n \n bootstrapCustomEvent.call(activeTab, hideEvent, component, next);\n \n if (hasClass(activeContent, 'fade')) {\n removeClass(activeContent,showClass);\n emulateTransitionEnd(activeContent, triggerHide);\n } else { triggerHide(); }\n };\n \n // init\n if ( !(stringTab in element) ) { // prevent adding event handlers twice\n on(element, clickEvent, clickHandler);\n }\n if (self[height]) { tabsContentContainer = getActiveContent()[parentNode]; }\n element[stringTab] = self;\n };\n \n // TAB DATA API\n // ============\n supports[push]( [ stringTab, Tab, '['+dataToggle+'=\"tab\"]' ] );\n \n \n /* Native Javascript for Bootstrap 4 | Toast\n ---------------------------------------------*/\n \n // TOAST DEFINITION\n // ==================\n var Toast = function( element,options ) {\n \n // initialization element\n element = queryElement(element);\n \n // set options\n options = options || {};\n \n // DATA API\n var animationData = element[getAttribute](dataAnimation),\n autohideData = element[getAttribute](dataAutohide),\n delayData = element[getAttribute](dataDelay),\n \n // strings\n component = 'toast',\n autohide = 'autohide',\n animation = 'animation',\n showing = 'showing',\n hide = 'hide',\n fade = 'fade';\n \n // set instance options\n this[animation] = options[animation] === false || animationData === 'false' ? 0 : 1; // true by default\n this[autohide] = options[autohide] === false || autohideData === 'false' ? 0 : 1; // true by default\n this[delay] = parseInt(options[delay] || delayData) || 500; // 500ms default\n \n // bind,toast and timer\n var self = this, timer = 0,\n // get the toast element\n toast = getClosest(element,'.toast');\n \n // private methods\n // animation complete\n var showComplete = function() {\n removeClass( toast, showing );\n addClass( toast, showClass );\n bootstrapCustomEvent.call(toast, shownEvent, component);\n if (self[autohide]) { self.hide(); }\n },\n hideComplete = function() {\n addClass( toast, hide );\n bootstrapCustomEvent.call(toast, hiddenEvent, component);\n },\n close = function() {\n removeClass( toast,showClass );\n self[animation] ? emulateTransitionEnd(toast, hideComplete) : hideComplete();\n },\n disposeComplete = function(){\n clearTimeout(timer); timer = null;\n addClass( toast, hide );\n off(element, clickEvent, self.hide);\n element[stringToast] = null;\n element = null;\n toast = null;\n };\n \n // public methods\n this.show = function() {\n if (toast) {\n bootstrapCustomEvent.call(toast, showEvent, component);\n self[animation] && addClass( toast,fade );\n removeClass( toast,hide );\n addClass( toast,showing );\n \n self[animation] ? emulateTransitionEnd(toast, showComplete) : showComplete();\n }\n };\n this.hide = function(noTimer) {\n if (toast && hasClass(toast,showClass)) {\n bootstrapCustomEvent.call(toast, hideEvent, component);\n \n if (noTimer) {\n close();\n } else {\n timer = setTimeout( close, self[delay]);\n }\n }\n };\n this.dispose = function() {\n if ( toast && hasClass(toast,showClass) ) {\n removeClass( toast,showClass );\n self[animation] ? emulateTransitionEnd(toast, disposeComplete) : disposeComplete();\n }\n };\n \n // init\n if ( !(stringToast in element) ) { // prevent adding event handlers twice\n on(element, clickEvent, self.hide);\n }\n element[stringToast] = self;\n };\n \n // TOAST DATA API\n // =================\n supports[push]( [ stringToast, Toast, '['+dataDismiss+'=\"toast\"]' ] );\n \n \n /* Native Javascript for Bootstrap 4 | Tooltip\n ---------------------------------------------*/\n \n // TOOLTIP DEFINITION\n // ==================\n var Tooltip = function( element,options ) {\n \n // initialization element\n element = queryElement(element);\n \n // set options\n options = options || {};\n \n // DATA API\n var animationData = element[getAttribute](dataAnimation),\n placementData = element[getAttribute](dataPlacement),\n delayData = element[getAttribute](dataDelay),\n containerData = element[getAttribute](dataContainer),\n \n // strings\n component = 'tooltip',\n classString = 'class',\n title = 'title',\n fade = 'fade',\n div = 'div',\n \n // check container\n containerElement = queryElement(options[container]),\n containerDataElement = queryElement(containerData), \n \n // maybe the element is inside a modal\n modal = getClosest(element,'.modal'),\n \n // maybe the element is inside a fixed navbar\n navbarFixedTop = getClosest(element,'.'+fixedTop),\n navbarFixedBottom = getClosest(element,'.'+fixedBottom);\n \n // set instance options\n this[animation] = options[animation] && options[animation] !== fade ? options[animation] : animationData || fade;\n this[placement] = options[placement] ? options[placement] : placementData || top;\n this[delay] = parseInt(options[delay] || delayData) || 200;\n this[container] = containerElement ? containerElement \n : containerDataElement ? containerDataElement\n : navbarFixedTop ? navbarFixedTop\n : navbarFixedBottom ? navbarFixedBottom\n : modal ? modal : DOC[body];\n \n // bind, event targets, title and constants\n var self = this, timer = 0, placementSetting = this[placement], tooltip = null,\n titleString = element[getAttribute](title) || element[getAttribute](dataTitle) || element[getAttribute](dataOriginalTitle);\n \n if ( !titleString || titleString == \"\" ) return; // invalidate\n \n // private methods\n var removeToolTip = function() {\n self[container].removeChild(tooltip);\n tooltip = null; timer = null;\n },\n createToolTip = function() {\n titleString = element[getAttribute](title) || element[getAttribute](dataTitle) || element[getAttribute](dataOriginalTitle); // read the title again\n \n if ( titleString && titleString !== \"\" ) { // invalidate, maybe markup changed\n tooltip = DOC[createElement](div);\n tooltip[setAttribute]('role',component);\n tooltip[style][left] = '0';\n tooltip[style][top] = '0'; \n \n // tooltip arrow\n var tooltipArrow = DOC[createElement](div);\n tooltipArrow[setAttribute](classString,'arrow');\n tooltip[appendChild](tooltipArrow);\n \n var tooltipInner = DOC[createElement](div);\n tooltipInner[setAttribute](classString,component+'-inner');\n tooltip[appendChild](tooltipInner);\n tooltipInner[innerHTML] = titleString;\n \n self[container][appendChild](tooltip);\n tooltip[setAttribute](classString, component + ' bs-' + component+'-'+placementSetting + ' ' + self[animation]);\n }\n },\n updateTooltip = function () {\n styleTip(element, tooltip, placementSetting, self[container]);\n },\n showTooltip = function () {\n !hasClass(tooltip,showClass) && ( addClass(tooltip,showClass) );\n },\n // triggers\n showTrigger = function() {\n on( globalObject, resizeEvent, self.hide, passiveHandler );\n bootstrapCustomEvent.call(element, shownEvent, component);\n },\n hideTrigger = function() {\n off( globalObject, resizeEvent, self.hide, passiveHandler );\n removeToolTip();\n bootstrapCustomEvent.call(element, hiddenEvent, component);\n };\n \n // public methods\n this.show = function() {\n clearTimeout(timer);\n timer = setTimeout( function() {\n if (tooltip === null) {\n placementSetting = self[placement]; // we reset placement in all cases\n // if(createToolTip() == false) return;\n if(createToolTip() !== false) {\n updateTooltip();\n showTooltip();\n bootstrapCustomEvent.call(element, showEvent, component);\n !!self[animation] ? emulateTransitionEnd(tooltip, showTrigger) : showTrigger(); \n }\n }\n }, 20 );\n };\n this.hide = function() {\n clearTimeout(timer);\n timer = setTimeout( function() {\n if (tooltip && hasClass(tooltip,showClass)) {\n bootstrapCustomEvent.call(element, hideEvent, component);\n removeClass(tooltip,showClass);\n !!self[animation] ? emulateTransitionEnd(tooltip, hideTrigger) : hideTrigger();\n }\n }, self[delay]);\n };\n this.toggle = function() {\n if (!tooltip) { self.show(); } \n else { self.hide(); }\n };\n \n // init\n if ( !(stringTooltip in element) ) { // prevent adding event handlers twice\n element[setAttribute](dataOriginalTitle,titleString);\n element.removeAttribute(title);\n on(element, mouseHover[0], self.show);\n on(element, mouseHover[1], self.hide);\n }\n element[stringTooltip] = self;\n };\n \n // TOOLTIP DATA API\n // =================\n supports[push]( [ stringTooltip, Tooltip, '['+dataToggle+'=\"tooltip\"]' ] );\n \n \n \r\n /* Native Javascript for Bootstrap | Initialize Data API\r\n --------------------------------------------------------*/\r\n var initializeDataAPI = function( constructor, collection ){\r\n for (var i=0, l=collection[length]; i= 1;\n var _baseSupplied = arguments.length >= 2;\n\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof URI)) {\n if (_urlSupplied) {\n if (_baseSupplied) {\n return new URI(url, base);\n }\n\n return new URI(url);\n }\n\n return new URI();\n }\n\n if (url === undefined) {\n if (_urlSupplied) {\n throw new TypeError('undefined is not a valid argument for URI');\n }\n\n if (typeof location !== 'undefined') {\n url = location.href + '';\n } else {\n url = '';\n }\n }\n\n if (url === null) {\n if (_urlSupplied) {\n throw new TypeError('null is not a valid argument for URI');\n }\n }\n\n this.href(url);\n\n // resolve to base according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#constructor\n if (base !== undefined) {\n return this.absoluteTo(base);\n }\n\n return this;\n }\n\n function isInteger(value) {\n return /^[0-9]+$/.test(value);\n }\n\n URI.version = '1.19.2';\n\n var p = URI.prototype;\n var hasOwn = Object.prototype.hasOwnProperty;\n\n function escapeRegEx(string) {\n // https://github.com/medialize/URI.js/commit/85ac21783c11f8ccab06106dba9735a31a86924d#commitcomment-821963\n return string.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\n }\n\n function getType(value) {\n // IE8 doesn't return [Object Undefined] but [Object Object] for undefined value\n if (value === undefined) {\n return 'Undefined';\n }\n\n return String(Object.prototype.toString.call(value)).slice(8, -1);\n }\n\n function isArray(obj) {\n return getType(obj) === 'Array';\n }\n\n function filterArrayValues(data, value) {\n var lookup = {};\n var i, length;\n\n if (getType(value) === 'RegExp') {\n lookup = null;\n } else if (isArray(value)) {\n for (i = 0, length = value.length; i < length; i++) {\n lookup[value[i]] = true;\n }\n } else {\n lookup[value] = true;\n }\n\n for (i = 0, length = data.length; i < length; i++) {\n /*jshint laxbreak: true */\n var _match = lookup && lookup[data[i]] !== undefined\n || !lookup && value.test(data[i]);\n /*jshint laxbreak: false */\n if (_match) {\n data.splice(i, 1);\n length--;\n i--;\n }\n }\n\n return data;\n }\n\n function arrayContains(list, value) {\n var i, length;\n\n // value may be string, number, array, regexp\n if (isArray(value)) {\n // Note: this can be optimized to O(n) (instead of current O(m * n))\n for (i = 0, length = value.length; i < length; i++) {\n if (!arrayContains(list, value[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n var _type = getType(value);\n for (i = 0, length = list.length; i < length; i++) {\n if (_type === 'RegExp') {\n if (typeof list[i] === 'string' && list[i].match(value)) {\n return true;\n }\n } else if (list[i] === value) {\n return true;\n }\n }\n\n return false;\n }\n\n function arraysEqual(one, two) {\n if (!isArray(one) || !isArray(two)) {\n return false;\n }\n\n // arrays can't be equal if they have different amount of content\n if (one.length !== two.length) {\n return false;\n }\n\n one.sort();\n two.sort();\n\n for (var i = 0, l = one.length; i < l; i++) {\n if (one[i] !== two[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function trimSlashes(text) {\n var trim_expression = /^\\/+|\\/+$/g;\n return text.replace(trim_expression, '');\n }\n\n URI._parts = function() {\n return {\n protocol: null,\n username: null,\n password: null,\n hostname: null,\n urn: null,\n port: null,\n path: null,\n query: null,\n fragment: null,\n // state\n preventInvalidHostname: URI.preventInvalidHostname,\n duplicateQueryParameters: URI.duplicateQueryParameters,\n escapeQuerySpace: URI.escapeQuerySpace\n };\n };\n // state: throw on invalid hostname\n // see https://github.com/medialize/URI.js/pull/345\n // and https://github.com/medialize/URI.js/issues/354\n URI.preventInvalidHostname = false;\n // state: allow duplicate query parameters (a=1&a=1)\n URI.duplicateQueryParameters = false;\n // state: replaces + with %20 (space in query strings)\n URI.escapeQuerySpace = true;\n // static properties\n URI.protocol_expression = /^[a-z][a-z0-9.+-]*$/i;\n URI.idn_expression = /[^a-z0-9\\._-]/i;\n URI.punycode_expression = /(xn--)/i;\n // well, 333.444.555.666 matches, but it sure ain't no IPv4 - do we care?\n URI.ip4_expression = /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/;\n // credits to Rich Brown\n // source: http://forums.intermapper.com/viewtopic.php?p=1096#1096\n // specification: http://www.ietf.org/rfc/rfc4291.txt\n URI.ip6_expression = /^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$/;\n // expression used is \"gruber revised\" (@gruber v2) determined to be the\n // best solution in a regex-golf we did a couple of ages ago at\n // * http://mathiasbynens.be/demo/url-regex\n // * http://rodneyrehm.de/t/url-regex.html\n URI.find_uri_expression = /\\b((?:[a-z][\\w-]+:(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,<>?«»“”‘’]))/ig;\n URI.findUri = {\n // valid \"scheme://\" or \"www.\"\n start: /\\b(?:([a-z][a-z0-9.+-]*:\\/\\/)|www\\.)/gi,\n // everything up to the next whitespace\n end: /[\\s\\r\\n]|$/,\n // trim trailing punctuation captured by end RegExp\n trim: /[`!()\\[\\]{};:'\".,<>?«»“”„‘’]+$/,\n // balanced parens inclusion (), [], {}, <>\n parens: /(\\([^\\)]*\\)|\\[[^\\]]*\\]|\\{[^}]*\\}|<[^>]*>)/g,\n };\n // http://www.iana.org/assignments/uri-schemes.html\n // http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers#Well-known_ports\n URI.defaultPorts = {\n http: '80',\n https: '443',\n ftp: '21',\n gopher: '70',\n ws: '80',\n wss: '443'\n };\n // list of protocols which always require a hostname\n URI.hostProtocols = [\n 'http',\n 'https'\n ];\n\n // allowed hostname characters according to RFC 3986\n // ALPHA DIGIT \"-\" \".\" \"_\" \"~\" \"!\" \"$\" \"&\" \"'\" \"(\" \")\" \"*\" \"+\" \",\" \";\" \"=\" %encoded\n // I've never seen a (non-IDN) hostname other than: ALPHA DIGIT . - _\n URI.invalid_hostname_characters = /[^a-zA-Z0-9\\.\\-:_]/;\n // map DOM Elements to their URI attribute\n URI.domAttributes = {\n 'a': 'href',\n 'blockquote': 'cite',\n 'link': 'href',\n 'base': 'href',\n 'script': 'src',\n 'form': 'action',\n 'img': 'src',\n 'area': 'href',\n 'iframe': 'src',\n 'embed': 'src',\n 'source': 'src',\n 'track': 'src',\n 'input': 'src', // but only if type=\"image\"\n 'audio': 'src',\n 'video': 'src'\n };\n URI.getDomAttribute = function(node) {\n if (!node || !node.nodeName) {\n return undefined;\n }\n\n var nodeName = node.nodeName.toLowerCase();\n // should only expose src for type=\"image\"\n if (nodeName === 'input' && node.type !== 'image') {\n return undefined;\n }\n\n return URI.domAttributes[nodeName];\n };\n\n function escapeForDumbFirefox36(value) {\n // https://github.com/medialize/URI.js/issues/91\n return escape(value);\n }\n\n // encoding / decoding according to RFC3986\n function strictEncodeURIComponent(string) {\n // see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent\n return encodeURIComponent(string)\n .replace(/[!'()*]/g, escapeForDumbFirefox36)\n .replace(/\\*/g, '%2A');\n }\n URI.encode = strictEncodeURIComponent;\n URI.decode = decodeURIComponent;\n URI.iso8859 = function() {\n URI.encode = escape;\n URI.decode = unescape;\n };\n URI.unicode = function() {\n URI.encode = strictEncodeURIComponent;\n URI.decode = decodeURIComponent;\n };\n URI.characters = {\n pathname: {\n encode: {\n // RFC3986 2.1: For consistency, URI producers and normalizers should\n // use uppercase hexadecimal digits for all percent-encodings.\n expression: /%(24|26|2B|2C|3B|3D|3A|40)/ig,\n map: {\n // -._~!'()*\n '%24': '$',\n '%26': '&',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '=',\n '%3A': ':',\n '%40': '@'\n }\n },\n decode: {\n expression: /[\\/\\?#]/g,\n map: {\n '/': '%2F',\n '?': '%3F',\n '#': '%23'\n }\n }\n },\n reserved: {\n encode: {\n // RFC3986 2.1: For consistency, URI producers and normalizers should\n // use uppercase hexadecimal digits for all percent-encodings.\n expression: /%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,\n map: {\n // gen-delims\n '%3A': ':',\n '%2F': '/',\n '%3F': '?',\n '%23': '#',\n '%5B': '[',\n '%5D': ']',\n '%40': '@',\n // sub-delims\n '%21': '!',\n '%24': '$',\n '%26': '&',\n '%27': '\\'',\n '%28': '(',\n '%29': ')',\n '%2A': '*',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '='\n }\n }\n },\n urnpath: {\n // The characters under `encode` are the characters called out by RFC 2141 as being acceptable\n // for usage in a URN. RFC2141 also calls out \"-\", \".\", and \"_\" as acceptable characters, but\n // these aren't encoded by encodeURIComponent, so we don't have to call them out here. Also\n // note that the colon character is not featured in the encoding map; this is because URI.js\n // gives the colons in URNs semantic meaning as the delimiters of path segements, and so it\n // should not appear unencoded in a segment itself.\n // See also the note above about RFC3986 and capitalalized hex digits.\n encode: {\n expression: /%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,\n map: {\n '%21': '!',\n '%24': '$',\n '%27': '\\'',\n '%28': '(',\n '%29': ')',\n '%2A': '*',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '=',\n '%40': '@'\n }\n },\n // These characters are the characters called out by RFC2141 as \"reserved\" characters that\n // should never appear in a URN, plus the colon character (see note above).\n decode: {\n expression: /[\\/\\?#:]/g,\n map: {\n '/': '%2F',\n '?': '%3F',\n '#': '%23',\n ':': '%3A'\n }\n }\n }\n };\n URI.encodeQuery = function(string, escapeQuerySpace) {\n var escaped = URI.encode(string + '');\n if (escapeQuerySpace === undefined) {\n escapeQuerySpace = URI.escapeQuerySpace;\n }\n\n return escapeQuerySpace ? escaped.replace(/%20/g, '+') : escaped;\n };\n URI.decodeQuery = function(string, escapeQuerySpace) {\n string += '';\n if (escapeQuerySpace === undefined) {\n escapeQuerySpace = URI.escapeQuerySpace;\n }\n\n try {\n return URI.decode(escapeQuerySpace ? string.replace(/\\+/g, '%20') : string);\n } catch(e) {\n // we're not going to mess with weird encodings,\n // give up and return the undecoded original string\n // see https://github.com/medialize/URI.js/issues/87\n // see https://github.com/medialize/URI.js/issues/92\n return string;\n }\n };\n // generate encode/decode path functions\n var _parts = {'encode':'encode', 'decode':'decode'};\n var _part;\n var generateAccessor = function(_group, _part) {\n return function(string) {\n try {\n return URI[_part](string + '').replace(URI.characters[_group][_part].expression, function(c) {\n return URI.characters[_group][_part].map[c];\n });\n } catch (e) {\n // we're not going to mess with weird encodings,\n // give up and return the undecoded original string\n // see https://github.com/medialize/URI.js/issues/87\n // see https://github.com/medialize/URI.js/issues/92\n return string;\n }\n };\n };\n\n for (_part in _parts) {\n URI[_part + 'PathSegment'] = generateAccessor('pathname', _parts[_part]);\n URI[_part + 'UrnPathSegment'] = generateAccessor('urnpath', _parts[_part]);\n }\n\n var generateSegmentedPathFunction = function(_sep, _codingFuncName, _innerCodingFuncName) {\n return function(string) {\n // Why pass in names of functions, rather than the function objects themselves? The\n // definitions of some functions (but in particular, URI.decode) will occasionally change due\n // to URI.js having ISO8859 and Unicode modes. Passing in the name and getting it will ensure\n // that the functions we use here are \"fresh\".\n var actualCodingFunc;\n if (!_innerCodingFuncName) {\n actualCodingFunc = URI[_codingFuncName];\n } else {\n actualCodingFunc = function(string) {\n return URI[_codingFuncName](URI[_innerCodingFuncName](string));\n };\n }\n\n var segments = (string + '').split(_sep);\n\n for (var i = 0, length = segments.length; i < length; i++) {\n segments[i] = actualCodingFunc(segments[i]);\n }\n\n return segments.join(_sep);\n };\n };\n\n // This takes place outside the above loop because we don't want, e.g., encodeUrnPath functions.\n URI.decodePath = generateSegmentedPathFunction('/', 'decodePathSegment');\n URI.decodeUrnPath = generateSegmentedPathFunction(':', 'decodeUrnPathSegment');\n URI.recodePath = generateSegmentedPathFunction('/', 'encodePathSegment', 'decode');\n URI.recodeUrnPath = generateSegmentedPathFunction(':', 'encodeUrnPathSegment', 'decode');\n\n URI.encodeReserved = generateAccessor('reserved', 'encode');\n\n URI.parse = function(string, parts) {\n var pos;\n if (!parts) {\n parts = {\n preventInvalidHostname: URI.preventInvalidHostname\n };\n }\n // [protocol\"://\"[username[\":\"password]\"@\"]hostname[\":\"port]\"/\"?][path][\"?\"querystring][\"#\"fragment]\n\n // extract fragment\n pos = string.indexOf('#');\n if (pos > -1) {\n // escaping?\n parts.fragment = string.substring(pos + 1) || null;\n string = string.substring(0, pos);\n }\n\n // extract query\n pos = string.indexOf('?');\n if (pos > -1) {\n // escaping?\n parts.query = string.substring(pos + 1) || null;\n string = string.substring(0, pos);\n }\n\n // extract protocol\n if (string.substring(0, 2) === '//') {\n // relative-scheme\n parts.protocol = null;\n string = string.substring(2);\n // extract \"user:pass@host:port\"\n string = URI.parseAuthority(string, parts);\n } else {\n pos = string.indexOf(':');\n if (pos > -1) {\n parts.protocol = string.substring(0, pos) || null;\n if (parts.protocol && !parts.protocol.match(URI.protocol_expression)) {\n // : may be within the path\n parts.protocol = undefined;\n } else if (string.substring(pos + 1, pos + 3) === '//') {\n string = string.substring(pos + 3);\n\n // extract \"user:pass@host:port\"\n string = URI.parseAuthority(string, parts);\n } else {\n string = string.substring(pos + 1);\n parts.urn = true;\n }\n }\n }\n\n // what's left must be the path\n parts.path = string;\n\n // and we're done\n return parts;\n };\n URI.parseHost = function(string, parts) {\n if (!string) {\n string = '';\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://github.com/joyent/node/blob/386fd24f49b0e9d1a8a076592a404168faeecc34/lib/url.js#L115-L124\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n // https://github.com/medialize/URI.js/pull/233\n string = string.replace(/\\\\/g, '/');\n\n // extract host:port\n var pos = string.indexOf('/');\n var bracketPos;\n var t;\n\n if (pos === -1) {\n pos = string.length;\n }\n\n if (string.charAt(0) === '[') {\n // IPv6 host - http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04#section-6\n // I claim most client software breaks on IPv6 anyways. To simplify things, URI only accepts\n // IPv6+port in the format [2001:db8::1]:80 (for the time being)\n bracketPos = string.indexOf(']');\n parts.hostname = string.substring(1, bracketPos) || null;\n parts.port = string.substring(bracketPos + 2, pos) || null;\n if (parts.port === '/') {\n parts.port = null;\n }\n } else {\n var firstColon = string.indexOf(':');\n var firstSlash = string.indexOf('/');\n var nextColon = string.indexOf(':', firstColon + 1);\n if (nextColon !== -1 && (firstSlash === -1 || nextColon < firstSlash)) {\n // IPv6 host contains multiple colons - but no port\n // this notation is actually not allowed by RFC 3986, but we're a liberal parser\n parts.hostname = string.substring(0, pos) || null;\n parts.port = null;\n } else {\n t = string.substring(0, pos).split(':');\n parts.hostname = t[0] || null;\n parts.port = t[1] || null;\n }\n }\n\n if (parts.hostname && string.substring(pos).charAt(0) !== '/') {\n pos++;\n string = '/' + string;\n }\n\n if (parts.preventInvalidHostname) {\n URI.ensureValidHostname(parts.hostname, parts.protocol);\n }\n\n if (parts.port) {\n URI.ensureValidPort(parts.port);\n }\n\n return string.substring(pos) || '/';\n };\n URI.parseAuthority = function(string, parts) {\n string = URI.parseUserinfo(string, parts);\n return URI.parseHost(string, parts);\n };\n URI.parseUserinfo = function(string, parts) {\n // extract username:password\n var firstSlash = string.indexOf('/');\n var pos = string.lastIndexOf('@', firstSlash > -1 ? firstSlash : string.length - 1);\n var t;\n\n // authority@ must come before /path\n if (pos > -1 && (firstSlash === -1 || pos < firstSlash)) {\n t = string.substring(0, pos).split(':');\n parts.username = t[0] ? URI.decode(t[0]) : null;\n t.shift();\n parts.password = t[0] ? URI.decode(t.join(':')) : null;\n string = string.substring(pos + 1);\n } else {\n parts.username = null;\n parts.password = null;\n }\n\n return string;\n };\n URI.parseQuery = function(string, escapeQuerySpace) {\n if (!string) {\n return {};\n }\n\n // throw out the funky business - \"?\"[name\"=\"value\"&\"]+\n string = string.replace(/&+/g, '&').replace(/^\\?*&*|&+$/g, '');\n\n if (!string) {\n return {};\n }\n\n var items = {};\n var splits = string.split('&');\n var length = splits.length;\n var v, name, value;\n\n for (var i = 0; i < length; i++) {\n v = splits[i].split('=');\n name = URI.decodeQuery(v.shift(), escapeQuerySpace);\n // no \"=\" is null according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#collect-url-parameters\n value = v.length ? URI.decodeQuery(v.join('='), escapeQuerySpace) : null;\n\n if (hasOwn.call(items, name)) {\n if (typeof items[name] === 'string' || items[name] === null) {\n items[name] = [items[name]];\n }\n\n items[name].push(value);\n } else {\n items[name] = value;\n }\n }\n\n return items;\n };\n\n URI.build = function(parts) {\n var t = '';\n var requireAbsolutePath = false\n\n if (parts.protocol) {\n t += parts.protocol + ':';\n }\n\n if (!parts.urn && (t || parts.hostname)) {\n t += '//';\n requireAbsolutePath = true\n }\n\n t += (URI.buildAuthority(parts) || '');\n\n if (typeof parts.path === 'string') {\n if (parts.path.charAt(0) !== '/' && requireAbsolutePath) {\n t += '/';\n }\n\n t += parts.path;\n }\n\n if (typeof parts.query === 'string' && parts.query) {\n t += '?' + parts.query;\n }\n\n if (typeof parts.fragment === 'string' && parts.fragment) {\n t += '#' + parts.fragment;\n }\n return t;\n };\n URI.buildHost = function(parts) {\n var t = '';\n\n if (!parts.hostname) {\n return '';\n } else if (URI.ip6_expression.test(parts.hostname)) {\n t += '[' + parts.hostname + ']';\n } else {\n t += parts.hostname;\n }\n\n if (parts.port) {\n t += ':' + parts.port;\n }\n\n return t;\n };\n URI.buildAuthority = function(parts) {\n return URI.buildUserinfo(parts) + URI.buildHost(parts);\n };\n URI.buildUserinfo = function(parts) {\n var t = '';\n\n if (parts.username) {\n t += URI.encode(parts.username);\n }\n\n if (parts.password) {\n t += ':' + URI.encode(parts.password);\n }\n\n if (t) {\n t += '@';\n }\n\n return t;\n };\n URI.buildQuery = function(data, duplicateQueryParameters, escapeQuerySpace) {\n // according to http://tools.ietf.org/html/rfc3986 or http://labs.apache.org/webarch/uri/rfc/rfc3986.html\n // being »-._~!$&'()*+,;=:@/?« %HEX and alnum are allowed\n // the RFC explicitly states ?/foo being a valid use case, no mention of parameter syntax!\n // URI.js treats the query string as being application/x-www-form-urlencoded\n // see http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type\n\n var t = '';\n var unique, key, i, length;\n for (key in data) {\n if (hasOwn.call(data, key)) {\n if (isArray(data[key])) {\n unique = {};\n for (i = 0, length = data[key].length; i < length; i++) {\n if (data[key][i] !== undefined && unique[data[key][i] + ''] === undefined) {\n t += '&' + URI.buildQueryParameter(key, data[key][i], escapeQuerySpace);\n if (duplicateQueryParameters !== true) {\n unique[data[key][i] + ''] = true;\n }\n }\n }\n } else if (data[key] !== undefined) {\n t += '&' + URI.buildQueryParameter(key, data[key], escapeQuerySpace);\n }\n }\n }\n\n return t.substring(1);\n };\n URI.buildQueryParameter = function(name, value, escapeQuerySpace) {\n // http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type -- application/x-www-form-urlencoded\n // don't append \"=\" for null values, according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#url-parameter-serialization\n return URI.encodeQuery(name, escapeQuerySpace) + (value !== null ? '=' + URI.encodeQuery(value, escapeQuerySpace) : '');\n };\n\n URI.addQuery = function(data, name, value) {\n if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n URI.addQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n if (data[name] === undefined) {\n data[name] = value;\n return;\n } else if (typeof data[name] === 'string') {\n data[name] = [data[name]];\n }\n\n if (!isArray(value)) {\n value = [value];\n }\n\n data[name] = (data[name] || []).concat(value);\n } else {\n throw new TypeError('URI.addQuery() accepts an object, string as the name parameter');\n }\n };\n\n URI.setQuery = function(data, name, value) {\n if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n URI.setQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n data[name] = value === undefined ? null : value;\n } else {\n throw new TypeError('URI.setQuery() accepts an object, string as the name parameter');\n }\n };\n\n URI.removeQuery = function(data, name, value) {\n var i, length, key;\n\n if (isArray(name)) {\n for (i = 0, length = name.length; i < length; i++) {\n data[name[i]] = undefined;\n }\n } else if (getType(name) === 'RegExp') {\n for (key in data) {\n if (name.test(key)) {\n data[key] = undefined;\n }\n }\n } else if (typeof name === 'object') {\n for (key in name) {\n if (hasOwn.call(name, key)) {\n URI.removeQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n if (value !== undefined) {\n if (getType(value) === 'RegExp') {\n if (!isArray(data[name]) && value.test(data[name])) {\n data[name] = undefined;\n } else {\n data[name] = filterArrayValues(data[name], value);\n }\n } else if (data[name] === String(value) && (!isArray(value) || value.length === 1)) {\n data[name] = undefined;\n } else if (isArray(data[name])) {\n data[name] = filterArrayValues(data[name], value);\n }\n } else {\n data[name] = undefined;\n }\n } else {\n throw new TypeError('URI.removeQuery() accepts an object, string, RegExp as the first parameter');\n }\n };\n URI.hasQuery = function(data, name, value, withinArray) {\n switch (getType(name)) {\n case 'String':\n // Nothing to do here\n break;\n\n case 'RegExp':\n for (var key in data) {\n if (hasOwn.call(data, key)) {\n if (name.test(key) && (value === undefined || URI.hasQuery(data, key, value))) {\n return true;\n }\n }\n }\n\n return false;\n\n case 'Object':\n for (var _key in name) {\n if (hasOwn.call(name, _key)) {\n if (!URI.hasQuery(data, _key, name[_key])) {\n return false;\n }\n }\n }\n\n return true;\n\n default:\n throw new TypeError('URI.hasQuery() accepts a string, regular expression or object as the name parameter');\n }\n\n switch (getType(value)) {\n case 'Undefined':\n // true if exists (but may be empty)\n return name in data; // data[name] !== undefined;\n\n case 'Boolean':\n // true if exists and non-empty\n var _booly = Boolean(isArray(data[name]) ? data[name].length : data[name]);\n return value === _booly;\n\n case 'Function':\n // allow complex comparison\n return !!value(data[name], name, data);\n\n case 'Array':\n if (!isArray(data[name])) {\n return false;\n }\n\n var op = withinArray ? arrayContains : arraysEqual;\n return op(data[name], value);\n\n case 'RegExp':\n if (!isArray(data[name])) {\n return Boolean(data[name] && data[name].match(value));\n }\n\n if (!withinArray) {\n return false;\n }\n\n return arrayContains(data[name], value);\n\n case 'Number':\n value = String(value);\n /* falls through */\n case 'String':\n if (!isArray(data[name])) {\n return data[name] === value;\n }\n\n if (!withinArray) {\n return false;\n }\n\n return arrayContains(data[name], value);\n\n default:\n throw new TypeError('URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter');\n }\n };\n\n\n URI.joinPaths = function() {\n var input = [];\n var segments = [];\n var nonEmptySegments = 0;\n\n for (var i = 0; i < arguments.length; i++) {\n var url = new URI(arguments[i]);\n input.push(url);\n var _segments = url.segment();\n for (var s = 0; s < _segments.length; s++) {\n if (typeof _segments[s] === 'string') {\n segments.push(_segments[s]);\n }\n\n if (_segments[s]) {\n nonEmptySegments++;\n }\n }\n }\n\n if (!segments.length || !nonEmptySegments) {\n return new URI('');\n }\n\n var uri = new URI('').segment(segments);\n\n if (input[0].path() === '' || input[0].path().slice(0, 1) === '/') {\n uri.path('/' + uri.path());\n }\n\n return uri.normalize();\n };\n\n URI.commonPath = function(one, two) {\n var length = Math.min(one.length, two.length);\n var pos;\n\n // find first non-matching character\n for (pos = 0; pos < length; pos++) {\n if (one.charAt(pos) !== two.charAt(pos)) {\n pos--;\n break;\n }\n }\n\n if (pos < 1) {\n return one.charAt(0) === two.charAt(0) && one.charAt(0) === '/' ? '/' : '';\n }\n\n // revert to last /\n if (one.charAt(pos) !== '/' || two.charAt(pos) !== '/') {\n pos = one.substring(0, pos).lastIndexOf('/');\n }\n\n return one.substring(0, pos + 1);\n };\n\n URI.withinString = function(string, callback, options) {\n options || (options = {});\n var _start = options.start || URI.findUri.start;\n var _end = options.end || URI.findUri.end;\n var _trim = options.trim || URI.findUri.trim;\n var _parens = options.parens || URI.findUri.parens;\n var _attributeOpen = /[a-z0-9-]=[\"']?$/i;\n\n _start.lastIndex = 0;\n while (true) {\n var match = _start.exec(string);\n if (!match) {\n break;\n }\n\n var start = match.index;\n if (options.ignoreHtml) {\n // attribut(e=[\"']?$)\n var attributeOpen = string.slice(Math.max(start - 3, 0), start);\n if (attributeOpen && _attributeOpen.test(attributeOpen)) {\n continue;\n }\n }\n\n var end = start + string.slice(start).search(_end);\n var slice = string.slice(start, end);\n // make sure we include well balanced parens\n var parensEnd = -1;\n while (true) {\n var parensMatch = _parens.exec(slice);\n if (!parensMatch) {\n break;\n }\n\n var parensMatchEnd = parensMatch.index + parensMatch[0].length;\n parensEnd = Math.max(parensEnd, parensMatchEnd);\n }\n\n if (parensEnd > -1) {\n slice = slice.slice(0, parensEnd) + slice.slice(parensEnd).replace(_trim, '');\n } else {\n slice = slice.replace(_trim, '');\n }\n\n if (slice.length <= match[0].length) {\n // the extract only contains the starting marker of a URI,\n // e.g. \"www\" or \"http://\"\n continue;\n }\n\n if (options.ignore && options.ignore.test(slice)) {\n continue;\n }\n\n end = start + slice.length;\n var result = callback(slice, start, end, string);\n if (result === undefined) {\n _start.lastIndex = end;\n continue;\n }\n\n result = String(result);\n string = string.slice(0, start) + result + string.slice(end);\n _start.lastIndex = start + result.length;\n }\n\n _start.lastIndex = 0;\n return string;\n };\n\n URI.ensureValidHostname = function(v, protocol) {\n // Theoretically URIs allow percent-encoding in Hostnames (according to RFC 3986)\n // they are not part of DNS and therefore ignored by URI.js\n\n var hasHostname = !!v; // not null and not an empty string\n var hasProtocol = !!protocol;\n var rejectEmptyHostname = false;\n\n if (hasProtocol) {\n rejectEmptyHostname = arrayContains(URI.hostProtocols, protocol);\n }\n\n if (rejectEmptyHostname && !hasHostname) {\n throw new TypeError('Hostname cannot be empty, if protocol is ' + protocol);\n } else if (v && v.match(URI.invalid_hostname_characters)) {\n // test punycode\n if (!punycode) {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');\n }\n if (punycode.toASCII(v).match(URI.invalid_hostname_characters)) {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-:_]');\n }\n }\n };\n\n URI.ensureValidPort = function (v) {\n if (!v) {\n return;\n }\n\n var port = Number(v);\n if (isInteger(port) && (port > 0) && (port < 65536)) {\n return;\n }\n\n throw new TypeError('Port \"' + v + '\" is not a valid port');\n };\n\n // noConflict\n URI.noConflict = function(removeAll) {\n if (removeAll) {\n var unconflicted = {\n URI: this.noConflict()\n };\n\n if (root.URITemplate && typeof root.URITemplate.noConflict === 'function') {\n unconflicted.URITemplate = root.URITemplate.noConflict();\n }\n\n if (root.IPv6 && typeof root.IPv6.noConflict === 'function') {\n unconflicted.IPv6 = root.IPv6.noConflict();\n }\n\n if (root.SecondLevelDomains && typeof root.SecondLevelDomains.noConflict === 'function') {\n unconflicted.SecondLevelDomains = root.SecondLevelDomains.noConflict();\n }\n\n return unconflicted;\n } else if (root.URI === this) {\n root.URI = _URI;\n }\n\n return this;\n };\n\n p.build = function(deferBuild) {\n if (deferBuild === true) {\n this._deferred_build = true;\n } else if (deferBuild === undefined || this._deferred_build) {\n this._string = URI.build(this._parts);\n this._deferred_build = false;\n }\n\n return this;\n };\n\n p.clone = function() {\n return new URI(this);\n };\n\n p.valueOf = p.toString = function() {\n return this.build(false)._string;\n };\n\n\n function generateSimpleAccessor(_part){\n return function(v, build) {\n if (v === undefined) {\n return this._parts[_part] || '';\n } else {\n this._parts[_part] = v || null;\n this.build(!build);\n return this;\n }\n };\n }\n\n function generatePrefixAccessor(_part, _key){\n return function(v, build) {\n if (v === undefined) {\n return this._parts[_part] || '';\n } else {\n if (v !== null) {\n v = v + '';\n if (v.charAt(0) === _key) {\n v = v.substring(1);\n }\n }\n\n this._parts[_part] = v;\n this.build(!build);\n return this;\n }\n };\n }\n\n p.protocol = generateSimpleAccessor('protocol');\n p.username = generateSimpleAccessor('username');\n p.password = generateSimpleAccessor('password');\n p.hostname = generateSimpleAccessor('hostname');\n p.port = generateSimpleAccessor('port');\n p.query = generatePrefixAccessor('query', '?');\n p.fragment = generatePrefixAccessor('fragment', '#');\n\n p.search = function(v, build) {\n var t = this.query(v, build);\n return typeof t === 'string' && t.length ? ('?' + t) : t;\n };\n p.hash = function(v, build) {\n var t = this.fragment(v, build);\n return typeof t === 'string' && t.length ? ('#' + t) : t;\n };\n\n p.pathname = function(v, build) {\n if (v === undefined || v === true) {\n var res = this._parts.path || (this._parts.hostname ? '/' : '');\n return v ? (this._parts.urn ? URI.decodeUrnPath : URI.decodePath)(res) : res;\n } else {\n if (this._parts.urn) {\n this._parts.path = v ? URI.recodeUrnPath(v) : '';\n } else {\n this._parts.path = v ? URI.recodePath(v) : '/';\n }\n this.build(!build);\n return this;\n }\n };\n p.path = p.pathname;\n p.href = function(href, build) {\n var key;\n\n if (href === undefined) {\n return this.toString();\n }\n\n this._string = '';\n this._parts = URI._parts();\n\n var _URI = href instanceof URI;\n var _object = typeof href === 'object' && (href.hostname || href.path || href.pathname);\n if (href.nodeName) {\n var attribute = URI.getDomAttribute(href);\n href = href[attribute] || '';\n _object = false;\n }\n\n // window.location is reported to be an object, but it's not the sort\n // of object we're looking for:\n // * location.protocol ends with a colon\n // * location.query != object.search\n // * location.hash != object.fragment\n // simply serializing the unknown object should do the trick\n // (for location, not for everything...)\n if (!_URI && _object && href.pathname !== undefined) {\n href = href.toString();\n }\n\n if (typeof href === 'string' || href instanceof String) {\n this._parts = URI.parse(String(href), this._parts);\n } else if (_URI || _object) {\n var src = _URI ? href._parts : href;\n for (key in src) {\n if (key === 'query') { continue; }\n if (hasOwn.call(this._parts, key)) {\n this._parts[key] = src[key];\n }\n }\n if (src.query) {\n this.query(src.query, false);\n }\n } else {\n throw new TypeError('invalid input');\n }\n\n this.build(!build);\n return this;\n };\n\n // identification accessors\n p.is = function(what) {\n var ip = false;\n var ip4 = false;\n var ip6 = false;\n var name = false;\n var sld = false;\n var idn = false;\n var punycode = false;\n var relative = !this._parts.urn;\n\n if (this._parts.hostname) {\n relative = false;\n ip4 = URI.ip4_expression.test(this._parts.hostname);\n ip6 = URI.ip6_expression.test(this._parts.hostname);\n ip = ip4 || ip6;\n name = !ip;\n sld = name && SLD && SLD.has(this._parts.hostname);\n idn = name && URI.idn_expression.test(this._parts.hostname);\n punycode = name && URI.punycode_expression.test(this._parts.hostname);\n }\n\n switch (what.toLowerCase()) {\n case 'relative':\n return relative;\n\n case 'absolute':\n return !relative;\n\n // hostname identification\n case 'domain':\n case 'name':\n return name;\n\n case 'sld':\n return sld;\n\n case 'ip':\n return ip;\n\n case 'ip4':\n case 'ipv4':\n case 'inet4':\n return ip4;\n\n case 'ip6':\n case 'ipv6':\n case 'inet6':\n return ip6;\n\n case 'idn':\n return idn;\n\n case 'url':\n return !this._parts.urn;\n\n case 'urn':\n return !!this._parts.urn;\n\n case 'punycode':\n return punycode;\n }\n\n return null;\n };\n\n // component specific input validation\n var _protocol = p.protocol;\n var _port = p.port;\n var _hostname = p.hostname;\n\n p.protocol = function(v, build) {\n if (v) {\n // accept trailing ://\n v = v.replace(/:(\\/\\/)?$/, '');\n\n if (!v.match(URI.protocol_expression)) {\n throw new TypeError('Protocol \"' + v + '\" contains characters other than [A-Z0-9.+-] or doesn\\'t start with [A-Z]');\n }\n }\n\n return _protocol.call(this, v, build);\n };\n p.scheme = p.protocol;\n p.port = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v !== undefined) {\n if (v === 0) {\n v = null;\n }\n\n if (v) {\n v += '';\n if (v.charAt(0) === ':') {\n v = v.substring(1);\n }\n\n URI.ensureValidPort(v);\n }\n }\n return _port.call(this, v, build);\n };\n p.hostname = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v !== undefined) {\n var x = { preventInvalidHostname: this._parts.preventInvalidHostname };\n var res = URI.parseHost(v, x);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n v = x.hostname;\n if (this._parts.preventInvalidHostname) {\n URI.ensureValidHostname(v, this._parts.protocol);\n }\n }\n\n return _hostname.call(this, v, build);\n };\n\n // compound accessors\n p.origin = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n var protocol = this.protocol();\n var authority = this.authority();\n if (!authority) {\n return '';\n }\n\n return (protocol ? protocol + '://' : '') + this.authority();\n } else {\n var origin = URI(v);\n this\n .protocol(origin.protocol())\n .authority(origin.authority())\n .build(!build);\n return this;\n }\n };\n p.host = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n return this._parts.hostname ? URI.buildHost(this._parts) : '';\n } else {\n var res = URI.parseHost(v, this._parts);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n this.build(!build);\n return this;\n }\n };\n p.authority = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n return this._parts.hostname ? URI.buildAuthority(this._parts) : '';\n } else {\n var res = URI.parseAuthority(v, this._parts);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n this.build(!build);\n return this;\n }\n };\n p.userinfo = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n var t = URI.buildUserinfo(this._parts);\n return t ? t.substring(0, t.length -1) : t;\n } else {\n if (v[v.length-1] !== '@') {\n v += '@';\n }\n\n URI.parseUserinfo(v, this._parts);\n this.build(!build);\n return this;\n }\n };\n p.resource = function(v, build) {\n var parts;\n\n if (v === undefined) {\n return this.path() + this.search() + this.hash();\n }\n\n parts = URI.parse(v);\n this._parts.path = parts.path;\n this._parts.query = parts.query;\n this._parts.fragment = parts.fragment;\n this.build(!build);\n return this;\n };\n\n // fraction accessors\n p.subdomain = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n // convenience, return \"www\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n // grab domain and add another segment\n var end = this._parts.hostname.length - this.domain().length - 1;\n return this._parts.hostname.substring(0, end) || '';\n } else {\n var e = this._parts.hostname.length - this.domain().length;\n var sub = this._parts.hostname.substring(0, e);\n var replace = new RegExp('^' + escapeRegEx(sub));\n\n if (v && v.charAt(v.length - 1) !== '.') {\n v += '.';\n }\n\n if (v.indexOf(':') !== -1) {\n throw new TypeError('Domains cannot contain colons');\n }\n\n if (v) {\n URI.ensureValidHostname(v, this._parts.protocol);\n }\n\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n this.build(!build);\n return this;\n }\n };\n p.domain = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v === 'boolean') {\n build = v;\n v = undefined;\n }\n\n // convenience, return \"example.org\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n // if hostname consists of 1 or 2 segments, it must be the domain\n var t = this._parts.hostname.match(/\\./g);\n if (t && t.length < 2) {\n return this._parts.hostname;\n }\n\n // grab tld and add another segment\n var end = this._parts.hostname.length - this.tld(build).length - 1;\n end = this._parts.hostname.lastIndexOf('.', end -1) + 1;\n return this._parts.hostname.substring(end) || '';\n } else {\n if (!v) {\n throw new TypeError('cannot set domain empty');\n }\n\n if (v.indexOf(':') !== -1) {\n throw new TypeError('Domains cannot contain colons');\n }\n\n URI.ensureValidHostname(v, this._parts.protocol);\n\n if (!this._parts.hostname || this.is('IP')) {\n this._parts.hostname = v;\n } else {\n var replace = new RegExp(escapeRegEx(this.domain()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.tld = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v === 'boolean') {\n build = v;\n v = undefined;\n }\n\n // return \"org\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n var pos = this._parts.hostname.lastIndexOf('.');\n var tld = this._parts.hostname.substring(pos + 1);\n\n if (build !== true && SLD && SLD.list[tld.toLowerCase()]) {\n return SLD.get(this._parts.hostname) || tld;\n }\n\n return tld;\n } else {\n var replace;\n\n if (!v) {\n throw new TypeError('cannot set TLD empty');\n } else if (v.match(/[^a-zA-Z0-9-]/)) {\n if (SLD && SLD.is(v)) {\n replace = new RegExp(escapeRegEx(this.tld()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n } else {\n throw new TypeError('TLD \"' + v + '\" contains characters other than [A-Z0-9]');\n }\n } else if (!this._parts.hostname || this.is('IP')) {\n throw new ReferenceError('cannot set TLD on non-domain host');\n } else {\n replace = new RegExp(escapeRegEx(this.tld()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.directory = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined || v === true) {\n if (!this._parts.path && !this._parts.hostname) {\n return '';\n }\n\n if (this._parts.path === '/') {\n return '/';\n }\n\n var end = this._parts.path.length - this.filename().length - 1;\n var res = this._parts.path.substring(0, end) || (this._parts.hostname ? '/' : '');\n\n return v ? URI.decodePath(res) : res;\n\n } else {\n var e = this._parts.path.length - this.filename().length;\n var directory = this._parts.path.substring(0, e);\n var replace = new RegExp('^' + escapeRegEx(directory));\n\n // fully qualifier directories begin with a slash\n if (!this.is('relative')) {\n if (!v) {\n v = '/';\n }\n\n if (v.charAt(0) !== '/') {\n v = '/' + v;\n }\n }\n\n // directories always end with a slash\n if (v && v.charAt(v.length - 1) !== '/') {\n v += '/';\n }\n\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n this.build(!build);\n return this;\n }\n };\n p.filename = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v !== 'string') {\n if (!this._parts.path || this._parts.path === '/') {\n return '';\n }\n\n var pos = this._parts.path.lastIndexOf('/');\n var res = this._parts.path.substring(pos+1);\n\n return v ? URI.decodePathSegment(res) : res;\n } else {\n var mutatedDirectory = false;\n\n if (v.charAt(0) === '/') {\n v = v.substring(1);\n }\n\n if (v.match(/\\.?\\//)) {\n mutatedDirectory = true;\n }\n\n var replace = new RegExp(escapeRegEx(this.filename()) + '$');\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n\n if (mutatedDirectory) {\n this.normalizePath(build);\n } else {\n this.build(!build);\n }\n\n return this;\n }\n };\n p.suffix = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined || v === true) {\n if (!this._parts.path || this._parts.path === '/') {\n return '';\n }\n\n var filename = this.filename();\n var pos = filename.lastIndexOf('.');\n var s, res;\n\n if (pos === -1) {\n return '';\n }\n\n // suffix may only contain alnum characters (yup, I made this up.)\n s = filename.substring(pos+1);\n res = (/^[a-z0-9%]+$/i).test(s) ? s : '';\n return v ? URI.decodePathSegment(res) : res;\n } else {\n if (v.charAt(0) === '.') {\n v = v.substring(1);\n }\n\n var suffix = this.suffix();\n var replace;\n\n if (!suffix) {\n if (!v) {\n return this;\n }\n\n this._parts.path += '.' + URI.recodePath(v);\n } else if (!v) {\n replace = new RegExp(escapeRegEx('.' + suffix) + '$');\n } else {\n replace = new RegExp(escapeRegEx(suffix) + '$');\n }\n\n if (replace) {\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.segment = function(segment, v, build) {\n var separator = this._parts.urn ? ':' : '/';\n var path = this.path();\n var absolute = path.substring(0, 1) === '/';\n var segments = path.split(separator);\n\n if (segment !== undefined && typeof segment !== 'number') {\n build = v;\n v = segment;\n segment = undefined;\n }\n\n if (segment !== undefined && typeof segment !== 'number') {\n throw new Error('Bad segment \"' + segment + '\", must be 0-based integer');\n }\n\n if (absolute) {\n segments.shift();\n }\n\n if (segment < 0) {\n // allow negative indexes to address from the end\n segment = Math.max(segments.length + segment, 0);\n }\n\n if (v === undefined) {\n /*jshint laxbreak: true */\n return segment === undefined\n ? segments\n : segments[segment];\n /*jshint laxbreak: false */\n } else if (segment === null || segments[segment] === undefined) {\n if (isArray(v)) {\n segments = [];\n // collapse empty elements within array\n for (var i=0, l=v.length; i < l; i++) {\n if (!v[i].length && (!segments.length || !segments[segments.length -1].length)) {\n continue;\n }\n\n if (segments.length && !segments[segments.length -1].length) {\n segments.pop();\n }\n\n segments.push(trimSlashes(v[i]));\n }\n } else if (v || typeof v === 'string') {\n v = trimSlashes(v);\n if (segments[segments.length -1] === '') {\n // empty trailing elements have to be overwritten\n // to prevent results such as /foo//bar\n segments[segments.length -1] = v;\n } else {\n segments.push(v);\n }\n }\n } else {\n if (v) {\n segments[segment] = trimSlashes(v);\n } else {\n segments.splice(segment, 1);\n }\n }\n\n if (absolute) {\n segments.unshift('');\n }\n\n return this.path(segments.join(separator), build);\n };\n p.segmentCoded = function(segment, v, build) {\n var segments, i, l;\n\n if (typeof segment !== 'number') {\n build = v;\n v = segment;\n segment = undefined;\n }\n\n if (v === undefined) {\n segments = this.segment(segment, v, build);\n if (!isArray(segments)) {\n segments = segments !== undefined ? URI.decode(segments) : undefined;\n } else {\n for (i = 0, l = segments.length; i < l; i++) {\n segments[i] = URI.decode(segments[i]);\n }\n }\n\n return segments;\n }\n\n if (!isArray(v)) {\n v = (typeof v === 'string' || v instanceof String) ? URI.encode(v) : v;\n } else {\n for (i = 0, l = v.length; i < l; i++) {\n v[i] = URI.encode(v[i]);\n }\n }\n\n return this.segment(segment, v, build);\n };\n\n // mutating query string\n var q = p.query;\n p.query = function(v, build) {\n if (v === true) {\n return URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n } else if (typeof v === 'function') {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n var result = v.call(this, data);\n this._parts.query = URI.buildQuery(result || data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n this.build(!build);\n return this;\n } else if (v !== undefined && typeof v !== 'string') {\n this._parts.query = URI.buildQuery(v, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n this.build(!build);\n return this;\n } else {\n return q.call(this, v, build);\n }\n };\n p.setQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n\n if (typeof name === 'string' || name instanceof String) {\n data[name] = value !== undefined ? value : null;\n } else if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n data[key] = name[key];\n }\n }\n } else {\n throw new TypeError('URI.addQuery() accepts an object, string as the name parameter');\n }\n\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.addQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n URI.addQuery(data, name, value === undefined ? null : value);\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.removeQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n URI.removeQuery(data, name, value);\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.hasQuery = function(name, value, withinArray) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n return URI.hasQuery(data, name, value, withinArray);\n };\n p.setSearch = p.setQuery;\n p.addSearch = p.addQuery;\n p.removeSearch = p.removeQuery;\n p.hasSearch = p.hasQuery;\n\n // sanitizing URLs\n p.normalize = function() {\n if (this._parts.urn) {\n return this\n .normalizeProtocol(false)\n .normalizePath(false)\n .normalizeQuery(false)\n .normalizeFragment(false)\n .build();\n }\n\n return this\n .normalizeProtocol(false)\n .normalizeHostname(false)\n .normalizePort(false)\n .normalizePath(false)\n .normalizeQuery(false)\n .normalizeFragment(false)\n .build();\n };\n p.normalizeProtocol = function(build) {\n if (typeof this._parts.protocol === 'string') {\n this._parts.protocol = this._parts.protocol.toLowerCase();\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeHostname = function(build) {\n if (this._parts.hostname) {\n if (this.is('IDN') && punycode) {\n this._parts.hostname = punycode.toASCII(this._parts.hostname);\n } else if (this.is('IPv6') && IPv6) {\n this._parts.hostname = IPv6.best(this._parts.hostname);\n }\n\n this._parts.hostname = this._parts.hostname.toLowerCase();\n this.build(!build);\n }\n\n return this;\n };\n p.normalizePort = function(build) {\n // remove port of it's the protocol's default\n if (typeof this._parts.protocol === 'string' && this._parts.port === URI.defaultPorts[this._parts.protocol]) {\n this._parts.port = null;\n this.build(!build);\n }\n\n return this;\n };\n p.normalizePath = function(build) {\n var _path = this._parts.path;\n if (!_path) {\n return this;\n }\n\n if (this._parts.urn) {\n this._parts.path = URI.recodeUrnPath(this._parts.path);\n this.build(!build);\n return this;\n }\n\n if (this._parts.path === '/') {\n return this;\n }\n\n _path = URI.recodePath(_path);\n\n var _was_relative;\n var _leadingParents = '';\n var _parent, _pos;\n\n // handle relative paths\n if (_path.charAt(0) !== '/') {\n _was_relative = true;\n _path = '/' + _path;\n }\n\n // handle relative files (as opposed to directories)\n if (_path.slice(-3) === '/..' || _path.slice(-2) === '/.') {\n _path += '/';\n }\n\n // resolve simples\n _path = _path\n .replace(/(\\/(\\.\\/)+)|(\\/\\.$)/g, '/')\n .replace(/\\/{2,}/g, '/');\n\n // remember leading parents\n if (_was_relative) {\n _leadingParents = _path.substring(1).match(/^(\\.\\.\\/)+/) || '';\n if (_leadingParents) {\n _leadingParents = _leadingParents[0];\n }\n }\n\n // resolve parents\n while (true) {\n _parent = _path.search(/\\/\\.\\.(\\/|$)/);\n if (_parent === -1) {\n // no more ../ to resolve\n break;\n } else if (_parent === 0) {\n // top level cannot be relative, skip it\n _path = _path.substring(3);\n continue;\n }\n\n _pos = _path.substring(0, _parent).lastIndexOf('/');\n if (_pos === -1) {\n _pos = _parent;\n }\n _path = _path.substring(0, _pos) + _path.substring(_parent + 3);\n }\n\n // revert to relative\n if (_was_relative && this.is('relative')) {\n _path = _leadingParents + _path.substring(1);\n }\n\n this._parts.path = _path;\n this.build(!build);\n return this;\n };\n p.normalizePathname = p.normalizePath;\n p.normalizeQuery = function(build) {\n if (typeof this._parts.query === 'string') {\n if (!this._parts.query.length) {\n this._parts.query = null;\n } else {\n this.query(URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace));\n }\n\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeFragment = function(build) {\n if (!this._parts.fragment) {\n this._parts.fragment = null;\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeSearch = p.normalizeQuery;\n p.normalizeHash = p.normalizeFragment;\n\n p.iso8859 = function() {\n // expect unicode input, iso8859 output\n var e = URI.encode;\n var d = URI.decode;\n\n URI.encode = escape;\n URI.decode = decodeURIComponent;\n try {\n this.normalize();\n } finally {\n URI.encode = e;\n URI.decode = d;\n }\n return this;\n };\n\n p.unicode = function() {\n // expect iso8859 input, unicode output\n var e = URI.encode;\n var d = URI.decode;\n\n URI.encode = strictEncodeURIComponent;\n URI.decode = unescape;\n try {\n this.normalize();\n } finally {\n URI.encode = e;\n URI.decode = d;\n }\n return this;\n };\n\n p.readable = function() {\n var uri = this.clone();\n // removing username, password, because they shouldn't be displayed according to RFC 3986\n uri.username('').password('').normalize();\n var t = '';\n if (uri._parts.protocol) {\n t += uri._parts.protocol + '://';\n }\n\n if (uri._parts.hostname) {\n if (uri.is('punycode') && punycode) {\n t += punycode.toUnicode(uri._parts.hostname);\n if (uri._parts.port) {\n t += ':' + uri._parts.port;\n }\n } else {\n t += uri.host();\n }\n }\n\n if (uri._parts.hostname && uri._parts.path && uri._parts.path.charAt(0) !== '/') {\n t += '/';\n }\n\n t += uri.path(true);\n if (uri._parts.query) {\n var q = '';\n for (var i = 0, qp = uri._parts.query.split('&'), l = qp.length; i < l; i++) {\n var kv = (qp[i] || '').split('=');\n q += '&' + URI.decodeQuery(kv[0], this._parts.escapeQuerySpace)\n .replace(/&/g, '%26');\n\n if (kv[1] !== undefined) {\n q += '=' + URI.decodeQuery(kv[1], this._parts.escapeQuerySpace)\n .replace(/&/g, '%26');\n }\n }\n t += '?' + q.substring(1);\n }\n\n t += URI.decodeQuery(uri.hash(), true);\n return t;\n };\n\n // resolving relative and absolute URLs\n p.absoluteTo = function(base) {\n var resolved = this.clone();\n var properties = ['protocol', 'username', 'password', 'hostname', 'port'];\n var basedir, i, p;\n\n if (this._parts.urn) {\n throw new Error('URNs do not have any generally defined hierarchical components');\n }\n\n if (!(base instanceof URI)) {\n base = new URI(base);\n }\n\n if (resolved._parts.protocol) {\n // Directly returns even if this._parts.hostname is empty.\n return resolved;\n } else {\n resolved._parts.protocol = base._parts.protocol;\n }\n\n if (this._parts.hostname) {\n return resolved;\n }\n\n for (i = 0; (p = properties[i]); i++) {\n resolved._parts[p] = base._parts[p];\n }\n\n if (!resolved._parts.path) {\n resolved._parts.path = base._parts.path;\n if (!resolved._parts.query) {\n resolved._parts.query = base._parts.query;\n }\n } else {\n if (resolved._parts.path.substring(-2) === '..') {\n resolved._parts.path += '/';\n }\n\n if (resolved.path().charAt(0) !== '/') {\n basedir = base.directory();\n basedir = basedir ? basedir : base.path().indexOf('/') === 0 ? '/' : '';\n resolved._parts.path = (basedir ? (basedir + '/') : '') + resolved._parts.path;\n resolved.normalizePath();\n }\n }\n\n resolved.build();\n return resolved;\n };\n p.relativeTo = function(base) {\n var relative = this.clone().normalize();\n var relativeParts, baseParts, common, relativePath, basePath;\n\n if (relative._parts.urn) {\n throw new Error('URNs do not have any generally defined hierarchical components');\n }\n\n base = new URI(base).normalize();\n relativeParts = relative._parts;\n baseParts = base._parts;\n relativePath = relative.path();\n basePath = base.path();\n\n if (relativePath.charAt(0) !== '/') {\n throw new Error('URI is already relative');\n }\n\n if (basePath.charAt(0) !== '/') {\n throw new Error('Cannot calculate a URI relative to another relative URI');\n }\n\n if (relativeParts.protocol === baseParts.protocol) {\n relativeParts.protocol = null;\n }\n\n if (relativeParts.username !== baseParts.username || relativeParts.password !== baseParts.password) {\n return relative.build();\n }\n\n if (relativeParts.protocol !== null || relativeParts.username !== null || relativeParts.password !== null) {\n return relative.build();\n }\n\n if (relativeParts.hostname === baseParts.hostname && relativeParts.port === baseParts.port) {\n relativeParts.hostname = null;\n relativeParts.port = null;\n } else {\n return relative.build();\n }\n\n if (relativePath === basePath) {\n relativeParts.path = '';\n return relative.build();\n }\n\n // determine common sub path\n common = URI.commonPath(relativePath, basePath);\n\n // If the paths have nothing in common, return a relative URL with the absolute path.\n if (!common) {\n return relative.build();\n }\n\n var parents = baseParts.path\n .substring(common.length)\n .replace(/[^\\/]*$/, '')\n .replace(/.*?\\//g, '../');\n\n relativeParts.path = (parents + relativeParts.path.substring(common.length)) || './';\n\n return relative.build();\n };\n\n // comparing URIs\n p.equals = function(uri) {\n var one = this.clone();\n var two = new URI(uri);\n var one_map = {};\n var two_map = {};\n var checked = {};\n var one_query, two_query, key;\n\n one.normalize();\n two.normalize();\n\n // exact match\n if (one.toString() === two.toString()) {\n return true;\n }\n\n // extract query string\n one_query = one.query();\n two_query = two.query();\n one.query('');\n two.query('');\n\n // definitely not equal if not even non-query parts match\n if (one.toString() !== two.toString()) {\n return false;\n }\n\n // query parameters have the same length, even if they're permuted\n if (one_query.length !== two_query.length) {\n return false;\n }\n\n one_map = URI.parseQuery(one_query, this._parts.escapeQuerySpace);\n two_map = URI.parseQuery(two_query, this._parts.escapeQuerySpace);\n\n for (key in one_map) {\n if (hasOwn.call(one_map, key)) {\n if (!isArray(one_map[key])) {\n if (one_map[key] !== two_map[key]) {\n return false;\n }\n } else if (!arraysEqual(one_map[key], two_map[key])) {\n return false;\n }\n\n checked[key] = true;\n }\n }\n\n for (key in two_map) {\n if (hasOwn.call(two_map, key)) {\n if (!checked[key]) {\n // two contains a parameter not present in one\n return false;\n }\n }\n }\n\n return true;\n };\n\n // state\n p.preventInvalidHostname = function(v) {\n this._parts.preventInvalidHostname = !!v;\n return this;\n };\n\n p.duplicateQueryParameters = function(v) {\n this._parts.duplicateQueryParameters = !!v;\n return this;\n };\n\n p.escapeQuerySpace = function(v) {\n this._parts.escapeQuerySpace = !!v;\n return this;\n };\n\n return URI;\n}));\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\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\nmodule.exports = includes;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = {};\n","/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.20';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\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 as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var 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 /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var 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 match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading and trailing whitespace. */\n var reTrim = /^\\s+|\\s+$/g,\n reTrimStart = /^\\s+/,\n reTrimEnd = /\\s+$/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var 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. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\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. */\n var 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 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\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 */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var 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 /** 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/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var 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 /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var 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 /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var 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\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n var asciiSize = baseProperty('length');\n\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 */\n function asciiToArray(string) {\n return string.split('');\n }\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 */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\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 */\n function 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\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 */\n function 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\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 */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\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 */\n function 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\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 */\n function baseIsNaN(value) {\n return value !== value;\n }\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 */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\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 */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\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 */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\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 */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\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 */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\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 */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\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 */\n function 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\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 */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\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 */\n function 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\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 */\n var deburrLetter = basePropertyOf(deburredLetters);\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 */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\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 */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\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 */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\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 */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\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 */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\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 */\n function 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\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 */\n function 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\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 */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\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 */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\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 */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\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 */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\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 */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\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 */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\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 */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\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 */\n function 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 /**\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 */\n var 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\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\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 */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\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 */\n lodash.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 '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\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 */\n function 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 /**\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 */\n function 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\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 */\n function 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\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 */\n function 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\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function 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 /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\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 */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\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 */\n function 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\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 */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\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 */\n function 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\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function 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 /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\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 */\n function 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\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 */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\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 */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\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 */\n function 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\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\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 */\n function 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 /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\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 */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\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 */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\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 */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\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 */\n function 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\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\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 */\n function 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 /**\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 */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\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 */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\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 */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\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 */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\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 */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\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 */\n function stackHas(key) {\n return this.__data__.has(key);\n }\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 */\n function 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\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\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 */\n function 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\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 */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\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 */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\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 */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\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 */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n var baseEach = createBaseEach(baseForOwn);\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 */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n var baseFor = createBaseFor();\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 */\n var baseForRight = createBaseFor(true);\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 */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\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 */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\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 */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\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 */\n function 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\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 */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\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 */\n function 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\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 */\n function baseGt(value, other) {\n return value > other;\n }\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 */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\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 */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\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 */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\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 */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\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 */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\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 */\n function 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\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 */\n function 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\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 */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\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 */\n function 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\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 */\n function 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\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 */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\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 */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\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 */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function baseLt(value, other) {\n return value < other;\n }\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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(getIteratee()));\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\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 */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\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 */\n function 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\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 */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\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 */\n function 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\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 */\n function 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\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 */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\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 */\n function 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\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 */\n function 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\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 */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\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 */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\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 */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\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 */\n function 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\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 */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\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 */\n var 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\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 */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\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 */\n function 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\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 */\n function 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\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 */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\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 */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\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 */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\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 */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\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 */\n var castRest = baseRest;\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 */\n function 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\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\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 */\n function 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\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 */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\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 */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\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 */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\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 */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\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 */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\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 */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\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 */\n function 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, getIteratee(iteratee, 2), accumulator);\n };\n }\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\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 */\n function 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\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 */\n function 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\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 */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(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\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 */\n function 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\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 */\n function 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\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 */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\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 */\n function 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\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 */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\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 */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\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 */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\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 */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\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 */\n function 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\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 */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\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 */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\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 */\n function 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\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 */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\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 */\n function 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\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 */\n var 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\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 */\n var 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\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((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\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 */\n function 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\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 */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\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 */\n function 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\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 */\n function 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\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 */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\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 */\n function 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\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 */\n function 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\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 */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\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 */\n var isMaskable = coreJsData ? isFunction : stubFalse;\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 */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\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 */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\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 */\n function 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\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 */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\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 */\n function 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\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 */\n function 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\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 */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\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 */\n var setToString = shortOut(baseSetToString);\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 */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\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 */\n function 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\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 */\n function 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\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 */\n var 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\n /*------------------------------------------------------------------------*/\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\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 */\n var 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), getIteratee(iteratee, 2))\n : [];\n });\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 */\n var 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\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 */\n function 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\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 */\n function 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\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 */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\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 */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\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 */\n function 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\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 */\n function 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, getIteratee(predicate, 3), index);\n }\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 */\n function 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, getIteratee(predicate, 3), index, true);\n }\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 */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\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 */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\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 */\n function 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\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 */\n function 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\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 */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\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 */\n function 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\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 */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\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 */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\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 */\n var 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, getIteratee(iteratee, 2))\n : [];\n });\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 */\n var 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\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 */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\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 */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\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 */\n function 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\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 */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\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 */\n var pull = baseRest(pullAll);\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 */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\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 */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\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 */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\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 */\n var 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\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 */\n function 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 = getIteratee(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\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 */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\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 */\n function 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\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 */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\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 */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\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 */\n function 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\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 */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\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 */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\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 */\n function 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\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 */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\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 */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\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 */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\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 */\n function 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\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 */\n function 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\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 */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\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 */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\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 */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\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 */\n var 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), getIteratee(iteratee, 2));\n });\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 */\n var 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\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 */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\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 */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\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 */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\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 */\n function 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\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 */\n function 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\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 */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\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 */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\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 */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\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 */\n var 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\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 */\n var zip = baseRest(unzip);\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 */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\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 */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\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 */\n var 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\n /*------------------------------------------------------------------------*/\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 */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\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 */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\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 */\n function thru(value, interceptor) {\n return interceptor(value);\n }\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 */\n var 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\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 */\n function wrapperChain() {\n return chain(this);\n }\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 */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\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 */\n function 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\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 */\n function wrapperToIterator() {\n return this;\n }\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 */\n function 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\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 */\n function 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\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 */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\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 */\n var 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\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 */\n function 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, getIteratee(predicate, 3));\n }\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 */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\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 */\n var find = createFind(findIndex);\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 */\n var findLast = createFind(findLastIndex);\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 */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\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 */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\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 */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\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 */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\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 */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\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 */\n var 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\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 */\n function 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\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 */\n var 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\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 */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\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 */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\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 */\n function 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\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 */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\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 */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\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 */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\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 */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\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 */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\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 */\n function 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\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 */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\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 */\n function 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\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 */\n function 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, getIteratee(predicate, 3));\n }\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 */\n var 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\n /*------------------------------------------------------------------------*/\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 */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n var 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 /**\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 */\n var 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 /**\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 */\n function 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 /**\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 */\n function 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 /**\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 */\n function 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\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 */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\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 */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\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 */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\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 */\n function 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`.\n memoize.Cache = MapCache;\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 */\n function 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\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 */\n function once(func) {\n return before(2, func);\n }\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 */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\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\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 */\n var 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 /**\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 */\n var 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 /**\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 */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function unary(func) {\n return ary(func, 1);\n }\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 '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\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 */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\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 */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\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 */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\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 */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\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 */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\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 */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\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 */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\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 */\n var gt = createRelationalOperation(baseGt);\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 */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\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 */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\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 */\n var isArray = Array.isArray;\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 */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\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 */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\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 */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\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 */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\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 */\n var isBuffer = nativeIsBuffer || stubFalse;\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 */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\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('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\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 */\n function 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\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 */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\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 */\n function 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\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 */\n function 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\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 */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\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 */\n function 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\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 */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\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 */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\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 */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\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 */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\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 */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\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 */\n function 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\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 */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\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 */\n function isNull(value) {\n return value === null;\n }\n\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 */\n function isNil(value) {\n return value == null;\n }\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 */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\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 */\n function 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\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 */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\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 */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\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 */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\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 */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\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 */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\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 */\n function isUndefined(value) {\n return value === undefined;\n }\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 */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\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 */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\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 */\n var lt = createRelationalOperation(baseLt);\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 */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\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 */\n function 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\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 */\n function 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\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 */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\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 */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\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 */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\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 */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\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 */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\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 */\n var 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\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 */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\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 */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\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 */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\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 */\n var at = flatRest(baseAt);\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 */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\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 */\n var 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\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 */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\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 */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\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 */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\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 */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\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 */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\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 */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\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 */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\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 */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\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 */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\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 */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\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 */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\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 */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\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 */\n var 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\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 */\n var 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 }, getIteratee);\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 */\n var invoke = baseRest(baseInvoke);\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 */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\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 */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\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 */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\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 */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\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 */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\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 */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\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 */\n var 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\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 */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\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 */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\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 */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\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 */\n function 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\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 */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\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 */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\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 */\n var toPairs = createToPairs(keys);\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 */\n var toPairsIn = createToPairs(keysIn);\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 */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(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\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 */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\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 */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\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 */\n function 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\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 */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\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 */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\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 */\n function 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\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 */\n function 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\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 */\n function 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\n /*------------------------------------------------------------------------*/\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 */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\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 */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\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 */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\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 */\n function 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\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 */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\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 */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\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 */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\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 */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\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 */\n var lowerFirst = createCaseFirst('toLowerCase');\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n function 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\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 */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\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 */\n function 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\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 */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\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 */\n function 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\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='lodash.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('<%- value %>');\n * compiled({ 'value': '