{"version":3,"sources":["webpack://uconn-today-plugin/./node_modules/@analytics/google-analytics/lib/analytics-plugin-ga.browser.es.js","webpack://uconn-today-plugin/./node_modules/@analytics/cookie-utils/lib/analytics-util-cookie.browser.es.js","webpack://uconn-today-plugin/./node_modules/@analytics/storage-utils/lib/analytics-util-storage.browser.es.js","webpack://uconn-today-plugin/./node_modules/analytics-utils/lib/analytics-utils.browser.es.js","webpack://uconn-today-plugin/./node_modules/@analytics/core/lib/analytics.browser.es.js","webpack://uconn-today-plugin/./node_modules/analytics/lib/analytics.browser.es.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/a-function.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/a-possible-prototype.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/add-to-unscopables.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/an-instance.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/an-object.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/array-from.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/array-includes.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/classof-raw.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/classof.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/create-property-descriptor.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/create-property.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/define-iterator.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/descriptors.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/document-create-element.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/dom-iterables.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/engine-is-ios.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/engine-is-node.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/engine-user-agent.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/engine-v8-version.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/enum-bug-keys.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/export.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/fails.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/function-bind-context.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/get-built-in.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/get-iterator-method.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/global.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/has.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/hidden-keys.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/host-report-errors.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/html.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/ie8-dom-define.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/indexed-object.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/inspect-source.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/internal-state.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/is-forced.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/is-object.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/is-pure.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/iterate.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/iterator-close.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/iterators-core.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/iterators.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/microtask.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/native-promise-constructor.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/native-symbol.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/native-weak-map.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/new-promise-capability.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/object-assign.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/object-create.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/object-define-properties.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/object-define-property.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/object-keys-internal.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/object-keys.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/object-to-string.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/own-keys.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/path.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/perform.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/promise-resolve.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/redefine-all.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/redefine.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/require-object-coercible.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/set-global.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/set-species.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/set-to-string-tag.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/shared-key.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/shared-store.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/shared.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/species-constructor.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/string-multibyte.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/task.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/to-absolute-index.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/to-indexed-object.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/to-integer.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/to-length.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/to-object.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/to-primitive.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/to-string-tag-support.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/uid.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://uconn-today-plugin/./node_modules/core-js/internals/well-known-symbol.js","webpack://uconn-today-plugin/./node_modules/core-js/modules/es.aggregate-error.js","webpack://uconn-today-plugin/./node_modules/core-js/modules/es.array.from.js","webpack://uconn-today-plugin/./node_modules/core-js/modules/es.array.includes.js","webpack://uconn-today-plugin/./node_modules/core-js/modules/es.array.iterator.js","webpack://uconn-today-plugin/./node_modules/core-js/modules/es.object.assign.js","webpack://uconn-today-plugin/./node_modules/core-js/modules/es.object.to-string.js","webpack://uconn-today-plugin/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://uconn-today-plugin/./node_modules/core-js/modules/es.promise.any.js","webpack://uconn-today-plugin/./node_modules/core-js/modules/es.promise.finally.js","webpack://uconn-today-plugin/./node_modules/core-js/modules/es.promise.js","webpack://uconn-today-plugin/./node_modules/core-js/modules/es.string.iterator.js","webpack://uconn-today-plugin/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://uconn-today-plugin/./node_modules/load-script/index.js","webpack://uconn-today-plugin/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://uconn-today-plugin/./node_modules/scheduler/index.js","webpack://uconn-today-plugin/./node_modules/symbol-observable/es/ponyfill.js","webpack://uconn-today-plugin/./node_modules/symbol-observable/es/index.js","webpack://uconn-today-plugin/./node_modules/ts-invariant/lib/invariant.esm.js","webpack://uconn-today-plugin/./node_modules/tslib/tslib.es6.js","webpack://uconn-today-plugin/./node_modules/use-analytics/dist/index.modern.js","webpack://uconn-today-plugin/./node_modules/tiny-invariant/dist/tiny-invariant.esm.js"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","_objectSpread","target","i","arguments","length","source","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","defaultConfig","trackingId","debug","anonymizeIp","customDimensions","resetCustomDimensionsOnPage","setCustomDimensionsToPage","loadedInstances","gaNotLoaded","scriptSrc","scripts","document","querySelectorAll","src","scriptLoaded","ga","getInstanceDetails","pluginConfig","instanceName","instancePrefix","trackEvent$1","eventData","opts","undefined","payload","_getInstanceDetails2","data","hitType","eventAction","event","eventLabel","label","eventCategory","category","nonInteraction","eventValue","format","campaignData","addCampaignData","dimensions","setCustomDimensions","properties","finalPayload","campaign","name","medium","content","keyword","campaignName","campaignSource","campaignMedium","campaignContent","campaignKeyword","formatObjectIntoDimensions$1","reduce","acc","dimensionKey","get$1","toString","def","p","undef","split","props","identifyVisitor$1","id","traits","conf","_getInstanceDetails3","custom","Math","round","index","pageCalledOnce","_getInstanceDetails","config","initialize","pluginApi","instance","Error","s","o","g","a","m","customScriptSrc","window","q","push","l","Date","createElement","getElementsByTagName","async","parentNode","insertBefore","gaConfig","cookieDomain","domain","siteSpeedSampleRate","sampleRate","allowLinker","cookieConfig","ga_debug","trace","tasks","taskName","hasOwnProperty","task","user","page","_ref","getState","resetDimensions","path","location","pathname","pageView","title","url","pageData","referrer","track","_ref2","identify","_ref3","userId","loaded","gaplugins","cookie","ttl","secure","encodeURIComponent","toUTCString","decodeURIComponent","getCookie","setCookie","removeCookie","_typeof","Symbol","iterator","constructor","prototype","parse","input","JSON","parseFloat","e","globalContext","self","global","LOCAL_STORAGE","COOKIE","GLOBAL","hasStorage","localStorage","setItem","removeItem","err","hasLocalStorage","hasCookies","valueSet","indexOf","hasCookieSupport","getAll","getItem","getStorageType","options","storage","useLocal","useCookie","storageType","_value","saveValue","stringify","_oldValue","oldValue","_oldValue2","isFunction","x","isString","isBoolean","isObject","proto","getPrototypeOf","decode","replace","inBrowser","paramsParse","query","temp","params","re","exec","k","v","substring","prop","arr","map","getParamsAsObject","match","search","getSearchString","keyPath","lastKeyIndex","uuid","u","rb","random","c","r","toConsumableArray","Array","isArray","arr2","arrayWithoutHoles","iter","call","from","iterableToArray","TypeError","nonIterableSpread","createCommonjsModule","fn","module","exports","_typeof_1","_typeof2","regenerator","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","state","GenStateSuspendedStart","method","arg","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","done","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","Promise","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","asyncGeneratorStep","gen","_next","_throw","asyncToGenerator","args","apply","enumerableOnly","symbols","objectSpread2","getOwnPropertyDescriptors","defineProperties","FUNC","UNDEF","base","ACTION_INIT","ACTION_TEST","$$observable","observable","msg","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","subscribe","listener","isSubscribed","splice","dispatch","action","listeners","replaceReducer","nextReducer","outerSubscribe","observer","observeState","unsubscribe","getUndefinedStateErrorMessage","actionType","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","initialState","REDUCER","assertReducerShape","hasChanged","nextState","_i","_key","previousStateForKey","nextStateForKey","errorMessage","compose","_len","funcs","b","applyMiddleware","middlewares","chain","store","_dispatch","middlewareAPI","middleware","coreEvents","nonEvents","EVENTS","curr","registerPluginType","pluginReadyType","isReservedAction","includes","ID","ANONID","ERROR_URL","ANON_ID","PREFIX","USER_ID","USER_TRAITS","utmRegex","propRegex","traitRegex","initializeMiddleware","_instance$storage","bootstrap","persistedUser","anonymousId","paramsArray","an_uid","an_event","groupedParams","cleanName","keyName","raw","setTimeout","userReducer","setItemEnd","assign","getPersistedUserData","tempKey","getUserPropFunc","currentId","identifyMiddleware","currentTraits","userIdChanged","old","stack","runCallback","waitForReady","predicate","timeout","queue","_","processQueue","getPlugins","pluginMethods","_store$getState","plugins","offline","actions","pipeline","item","plugin","process","processIndex","requeue","requeueIndex","processAction","currentPlugin","currentMethod","enrichedPayload","enrich","pluginEvent","called","reQueueActions","heartBeat","setInterval","slicedToArray","arrayWithHoles","_arr","_n","_d","_e","_s","iterableToArrayLimit","nonIterableRest","fitlerDisabledPlugins","allPlugins","settings","fromCallOptions","all","enabled","endsWithStartRegex","bootstrapRegex","readyRegex","runPlugins","_x","_x2","_x3","_x4","_x5","_callee","eventsInfo","pluginObject","originalType","updatedType","activePlugins","allActivePluginKeys","allMatches","actionBefore","actionDuring","afterName","actionAfter","_context","initializeStart","fromEnable","initialized","getAllMatchingCalls","processEvent","exact","before","namespaced","beforeNS","shouldAbortAll","during","duringNS","after","afterNS","meta","hasCallback","rid","_x6","_processEvent","_callee5","EVENTS$$1","isStartEvent","abortable","makeArgs","queueData","payloads","resolvedAction","endAction","_context5","pluginName","argumentFactory","thing","methodName","addToQueue","_ref6","_callee3","scoped","curScope","scopedPayload","_context3","_ref7","_callee2","count","curScopeData","genAbort","val","returnValue","_context2","currentAct","pname","otherPlug","reason","callsite","abort","caller","validateMethod","getConfig","_x10","_x11","_x12","_x7","_x8","_x9","_ref9","_callee4","promise","lastLoop","currentActionValue","payloadValue","funcArgs","merged","nameSpaceEvent","updatedPayload","_context4","shouldAbort","abortDispatch","_x13","_x14","_x15","originalAction","abortEvent","pluginState","pluginData","getPluginFunctions","getEventNames","eventType","namespace","postFix","core","word","_nameSpacedEvents$map","_nameSpacedEvents$map2","beforeFuncs","duringFuncs","afterFuncs","_ref4","_ref5","pluginsCount","isArray$1","abortablePlugins","otherPlugin","abortF","pluginsToAbort","abortFunction","notAbortableError","formatPayload","actionName","text","getNameSpacedAction","sub","subText","join","pluginMiddleware","systemEvents","isReady","updatedAction","pluginsArray","allRegisteredPlugins","completed","failed","disabled","waitForPluginsToLoad","updated","enablePlugin","disablePlugin","initializeEnd","d","events","calls","ready","test","storageMiddleware","osName","locale","timeZone","DynamicMiddleware","_this","Constructor","classCallCheck","position","findIndex","act","createReducer","newState","getNameFromEventType","isEnabled","Boolean","_name","_plugin","togglePluginStatus","baseName","status","pluginKey","os","navigator","appVersion","getBrowserOS","_navigator","language","languages","userLanguage","getBrowserLocale","Intl","DateTimeFormat","resolvedOptions","getTimeZone","sessionId","app","version","onLine","userAgent","library","timezone","online","excludeItems","makeContext","current","serialize","hashRegex","urlPath","matches","currentUrl","canonical","tag","tags","getAttribute","canonicalUrl","href","getPageData","_document","_window","innerWidth","innerHeight","hash","width","height","initialState$1","last","history","viewData","initialState$2","trackReducer","trackEvent","initialState$3","queueReducer","actionChain","listen","func","toAdd","ev","watch","cb","bind","Debug","createStore$$1","origDispatch","composeWithDebug","ensureArray","singleOrArray","getCallbackFromArgs","argArray","processArray","timeStamp","getTime","deferredPromiseResolver","resolver","callback","generateMeta","possibleCallbacks","ts","customReducers","initialUser","parsedOptions","NAMESPACE","definedEvents","enabledFromMerge","enabledFromPluginConfig","pluginEnabled","methods","appendArguments","allEvents","allEventsUnique","Set","getUserProp","customPlugins","pluginEvents","uniqueEvents","allSystemEvents","sort","allPluginEvents","addMiddleware","removeMiddleware","dynamicMiddlewares","nonAbortable","visitorInfo","an_aid","_page","_track","_identify","enable","disable","resolvedId","identifyStart","previousId","eventName","trackStart","pageStart","resetStart","on","startRegex","beforeHandler","afterHandler","handler","once","detachListener","actionData","_private","dispatchData","setItemStart","removeItemStart","setAnonymousId","enrichMiddleware","storeAPI","coreReducers","composeEnhancers","composeWithGlobalDebug","devTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","traceLimit","initialConfig","intialPluginState","enhanceDispatch","callbacks","newEvent","pluginKeys","enabledPlugins","disabledPlugins","originalArgs","argsToPass","registerPlugins","defaultSettings","it","String","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","f","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","toLength","createProperty","getIteratorMethod","arrayLike","step","O","C","argumentsLength","mapfn","mapping","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","callee","has","getOwnPropertyDescriptorModule","fails","F","createPropertyDescriptor","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","DESCRIPTORS","bitmap","toPrimitive","propertyKey","$","createIteratorConstructor","createNonEnumerableProperty","redefine","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","forced","get","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classof","getBuiltIn","versions","v8","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","STATIC","stat","noTargetGet","sham","aFunction","that","variable","check","globalThis","console","propertyIsEnumerable","functionToString","inspectSource","set","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","WeakMap","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","TYPE","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","toLowerCase","Result","stopped","unboundFunction","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","condition","callFn","returnMethod","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","flush","head","notify","toggle","node","macrotask","IS_IOS","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","parent","exit","enter","nextTick","createTextNode","observe","characterData","PromiseCapability","$$resolve","$$reject","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","IndexedObject","nativeAssign","A","B","symbol","alphabet","chr","T","S","j","activeXDocument","enumBugKeys","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObject","ActiveXObject","iframeDocument","iframe","write","close","parentWindow","NullProtoObjectViaActiveX","style","display","appendChild","contentWindow","open","Properties","IE8_DOM_DEFINE","nativeDefineProperty","P","Attributes","nativeGetOwnPropertyDescriptor","internalObjectKeys","getOwnPropertyNames","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","nativePropertyIsEnumerable","NASHORN_BUG","1","V","aPossiblePrototype","setter","CORRECT_SETTER","getOwnPropertyNamesModule","newPromiseCapability","promiseCapability","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","SPECIES","CONSTRUCTOR_NAME","TAG","uid","SHARED","mode","copyright","defaultConstructor","toInteger","requireObjectCoercible","CONVERT_TO_STRING","pos","first","second","size","charCodeAt","codeAt","defer","channel","port","setImmediate","clear","clearImmediate","MessageChannel","Dispatch","counter","run","runner","post","postMessage","protocol","host","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","max","min","integer","ceil","floor","argument","PREFERRED_STRING","valueOf","postfix","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","iterate","$AggregateError","errors","message","errorsArray","AggregateError","checkCorrectnessOfIteration","$includes","addToUnscopables","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","kind","Arguments","newPromiseCapabilityModule","perform","allSettled","capability","promiseResolve","remaining","alreadyCalled","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","NativePromise","speciesConstructor","real","onFinally","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","redefineAll","setSpecies","anInstance","microtask","hostReportErrors","V8_VERSION","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","FakePromise","INCORRECT_ITERATION","isThenable","isReject","notified","reactions","ok","exited","reaction","fail","rejection","onHandleUnhandled","onUnhandled","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","fetch","$promiseResolve","race","STRING_ITERATOR","point","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","METHOD_NAME","stdOnEnd","script","onload","onerror","ieOnEnd","onreadystatechange","readyState","charset","attrs","attr","setAttribute","setAttributes","h","performance","unstable_now","t","w","clearTimeout","unstable_shouldYield","unstable_forceFrameRate","y","z","cancelAnimationFrame","requestAnimationFrame","D","E","G","H","I","J","K","n","sortIndex","L","M","N","Q","R","startTime","expirationTime","U","priorityLevel","W","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","delay","unstable_wrapCallback","root","for","genericMessage","_a","InvariantError","_super","framesToPop","invariant","verbosityLevels","verbosityLevel","wrapConsoleMethod","setVerbosity","level","log","warn","processStub","env","_b","extendStatics","__extends","__","__assign","__rest","__awaiter","thisArg","_arguments","fulfilled","rejected","__generator","body","trys","ops","verb","op","__spreadArrays","il","jl","createNamedContext","AnalyticsProvider","children","Provider","useContext","useAnalytics","Consumer"],"mappings":";6HAEA,SAASA,EAAgBC,EAAKC,EAAKC,GAYjC,OAXID,KAAOD,EACTG,OAAOC,eAAeJ,EAAKC,EAAK,CAC9BC,MAAOA,EACPG,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZP,EAAIC,GAAOC,EAGNF,EAGT,SAASQ,EAAcC,GACrB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAC/CI,EAAUX,OAAOY,KAAKF,GAEkB,mBAAjCV,OAAOa,wBAChBF,EAAUA,EAAQG,OAAOd,OAAOa,sBAAsBH,GAAQK,QAAO,SAAUC,GAC7E,OAAOhB,OAAOiB,yBAAyBP,EAAQM,GAAKd,gBAIxDS,EAAQO,SAAQ,SAAUpB,GACxBF,EAAgBU,EAAQR,EAAKY,EAAOZ,OAIxC,OAAOQ,EAIT,IAAIa,EAAgB,CAElBC,WAAY,KAGZC,OAAO,EAGPC,aAAa,EAGbC,iBAAkB,GAGlBC,4BAA6B,GAG7BC,2BAA2B,GAQzBC,EAAkB,GA4NtB,SAASC,EAAYC,GACnB,OAAIA,GAkLN,SAAsBA,GACpB,IAAIC,EAAUC,SAASC,iBAAiB,eACxC,QAAS/B,OAAOY,KAAKiB,GAASd,QAAO,SAAUjB,GAC7C,OAAQ+B,EAAQ/B,GAAKkC,KAAO,MAAQJ,KACnCnB,OArLOwB,CAAaL,GAGF,oBAAPM,GAGhB,SAASC,EAAmBC,GAC1B,IAAIC,EAAeD,EAAaC,aAChC,MAAO,CACLC,eAAgBD,EAAe,GAAGvB,OAAOuB,EAAc,KAAO,GAC9DA,aAAcA,GAelB,SAASE,EAAaC,GACpB,IAAIC,EAAOjC,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC3EmC,EAAUnC,UAAUC,OAAS,EAAID,UAAU,QAAKkC,EACpD,IAAIf,IAAJ,CAEA,IAAIiB,EAAuBT,EAAmBM,GAC1CH,EAAiBM,EAAqBN,eAEtCO,EAAO,CAETC,QAASN,EAAUM,SAAW,QAE9BC,YAAaP,EAAUQ,MAEvBC,WAAYT,EAAUU,MAEtBC,cAAeX,EAAUY,UAAY,MAErCC,oBAA6CX,IAA7BF,EAAUa,kBAAiCb,EAAUa,gBAGnEb,EAAUzC,QAEZ8C,EAAKS,WAAaC,EAAOf,EAAUzC,QAKrC,IAAIyD,EAAeC,EAAgBjB,GAG/BkB,EAAaC,EAAoBhB,EAAQiB,WAAYnB,EAAMH,GAE3DuB,EAAexD,EAAc,GAAIwC,EAAMW,EAAcE,GAKzD,OADAxB,GAAG,GAAGpB,OAAOwB,EAAgB,QAAS,QAASuB,GACxCA,GAYT,SAASJ,IACP,IAAID,EAAehD,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GACnFsD,EAAW,GACXC,EAAOP,EAAaO,KACpBrD,EAAS8C,EAAa9C,OACtBsD,EAASR,EAAaQ,OACtBC,EAAUT,EAAaS,QACvBC,EAAUV,EAAaU,QAM3B,OALIH,IAAMD,EAASK,aAAeJ,GAC9BrD,IAAQoD,EAASM,eAAiB1D,GAClCsD,IAAQF,EAASO,eAAiBL,GAClCC,IAASH,EAASQ,gBAAkBL,GACpCC,IAASJ,EAASS,gBAAkBL,GACjCJ,EAcT,SAASU,EAA6BZ,GACpC,IAAInB,EAAOjC,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC3Ee,EAAmBkB,EAAKlB,iBAK5B,OAAOvB,OAAOY,KAAKW,GAAkBkD,QAAO,SAAUC,EAAK5E,GACzD,IAAI6E,EAAepD,EAAiBzB,GAChCC,EAAQ6E,EAAMhB,EAAY9D,IAAQ8D,EAAW9D,GAMjD,MAJqB,kBAAVC,IACTA,EAAQA,EAAM8E,YAGZ9E,GAAmB,IAAVA,GACX2E,EAAIC,GAAgB5E,EACb2E,GAGFA,IACN,IAGL,SAASE,EAAM/E,EAAKC,EAAKgF,EAAKC,EAAGC,GAG/B,IAFAlF,EAAMA,EAAImF,MAAQnF,EAAImF,MAAM,KAAOnF,EAE9BiF,EAAI,EAAGA,EAAIjF,EAAIW,OAAQsE,IAC1BlF,EAAMA,EAAMA,EAAIC,EAAIiF,IAAMC,EAG5B,OAAOnF,IAAQmF,EAAQF,EAAMjF,EAG/B,SAAS8D,IACP,IAAIuB,EAAQ1E,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC5EiC,EAAOjC,UAAUC,OAAS,EAAID,UAAU,QAAKkC,EAC7CJ,EAAiB9B,UAAUC,OAAS,EAAID,UAAU,QAAKkC,EACvDnB,EAAmBiD,EAA6BU,EAAOzC,GAE3D,OAAKzC,OAAOY,KAAKW,GAAkBd,OAK9BgC,EAAKhB,2BAKVS,GAAG,GAAGpB,OAAOwB,EAAgB,OAAQf,GAC9B,IALEA,EALA,GAkBX,SAAS4D,EAAkBC,GACzB,IAAIC,EAAS7E,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC7E8E,EAAO9E,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC/E,IAAImB,IAAJ,CAEA,IAAI4D,EAAuBpD,EAAmBmD,GAC1ChD,EAAiBiD,EAAqBjD,eAI1C,GAFI8C,GAAIlD,GAAG,GAAGpB,OAAOwB,EAAgB,OAAQ,SAAU8C,GAEnDpF,OAAOY,KAAKyE,GAAQ5E,OAAQ,CAC9B,IAAI+E,EAAShB,EAA6Ba,EAAQC,GAClDpD,GAAG,GAAGpB,OAAOwB,EAAgB,OAAQkD,KAWzC,SAASjC,EAAOxD,GACd,OAAKA,GAASA,EAAQ,EAAU,EACzB0F,KAAKC,MAAM3F,GAGpB,IAQI4F,EA1YJ,WACE,IAAIvD,EAAe5B,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GACnFoF,GAAiB,EAEjBC,EAAsB1D,EAAmBC,GACzCC,EAAewD,EAAoBxD,aACnCC,EAAiBuD,EAAoBvD,eAEzC,MAAO,CACLyB,KAAM,mBACN+B,OAAQzF,EAAc,GAAIc,EAAeiB,GAEzC2D,WAAY,SAAoBC,GAC9B,IAAIF,EAASE,EAAUF,OACnBG,EAAWD,EAAUC,SACzB,IAAKH,EAAO1E,WAAY,MAAM,IAAI8E,MAAM,4BAExC,IAIa3F,EAAG4F,EAAGC,EAAGC,EAAMC,EAAGC,EAJ3B3E,EAAYkE,EAAOU,iBAAmB,gDAmB1C,GAjBI7E,EAAYC,KAEHrB,EASRkG,OATWN,EASHrE,SATMsE,EASI,SATDC,EASWzE,EAAW,KARxCrB,EAAyB,sBAQe,KAPxCA,EAAG,GAAIA,EAAG,IAAK,YACZA,EAAG,GAAEmG,EAAInG,EAAG,GAAEmG,GAAK,IAAIC,KAAKnG,YAC5BD,EAAG,GAAEqG,EAAI,EAAI,IAAIC,KACpBP,EAAIH,EAAEW,cAAcV,GAAIG,EAAIJ,EAAEY,qBAAqBX,GAAG,GACtDE,EAAEU,MAAQ,EACVV,EAAEtE,IAAMqE,EACRE,EAAEU,WAAWC,aAAaZ,EAAGC,KAO5B7E,EAAgBW,GAAe,CAClC,IAAI8E,EAAW9G,EAAc,CAC3B+G,aAActB,EAAOuB,QAAU,OAC/BC,oBAAqBxB,EAAOwB,qBAAuB,EACnDC,WAAYzB,EAAOyB,YAAc,IACjCC,aAAa,GACZ1B,EAAO2B,cAENpF,IACF8E,EAASpD,KAAO1B,GAGlBH,GAAG,SAAU4D,EAAO1E,WAAY+F,GAE5BrB,EAAOzE,QAETa,GAAG,GAAGpB,OAAOwB,EAAgB,OAAQ,cAAe,MACpDmE,OAAOiB,SAAW,CAChBC,OAAO,IAIP7B,EAAOxE,aACTY,GAAG,GAAGpB,OAAOwB,EAAgB,OAAQ,eAAe,GAGlDwD,EAAO8B,OACM,CAAC,aAAc,cAAe,oBAAqB,iBAAkB,mBAAoB,oBAAqB,cAAe,eAAgB,cAAe,aAAc,uBAChL1G,SAAQ,SAAU2G,GACzB,GAAI/B,EAAO8B,MAAME,eAAeD,GAAW,CACzC,IAAIE,EAAOjC,EAAO8B,MAAMC,GAEJ,mBAATE,EACT7F,GAAG4D,EAAO8B,MAAMC,IACE,OAATE,GACT7F,GAAG,GAAGpB,OAAOwB,EAAgB,OAAQuF,EAAUE,OAQvD,IACI1C,GADOY,EAAS+B,QAAU,IACZ3C,QAAU,GAE5B,GAAIrF,OAAOY,KAAKyE,GAAQ5E,OAAQ,CAC9B,IAAIc,EAAmBiD,EAA6Ba,EAAQS,GAC5D5D,GAAG,GAAGpB,OAAOwB,EAAgB,OAAQf,GAGvCG,EAAgBW,IAAgB,IAIpC4F,KAAM,SAAcC,GAClB,IAAIvF,EAAUuF,EAAKvF,QACfmD,EAASoC,EAAKpC,OACdG,EAAWiC,EAAKjC,SAChBrC,EAAajB,EAAQiB,WACrBpC,EAA8BsE,EAAOtE,4BACrCD,EAAmBuE,EAAOvE,iBAC1BuC,EAAWmC,EAASkC,SAAS,oBACjC,IAAIxG,IAAJ,CAGA,GAAIH,GAA+BA,EAA4Bf,OAAQ,CACrE,IAAI2H,EAAkB5G,EAA4BiD,QAAO,SAAUC,EAAK5E,GAKtE,OAJIyB,EAAiBzB,KACnB4E,EAAInD,EAAiBzB,IAAQ,MAGxB4E,IACN,IAEC1E,OAAOY,KAAKwH,GAAiB3H,QAE/ByB,GAAG,GAAGpB,OAAOwB,EAAgB,OAAQ8F,GAIzC,IAAIC,EAAOzE,EAAWyE,MAAQvG,SAASwG,SAASC,SAC5CC,EAAW,CACbP,KAAMI,EACNI,MAAO7E,EAAW6E,MAClBH,SAAU1E,EAAW8E,KAEnBC,EAAW,CACbV,KAAMI,EACNI,MAAO7E,EAAW6E,OAIhB7E,EAAWgF,WAAa9G,SAAS8G,WACnCD,EAASC,SAAWhF,EAAWgF,UAGjC,IAII/E,EAAexD,EAAc,GAAImI,EAJlB/E,EAAgBK,GAClBH,EAAoBC,EAAYkC,EAAQxD,IAKzDJ,GAAG,GAAGpB,OAAOwB,EAAgB,OAAQqG,GAEjC/C,UACK/B,EAAayE,SAKtBpG,GAAG,GAAGpB,OAAOwB,EAAgB,QAAS,WAAYuB,GAElD+B,GAAiB,IAanBiD,MAAO,SAAeC,GACpB,IAAInG,EAAUmG,EAAMnG,QAChBmD,EAASgD,EAAMhD,OACfG,EAAW6C,EAAM7C,SACjBrC,EAAajB,EAAQiB,WACrBZ,EAAQL,EAAQK,MAChBE,EAAQU,EAAWV,MACnBnD,EAAQ6D,EAAW7D,MAKvBwC,EAAa,CACXO,QAAS,QACTE,MAAOA,EACPE,MAAOA,EACPE,SARaQ,EAAWR,UAQF,MACtBrD,MAAOA,EACPsD,eATmBO,EAAWP,eAU9BS,SATamC,EAASkC,SAAS,qBAU9BrC,EAAQnD,IAEboG,SAAU,SAAkBC,GAC1B,IAAIrG,EAAUqG,EAAMrG,QAChBmD,EAASkD,EAAMlD,OACnBX,EAAkBxC,EAAQsG,OAAQtG,EAAQ0C,OAAQS,IAEpDoD,OAAQ,WACN,QAASzC,OAAO0C,aAuNtB,Q,2FC/dA,SAASC,EAAOrF,EAAMhE,EAAOsJ,EAAKhB,EAAMhB,EAAQiC,GAC9C,GAAsB,oBAAX7C,OAGX,OAAIjG,UAAUC,OAAS,EAEdqB,SAASsH,OAASrF,EAAO,IAAMwF,mBAAmBxJ,IACxDsJ,EACD,aAAe,IAAIxC,MAAM,IAAIA,KAAe,IAANwC,GAAYG,eACjDnB,EAAY,UAAYA,EAAjB,KACPhB,EAAc,YAAcA,EAAnB,KACTiC,EAAc,WAAL,IAJH,IAOFG,qBAAqB,KAAO3H,SAASsH,QAAQnE,MAAM,KAAOlB,EAAO,KAAK,IAAM,IAAIkB,MAAM,KAAK,IAuBpG,IAAIyE,EAAYN,EAQZO,EAAYP,EAMhB,SAASQ,EAAa7F,GACpB,OAAOqF,EAAOrF,EAAM,IAAK,GC7C3B,SAAS8F,EAAQhK,GAWf,OATEgK,EADoB,mBAAXC,QAAoD,iBAApBA,OAAOC,SACtC,SAAUlK,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,mBAAXiK,QAAyBjK,EAAImK,cAAgBF,QAAUjK,IAAQiK,OAAOG,UAAY,gBAAkBpK,IAI9GA,GAGjB,SAASqK,EAAMC,GACb,IAAIpK,EAEJ,SAGuB,KAFrBA,EAAQqK,KAAKF,MAAMC,MAGjBpK,EAAQoK,GAGI,SAAVpK,IACFA,GAAQ,GAGI,UAAVA,IACFA,GAAQ,GAGNsK,WAAWtK,KAAWA,GAA4B,WAAnB8J,EAAQ9J,KACzCA,EAAQsK,WAAWtK,IAErB,MAAOuK,GACPvK,EAAQoK,EAGV,OAAOpK,EAGT,IAAIwK,EAAgF,YAA/C,oBAATC,KAAuB,YAAcX,EAAQW,QAAuBA,KAAKA,OAASA,MAAQA,MAA4E,iBAAjD,IAAX,EAAAnE,EAAyB,YAAcwD,EAAQ,EAAAxD,KAAyB,EAAAA,EAAOoE,SAAW,EAAApE,GAAU,EAAAA,QAAU3D,EAEhPgI,EAAgB,eAChBC,EAAS,SACTC,EAAS,SAETC,EAjEJ,WAEE,IACE,GAA4B,oBAAjBC,cAAgD,oBAATV,KAChD,OAAO,EAITU,aAAaC,QAAQ,MAAO,KAC5BD,aAAaE,WAAW,OACxB,MAAOC,GACP,OAAO,EAGT,OAAO,EAmDQC,GACbC,EDvCJ,WACE,IACE,IAAIrL,EAAM,MAEVsJ,EAAOtJ,EAAK,KACZ,IAAIsL,GAA6C,IAAlCtJ,SAASsH,OAAOiC,QAAQvL,GAGvC,OADAsJ,EAAOtJ,EAAK,IAAK,GACVsL,EACP,MAAOd,GACP,OAAO,GC6BMgB,GAmCjB,SAASC,EAAOzL,GACd,MAAO,CACLsJ,OAAQc,EAAMR,EAAU5J,IACxBgL,aAAcZ,EAAMY,aAAaU,QAAQ1L,IACzC2K,OAAQF,EAAczK,IAAQ,MAoFlC,SAAS2L,EAAeC,GACtB,MAA0B,iBAAZA,EAAuBA,EAAUA,EAAQC,QAGzD,SAASC,EAASD,GAChB,OAAOd,KAAgBc,GAAWA,IAAYjB,GAGhD,SAASmB,EAAUF,GACjB,OAAOR,KAAgBQ,GAAWA,IAAYhB,GAEhD,IAMA,EANY,CACVa,QA9HF,SAAiB1L,GACf,IAAI4L,EAAUlL,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAClF,IAAKV,EAAK,OAAO,KACjB,IAAIgM,EAAcL,EAAeC,GAEjC,GAAoB,QAAhBI,EAAuB,OAAOP,EAAOzL,GAGzC,GAAI8L,EAASE,GAAc,CACzB,IAAI/L,EAAQ+K,aAAaU,QAAQ1L,GACjC,GAAIC,GAAS+L,IAAgBpB,EAAe,OAAOR,EAAMnK,GAK3D,GAAI8L,EAAUC,GAAc,CAC1B,IAAIC,EAASrC,EAAU5J,GAEvB,GAAIiM,GAAUD,IAAgBnB,EAAQ,OAAOT,EAAM6B,GAKrD,OAAOxB,EAAczK,IAAQ,MAwG7BiL,QApFF,SAAiBjL,EAAKC,GACpB,IAAI2L,EAAUlL,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAClF,IAAKV,IAAQC,EAAO,OAAO,EAC3B,IAAI+L,EAAcL,EAAeC,GAC7BM,EAAY5B,KAAK6B,UAAUlM,GAG/B,GAAI6L,EAASE,GAAc,CAEzB,IAAII,EAAYhC,EAAMY,aAAaU,QAAQ1L,IAG3C,OADAgL,aAAaC,QAAQjL,EAAKkM,GACnB,CACLjM,MAAOA,EACPoM,SAAUD,EACV5D,SAAUoC,GAMd,GAAImB,EAAUC,GAAc,CAE1B,IAAIM,EAAalC,EAAMR,EAAU5J,IAGjC,OADA6J,EAAU7J,EAAKkM,GACR,CACLjM,MAAOA,EACPoM,SAAUC,EACV9D,SAAUqC,GAMd,IAAIwB,EAAW5B,EAAczK,GAE7B,OADAyK,EAAczK,GAAOC,EACd,CACLA,MAAOA,EACPoM,SAAUA,EACV7D,SAAUsC,IA6CZI,WAnCF,SAAoBlL,GAClB,IAAI4L,EAAUlL,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAClF,IAAKV,EAAK,OAAO,EACjB,IAAIgM,EAAcL,EAAeC,GAEjC,OAAIE,EAASE,IAEXhB,aAAaE,WAAWlL,GACjB4K,GACEmB,EAAUC,IAEnBlC,EAAa9J,GACN6K,IAKTJ,EAAczK,QAAO4C,EACdkI,KC1LT,SAAS,EAAQ/K,GAWf,OATE,EADoB,mBAAXiK,QAAoD,iBAApBA,OAAOC,SACtC,SAAUlK,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,mBAAXiK,QAAyBjK,EAAImK,cAAgBF,QAAUjK,IAAQiK,OAAOG,UAAY,gBAAkBpK,IAI9GA,GAGjB,SAASwM,EAAWC,GAClB,MAAoB,mBAANA,EAEhB,SAASC,EAASD,GAChB,MAAoB,iBAANA,EAKhB,SAASE,EAAUF,GACjB,MAAoB,kBAANA,EAKhB,SAASG,EAAS5M,GAChB,GAAqB,WAAjB,EAAQA,IAA6B,OAARA,EAAc,OAAO,EAGtD,IAFA,IAAI6M,EAAQ7M,EAE4B,OAAjCG,OAAO2M,eAAeD,IAC3BA,EAAQ1M,OAAO2M,eAAeD,GAGhC,OAAO1M,OAAO2M,eAAe9M,KAAS6M,EAGxC,SAASE,EAAOzG,GACd,IACE,OAAOsD,mBAAmBtD,EAAE0G,QAAQ,MAAO,MAC3C,MAAOvC,GACP,OAAO,MAIX,IAAIwC,EAAgC,oBAAbhL,SA6GvB,SAASiL,EAAYrE,GACnB,OAQF,SAA2BsE,GAKzB,IAJA,IACIC,EADAC,EAAS,GAETC,EAAK,qBAEFF,EAAOE,EAAGC,KAAKJ,IAAQ,CAC5B,IAAIK,EAAIT,EAAOK,EAAK,IAChBK,EAAIV,EAAOK,EAAK,IAEc,OAA9BI,EAAEE,UAAUF,EAAE5M,OAAS,IAExByM,EADDG,EAAIA,EAAEE,UAAU,EAAGF,EAAE5M,OAAS,MACfyM,EAAOG,GAAK,KAAK1G,KAAK2G,GAErCJ,EAAOG,GAAW,KAANC,GAAkBA,EAIlC,IAAK,IAAIE,KAAQN,EAAQ,CACvB,IAAIO,EAAMD,EAAKvI,MAAM,KAEjBwI,EAAIhN,OAAS,IACf,EAAOyM,EAAQO,EAAIC,KAAI,SAAUpB,GAC/B,OAAOA,EAAEO,QAAQ,aAAc,OAC7BK,EAAOM,WACJN,EAAOM,IAIlB,OAAON,EApCAS,CAhBT,SAAyBjF,GACvB,GAAIA,EAAK,CACP,IAAI3D,EAAI2D,EAAIkF,MAAM,UAClB,OAAO7I,GAAKA,EAAE,GAAKA,EAAE,GAAGE,MAAM,KAAK,GAAK,GAG1C,OAAO6H,GAAarG,OAAO6B,SAASuF,OAAON,UAAU,GAU5BO,CAAgBpF,IAuC3C,SAAS,EAAO7I,EAAKkO,EAAShO,GAG5B,IAFA,IAAIiO,EAAeD,EAAQtN,OAAS,EAE3BF,EAAI,EAAGA,EAAIyN,IAAgBzN,EAAG,CACrC,IAAIT,EAAMiO,EAAQxN,GAEZT,KAAOD,IACXA,EAAIC,GAAO,IAGbD,EAAMA,EAAIC,GAGZD,EAAIkO,EAAQC,IAAiBjO,EAuN/B,SAASkO,IAMP,IALA,IAAIC,EAAI,GAEJ3N,EAAI,EACJ4N,EAAqB,WAAhB1I,KAAK2I,SAAwB,EAE/B7N,IAAM,IAAI,CACf,IAAI8N,EALE,uCAKI9N,EAAI,GACV+N,EAAS,GAALH,EAERD,GAAU,KAALG,GAAiB,KAALA,EAAWA,GADf,KAALA,EAAWC,EAAQ,EAAJA,EAAU,GACCzJ,SAAS,IAC3CsJ,EAAK5N,EAAI,GAAK,EAAoB,WAAhBkF,KAAK2I,SAAwB,EAAID,GAAM,EAG3D,OAAOD,EC9aT,IAkBIK,EAJJ,SAA4Bd,GAC1B,OAzBF,SAA4BA,GAC1B,GAAIe,MAAMC,QAAQhB,GAAM,CACtB,IAAK,IAAIlN,EAAI,EAAGmO,EAAO,IAAIF,MAAMf,EAAIhN,QAASF,EAAIkN,EAAIhN,OAAQF,IAC5DmO,EAAKnO,GAAKkN,EAAIlN,GAGhB,OAAOmO,GAmBFC,CAAkBlB,IAb3B,SAA0BmB,GACxB,GAAI9E,OAAOC,YAAY/J,OAAO4O,IAAkD,uBAAzC5O,OAAOiK,UAAUpF,SAASgK,KAAKD,GAAgC,OAAOJ,MAAMM,KAAKF,GAYvFG,CAAgBtB,IAPnD,WACE,MAAM,IAAIuB,UAAU,mDAMqCC,IAK3D,SAASC,EAAqBC,EAAIC,GACjC,OAAiCD,EAA1BC,EAAS,CAAEC,QAAS,IAAiBD,EAAOC,SAAUD,EAAOC,QAGrE,IAAIC,EAAYJ,GAAqB,SAAUE,GAC/C,SAASG,EAAS1P,GAA4T,OAA1O0P,EAArD,mBAAXzF,QAAoD,iBAApBA,OAAOC,SAAoC,SAAkBlK,GAAO,cAAcA,GAA4B,SAAkBA,GAAO,OAAOA,GAAyB,mBAAXiK,QAAyBjK,EAAImK,cAAgBF,QAAUjK,IAAQiK,OAAOG,UAAY,gBAAkBpK,IAA0BA,GAE9V,SAASgK,EAAQhK,GAWf,MAVsB,mBAAXiK,QAAuD,WAA9ByF,EAASzF,OAAOC,UAClDqF,EAAOC,QAAUxF,EAAU,SAAiBhK,GAC1C,OAAO0P,EAAS1P,IAGlBuP,EAAOC,QAAUxF,EAAU,SAAiBhK,GAC1C,OAAOA,GAAyB,mBAAXiK,QAAyBjK,EAAImK,cAAgBF,QAAUjK,IAAQiK,OAAOG,UAAY,SAAWsF,EAAS1P,IAIxHgK,EAAQhK,GAGjBuP,EAAOC,QAAUxF,KAivBb2F,EA9uBYN,GAAqB,SAAUE,GAQ/C,IAAIK,EAAW,SAAUJ,GAEvB,IAEI3M,EAFAgN,EAAK1P,OAAOiK,UACZ0F,EAASD,EAAG5H,eAEZ8H,EAA4B,mBAAX9F,OAAwBA,OAAS,GAClD+F,EAAiBD,EAAQ7F,UAAY,aACrC+F,EAAsBF,EAAQG,eAAiB,kBAC/CC,EAAoBJ,EAAQK,aAAe,gBAE/C,SAASC,EAAOrQ,EAAKC,EAAKC,GAOxB,OANAC,OAAOC,eAAeJ,EAAKC,EAAK,CAC9BC,MAAOA,EACPG,YAAY,EACZC,cAAc,EACdC,UAAU,IAELP,EAAIC,GAEb,IAEEoQ,EAAO,GAAI,IACX,MAAOjF,GACPiF,EAAS,SAASrQ,EAAKC,EAAKC,GAC1B,OAAOF,EAAIC,GAAOC,GAItB,SAASoQ,EAAKC,EAASC,EAAS7F,EAAM8F,GAEpC,IAAIC,EAAiBF,GAAWA,EAAQpG,qBAAqBuG,EAAYH,EAAUG,EAC/EC,EAAYzQ,OAAO0Q,OAAOH,EAAetG,WACzC0G,EAAU,IAAIC,EAAQN,GAAe,IAMzC,OAFAG,EAAUI,QAsMZ,SAA0BT,EAAS5F,EAAMmG,GACvC,IAAIG,EAAQC,EAEZ,OAAO,SAAgBC,EAAQC,GAC7B,GAAIH,IAAUI,EACZ,MAAM,IAAIhL,MAAM,gCAGlB,GAAI4K,IAAUK,EAAmB,CAC/B,GAAe,UAAXH,EACF,MAAMC,EAKR,OAAOG,IAMT,IAHAT,EAAQK,OAASA,EACjBL,EAAQM,IAAMA,IAED,CACX,IAAII,EAAWV,EAAQU,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUV,GACnD,GAAIW,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnBX,EAAQK,OAGVL,EAAQc,KAAOd,EAAQe,MAAQf,EAAQM,SAElC,GAAuB,UAAnBN,EAAQK,OAAoB,CACrC,GAAIF,IAAUC,EAEZ,MADAD,EAAQK,EACFR,EAAQM,IAGhBN,EAAQgB,kBAAkBhB,EAAQM,SAEN,WAAnBN,EAAQK,QACjBL,EAAQiB,OAAO,SAAUjB,EAAQM,KAGnCH,EAAQI,EAER,IAAIW,EAASC,EAAS1B,EAAS5F,EAAMmG,GACrC,GAAoB,WAAhBkB,EAAOE,KAAmB,CAO5B,GAJAjB,EAAQH,EAAQqB,KACZb,EACAc,EAEAJ,EAAOZ,MAAQO,EACjB,SAGF,MAAO,CACLzR,MAAO8R,EAAOZ,IACde,KAAMrB,EAAQqB,MAGS,UAAhBH,EAAOE,OAChBjB,EAAQK,EAGRR,EAAQK,OAAS,QACjBL,EAAQM,IAAMY,EAAOZ,OA9QPiB,CAAiB9B,EAAS5F,EAAMmG,GAE7CF,EAcT,SAASqB,EAAS3C,EAAItP,EAAKoR,GACzB,IACE,MAAO,CAAEc,KAAM,SAAUd,IAAK9B,EAAGN,KAAKhP,EAAKoR,IAC3C,MAAOhG,GACP,MAAO,CAAE8G,KAAM,QAASd,IAAKhG,IAhBjCoE,EAAQc,KAAOA,EAoBf,IAAIY,EAAyB,iBACzBkB,EAAyB,iBACzBf,EAAoB,YACpBC,EAAoB,YAIpBK,EAAmB,GAMvB,SAAShB,KACT,SAAS2B,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxBA,EAAkBxC,GAAkB,WAClC,OAAOyC,MAGT,IAAIC,EAAWvS,OAAO2M,eAClB6F,EAA0BD,GAAYA,EAASA,EAASE,EAAO,MAC/DD,GACAA,IAA4B9C,GAC5BC,EAAOd,KAAK2D,EAAyB3C,KAGvCwC,EAAoBG,GAGtB,IAAIE,EAAKN,EAA2BnI,UAClCuG,EAAUvG,UAAYjK,OAAO0Q,OAAO2B,GAWtC,SAASM,EAAsB1I,GAC7B,CAAC,OAAQ,QAAS,UAAU/I,SAAQ,SAAS8P,GAC3Cd,EAAOjG,EAAW+G,GAAQ,SAASC,GACjC,OAAOqB,KAAKzB,QAAQG,EAAQC,SAkClC,SAAS2B,EAAcnC,EAAWoC,GAChC,SAASC,EAAO9B,EAAQC,EAAK8B,EAASC,GACpC,IAAInB,EAASC,EAASrB,EAAUO,GAASP,EAAWQ,GACpD,GAAoB,UAAhBY,EAAOE,KAEJ,CACL,IAAIkB,EAASpB,EAAOZ,IAChBlR,EAAQkT,EAAOlT,MACnB,OAAIA,GACiB,iBAAVA,GACP4P,EAAOd,KAAK9O,EAAO,WACd8S,EAAYE,QAAQhT,EAAMmT,SAASC,MAAK,SAASpT,GACtD+S,EAAO,OAAQ/S,EAAOgT,EAASC,MAC9B,SAAS/H,GACV6H,EAAO,QAAS7H,EAAK8H,EAASC,MAI3BH,EAAYE,QAAQhT,GAAOoT,MAAK,SAASC,GAI9CH,EAAOlT,MAAQqT,EACfL,EAAQE,MACP,SAASI,GAGV,OAAOP,EAAO,QAASO,EAAON,EAASC,MAvBzCA,EAAOnB,EAAOZ,KA4BlB,IAAIqC,EAgCJhB,KAAKzB,QA9BL,SAAiBG,EAAQC,GACvB,SAASsC,IACP,OAAO,IAAIV,GAAY,SAASE,EAASC,GACvCF,EAAO9B,EAAQC,EAAK8B,EAASC,MAIjC,OAAOM,EAaLA,EAAkBA,EAAgBH,KAChCI,EAGAA,GACEA,KAkHV,SAAShC,EAAoBF,EAAUV,GACrC,IAAIK,EAASK,EAAStH,SAAS4G,EAAQK,QACvC,GAAIA,IAAWtO,EAAW,CAKxB,GAFAiO,EAAQU,SAAW,KAEI,UAAnBV,EAAQK,OAAoB,CAE9B,GAAIK,EAAStH,SAAiB,SAG5B4G,EAAQK,OAAS,SACjBL,EAAQM,IAAMvO,EACd6O,EAAoBF,EAAUV,GAEP,UAAnBA,EAAQK,QAGV,OAAOQ,EAIXb,EAAQK,OAAS,QACjBL,EAAQM,IAAM,IAAIjC,UAChB,kDAGJ,OAAOwC,EAGT,IAAIK,EAASC,EAASd,EAAQK,EAAStH,SAAU4G,EAAQM,KAEzD,GAAoB,UAAhBY,EAAOE,KAIT,OAHApB,EAAQK,OAAS,QACjBL,EAAQM,IAAMY,EAAOZ,IACrBN,EAAQU,SAAW,KACZG,EAGT,IAAIgC,EAAO3B,EAAOZ,IAElB,OAAMuC,EAOFA,EAAKxB,MAGPrB,EAAQU,EAASoC,YAAcD,EAAKzT,MAGpC4Q,EAAQ+C,KAAOrC,EAASsC,QAQD,WAAnBhD,EAAQK,SACVL,EAAQK,OAAS,OACjBL,EAAQM,IAAMvO,GAUlBiO,EAAQU,SAAW,KACZG,GANEgC,GA3BP7C,EAAQK,OAAS,QACjBL,EAAQM,IAAM,IAAIjC,UAAU,oCAC5B2B,EAAQU,SAAW,KACZG,GAoDX,SAASoC,EAAaC,GACpB,IAAIC,EAAQ,CAAEC,OAAQF,EAAK,IAEvB,KAAKA,IACPC,EAAME,SAAWH,EAAK,IAGpB,KAAKA,IACPC,EAAMG,WAAaJ,EAAK,GACxBC,EAAMI,SAAWL,EAAK,IAGxBvB,KAAK6B,WAAWxN,KAAKmN,GAGvB,SAASM,EAAcN,GACrB,IAAIjC,EAASiC,EAAMO,YAAc,GACjCxC,EAAOE,KAAO,gBACPF,EAAOZ,IACd6C,EAAMO,WAAaxC,EAGrB,SAASjB,EAAQN,GAIfgC,KAAK6B,WAAa,CAAC,CAAEJ,OAAQ,SAC7BzD,EAAYpP,QAAQ0S,EAActB,MAClCA,KAAKgC,OAAM,GA8Bb,SAAS7B,EAAO8B,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAAS1E,GAC9B,GAAI2E,EACF,OAAOA,EAAe3F,KAAK0F,GAG7B,GAA6B,mBAAlBA,EAASb,KAClB,OAAOa,EAGT,IAAKE,MAAMF,EAAS9T,QAAS,CAC3B,IAAIF,GAAK,EAAGmT,EAAO,SAASA,IAC1B,OAASnT,EAAIgU,EAAS9T,QACpB,GAAIkP,EAAOd,KAAK0F,EAAUhU,GAGxB,OAFAmT,EAAK3T,MAAQwU,EAAShU,GACtBmT,EAAK1B,MAAO,EACL0B,EAOX,OAHAA,EAAK3T,MAAQ2C,EACbgR,EAAK1B,MAAO,EAEL0B,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAMtC,GAIjB,SAASA,IACP,MAAO,CAAErR,MAAO2C,EAAWsP,MAAM,GA+MnC,OA5mBAG,EAAkBlI,UAAYyI,EAAG1I,YAAcoI,EAC/CA,EAA2BpI,YAAcmI,EACzCA,EAAkBuC,YAAcxE,EAC9BkC,EACApC,EACA,qBAaFX,EAAQsF,oBAAsB,SAASC,GACrC,IAAIC,EAAyB,mBAAXD,GAAyBA,EAAO5K,YAClD,QAAO6K,IACHA,IAAS1C,GAG2B,uBAAnC0C,EAAKH,aAAeG,EAAK9Q,QAIhCsL,EAAQyF,KAAO,SAASF,GAQtB,OAPI5U,OAAO+U,eACT/U,OAAO+U,eAAeH,EAAQxC,IAE9BwC,EAAOI,UAAY5C,EACnBlC,EAAO0E,EAAQ5E,EAAmB,sBAEpC4E,EAAO3K,UAAYjK,OAAO0Q,OAAOgC,GAC1BkC,GAOTvF,EAAQ4F,MAAQ,SAAShE,GACvB,MAAO,CAAEiC,QAASjC,IAsEpB0B,EAAsBC,EAAc3I,WACpC2I,EAAc3I,UAAU6F,GAAuB,WAC7C,OAAOwC,MAETjD,EAAQuD,cAAgBA,EAKxBvD,EAAQrI,MAAQ,SAASoJ,EAASC,EAAS7F,EAAM8F,EAAauC,QACxC,IAAhBA,IAAwBA,EAAcqC,SAE1C,IAAItG,EAAO,IAAIgE,EACbzC,EAAKC,EAASC,EAAS7F,EAAM8F,GAC7BuC,GAGF,OAAOxD,EAAQsF,oBAAoBtE,GAC/BzB,EACAA,EAAK8E,OAAOP,MAAK,SAASF,GACxB,OAAOA,EAAOjB,KAAOiB,EAAOlT,MAAQ6O,EAAK8E,WAuKjDf,EAAsBD,GAEtBxC,EAAOwC,EAAI1C,EAAmB,aAO9B0C,EAAG7C,GAAkB,WACnB,OAAOyC,MAGTI,EAAG7N,SAAW,WACZ,MAAO,sBAkCTwK,EAAQzO,KAAO,SAASuU,GACtB,IAAIvU,EAAO,GACX,IAAK,IAAId,KAAOqV,EACdvU,EAAK+F,KAAK7G,GAMZ,OAJAc,EAAKwU,UAIE,SAAS1B,IACd,KAAO9S,EAAKH,QAAQ,CAClB,IAAIX,EAAMc,EAAKyU,MACf,GAAIvV,KAAOqV,EAGT,OAFAzB,EAAK3T,MAAQD,EACb4T,EAAK1B,MAAO,EACL0B,EAQX,OADAA,EAAK1B,MAAO,EACL0B,IAsCXrE,EAAQoD,OAASA,EAMjB7B,EAAQ3G,UAAY,CAClBD,YAAa4G,EAEb0D,MAAO,SAASgB,GAcd,GAbAhD,KAAKiD,KAAO,EACZjD,KAAKoB,KAAO,EAGZpB,KAAKb,KAAOa,KAAKZ,MAAQhP,EACzB4P,KAAKN,MAAO,EACZM,KAAKjB,SAAW,KAEhBiB,KAAKtB,OAAS,OACdsB,KAAKrB,IAAMvO,EAEX4P,KAAK6B,WAAWjT,QAAQkT,IAEnBkB,EACH,IAAK,IAAIvR,KAAQuO,KAEQ,MAAnBvO,EAAKyR,OAAO,IACZ7F,EAAOd,KAAKyD,KAAMvO,KACjB0Q,OAAO1Q,EAAK0R,MAAM,MACrBnD,KAAKvO,GAAQrB,IAMrBgT,KAAM,WACJpD,KAAKN,MAAO,EAEZ,IACI2D,EADYrD,KAAK6B,WAAW,GACLE,WAC3B,GAAwB,UAApBsB,EAAW5D,KACb,MAAM4D,EAAW1E,IAGnB,OAAOqB,KAAKsD,MAGdjE,kBAAmB,SAASkE,GAC1B,GAAIvD,KAAKN,KACP,MAAM6D,EAGR,IAAIlF,EAAU2B,KACd,SAASwD,EAAOC,EAAKC,GAYnB,OAXAnE,EAAOE,KAAO,QACdF,EAAOZ,IAAM4E,EACblF,EAAQ+C,KAAOqC,EAEXC,IAGFrF,EAAQK,OAAS,OACjBL,EAAQM,IAAMvO,KAGNsT,EAGZ,IAAK,IAAIzV,EAAI+R,KAAK6B,WAAW1T,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACpD,IAAIuT,EAAQxB,KAAK6B,WAAW5T,GACxBsR,EAASiC,EAAMO,WAEnB,GAAqB,SAAjBP,EAAMC,OAIR,OAAO+B,EAAO,OAGhB,GAAIhC,EAAMC,QAAUzB,KAAKiD,KAAM,CAC7B,IAAIU,EAAWtG,EAAOd,KAAKiF,EAAO,YAC9BoC,EAAavG,EAAOd,KAAKiF,EAAO,cAEpC,GAAImC,GAAYC,EAAY,CAC1B,GAAI5D,KAAKiD,KAAOzB,EAAME,SACpB,OAAO8B,EAAOhC,EAAME,UAAU,GACzB,GAAI1B,KAAKiD,KAAOzB,EAAMG,WAC3B,OAAO6B,EAAOhC,EAAMG,iBAGjB,GAAIgC,GACT,GAAI3D,KAAKiD,KAAOzB,EAAME,SACpB,OAAO8B,EAAOhC,EAAME,UAAU,OAG3B,KAAIkC,EAMT,MAAM,IAAIhQ,MAAM,0CALhB,GAAIoM,KAAKiD,KAAOzB,EAAMG,WACpB,OAAO6B,EAAOhC,EAAMG,gBAU9BrC,OAAQ,SAASG,EAAMd,GACrB,IAAK,IAAI1Q,EAAI+R,KAAK6B,WAAW1T,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACpD,IAAIuT,EAAQxB,KAAK6B,WAAW5T,GAC5B,GAAIuT,EAAMC,QAAUzB,KAAKiD,MACrB5F,EAAOd,KAAKiF,EAAO,eACnBxB,KAAKiD,KAAOzB,EAAMG,WAAY,CAChC,IAAIkC,EAAerC,EACnB,OAIAqC,IACU,UAATpE,GACS,aAATA,IACDoE,EAAapC,QAAU9C,GACvBA,GAAOkF,EAAalC,aAGtBkC,EAAe,MAGjB,IAAItE,EAASsE,EAAeA,EAAa9B,WAAa,GAItD,OAHAxC,EAAOE,KAAOA,EACdF,EAAOZ,IAAMA,EAETkF,GACF7D,KAAKtB,OAAS,OACdsB,KAAKoB,KAAOyC,EAAalC,WAClBzC,GAGFc,KAAK8D,SAASvE,IAGvBuE,SAAU,SAASvE,EAAQqC,GACzB,GAAoB,UAAhBrC,EAAOE,KACT,MAAMF,EAAOZ,IAcf,MAXoB,UAAhBY,EAAOE,MACS,aAAhBF,EAAOE,KACTO,KAAKoB,KAAO7B,EAAOZ,IACM,WAAhBY,EAAOE,MAChBO,KAAKsD,KAAOtD,KAAKrB,IAAMY,EAAOZ,IAC9BqB,KAAKtB,OAAS,SACdsB,KAAKoB,KAAO,OACa,WAAhB7B,EAAOE,MAAqBmC,IACrC5B,KAAKoB,KAAOQ,GAGP1C,GAGT6E,OAAQ,SAASpC,GACf,IAAK,IAAI1T,EAAI+R,KAAK6B,WAAW1T,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACpD,IAAIuT,EAAQxB,KAAK6B,WAAW5T,GAC5B,GAAIuT,EAAMG,aAAeA,EAGvB,OAFA3B,KAAK8D,SAAStC,EAAMO,WAAYP,EAAMI,UACtCE,EAAcN,GACPtC,IAKb,MAAS,SAASuC,GAChB,IAAK,IAAIxT,EAAI+R,KAAK6B,WAAW1T,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACpD,IAAIuT,EAAQxB,KAAK6B,WAAW5T,GAC5B,GAAIuT,EAAMC,SAAWA,EAAQ,CAC3B,IAAIlC,EAASiC,EAAMO,WACnB,GAAoB,UAAhBxC,EAAOE,KAAkB,CAC3B,IAAIuE,EAASzE,EAAOZ,IACpBmD,EAAcN,GAEhB,OAAOwC,GAMX,MAAM,IAAIpQ,MAAM,0BAGlBqQ,cAAe,SAAShC,EAAUd,EAAYE,GAa5C,OAZArB,KAAKjB,SAAW,CACdtH,SAAU0I,EAAO8B,GACjBd,WAAYA,EACZE,QAASA,GAGS,SAAhBrB,KAAKtB,SAGPsB,KAAKrB,IAAMvO,GAGN8O,IAQJnC,EA5sBK,CAmtBZD,EAAOC,SAGT,IACEmH,mBAAqB/G,EACrB,MAAOgH,GAUPC,SAAS,IAAK,yBAAdA,CAAwCjH,OAM1C,SAASkH,EAAmBC,EAAK7D,EAASC,EAAQ6D,EAAOC,EAAQhX,EAAKmR,GACpE,IACE,IAAIuC,EAAOoD,EAAI9W,GAAKmR,GAChBlR,EAAQyT,EAAKzT,MACjB,MAAOsT,GAEP,YADAL,EAAOK,GAILG,EAAKxB,KACPe,EAAQhT,GAERmV,QAAQnC,QAAQhT,GAAOoT,KAAK0D,EAAOC,GAwBvC,IAAIC,EApBJ,SAA2B5H,GACzB,OAAO,WACL,IAAI3E,EAAO8H,KACP0E,EAAOxW,UACX,OAAO,IAAI0U,SAAQ,SAAUnC,EAASC,GACpC,IAAI4D,EAAMzH,EAAG8H,MAAMzM,EAAMwM,GAEzB,SAASH,EAAM9W,GACb4W,EAAmBC,EAAK7D,EAASC,EAAQ6D,EAAOC,EAAQ,OAAQ/W,GAGlE,SAAS+W,EAAO7L,GACd0L,EAAmBC,EAAK7D,EAASC,EAAQ6D,EAAOC,EAAQ,QAAS7L,GAGnE4L,OAAMnU,QAsBRzC,EAfJ,SAAyBJ,EAAKC,EAAKC,GAYjC,OAXID,KAAOD,EACTG,OAAOC,eAAeJ,EAAKC,EAAK,CAC9BC,MAAOA,EACPG,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZP,EAAIC,GAAOC,EAGNF,GAKT,SAASc,EAAQwU,EAAQ+B,GACvB,IAAItW,EAAOZ,OAAOY,KAAKuU,GAEvB,GAAInV,OAAOa,sBAAuB,CAChC,IAAIsW,EAAUnX,OAAOa,sBAAsBsU,GACvC+B,IAAgBC,EAAUA,EAAQpW,QAAO,SAAUC,GACrD,OAAOhB,OAAOiB,yBAAyBkU,EAAQnU,GAAKd,eAEtDU,EAAK+F,KAAKsQ,MAAMrW,EAAMuW,GAGxB,OAAOvW,EAuBT,IAAIwW,EApBJ,SAAwB9W,GACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAE/CA,EAAI,EACNI,EAAQD,GAAQ,GAAMQ,SAAQ,SAAUpB,GACtCG,EAAeK,EAAQR,EAAKY,EAAOZ,OAE5BE,OAAOqX,0BAChBrX,OAAOsX,iBAAiBhX,EAAQN,OAAOqX,0BAA0B3W,IAEjEC,EAAQD,GAAQQ,SAAQ,SAAUpB,GAChCE,OAAOC,eAAeK,EAAQR,EAAKE,OAAOiB,yBAAyBP,EAAQZ,OAKjF,OAAOQ,GAKLiX,EAAO,WACPC,EAAQ,YAERC,EAAO,WACPC,EAAcD,EAAO,OACrBE,EAAcF,EAAOhS,KAAK2I,SAASvJ,SAAS,IAE5C+S,EAEJ,WACE,OAA0B,oBAAX9N,OAAyB,YAAcwF,EAAUxF,WAAayN,GAAQzN,OAAO+N,YAAc,eAD5G,GA8BIC,EAAM,OAASP,EACnB,SAASQ,EAAYC,EAASC,EAAgBC,GAM5C,GALI5I,EAAU2I,KAAoBV,GAAQjI,EAAU4I,KAAcV,IAChEU,EAAWD,EACXA,OAAiBvV,GAGf4M,EAAU4I,KAAcV,EAAO,CACjC,GAAIlI,EAAU4I,KAAcX,EAC1B,MAAM,IAAIrR,MAAM,WAAa4R,GAG/B,OAAOI,EAASH,EAATG,CAAsBF,EAASC,GAGxC,GAAI3I,EAAU0I,KAAaT,EACzB,MAAM,IAAIrR,MArDA,UAqDgB4R,GAG5B,IAAIK,EAAiBH,EACjBI,EAAeH,EACfI,EAAmB,GACnBC,EAAgBD,EAChBE,GAAgB,EAEpB,SAASC,IACHF,IAAkBD,IACpBC,EAAgBD,EAAiB5C,SAUrC,SAAStN,IACP,OAAOiQ,EA2BT,SAASK,EAAUC,GACjB,GAAIpJ,EAAUoJ,KAAcnB,EAC1B,MAAM,IAAIrR,MAAM,WAAa4R,GAG/B,IAAIa,GAAe,EAGnB,OAFAH,IACAF,EAAc3R,KAAK+R,GACZ,WACL,GAAKC,EAAL,CAIAA,GAAe,EACfH,IACA,IAAI7S,EAAQ2S,EAAcjN,QAAQqN,GAClCJ,EAAcM,OAAOjT,EAAO,KA8BhC,SAASkT,EAASC,GAchB,IAAKrM,EAASqM,GACZ,MAAM,IAAI5S,MAAM,cAGlB,GAAIoJ,EAAUwJ,EAAO/G,QAAUyF,EAC7B,MAAM,IAAItR,MAAM,WAAasR,GAG/B,GAAIe,EACF,MAAM,IAAIrS,MAAM,uBAGlB,IACEqS,GAAgB,EAChBH,EAAeD,EAAeC,EAAcU,GAC5C,QACAP,GAAgB,EAKlB,IAFA,IAAIQ,EAAYV,EAAmBC,EAE1B/X,EAAI,EAAGA,EAAIwY,EAAUtY,OAAQF,KAEpCmY,EADeK,EAAUxY,MAI3B,OAAOuY,EAuET,OAHAD,EAAS,CACP9G,KAAM2F,IAEDzX,EAAe,CACpB4Y,SAAUA,EACVJ,UAAWA,EACXtQ,SAAUA,EACV6Q,eA7DF,SAAwBC,GACtB,GAAI3J,EAAU2J,KAAiB1B,EAC7B,MAAM,IAAIrR,MAAM,eAAoB4R,GAGtCK,EAAiBc,EACjBJ,EAAS,CACP9G,KAAM2F,MAuDPE,GA5CH,WACE,IAAIsB,EAAiBT,EACrB,OAAOxY,EAAe,CASpBwY,UAAW,SAAmBU,GAC5B,GAA4B,WAAxB7J,EAAU6J,GACZ,MAAM,IAAInK,UAAU,mBAGtB,SAASoK,IACHD,EAASzF,MACXyF,EAASzF,KAAKvL,KAMlB,OAFAiR,IAEO,CACLC,YAFgBH,EAAeE,MAKlCxB,GAAc,WACf,OAAOtF,WAkBb,SAASgH,EAA8BxZ,EAAKgZ,GAC1C,IAAIS,EAAaT,GAAUA,EAAO/G,KAElC,MAAO,WADUwH,GAAcA,EAAW1U,YAAc,KACjD,WAAyC/E,EAAM,YAAc0X,EAmCtE,SAASgC,EAAgBC,GAIvB,IAHA,IAAIC,EAAc1Z,OAAOY,KAAK6Y,GAC1BE,EAAgB,GAEXpZ,EAAI,EAAGA,EAAImZ,EAAYjZ,OAAQF,IAAK,CAC3C,IAAIT,EAAM4Z,EAAYnZ,GAElB+O,EAAUmK,EAAS3Z,MAAUyX,IAC/BoC,EAAc7Z,GAAO2Z,EAAS3Z,IAIlC,IAEI8Z,EAFAC,EAAmB7Z,OAAOY,KAAK+Y,GAInC,KAhDF,SAA4BF,GAC1BzZ,OAAOY,KAAK6Y,GAAUvY,SAAQ,SAAUpB,GACtC,IAAIkY,EAAUyB,EAAS3Z,GACnBga,EAAe9B,OAAQtV,EAAW,CACpCqP,KAAM2F,IAGR,GAAIpI,EAAUwK,KAAkBtC,GAASlI,EAAU0I,OAAQtV,EAAW,CACpEqP,KAAM4F,OACAH,EACN,MAAM,IAAItR,MAAM6T,WAAgBja,EAAM,IAAM0X,MAuC9CwC,CAAmBL,GACnB,MAAOrP,GACPsP,EAAsBtP,EAGxB,OAAO,WACL,IAAIwG,EAAQtQ,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC5EsY,EAAStY,UAAUC,OAAS,EAAID,UAAU,QAAKkC,EAEnD,GAAIkX,EACF,MAAMA,EAMR,IAHA,IAAIK,GAAa,EACbC,EAAY,GAEPC,EAAK,EAAGA,EAAKN,EAAiBpZ,OAAQ0Z,IAAM,CACnD,IAAIC,EAAOP,EAAiBM,GACxBnC,EAAU2B,EAAcS,GACxBC,EAAsBvJ,EAAMsJ,GAC5BE,EAAkBtC,EAAQqC,EAAqBvB,GAEnD,GAAIxJ,EAAUgL,KAAqB9C,EAAO,CACxC,IAAI+C,EAAejB,EAA8Bc,EAAMtB,GACvD,MAAM,IAAI5S,MAAMqU,GAGlBL,EAAUE,GAAQE,EAClBL,EAAaA,GAAcK,IAAoBD,EAGjD,OAAOJ,EAAaC,EAAYpJ,GAIpC,SAAS0J,IACP,IAAK,IAAIC,EAAOja,UAAUC,OAAQia,EAAQ,IAAIlM,MAAMiM,GAAOL,EAAO,EAAGA,EAAOK,EAAML,IAChFM,EAAMN,GAAQ5Z,UAAU4Z,GAG1B,OAAqB,IAAjBM,EAAMja,OACD,SAAUwQ,GACf,OAAOA,GAIU,IAAjByJ,EAAMja,OACDia,EAAM,GAGRA,EAAMjW,QAAO,SAAU6B,EAAGqU,GAC/B,OAAO,WACL,OAAOrU,EAAEqU,EAAE1D,WAAM,EAAQzW,gBAsB/B,SAASoa,IACP,IAAK,IAAIH,EAAOja,UAAUC,OAAQoa,EAAc,IAAIrM,MAAMiM,GAAOL,EAAO,EAAGA,EAAOK,EAAML,IACtFS,EAAYT,GAAQ5Z,UAAU4Z,GAGhC,OAAO,SAAUrC,GACf,OAAO,SAAUC,EAASC,EAAgBC,GACxC,IAEI4C,EAFAC,EAAQhD,EAAYC,EAASC,EAAgBC,GAC7C8C,EAAYD,EAAMlC,SAElBoC,EAAgB,CAClB9S,SAAU4S,EAAM5S,SAChB0Q,SAAU,SAAkBC,GAC1B,OAAOkC,EAAUlC,KAOrB,OAJAgC,EAAQD,EAAYnN,KAAI,SAAUwN,GAChC,OAAOA,EAAWD,MAEpBD,EAAYR,EAAQvD,WAAM,EAAQ1I,EAAkBuM,GAAxCN,CAAgDO,EAAMlC,UAC3DzB,EAAcA,EAAc,GAAI2D,GAAQ,GAAI,CACjDlC,SAAUmC,MAMlB,IAAIG,EAAa,CAMjB,YAIA,SAIA,WAIA,kBAIA,aAIA,gBAIA,QAKA,aAKA,QAKA,WASA,YAKA,OAIA,UAIA,cASA,aAKA,QAIA,WAIA,eASA,gBAKA,WAIA,cAIA,kBAIA,gBAQA,kBAIA,eAIA,gBAcA,SAIA,UASA,eAKA,UAIA,aAIA,iBAKA,kBAKA,aAIA,gBAIA,qBAGIC,GAAY,CAAC,OAAQ,SAAU,SAAU,UASzCC,GAASF,EAAW1W,QAAO,SAAUC,EAAK4W,GAE5C,OADA5W,EAAI4W,GAAQA,EACL5W,IAVU,CACjB6W,mBAAoB,SAA4BxX,GAC9C,MAAO,kBAAkBjD,OAAOiD,IAElCyX,gBAAiB,SAAyBzX,GACxC,MAAO,SAASjD,OAAOiD,MAO3B,SAAS0X,GAAiB1J,GACxB,OAAOoJ,EAAWO,SAAS3J,GAG7B,IACI4J,GAAK,SACLC,GAAS,cACTC,GAAY,6BAQZC,GAAUC,YAOVC,GAAUD,YAOVE,GAAcF,gBAQdG,GAAW,QACXC,GAAY,YACZC,GAAa,aAEjB,SAASC,GAAqBpW,GAC5B,IAAIqW,EAAoBrW,EAAS0F,QAC7BZ,EAAUuR,EAAkBvR,QAEhC,OADcuR,EAAkB9Q,QACzB,SAAUuP,GACf,OAAO,SAAUrH,GACf,OAAO,SAAUoF,GAEf,GAAIA,EAAO/G,OAASsJ,GAAOkB,UAAW,CACpC,IAAIrP,EAAS4L,EAAO5L,OAChBlF,EAAO8Q,EAAO9Q,KACdwU,EAAgB1D,EAAO0D,cAGvBA,EAAcC,cAAgBzU,EAAKyU,aACrC1R,EAAQ+Q,GAAS9T,EAAKyU,aAKpBD,EAAcvT,SAAWjB,EAAKiB,QAChC8B,EAAQiR,GAAShU,EAAKiB,QAKxB,IAAIyT,EAAc1c,OAAOY,KAAKkY,EAAO5L,QAErC,GAAIwP,EAAYjc,OAAQ,CACtB,IAAIkc,EAASzP,EAAOyP,OAChBC,EAAW1P,EAAO0P,SAClBC,EAAgBH,EAAYjY,QAAO,SAAUC,EAAK5E,GAEpD,GAAIA,EAAI8N,MAAMsO,KAAapc,EAAI8N,MAAM,cAAe,CAClD,IAAIkP,EAAYhd,EAAI+M,QAAQqP,GAAU,IAClCa,EAAwB,aAAdD,EAA2B,OAASA,EAClDpY,EAAIZ,SAASiZ,GAAW7P,EAAOpN,GAWjC,OARIA,EAAI8N,MAAMuO,MACZzX,EAAIQ,MAAMpF,EAAI+M,QAAQsP,GAAW,KAAOjP,EAAOpN,IAG7CA,EAAI8N,MAAMwO,MACZ1X,EAAIW,OAAOvF,EAAI+M,QAAQuP,GAAY,KAAOlP,EAAOpN,IAG5C4E,IACN,CACDZ,SAAU,GACVoB,MAAO,GACPG,OAAQ,KAEV0V,EAAMlC,SAASzB,EAAcA,EAAc,CACzCrF,KAAMsJ,GAAOnO,OACb8P,IAAK9P,GACJ2P,GAAgBF,EAAS,CAC1B1T,OAAQ0T,GACN,KAGAA,GAEFM,YAAW,WACT,OAAOhX,EAAS8C,SAAS4T,EAAQE,EAAcxX,UAC9C,GAKDuX,GAEFK,YAAW,WACT,OAAOhX,EAAS4C,MAAM+T,EAAUC,EAAc3X,SAC7C,GAIDlF,OAAOY,KAAKic,EAAc/Y,UAAUrD,QACtCsa,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAOvX,SACbA,SAAU+Y,EAAc/Y,YAMhC,OAAO4P,EAAKoF,MAQpB,SAASoE,GAAYvR,GACnB,OAAO,WACL,IAAImF,EAAQtQ,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC5EsY,EAAStY,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAEjF,GAAIsY,EAAO/G,OAASsJ,GAAO8B,WAAY,CAErC,GAAIrE,EAAOhZ,MAAQgc,GACjB,OAAO1E,EAAcA,EAAc,GAAItG,GAAQ,CAC7C2L,YAAa3D,EAAO/Y,QAKxB,GAAI+Y,EAAOhZ,MAAQkc,GACjB,OAAO5E,EAAcA,EAAc,GAAItG,GAAQ,CAC7C7H,OAAQ6P,EAAO/Y,QAKrB,OAAQ+Y,EAAO/G,MACb,KAAKsJ,GAAOtS,SACV,OAAO/I,OAAOod,OAAO,GAAItM,EAAO,CAC9B7H,OAAQ6P,EAAO7P,OACf5D,OAAQ+R,EAAcA,EAAc,GAAItG,EAAMzL,QAASyT,EAAOzT,UAGlE,KAAKgW,GAAO/G,MAOV,MAJA,CAAC0H,GAASF,GAASG,IAAa/a,SAAQ,SAAUpB,GAEhD6L,EAAQX,WAAWlL,MAEdE,OAAOod,OAAO,GAAItM,EAAO,CAC9B7H,OAAQ,KAERwT,YAAa,KACbpX,OAAQ,KAGZ,QACE,OAAOyL,IAIf,SAASuM,GAAqB1R,GAC5B,MAAO,CACL1C,OAAQ0C,EAAQH,QAAQwQ,IACxBS,YAAa9Q,EAAQH,QAAQsQ,IAC7BzW,OAAQsG,EAAQH,QAAQyQ,KAAgB,IAG5C,IAAIqB,GAAU,SAAiBxd,GAC7B,MAAOic,WAA2Bjc,GAEpC,SAASyd,GAAgB5R,GACvB,OAAO,SAAqB7L,EAAKmG,EAAUtD,GAEzC,IAAI6a,EAAYvX,EAASkC,SAAS,QAAQrI,GAE1C,OAAI0d,IASA7a,GAAW8J,EAAS9J,IAAYA,EAAQ7C,GAInC6C,EAAQ7C,GAKGud,GAAqB1R,GAAS7L,KAW9CyK,EAAc+S,GAAQxd,IAIjByK,EAAc+S,GAAQxd,IAIxB,QAIX,SAAS2d,GAAmBxX,GAC1B,IAAIqW,EAAoBrW,EAAS0F,QAC7BZ,EAAUuR,EAAkBvR,QAC5BC,EAAasR,EAAkBtR,WAC/BQ,EAAU8Q,EAAkB9Q,QAChC,OAAO,SAAUuP,GACf,OAAO,SAAUrH,GACf,OAAO,SAAUoF,GACf,IAAI7P,EAAS6P,EAAO7P,OAChB5D,EAASyT,EAAOzT,OAChBqG,EAAUoN,EAAOpN,QAcrB,GAXIoN,EAAO/G,OAASsJ,GAAO/G,QAEzB,CAAC0H,GAASC,GAAaH,IAAS5a,SAAQ,SAAUpB,GAEhDkL,EAAWlL,MAEb,CAAC6b,GAAIC,GAAQ,UAAU1a,SAAQ,SAAUpB,GACvCyK,EAAc+S,GAAQxd,SAAQ4C,MAI9BoW,EAAO/G,OAASsJ,GAAOtS,SAAU,CAE9ByC,EAAQsQ,KACX/Q,EAAQ+Q,GAAS7N,KAGnB,IAAIuP,EAAYhS,EAAQwQ,IACpB0B,EAAgBlS,EAAQyQ,KAAgB,GAExCuB,GAAaA,IAAcvU,GAC7B8R,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAOsC,cACbC,IAAK,CACH3U,OAAQuU,EACRnY,OAAQqY,GAEV,IAAO,CACLzU,OAAQA,EACR5D,OAAQA,GAEVqG,QAASA,IAMTzC,GACF8B,EAAQiR,GAAS/S,GAKf5D,GACF0F,EAAQkR,GAAa7E,EAAcA,EAAc,GAAIsG,GAAgBrY,IAIzE,OAAOqO,EAAKoF,MAMpB,IAAI+E,GAAQ,GAKZ,SAASC,GAAY1Y,EAAIzC,GACnBkb,GAAMzY,IAAOiH,EAAWwR,GAAMzY,MAEhCyY,GAAMzY,GAAIzC,UACHkb,GAAMzY,IAIjB,SAAS2Y,GAAalb,EAAMmb,EAAWC,GACrC,OAAO,IAAI/I,SAAQ,SAAUnC,EAASC,GACpC,OAAIgL,IACKjL,EAAQlQ,GAIbob,EAAU,EACLjL,EAAOoE,EAAcA,EAAc,GAAIvU,GAAO,GAAI,CACvDqb,OAAO,MAKE,GAOR,IAAIhJ,SAAQ,SAAUnC,GAC3B,OAAOkK,WAAWlK,EARL,QAAII,MAAK,SAAUgL,GAC9B,OAAOJ,GAAalb,EAAMmb,EAAWC,EAAU,IAAI9K,KAAKJ,EAASC,SAWvE,SAASoL,GAAarD,EAAOsD,EAAYpY,GACvC,IAAIqY,EAAgBD,IAEhBE,EAAkBxD,EAAM5S,WACxBqW,EAAUD,EAAgBC,QAC1B7N,EAAU4N,EAAgB5N,QAC1BuN,EAAQK,EAAgBL,MACxBlW,EAAOuW,EAAgBvW,KAK3B,IAHgB2I,EAAQ8N,SAGRP,GAASA,EAAMQ,SAAWR,EAAMQ,QAAQje,OAAQ,CAC9D,IAAIke,EAAWT,EAAMQ,QAAQja,QAAO,SAAUC,EAAKka,EAAMjZ,GAWvD,OAVe6Y,EAAQI,EAAKC,QAAQ3V,QAGlCxE,EAAIoa,QAAQnY,KAAKiY,GACjBla,EAAIqa,aAAapY,KAAKhB,KAEtBjB,EAAIsa,QAAQrY,KAAKiY,GACjBla,EAAIua,aAAatY,KAAKhB,IAGjBjB,IACN,CACDqa,aAAc,GACdD,QAAS,GACTE,QAAS,GACTC,aAAc,KAGhB,GAAIN,EAASI,cAAgBJ,EAASI,aAAate,OAAQ,CACzDke,EAASI,aAAa7d,SAAQ,SAAUX,GACtC,IAAI2e,EAAgBhB,EAAMQ,QAAQne,GAG9B4e,EAAgBD,EAAcL,OAC9BO,EAAgBF,EAAcvc,QAAQoP,KACtCf,EAASsN,EAAca,GAAeC,GAE1C,GAAIpO,GAAU3E,EAAW2E,GAAS,CAKhC,IAAIqO,EA4Cd,WACE,IAAI1c,EAAUnC,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC9EwH,EAAOxH,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC/E,MAAO,CAACmb,GAAIC,IAAQnX,QAAO,SAAUC,EAAK5E,GAMxC,OALI6C,EAAQmF,eAAehI,IAAQkI,EAAKlI,IAAQkI,EAAKlI,KAAS6C,EAAQ7C,KAEpE4E,EAAI5E,GAAOkI,EAAKlI,IAGX4E,IACN/B,GAtD2B2c,CAAOJ,EAAcvc,QAASqF,GAIpDgJ,EAAO,CACLrO,QAAS0c,EACTvZ,OAAQ0Y,EAAQW,GAAerZ,OAC/BG,SAAUA,IAIZ,IAAIsZ,EAAc,GAAGze,OAAOse,EAAe,KAAKte,OAAOqe,GACvDpE,EAAMlC,SAASzB,EAAcA,EAAc,GAAIiI,GAAkB,GAAI,CACnEtN,KAAMwN,EAGNpB,EAAG,CACDqB,OAAQD,EACRzQ,KAAM,qBAOd,IAAI2Q,EAAiBvB,EAAMQ,QAAQ3d,QAAO,SAAUhB,EAAO4F,GAEzD,QAASgZ,EAASI,aAAa1T,QAAQ1F,MAIzCuY,EAAMQ,QAAUe,IAMtB,SAASC,GAAU3E,EAAOsD,EAAYpY,GAEpC,OAAO0Z,aAAY,WACjB,OAAOvB,GAAarD,EAAOsD,EAAYpY,KACtC,KAoBL,IAwCI2Z,GAJJ,SAAwBnS,EAAKlN,GAC3B,OAzCF,SAAyBkN,GACvB,GAAIe,MAAMC,QAAQhB,GAAM,OAAOA,EAwCxBoS,CAAepS,IAnCxB,SAA+BA,EAAKlN,GAClC,IAAIuf,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAKvd,EAET,IACE,IAAK,IAAiCwd,EAA7B/F,EAAK1M,EAAI3D,OAAOC,cAAmBgW,GAAMG,EAAK/F,EAAGzG,QAAQ1B,QAChE8N,EAAKnZ,KAAKuZ,EAAGngB,QAETQ,GAAKuf,EAAKrf,SAAWF,GAH8Cwf,GAAK,IAK9E,MAAO9U,GACP+U,GAAK,EACLC,EAAKhV,EACL,QACA,IACO8U,GAAsB,MAAhB5F,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAI6F,EAAI,MAAMC,GAIlB,OAAOH,EAYuBK,CAAqB1S,EAAKlN,IAP1D,WACE,MAAM,IAAIyO,UAAU,wDAM0CoR,IAKhE,SAASC,GAAsBC,GAC7B,IAAIC,EAAW/f,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC/EkL,EAAUlL,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAOR,OAAOY,KAAK0f,GAAYvf,QAAO,SAAUgD,GAC9C,IAAIyc,EAAkB9U,EAAQ8S,SAAW,GAEzC,OAAIhS,EAAUgU,EAAgBzc,IACrByc,EAAgBzc,IAIG,IAAxByc,EAAgBC,OAKhBF,EAASxc,KAAoC,IAA3Bwc,EAASxc,GAAM2c,YAKpChT,KAAI,SAAU3J,GACf,OAAOuc,EAAWvc,MAItB,IAAI4c,GAAqB,SACrBC,GAAiB,aACjBC,GAAa,SACjB,SAASC,GAAYC,EAAIC,EAAKC,EAAKC,EAAKC,GACtC,OAAOjZ,GAAK+O,MAAM3E,KAAM9R,WAO1B,SAAS0H,KAkKP,OAjKAA,GAAO6O,EAEPvH,EAAYsF,MAAK,SAASsM,EAAQtI,EAAQuF,EAAYpY,EAAU8U,EAAOsG,GACrE,IAAIC,EAAcC,EAAcC,EAAa1Q,EAAO2Q,EAAeC,EAAqBC,EAAYC,EAAcC,EAAcC,EAAWC,EAC3I,OAAOvS,EAAYW,MAAK,SAAkB6R,GACxC,OACE,OAAQA,EAASzM,KAAOyM,EAAStO,MAC/B,KAAK,EAMH,GALA4N,EAAejV,EAAWgS,GAAcA,IAAeA,EACvDkD,EAAezI,EAAO/G,KACtByP,EAAcD,EAAa1U,QAAQ8T,GAAoB,KAGjD7H,EAAOqF,IAAKrF,EAAOqF,EAAEqB,OAAS,CAClCwC,EAAStO,KAAO,EAChB,MAGF,OAAOsO,EAASpQ,OAAO,SAAUkH,GAEnC,KAAK,EAiCH,OAhCAhI,EAAQ7K,EAASkC,WAGjBsZ,EAAgBpB,GAAsBiB,EAAcxQ,EAAM0N,QAAS1F,EAAOpN,SAGtE6V,IAAiBlG,GAAO4G,iBAAmBnJ,EAAOoJ,aAEpDT,EAAgBzhB,OAAOY,KAAKkQ,EAAM0N,SAASzd,QAAO,SAAUgD,GAC1D,IAAIyP,EAAO1C,EAAM0N,QAAQza,GACzB,OAAO+U,EAAO0F,QAAQ9C,SAAS3X,KAAUyP,EAAK2O,eAC7CzU,KAAI,SAAU3J,GACf,OAAOud,EAAavd,OAKxB2d,EAAsBD,EAAc/T,KAAI,SAAU3I,GAChD,OAAOA,EAAEhB,QAGX4d,EAAaS,GAAoBb,EAAcE,GAU/CO,EAAStO,KAAO,GACT2O,GAAa,CAClBvJ,OAAQA,EACRjW,KAAM,CACJyf,MAAOX,EAAWY,OAClBC,WAAYb,EAAWc,UAEzB3R,MAAOA,EACPwP,WAAYgB,EACZK,WAAYA,EACZ1b,SAAUA,EACV8U,MAAOA,EACPM,OAAQgG,IAGZ,KAAK,GAGH,IAAKqB,GAFLd,EAAeI,EAASvQ,KAEUiQ,EAAoBjhB,QAAS,CAC7DuhB,EAAStO,KAAO,GAChB,MAGF,OAAOsO,EAASpQ,OAAO,SAAUgQ,GAEnC,KAAK,GACH,GAAML,IAAiBC,EAAc,CACnCQ,EAAStO,KAAO,GAChB,MAIFmO,EAAeD,EACfI,EAAStO,KAAO,GAChB,MAEF,KAAK,GAEH,OADAsO,EAAStO,KAAO,GACT2O,GAAa,CAClBvJ,OAAQ1B,EAAcA,EAAc,GAAIwK,GAAe,GAAI,CACzD7P,KAAMyP,IAER3e,KAAM,CACJyf,MAAOX,EAAWgB,OAClBH,WAAYb,EAAWiB,UAEzB9R,MAAOA,EACPwP,WAAYgB,EACZK,WAAYA,EACZ1b,SAAUA,EACV8U,MAAOA,EACPM,OAAQgG,IAGZ,KAAK,GACHQ,EAAeG,EAASvQ,KAE1B,KAAK,GACH,IAAK8P,EAAa3T,MAAM+S,IAAqB,CAC3CqB,EAAStO,KAAO,GAChB,MAKF,OAFAoO,EAAY,GAAGhhB,OAAO0gB,EAAa,OACnCQ,EAAStO,KAAO,GACT2O,GAAa,CAClBvJ,OAAQ1B,EAAcA,EAAc,GAAIyK,GAAe,GAAI,CACzD9P,KAAM+P,IAERjf,KAAM,CACJyf,MAAOX,EAAWkB,MAClBL,WAAYb,EAAWmB,SAEzBhS,MAAOA,EACPwP,WAAYgB,EACZK,WAAYA,EACZ1b,SAAUA,EACV8U,MAAOA,EACPM,OAAQgG,IAGZ,KAAK,IACHU,EAAcC,EAASvQ,MAKPsR,MAAQhB,EAAYgB,KAAKC,aAOvClF,GAAYiE,EAAYgB,KAAKE,IAAK,CAChCtgB,QAASof,IAIf,KAAK,GACH,OAAOC,EAASpQ,OAAO,SAAUgQ,GAEnC,KAAK,GACL,IAAK,MACH,OAAOI,EAAStM,UAGrB0L,QAEOnK,MAAM3E,KAAM9R,WAG1B,SAAS6hB,GAAaa,GACpB,OAAOC,GAAclM,MAAM3E,KAAM9R,WAGnC,SAAS2iB,KA0YP,OAzYAA,GAAgBpM,EAEhBvH,EAAYsF,MAAK,SAASsO,EAASta,GACjC,IAAIjG,EAAMiW,EAAQ7S,EAAU6K,EAAOwP,EAAYqB,EAAY5G,EAAOsI,EAAW7E,EAAS7N,EAASK,EAAQsS,EAAcC,EAAWC,EAAUC,EAAWC,EAAUC,EAAgBC,EAC/K,OAAOpU,EAAYW,MAAK,SAAmB0T,GACzC,OACE,OAAQA,EAAUtO,KAAOsO,EAAUnQ,MACjC,KAAK,EA6CH,OA5CA7Q,EAAOiG,EAAMjG,KAAMiW,EAAShQ,EAAMgQ,OAAQ7S,EAAW6C,EAAM7C,SAAU6K,EAAQhI,EAAMgI,MAAOwP,EAAaxX,EAAMwX,WAAYqB,EAAa7Y,EAAM6Y,WAAY5G,EAAQjS,EAAMiS,MAAOsI,EAAYva,EAAMuS,OAC/LmD,EAAU1N,EAAM0N,QAAS7N,EAAUG,EAAMH,QACzCK,EAAS8H,EAAO/G,KAChBuR,EAAetS,EAAOpD,MAAM+S,IAG5B4C,EAAY1gB,EAAKyf,MAAM5U,KAAI,SAAUpB,GACnC,OAAOA,EAAEwX,cAIPR,IACFC,EAAY5B,EAAWgB,OAAOjV,KAAI,SAAUpB,GAC1C,OAAOA,EAAEwX,eAMbN,EAAWO,GAAgB9d,EAAUsd,GAIrCE,EAAY5gB,EAAKyf,MAAM7d,QAAO,SAAUC,EAAKsf,GAC3C,IAAIF,EAAaE,EAAMF,WACnBG,EAAaD,EAAMC,WACnBC,GAAa,EAajB,OAXKD,EAAWrW,MAAM,gBAAmBqW,EAAWrW,MAAM,YACxDsW,GAAc1F,EAAQsF,GAAY5a,QAKhCyH,EAAQ8N,SAAWwF,EAAWrW,MAAM,4BACtCsW,GAAa,GAGfxf,EAAI,GAAG5D,OAAOgjB,IAAeI,EACtBxf,IACN,IAGHmf,EAAUnQ,KAAO,GACV7Q,EAAKyf,MAAM7d,OAElB,WACE,IAAI0f,EAAQpN,EAEZvH,EAAYsF,MAAK,SAASsP,EAASC,EAAQ/I,EAAM/a,GAC/C,IAAIujB,EAAYQ,EAAUC,EAC1B,OAAO/U,EAAYW,MAAK,SAAmBqU,GACzC,OACE,OAAQA,EAAUjP,KAAOiP,EAAU9Q,MACjC,KAAK,EAGH,OAFAoQ,EAAaxI,EAAKwI,WAClBU,EAAU9Q,KAAO,EACV2Q,EAET,KAAK,EAGH,GAFAC,EAAWE,EAAU/S,MAEf5O,EAAK2f,aAAc3f,EAAK2f,WAAWsB,GAAc,CACrDU,EAAU9Q,KAAO,GACjB,MAIF,OADA8Q,EAAU9Q,KAAO,EACV7Q,EAAK2f,WAAWsB,GAAYrf,OAEnC,WACE,IAAIggB,EAAQ1N,EAEZvH,EAAYsF,MAAK,SAAS4P,EAAShgB,EAAKK,EAAG4f,GACzC,IAAIC,EAAcC,EAAUC,EAAKC,EACjC,OAAOvV,EAAYW,MAAK,SAAmB6U,GACzC,OACE,OAAQA,EAAUzP,KAAOyP,EAAUtR,MACjC,KAAK,EAoBH,OAnBAmR,EAAW,SAAeI,EAAYC,EAAOC,GAC3C,OAAO,SAAUC,EAAQ5G,GACvB,IAAI6G,EAAWF,GAAaD,EAK5B,OAAO9N,EAAcA,EAAc,GAAI6N,GAAa,GAAI,CACtDK,MAAO,CACLF,OAAQA,EACR5G,QAASA,GAAW,CAAC0G,GACrBK,OAAQvU,EACRlC,KAAMuW,OAMdL,EAAUtR,KAAO,EACVhP,EAET,KAAK,EAGH,GAFAkgB,EAAeI,EAAUvT,KAElB1M,EAAEiM,QAAW3E,EAAWtH,EAAEiM,QAAU,CACzCgU,EAAUtR,KAAO,EACjB,MAGF,OAAOsR,EAAUpT,OAAO,SAAUgT,GAEpC,KAAK,EAIH,OAFAY,GAAezgB,EAAEkf,WAAYlf,EAAE+e,YAC/BkB,EAAUtR,KAAO,EACV3O,EAAEiM,OAAO,CACdrO,QAASiiB,EACT3e,SAAUA,EACVqf,MAAOT,EAASD,EAAcd,EAAY/e,EAAE+e,YAC5Che,OAAQ2f,GAAU1gB,EAAE+e,WAAYtF,EAAS8B,GACzC9B,QAASA,IAGb,KAAK,EAGH,OAFAsG,EAAME,EAAUvT,KAChBsT,EAActY,EAASqY,GAAOA,EAAM,GAC7BE,EAAUpT,OAAO,SAAUsD,QAAQnC,QAAQqE,EAAcA,EAAc,GAAIwN,GAAeG,KAEnG,KAAK,GACL,IAAK,MACH,OAAOC,EAAUtP,UAGtBgP,OAGL,OAAO,SAAUgB,EAAMC,EAAMC,GAC3B,OAAOnB,EAAMxN,MAAM3E,KAAM9R,YAlE7B,GAoEK0U,QAAQnC,QAAQ+F,IAEvB,KAAK,EACHyL,EAAgBC,EAAU/S,KAG1B6S,EAASR,GAAcS,EACvBC,EAAU9Q,KAAO,GACjB,MAEF,KAAK,GAEH4Q,EAASR,GAAchL,EAEzB,KAAK,GACH,OAAO0L,EAAU5S,OAAO,SAAUsD,QAAQnC,QAAQuR,IAEpD,KAAK,GACL,IAAK,MACH,OAAOE,EAAU9O,UAGtB0O,OAGL,OAAO,SAAUyB,EAAKC,EAAKC,GACzB,OAAO5B,EAAMlN,MAAM3E,KAAM9R,YAtH7B,GAwHK0U,QAAQnC,QAAQ,KAEvB,KAAK,GAGH,OAFA2Q,EAAWG,EAAUpS,KACrBoS,EAAUnQ,KAAO,GACV7Q,EAAKyf,MAAM7d,OAElB,WACE,IAAIuhB,EAAQjP,EAEZvH,EAAYsF,MAAK,SAASmR,EAASC,EAAS5K,EAAM/a,GAChD,IAAI4lB,EAAUrC,EAAY3E,EAAeiH,EAAoBC,EAAcC,EAAUxB,EAAKC,EAAawB,EAAQhC,EAAeiC,EAA6BC,EAC3J,OAAOjX,EAAYW,MAAK,SAAmBuW,GACzC,OACE,OAAQA,EAAUnR,KAAOmR,EAAUhT,MACjC,KAAK,EAKH,OAJAyS,EAAWtjB,EAAKyf,MAAM7hB,SAAWF,EAAI,EACrCujB,EAAaxI,EAAKwI,WAClB3E,EAAgBmB,EAAWwD,GAC3B4C,EAAUhT,KAAO,EACVwS,EAET,KAAK,EASH,GARAE,EAAqBM,EAAUjV,KAC/B4U,EAAe3C,EAASI,GAAcJ,EAASI,GAAc,GAGzDR,IACF+C,EAAeD,IAGZO,GAAYN,EAAcvC,GAAa,CAC1C4C,EAAUhT,KAAO,GACjB,MAWF,OAPAkT,GAAc,CACZ/jB,KAAMwjB,EACNrV,OAAQA,EACR/K,SAAUA,EACV6d,WAAYA,EACZ/I,MAAOA,IAEF2L,EAAU9U,OAAO,SAAUsD,QAAQnC,QAAQqT,IAEpD,KAAK,GACH,IAAKO,GAAYP,EAAoBtC,GAAa,CAChD4C,EAAUhT,KAAO,GACjB,MAcF,OAVIyS,GACFS,GAAc,CACZ/jB,KAAMujB,EACNpV,OAAQA,EACR/K,SAAUA,EAEV8U,MAAOA,IAIJ2L,EAAU9U,OAAO,SAAUsD,QAAQnC,QAAQqT,IAEpD,KAAK,GACH,IAAM3C,EAAU3b,eAAegc,KAAyC,IAA1BL,EAAUK,GAAuB,CAC7E4C,EAAUhT,KAAO,GACjB,MAgBF,OAZAqH,EAAMlC,SAAS,CACb9G,KAAM,QACN8M,OAAQiF,EACRnhB,QAAS0jB,EAGTlI,EAAG,CACDqB,OAAQ,QACR1Q,KAAM,oBAIH4X,EAAU9U,OAAO,SAAUsD,QAAQnC,QAAQqT,IAEpD,KAAK,GAqBH,OALAE,EAAW9C,EAASE,EAASI,GAAaxD,EAAWwD,IAIrD4C,EAAUhT,KAAO,GACVyL,EAAcnO,GAAQ,CAE3BsU,MAAOgB,EAAShB,MAEhB3iB,QAAS0jB,EACTpgB,SAAUA,EACVH,OAAQ2f,GAAU3B,EAAYtF,EAAS8B,GACvC9B,QAASA,IAGb,KAAK,GAiCH,OAhCAsG,EAAM4B,EAAUjV,KAChBsT,EAActY,EAASqY,GAAOA,EAAM,GACpCyB,EAASnP,EAAcA,EAAc,GAAIgP,GAAqBrB,GAG1D4B,GAFJpC,EAAgBb,EAASI,GAEMA,GAE7B8C,GAAc,CACZ/jB,KAAM0hB,EACNvT,OAAQA,EACR/K,SAAUA,EACV6d,WAAYA,EACZ/I,MAAOA,MAGTyL,EAAiB,GAAG1lB,OAAOkQ,EAAQ,KAAKlQ,OAAOgjB,IACjBlW,MAAM,OAAS,IAAInN,OAE/B,IAAMuQ,EAAOpD,MAAMgT,MAAoB5P,EAAOpD,MAAMiT,MACpE4F,EAAiBnD,EAAeiD,EAASF,EAEzCpgB,EAAS4S,SAASzB,EAAcA,EAAc,GAAIqP,GAAiB,GAAI,CACrE1U,KAAMyU,EACNrI,EAAG,CACDqB,OAAQgH,EACR1X,KAAM,iBAOP4X,EAAU9U,OAAO,SAAUsD,QAAQnC,QAAQwT,IAEpD,KAAK,GACL,IAAK,MACH,OAAOG,EAAUhR,UAGtBuQ,OAGL,OAAO,SAAUY,EAAMC,EAAMC,GAC3B,OAAOf,EAAM/O,MAAM3E,KAAM9R,YA1J7B,GA4JK0U,QAAQnC,QAAQ+F,IAEvB,KAAK,GAGH,GAFA6K,EAAiBE,EAAUpS,KAEpBT,EAAOpD,MAAM+S,KAAwB3P,EAAOpD,MAAM,oBAExDoD,EAAOpD,MAAMiT,KAAgB7P,EAAOpD,MAAMgT,KAAoB5P,EAAOpD,MAAM,YAAeoD,EAAOpD,MAAM,kBAAoB,CAC1HiW,EAAUnQ,KAAO,GACjB,MAYF,GATI2P,EAAU7E,QAAQ9C,SAAS1K,IASzB2S,EAAexF,GAAKwF,EAAexF,EAAE6I,iBAAmBhW,EAAS,CACrE6S,EAAUnQ,KAAO,GACjB,MAGF,OAAOmQ,EAAUjS,OAAO,SAAU+R,GAEpC,KAAK,GACHC,EAAYxM,EAAcA,EAAc,GAAIuM,GAAiB,CAC3DxF,EAAG,CACD6I,eAAgBrD,EAAe5R,KAC/ByN,OAAQmE,EAAe5R,KACvBjD,KAAM,eAKN4T,GAAeiB,EAAgB9gB,EAAKyf,MAAM7hB,UAAYuQ,EAAOpD,MAAM,UACrEgW,EAAYxM,EAAcA,EAAc,GAAIwM,GAAY,CACtD7R,KAAM4R,EAAe5R,KAAO,aAIhCgJ,EAAMlC,SAAS+K,GAEjB,KAAK,GACH,OAAOC,EAAUjS,OAAO,SAAU+R,GAEpC,KAAK,GACL,IAAK,MACH,OAAOE,EAAUnO,UAGtB0N,QAEgBnM,MAAM3E,KAAM9R,WAGnC,SAASomB,GAAc5d,GACrB,IAAInG,EAAOmG,EAAMnG,KACbmO,EAAShI,EAAMgI,OAEf8S,GADW9a,EAAM/C,SACJ+C,EAAM8a,YAGnBmD,EAAajW,EAAS,WADZ8S,EAAa,IAAMA,EAAa,IADlC9a,EAAM+R,MAGZlC,SAASzB,EAAcA,EAAc,GAAIvU,GAAO,GAAI,CACxDkP,KAAMkV,EACN9I,EAAG,CACDqB,OAAQyH,EACRnY,KAAM,YAKZ,SAAS2W,GAAU1hB,EAAMmjB,EAAa5G,GACpC,IAAI6G,EAAaD,EAAYnjB,IAASuc,EAAWvc,GAEjD,OAAIojB,GAAcA,EAAWrhB,OACpBqhB,EAAWrhB,OAGb,GAGT,SAASshB,GAAmBnD,EAAYzF,GACtC,OAAOA,EAAQ/Z,QAAO,SAAUgJ,EAAKoR,GACnC,OAAQA,EAAOoF,GAAoBxW,EAAI3M,OAAO,CAC5CmjB,WAAYA,EACZH,WAAYjF,EAAO9a,KACnBiN,OAAQ6N,EAAOoF,KAHYxW,IAK5B,IAcL,SAAS4Z,GAAcC,EAAWC,GAChC,IAAIvW,EAAsBsW,EAXdza,QAAQ8T,GAAoB,IAYpC6G,EAAUD,EAAY,IAAIzmB,OAAOymB,GAAa,GAOlD,MAAO,CALI,GAAGzmB,OAAOwmB,GAAWxmB,OAAO0mB,GAEtB,GAAG1mB,OAAOkQ,GAAQlQ,OAAO0mB,GAEhC,GAAG1mB,OAAOkQ,EAAQ,OAAOlQ,OAAO0mB,IAM5C,SAASpF,GAAoBkF,EAAW7F,EAAenB,GACrD,IAGImH,EAHaJ,GAAcC,GAGT5Z,KAAI,SAAUga,GAClC,OAAON,GAAmBM,EAAMjG,MAGlC,OAAOA,EAAchd,QAAO,SAAUC,EAAKma,GACzC,IAAI9a,EAAO8a,EAAO9a,KAGd4jB,EAFmBN,GAAcC,EAAWvjB,GAEH2J,KAAI,SAAUga,GACzD,OAAON,GAAmBM,EAAMjG,MAE9BmG,EAAyBhI,GAAc+H,EAAuB,GAC9DE,EAAcD,EAAuB,GACrCE,EAAcF,EAAuB,GACrCG,EAAaH,EAAuB,GAcxC,OAZIC,EAAYpnB,SACdiE,EAAI+d,SAAS1e,GAAQ8jB,GAGnBC,EAAYrnB,SACdiE,EAAIke,SAAS7e,GAAQ+jB,GAGnBC,EAAWtnB,SACbiE,EAAIoe,QAAQ/e,GAAQgkB,GAGfrjB,IACN,CACD6d,OAAQkF,EAAK,GACbhF,SAAU,GACVE,OAAQ8E,EAAK,GACb7E,SAAU,GACVC,MAAO4E,EAAK,GACZ3E,QAAS,KAIb,SAAS6D,GAAYqB,EAAOlE,GAC1B,IAAIwB,EAAQ0C,EAAM1C,MAClB,QAAKA,KACS,IAAVA,GACG5J,GAAS4J,EAAOxB,IAAewB,GAAS5J,GAAS4J,EAAM9G,QAASsF,IAGzE,SAASpB,GAAeuF,EAAOC,GAC7B,IAAI5C,EAAQ2C,EAAM3C,MAClB,IAAKA,EAAO,OAAO,EACnB,IAAc,IAAVA,GAAkB/Y,EAAS+Y,GAAQ,OAAO,EAC9C,IAAI9G,EAAU8G,EAAM9G,QACpB,OAAO2J,GAAU7C,IAAUA,EAAM7kB,SAAWynB,GAAgBC,GAAU3J,IAAYA,EAAQ/d,SAAWynB,EAGvG,SAASC,GAAU1a,GACjB,OAAOe,MAAMC,QAAQhB,GAGvB,SAASiO,GAASjO,EAAK1J,GACrB,SAAK0J,IAAQ0a,GAAU1a,KAChBA,EAAIiO,SAAS3X,GAUtB,SAASggB,GAAgB9d,EAAUmiB,GAEjC,OAAO,SAAUtP,EAAQ+F,EAAQwJ,GAC/B,IAAIviB,EAAS+Y,EAAO/Y,OAChB/B,EAAO8a,EAAO9a,KACdiN,EAAS,GAAGlQ,OAAOiD,EAAM,KAAKjD,OAAOgY,EAAO/G,MAE5CsW,IACFrX,EAASqX,EAAYrlB,OAGvB,IAAIslB,EAASxP,EAAO/G,KAAKnE,MAAM+S,IAYnC,SAAuBmD,EAAY9S,EAAQoX,EAAkBC,EAAavP,GACxE,OAAO,SAAUsM,EAAQ5G,GACvB,IAAI+G,EAAS8C,EAAcA,EAAYtkB,KAAO+f,EAC1CyE,EAAiB/J,GAAW2J,GAAU3J,GAAWA,EAAU4J,EAE/D,GAAIC,MACFE,EAAiB/J,GAAW2J,GAAU3J,GAAWA,EAAU,CAACsF,IAExCpI,SAASoI,IAAyC,IAA1ByE,EAAe9nB,QACzD,MAAM,IAAIyF,MAAM,UAAUpF,OAAOkQ,EAAQ,oBAAoBlQ,OAAOgjB,EAAY,aAAahjB,OAAOsJ,KAAK6B,UAAUsc,GAAiB,iBAIxI,OAAOnR,EAAcA,EAAc,GAAI0B,GAAS,GAAI,CAElDwM,MAAO,CACLF,OAAQA,EACR5G,QAAS+J,EACThD,OAAQvU,EACRmN,EAAGoH,MA/B8CiD,CAAczkB,EAAMiN,EAAQoX,EAAkBC,EAAavP,GAqCpH,SAA2BA,EAAQ9H,GACjC,OAAO,WACL,MAAM,IAAI9K,MAAM4S,EAAO/G,KAAO,4CAA8Cf,IAvC8CyX,CAAkB3P,EAAQ9H,GACpJ,MAAO,CAGLrO,QAAS+lB,GAAc5P,GACvB7S,SAAUA,EACVH,OAAQA,GAAU,GAClBwf,MAAOgD,IAwCb,SAAS9C,GAAemD,EAAY7E,GAClC,IAAI8E,EAAOC,GAAoBF,GAG/B,GAFuCC,GAAQA,EAAK7kB,OAAS+f,EAEvB,CACpC,IAAIgF,EAAMD,GAAoBD,EAAK5X,QAC/B+X,EAAUD,EAAM,MAAQA,EAAI9X,OAAS,GACzC,MAAM,IAAI9K,MAAM,CAAC4d,EAAa,6BAA+B6E,EAAY,yBAA0B,OAAO7nB,OAAO8nB,EAAK5X,OAAQ,KAAKlQ,OAAOioB,EAAS,QAAQjoB,OAAOgjB,EAAY,sBAAsBhjB,OAAO6nB,IAAaK,KAAK,QAIjO,SAASH,GAAoB7lB,GAC3B,IAAIiC,EAAQjC,EAAM4K,MAAM,aAExB,QAAK3I,GAIE,CACL+L,OAAQ/L,EAAM,GACdlB,KAAMkB,EAAM,IAIhB,SAASyjB,GAAc5P,GACrB,OAAO9Y,OAAOY,KAAKkY,GAAQrU,QAAO,SAAUC,EAAK5E,GAE/C,MAAY,SAARA,IAIA2M,EAASqM,EAAOhZ,IAClB4E,EAAI5E,GAAOE,OAAOod,OAAO,GAAItE,EAAOhZ,IAEpC4E,EAAI5E,GAAOgZ,EAAOhZ,IANX4E,IAUR,IAqBL,SAASukB,GAAiBhjB,EAAUoY,EAAY6K,GAC9C,IAAIC,EAAU,GACd,OAAO,SAAUpO,GACf,OAAO,SAAUrH,GACf,OAEE,WACE,IAAIxL,EAAO6O,EAEXvH,EAAYsF,MAAK,SAASsM,EAAQtI,GAChC,IAAI/G,EAAMuT,EAAO9G,EAAS4K,EAAe9I,EAAY+I,EAAcC,EAAsBC,EAAWC,EAAQC,EAAUC,EAAsBC,EAC5I,OAAOna,EAAYW,MAAK,SAAkB6R,GACxC,OACE,OAAQA,EAASzM,KAAOyM,EAAStO,MAC/B,KAAK,EAIH,GAHA3B,EAAO+G,EAAO/G,KAAMuT,EAAQxM,EAAOwM,MAAO9G,EAAU1F,EAAO0F,QAC3D4K,EAAgBtQ,GAEXwM,EAAO,CACVtD,EAAStO,KAAO,EAChB,MAGF,OAAOsO,EAASpQ,OAAO,SAAU8B,EAAKoF,IAExC,KAAK,EAyGH,GAvGI/G,IAASsJ,GAAOuO,cAClB7O,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAO4G,gBACbzD,QAASA,EACTiL,SAAU,GACVvH,YAAY,EACZa,KAAMjK,EAAOiK,OAIbhR,IAASsJ,GAAOwO,eAElB5M,YAAW,WACT,OAAOa,GAAYhF,EAAOiK,KAAKE,IAAK,CAClCtgB,QAASmW,MAEV,GAuBD/G,IAASsJ,GAAOyO,gBAClBxJ,EAAajC,IACbgL,EAAerpB,OAAOY,KAAK0f,GAC3BgJ,EAAuBD,EAAatoB,QAAO,SAAUgD,GACnD,OAAOya,EAAQ9C,SAAS3X,MACvB2J,KAAI,SAAU3J,GACf,OAAOuc,EAAWvc,MAEpBwlB,EAAY,GACZC,EAAS,GACTC,EAAW3Q,EAAO2Q,SAElBC,EAAuBJ,EAAqB5b,KAAI,SAAUmR,GACxD,IAAI3V,EAAS2V,EAAO3V,OAChBnF,EAAO8a,EAAO9a,KAGlB,OAAOga,GAAac,EAAQ3V,EAAQ,KAAKiK,MAAK,SAAU4W,GAetD,OAdKZ,EAAQplB,KAEXgX,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAOG,gBAAgBzX,GAE7BA,KAAMA,EACNimB,OAAQhqB,OAAOY,KAAKie,GAAQ9d,QAAO,SAAUgD,GAC3C,OAAQqX,GAAUM,SAAS3X,QAG/BolB,EAAQplB,IAAQ,GAGlBwlB,EAAYA,EAAUzoB,OAAOiD,GACtB8a,KACC,OAAE,SAAUvU,GAGpB,GAAIA,aAAapE,MACf,MAAM,IAAIA,MAAMoE,GAKlB,OAFAkf,EAASA,EAAO1oB,OAAOwJ,EAAEvG,MAElBuG,QAGX4K,QAAQuL,IAAIiJ,GAAsBvW,MAAK,SAAU8W,GAE/C,IAAItnB,EAAU,CACZ6b,QAAS+K,EACTC,OAAQA,EACRC,SAAUA,GAEZxM,YAAW,WACLoM,EAAa5oB,SAAWipB,EAAqBjpB,OAASgpB,EAAShpB,QACjEsa,EAAMlC,SAASzB,EAAcA,EAAc,GAAI,CAC7CrF,KAAMsJ,GAAO6O,QACXvnB,MAEL,OAMDoP,IAASsJ,GAAOkB,UAAY,CAChCyF,EAAStO,KAAO,GAChB,MAWF,MARI,kBAAkByW,KAAKpY,IAEzBkL,YAAW,WACT,OAAOmB,GAAarD,EAAOsD,EAAYpY,KACtC,GAGL+b,EAAStO,KAAO,GACToN,GAAWhI,EAAQuF,EAAYpY,EAAU8U,EAAOmO,GAEzD,KAAK,GAEH,OADAS,EAAU3H,EAASvQ,KACZuQ,EAASpQ,OAAO,SAAU8B,EAAKiW,IAExC,KAAK,GACH,OAAO3H,EAASpQ,OAAO,SAAU8B,EAAK0V,IAExC,KAAK,GACL,IAAK,MACH,OAAOpH,EAAStM,UAGrB0L,OAGL,OAAO,SAAUL,GACf,OAAO7Y,EAAK+O,MAAM3E,KAAM9R,YA7JvB,KAqKb,SAAS4pB,GAAkBze,GACzB,OAAO,SAAUoP,GACf,OAAO,SAAUrH,GACf,OAAO,SAAUoF,GACf,IAAI/G,EAAO+G,EAAO/G,KACdjS,EAAMgZ,EAAOhZ,IACbC,EAAQ+Y,EAAO/Y,MACf2L,EAAUoN,EAAOpN,QAErB,GAAIqG,IAASsJ,GAAOtQ,SAAWgH,IAASsJ,GAAOrQ,WAAY,CACzD,GAAI8N,EAAOwM,MACT,OAAO5R,EAAKoF,GAIV/G,IAASsJ,GAAOtQ,QAClBY,EAAQZ,QAAQjL,EAAKC,EAAO2L,GAE5BC,EAAQX,WAAWlL,EAAK4L,GAI5B,OAAOgI,EAAKoF,MAgBpB,IA+JIuR,GACAzhB,GACA0hB,GACAC,GA7JAC,GAAoB,SAASA,IAC/B,IAAIC,EAAQnY,MAZd,SAAyBrM,EAAUykB,GACjC,KAAMzkB,aAAoBykB,GACxB,MAAM,IAAI1b,UAAU,sCAYtB2b,CAAerY,KAAMkY,GAErBvqB,EAAeqS,KAAM,SAAU,IAE/BrS,EAAeqS,KAAM,QAAS,IAE9BrS,EAAeqS,KAAM,iBAAiB,SAAUuI,EAAa+P,GAC3DH,EAAMG,GAAYH,EAAMG,GAAU9pB,OAAO+Z,MAG3C5a,EAAeqS,KAAM,oBAAoB,SAAU4I,EAAY0P,GAC7D,IAAIjlB,EAAQ8kB,EAAMG,GAAUC,WAAU,SAAUd,GAC9C,OAAOA,IAAM7O,MAGA,IAAXvV,IACJ8kB,EAAMG,GAAY,GAAG9pB,OAAOyN,EAAkBkc,EAAMG,GAAUnV,MAAM,EAAG9P,IAAS4I,EAAkBkc,EAAMG,GAAUnV,MAAM9P,EAAQ,SAGlI1F,EAAeqS,KAAM,sBAAsB,SAAUsY,GACnD,OAAO,SAAU7P,GACf,OAAO,SAAUrH,GACf,OAAO,SAAUoF,GACf,IAAImC,EAAgB,CAClB9S,SAAU4S,EAAM5S,SAChB0Q,SAAU,SAAkBiS,GAC1B,OAAO/P,EAAMlC,SAASiS,KAItBhQ,EAAQ2P,EAAMG,GAAUld,KAAI,SAAUwN,GACxC,OAAOA,EAAWD,MAGpB,OAAOT,EAAQvD,WAAM,EAAQ1I,EAAkBuM,GAAxCN,CAAgD9G,EAAhD8G,CAAsD1B,UAOvE,SAASiS,GAAc1M,GACrB,OAAO,WACL,IAAIvN,EAAQtQ,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC5EsY,EAAStY,UAAUC,OAAS,EAAID,UAAU,QAAKkC,EAC/CsoB,EAAW,GAEf,GAAoB,uBAAhBlS,EAAO/G,KACT,OAAOjB,EAGT,GAAI,2BAA2BqZ,KAAKrR,EAAO/G,MAAO,CAChD,IAAIhO,EAAOknB,GAAqBnS,EAAO/G,KAAM,kBACzC8M,EAASR,IAAata,GAE1B,IAAK8a,IAAW9a,EACd,OAAO+M,EAGT,IAAIoa,EAAYpS,EAAO4H,QAWvB,OAVAsK,EAASjnB,GAAQ,CACf2c,QAASwK,EAGT/I,cAAa+I,GAAYC,SAAStM,EAAO9Y,YAGzCmD,SAAQgiB,GAAYC,QAAQtM,EAAO3V,UACnCpD,OAAQ+Y,EAAO/Y,QAAU,IAEpBsR,EAAcA,EAAc,GAAItG,GAAQka,GAGjD,GAAI,uBAAuBb,KAAKrR,EAAO/G,MAAO,CAC5C,IAAIqZ,EAAQH,GAAqBnS,EAAO/G,KAAMsJ,GAAOtV,YAEjDslB,EAAUhN,IAAa+M,GAE3B,OAAKC,GAAYD,GAIjBJ,EAASI,GAAShU,EAAcA,EAAc,GAAItG,EAAMsa,IAAS,CAC/DjJ,aAAa,EAGbjZ,OAAQiiB,QAAQE,EAAQniB,YAEnBkO,EAAcA,EAAc,GAAItG,GAAQka,IATtCla,EAYX,GAAI,kBAAkBqZ,KAAKrR,EAAO/G,MAKhC,OAHAiZ,EAASlS,EAAO/U,MAAQqT,EAAcA,EAAc,GAAItG,EAAMgI,EAAO/U,OAAQ,CAC3EmF,QAAQ,IAEHkO,EAAcA,EAAc,GAAItG,GAAQka,GAGjD,OAAQlS,EAAO/G,MAWb,KAAKsJ,GAAOwO,cACV,OAAOzS,EAAcA,EAAc,GAAItG,GAAQwa,GAAmBxS,EAAO0F,SAAS,EAAO1N,IAI3F,KAAKuK,GAAOuO,aACV,OAAOxS,EAAcA,EAAc,GAAItG,GAAQwa,GAAmBxS,EAAO0F,SAAS,EAAM1N,IAE1F,QACE,OAAOA,IAKf,SAASma,GAAqBlZ,EAAMwZ,GAClC,OAAOxZ,EAAKxE,UAAUge,EAAS9qB,OAAS,EAAGsR,EAAKtR,QAGlD,SAAS6qB,GAAmB9M,EAASgN,EAAQpT,GAC3C,OAAOoG,EAAQ/Z,QAAO,SAAUC,EAAK+mB,GAInC,OAHA/mB,EAAI+mB,GAAarU,EAAcA,EAAc,GAAIgB,EAAaqT,IAAa,CACzE/K,QAAS8K,IAEJ9mB,IACN0T,GAuBHiS,GAlBF,WACE,IAAKvd,EAAW,OAAO,EACvB,IAAI4e,EAAKC,UAAUC,WAEnB,OAAKF,EAAGrgB,QAAQ,OAAe,WAC1BqgB,EAAGrgB,QAAQ,OAAe,SAC1BqgB,EAAGrgB,QAAQ,OAAe,QAC1BqgB,EAAGrgB,QAAQ,SAAiB,QAE1B,aASEwgB,GACTjjB,GAAWkE,EAAYhL,SAAS8G,SAAW,KAC3C0hB,GDhoGF,WACE,GAAKxd,EAAL,CACA,IAAIgf,EAAaH,UACbI,EAAWD,EAAWC,SACtBC,EAAYF,EAAWE,UAE3B,OADmBF,EAAWG,eAGvBD,GAAaA,EAAUvrB,OAASurB,EAAU,GAAKD,ICwnG7CG,GACT3B,GDtnGF,WACE,IACE,OAAO4B,KAAKC,iBAAiBC,kBAAkB9B,SAC/C,MAAOlX,KCmnGEiZ,GAGb,IAAIxS,GAAe,CACjBqI,aAAa,EACboK,UAAWte,IACXue,IAAK,KACLC,QAAS,KACTprB,OAAO,EACPod,UAAS3R,IAAa6e,UAAUe,OAEhChB,GAAI,CACF3nB,KAAMsmB,IAERsC,UAAW7f,EAAY6e,UAAUgB,UAAY,OAE7CC,QAAS,CACP7oB,KA1sDe,YA4sDf0oB,QAAS,UAEXI,SAAUtC,GACVD,OAAQA,GACRxmB,SAAU,GACV8E,SAAUA,IAGZ,SAAS+H,KACP,IAAIG,EAAQtQ,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAKsZ,GAC5EhB,EAAStY,UAAUC,OAAS,EAAID,UAAU,QAAKkC,EAC/Cyf,EAAcrR,EAAMqR,YACpBpQ,EAAO+G,EAAO/G,KACdjO,EAAWgV,EAAOhV,SAEtB,OAAQiO,GACN,KAAKsJ,GAAOvX,SACV,OAAOsT,EAAcA,EAAc,GAAItG,GAAQ,CAC7ChN,SAAUA,IAGd,KAAKuX,GAAOoD,QACV,OAAOrH,EAAcA,EAAc,GAAItG,GAAQ,CAC7C2N,SAAS,IAGb,KAAKpD,GAAOyR,OACV,OAAO1V,EAAcA,EAAc,GAAItG,GAAQ,CAC7C2N,SAAS,IAGb,QACE,OAAK0D,EAMErR,EALEsG,EAAcA,EAAcA,EAAc,GAAI0C,IAAehJ,GAAQ,CAC1EqR,aAAa,KAOvB,IAAI4K,GAAe,CAAC,UAAW,WAAY,WAE3C,SAASC,GAAYlnB,GACnB,OAAO9F,OAAOY,KAAKkF,GAAQrB,QAAO,SAAUC,EAAKuoB,GAC/C,OAAIF,GAAarR,SAASuR,KAI1BvoB,EAAIuoB,GAAWnnB,EAAOmnB,IAHbvoB,IAKR,IAGL,SAASwoB,GAAUrtB,GACjB,IAAIsG,EAAItG,EAER,IACEsG,EAAIiE,KAAKF,MAAME,KAAK6B,UAAUpM,IAC9B,MAAOoL,IAET,OAAO9E,EAGT,IAAIgnB,GAAY,OAahB,SAASC,GAAQ1kB,GACf,IACI2kB,EADQ,oCACQjgB,KAAK1E,GAEzB,MAAO,KADS2kB,GAAWA,EAAQ,GAAKA,EAAQ,GAAGpoB,MAAM,KAAK,GAAG4H,QAAQsgB,GAAW,IAAM,IAU5F,SAASG,GAAWzf,GAClB,IAAI0f,EAzBN,WACE,GAAKzgB,EAGL,IAFA,IAEgB0gB,EAFZC,EAAO3rB,SAASiF,qBAAqB,QAEhCxG,EAAI,EAAQitB,EAAMC,EAAKltB,GAAIA,IAClC,GAAgC,cAA5BitB,EAAIE,aAAa,OACnB,OAAOF,EAAIE,aAAa,QAmBZC,GAChB,OAAKJ,EACEA,EAAU3f,MAAM,MAAQ2f,EAAYA,EAAY1f,EADhCpH,OAAO6B,SAASslB,KAAK/gB,QAAQsgB,GAAW,IAsBjE,IAAIU,GAAc,WAChB,IAAIllB,EAAWnI,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GACnF,IAAKsM,EAAW,OAAOnE,EACvB,IAAImlB,EAAYhsB,SACZ2G,EAAQqlB,EAAUrlB,MAClBG,EAAWklB,EAAUllB,SACrBmlB,EAAUtnB,OACV6B,EAAWylB,EAAQzlB,SACnB0lB,EAAaD,EAAQC,WACrBC,EAAcF,EAAQE,YACtBC,EAAO5lB,EAAS4lB,KAChBrgB,EAASvF,EAASuF,OAClBnF,EAAM4kB,GAAWzf,GACjB5F,EAAO,CACTQ,MAAOA,EACPC,IAAKA,EACLL,KAAM+kB,GAAQ1kB,GACdwlB,KAAMA,EACNrgB,OAAQA,EACRsgB,MAAOH,EACPI,OAAQH,GAOV,OAJIrlB,GAAyB,KAAbA,IACdX,EAAKW,SAAWA,GAGXwO,EAAcA,EAAc,GAAInP,GAAOU,IAE5C0lB,GAAiB,CACnBC,KAAM,GACNC,QAAS,IAGX,SAAStmB,KACP,IAAI6I,EAAQtQ,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK6tB,GAC5EvV,EAAStY,UAAUC,OAAS,EAAID,UAAU,QAAKkC,EAC/CkB,EAAakV,EAAOlV,WACpB8H,EAAUoN,EAAOpN,QACjBqX,EAAOjK,EAAOiK,KAElB,OAAQjK,EAAO/G,MACb,KAAKsJ,GAAOpT,KACV,IAAIumB,EAAWtB,GAAU9V,EAAc,CACrCxT,WAAYA,EACZmf,KAAMA,GACL/iB,OAAOY,KAAK8K,GAASjL,QAAU,CAChCiL,QAASA,KAEX,OAAO0L,EAAcA,EAAc,GAAItG,GAAQ,CAC7Cwd,KAAME,EAEND,QAASzd,EAAMyd,QAAQztB,OAAO0tB,KAGlC,QACE,OAAO1d,GAIb,IAAI2d,GAAiB,CACnBH,KAAM,GACNC,QAAS,IAGX,SAASG,KACP,IAAI5d,EAAQtQ,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAKiuB,GAC5E3V,EAAStY,UAAUC,OAAS,EAAID,UAAU,QAAKkC,EAC/CqP,EAAO+G,EAAO/G,KACdgR,EAAOjK,EAAOiK,KACdrX,EAAUoN,EAAOpN,QACjB1I,EAAQ8V,EAAO9V,MACfY,EAAakV,EAAOlV,WAExB,OAAQmO,GACN,KAAKsJ,GAAOxS,MACV,IAAI8lB,EAAazB,GAAU9V,EAAcA,EAAc,CACrDpU,MAAOA,EACPY,WAAYA,GACX5D,OAAOY,KAAK8K,GAASjL,QAAU,CAChCiL,QAASA,IACP,GAAI,CACNqX,KAAMA,KAER,OAAO3L,EAAcA,EAAc,GAAItG,GAAQ,CAC7Cwd,KAAMK,EAENJ,QAASzd,EAAMyd,QAAQztB,OAAO6tB,KAIlC,QACE,OAAO7d,GAUb,IAAI8d,GAAiB,CACnBlQ,QAAS,IAEX,SAASmQ,KACP,IAAI/d,EAAQtQ,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAKouB,GAC5E9V,EAAStY,UAAUC,OAAS,EAAID,UAAU,QAAKkC,EAC/CqP,EAAO+G,EAAO/G,KACdpP,EAAUmW,EAAOnW,QAErB,OAAQoP,GACN,IAAK,QACH,IAAI+c,EASJ,OALEA,EADEnsB,GAAWA,EAAQoP,MAAQpP,EAAQoP,OAASsJ,GAAOtS,SACvC,CAAC+P,GAAQhY,OAAOgQ,EAAM4N,SAEtB5N,EAAM4N,QAAQ5d,OAAOgY,GAG9B1B,EAAcA,EAAc,GAAItG,GAAQ,GAAI,CACjD4N,QAASoQ,IAGb,IAAK,UACH,MAAO,GAGT,QACE,OAAOhe,GAIb,SAASie,GAAO/E,EAAQgF,EAAMC,GAC5B,IAAKniB,EAAW,OAAO,EACvB,IAAIqC,EAAK1I,QAAQwoB,EAAQ,MAAQ,UAAY,iBAC7CjF,EAAO/kB,MAAM,KAAK/D,SAAQ,SAAUguB,GAClC/f,EAAG+f,EAAIF,MAOX,SAASG,GAAMC,GACb,IAII1W,EAAWqW,GAAOM,KAAK,KAAM,kBAJxB,SAAYlR,GACnB,OAJKjJ,QAAQnC,SAAS4Y,UAAUe,QAIjBvZ,KAAKic,MAMtB,OAFA1W,GAAS,GAEF,SAAUyF,GACf,OAAOzF,GAAS,IAIpB,SAAS4W,KAMP,OADA/kB,EAA4B,cAAI,GACzB,SAAUglB,GACf,OAAO,SAAUvX,EAASC,EAAgBC,GACxC,IAAI6C,EAAQwU,EAAevX,EAASC,EAAgBC,GAChDsX,EAAezU,EAAMlC,SAQzB,OAAO7Y,OAAOod,OAAOrC,EAAO,CAC1BlC,SAPa,SAAkBC,GAC/B,IAAIxS,EAAIwS,EAAOA,QAAUA,EAEzB,OADAvO,EAA4B,cAAE5D,KAAKL,GAC5BkpB,EAAa1W,QAS5B,SAAS2W,GAAiB3pB,GACxB,OAAO,WACL,OAAO0U,EAAQA,EAAQvD,MAAM,KAAMzW,WAAY8uB,OAInD,SAASI,GAAYC,GACnB,OAAKA,GD39GUrjB,EC49GHqjB,ED39GLnhB,MAAMC,QAAQnC,GC29GcqjB,EAC5B,CAACA,IAFmB,GD39G7B,IAAiBrjB,ECg+GjB,SAASsjB,GAAoBC,GAC3B,IAAIC,EAAeD,GAAYrhB,MAAMvE,UAAUwL,MAAM5G,KAAKrO,WAC1D,OAAOsvB,EAAarrB,QAAO,SAAUC,EAAKuM,GACxC,OAAIvM,IAEA2H,EAAW4E,GACNA,EAGFvM,MACN,GAGL,SAASqrB,KACP,OAAO,IAAIlpB,MAAOmpB,UAGpB,SAASC,GAAwBC,EAAUC,GACzC,OAAO,SAAUttB,GACXstB,GAAUA,EAASttB,GACvBqtB,EAASrtB,IAIb,SAASutB,KACP,IAAIrN,EAAOviB,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC3EuS,EAAUvS,UAAUC,OAAS,EAAID,UAAU,QAAKkC,EAChD2tB,EAAoB7vB,UAAUC,OAAS,EAAID,UAAU,QAAKkC,EAC1DugB,EAAMhV,IAOV,OALI8E,IAEF8K,GAAMoF,GAAOgN,GAAwBld,EAAS6c,GAAoBS,KAG7DjZ,EAAcA,EAAc,GAAI2L,GAAO,GAAI,CAChDE,IAAKA,EACLqN,GAAIP,MACFhd,EAAe,CACjBiQ,aAAa,GADD,IA8kChB,IAAIT,GAAS,SACTM,GAAQ,QAEZ,GAhjCA,WACE,IAAI/c,EAAStF,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC7E+vB,EAAiBzqB,EAAO2T,UAAY,GACpC+W,EAAc1qB,EAAO0qB,aAAe,GAKpCC,GAAiB3qB,EAAO0Y,SAAW,IAAI/Z,QAAO,SAAUC,EAAKma,GAC/D,GAAIxS,EAAWwS,GAGb,OADAna,EAAImW,YAAcnW,EAAImW,YAAY/Z,OAAO+d,GAClCna,EAMT,GAFIma,EAAO6R,YAAW7R,EAAO9a,KAAO8a,EAAO6R,YAEtC7R,EAAO9a,KAEV,MAAM,IAAImC,MAAM2V,GAAY,KAI9B,IAAI8U,EAAgB9R,EAAOxD,OAASrb,OAAOY,KAAKie,EAAOxD,QAAQ3N,KAAI,SAAUL,GAC3E,OAAOwR,EAAOxD,OAAOhO,MAClB,GACDujB,KAAwC,IAAnB/R,EAAO6B,SAC5BmQ,IAA4BhS,EAAO/Y,SAAoC,IAA1B+Y,EAAO/Y,OAAO4a,SAE/Dhc,EAAIosB,cAAcjS,EAAO9a,MAAQ6sB,GAAoBC,SAC9ChS,EAAO6B,QAEV7B,EAAOkS,UACTrsB,EAAIqsB,QAAQlS,EAAO9a,MAAQ/D,OAAOY,KAAKie,EAAOkS,SAAStsB,QAAO,SAAU6B,EAAG+H,GAGzE,OADA/H,EAAE+H,GAAK2iB,GAAgBnS,EAAOkS,QAAQ1iB,IAC/B/H,IACN,WAEIuY,EAAOkS,SAIhB,IAEIE,EAFkBjxB,OAAOY,KAAKie,GAEF/d,OAAO6vB,GAEnCO,EAAkB,IAAIC,IAAIzsB,EAAIslB,OAAOlpB,OAAOmwB,IAIhD,GAHAvsB,EAAIslB,OAASxb,MAAMM,KAAKoiB,GACxBxsB,EAAI2kB,aAAe3kB,EAAI2kB,aAAavoB,OAAO+d,GAEvCna,EAAI8Z,QAAQK,EAAO9a,MACrB,MAAM,IAAImC,MAAM2Y,EAAO9a,KAAO,iBAYhC,OATAW,EAAI8Z,QAAQK,EAAO9a,MAAQ8a,EAEtBna,EAAI8Z,QAAQK,EAAO9a,MAAMmF,SAE5BxE,EAAI8Z,QAAQK,EAAO9a,MAAMmF,OAAS,WAChC,OAAO,IAIJxE,IACN,CACD8Z,QAAS,GACTsS,cAAe,GACfC,QAAS,GACT1H,aAAc,GACdxO,YAAa,GACbmP,OAAQ,KAINre,EAAU7F,EAAO6F,QAAU7F,EAAO6F,QAAU,CAC9CH,QAAS,SAAiB1L,GACxB,OAAOyK,EAAczK,IAEvBiL,QAAS,SAAiBjL,EAAKC,GAC7B,OAAOwK,EAAczK,GAAOC,GAE9BiL,WAAY,SAAoBlL,GAC9B,OAAOyK,EAAczK,QAAO4C,IAG5B0uB,EAAc7T,GAAgB5R,GAE9B0lB,EAAgBZ,EAAcjS,QAG9B8S,EAAeb,EAAczG,OAAOjpB,QAAO,SAAUgD,GACvD,OAAQqX,GAAUM,SAAS3X,MAEzBwtB,EAAe,IAAIJ,IAAIG,EAAaxwB,OAAOqa,GAAYpa,QAAO,SAAUgD,GAC1E,OAAQqX,GAAUM,SAAS3X,OAEzBytB,EAAkBhjB,MAAMM,KAAKyiB,GAAcE,OAC3CC,EAAkBJ,EAAaG,OAG/BpT,EAAa,WACf,OAAOgT,GAGLnpB,EAAO,IAAIsiB,GACXmH,EAAgBzpB,EAAKypB,cACrBC,EAAmB1pB,EAAK0pB,iBACxBC,EAAqB3pB,EAAK2pB,mBAE1BC,EAAe,WAEjB,MAAM,IAAI5rB,MAAM,8BAIdgH,EAASH,IAETyP,EAAgBa,GAAqB1R,GAErComB,EAAc3a,EAAcA,EAAcA,EAAcA,EAAc,GAAIoF,GAAgBgU,GAAetjB,EAAOyP,OAAc,CAChI1T,OAAQiE,EAAOyP,QAD4G,IAExHzP,EAAO8kB,OAAc,CACxBvV,YAAavP,EAAO8kB,QADD,IAKhBD,EAAYtV,cACfsV,EAAYtV,YAAcxO,KAoB5B,IA4SQgkB,EAxFAC,EA5FAC,EAxHJ3T,EAAUpH,EAAc,CAkB1Bgb,OAAQ,SAAgB5T,EAAS2R,GAC/B,OAAO,IAAIjb,SAAQ,SAAUnC,GAC3BgI,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAOuO,aACbpL,QAASkR,GAAYlR,GACrBL,EAAG,CACD6I,eAAgB3L,GAAOuO,eAExB7W,EAAS,CAACod,QAoBjBkC,QAAS,SAAiB7T,EAAS2R,GACjC,OAAO,IAAIjb,SAAQ,SAAUnC,GAC3BgI,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAOwO,cACbrL,QAASkR,GAAYlR,GACrBL,EAAG,CACD6I,eAAgB3L,GAAOwO,gBAExB9W,EAAS,CAACod,SAGhBM,EAAcM,SAkBb9qB,EAAW,CA4Cb8C,UACMopB,EAAYpb,EAEhBvH,EAAYsF,MAAK,SAASsM,EAAQnY,EAAQ5D,EAAQqG,EAASykB,GACzD,IAAI/qB,EAAIvC,EAAMJ,EAAMuF,EAAMsqB,EAC1B,OAAO9iB,EAAYW,MAAK,SAAkB6R,GACxC,OACE,OAAQA,EAASzM,KAAOyM,EAAStO,MAC/B,KAAK,EASH,OARAtO,EAAKmH,EAAStD,GAAUA,EAAS,KACjCpG,EAAO4J,EAASxD,GAAUA,EAAS5D,EACnC5C,EAAOiJ,GAAW,GAClB1D,EAAO/B,EAAS+B,OAGhBuC,EAAc+S,GAAQ3B,KAAOvW,EAC7BktB,EAAaltB,GAAMvC,EAAKoG,QAAUmoB,EAAYzV,GAAI1V,EAAUpD,GACrDmf,EAASpQ,OAAO,SAAU,IAAIsD,SAAQ,SAAUnC,GACrDgI,EAAMlC,SAASzB,EAAc,CAC3BrF,KAAMsJ,GAAOkX,cACbtpB,OAAQqpB,EACRjtB,OAAQxC,GAAQ,GAChB6I,QAASjJ,EACTga,YAAazU,EAAKyU,aACjBzU,EAAK5C,IAAM4C,EAAK5C,KAAOA,GAAM,CAC9BotB,WAAYxqB,EAAK5C,KACf2N,EAAS,CAAC1N,EAAQqG,EAASykB,QAGnC,KAAK,EACL,IAAK,MACH,OAAOnO,EAAStM,UAGrB0L,OAGL,SAAkBL,EAAIC,EAAKC,EAAKC,GAC9B,OAAOiR,EAAUlb,MAAM3E,KAAM9R,aAsDjCqI,OACMqpB,EAASnb,EAEbvH,EAAYsF,MAAK,SAAS4P,EAAS+N,EAAW9vB,EAAS+I,EAASykB,GAC9D,IAAIpsB,EAAMlB,EAAMJ,EAChB,OAAO+M,EAAYW,MAAK,SAAmB6U,GACzC,OACE,OAAQA,EAAUzP,KAAOyP,EAAUtR,MACjC,KAAK,EAGH,IAFA3P,EAAO0I,EAASgmB,GAAaA,EAAUzvB,MAAQyvB,IAE/BlmB,EAASxI,GAAQ,CAC/BihB,EAAUtR,KAAO,EACjB,MAGF,MAAM,IAAIxN,MAAM,gBAElB,KAAK,EAGH,OAFArD,EAAO4J,EAASgmB,GAAaA,EAAY9vB,GAAW,GACpDF,EAAOgK,EAASf,GAAWA,EAAU,GAC9BsZ,EAAUpT,OAAO,SAAU,IAAIsD,SAAQ,SAAUnC,GACtDgI,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAOqX,WACb1vB,MAAOe,EACPH,WAAYf,EACZ6I,QAASjJ,EACTwG,OAAQmoB,EAAYzV,GAAI1V,EAAUtD,GAClC8Z,YAAa2U,EAAYxV,GAAQ3V,EAAUtD,IAC1CoQ,EAAS,CAACpQ,EAAS+I,EAASykB,QAGnC,KAAK,EACL,IAAK,MACH,OAAOnL,EAAUtP,UAGtBgP,OAGL,SAAevD,EAAK+B,EAAK2C,EAAKC,GAC5B,OAAOoM,EAAOjb,MAAM3E,KAAM9R,aA+C9ByH,MACMgqB,EAAQlb,EAEZvH,EAAYsF,MAAK,SAASsP,EAASvhB,EAAM6I,EAASykB,GAChD,IAAIpG,EAAGtnB,EACP,OAAO+M,EAAYW,MAAK,SAAmBqU,GACzC,OACE,OAAQA,EAAUjP,KAAOiP,EAAU9Q,MACjC,KAAK,EAWH,OAVAqW,EAAItd,EAAS5J,GAAQA,EAAO,GAC5BJ,EAAOgK,EAASf,GAAWA,EAAU,GAS9B8Y,EAAU5S,OAAO,SAAU,IAAIsD,SAAQ,SAAUnC,EAASC,GAC/D+H,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAOsX,UACb/uB,WAAYiqB,GAAY9D,GACxBre,QAASjJ,EACTwG,OAAQmoB,EAAYzV,GAAI1V,EAAU8jB,GAClCtN,YAAa2U,EAAYxV,GAAQ3V,EAAU8jB,IAC1ChX,EAAS,CAAClQ,EAAM6I,EAASykB,QAGhC,KAAK,EACL,IAAK,MACH,OAAO3L,EAAU9O,UAGtB0O,OAGL,SAAiB2B,EAAKL,EAAMC,GAC1B,OAAOsM,EAAMhb,MAAM3E,KAAM9R,aAuB7BwH,KAAM,SAAclI,GAClB,GAAIA,IAAQ6b,IAAc,OAAR7b,EAChB,OAAOsxB,EAAYzV,GAAI1V,GAGzB,GAAInG,IAAQ8b,IAAkB,WAAR9b,EACpB,OAAOsxB,EAAYxV,GAAQ3V,GAG7B,IAAI+B,EAAO/B,EAASkC,SAAS,QAC7B,OAAKrI,EACE,IAAQkI,EAAMlI,GADJkI,GAcnBsM,MAAO,SAAe6b,GACpB,OAAO,IAAIjb,SAAQ,SAAUnC,EAASC,GACpC+H,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAOuX,YACZ7f,EAASod,OAgBhBjG,MAAO,SAAeiG,GACpB,OAAOlqB,EAAS4sB,GAAGxX,GAAO6O,MAAOiG,IAyBnC0C,GAAI,SAAY9uB,EAAMosB,GACpB,IAAKpsB,IAASsI,EAAW8jB,GACvB,OAAO,EAGT,GAAIpsB,IAASsX,GAAOkB,UAClB,MAAM,IAAIrW,MAAM,oBAAsBnC,GAGxC,IAAI+uB,EAAa,gBAEjB,GAAa,MAAT/uB,EAAc,CAChB,IAAIgvB,EAAgB,SAAuBhY,GACzC,OAAO,SAAUrH,GACf,OAAO,SAAUoF,GAUf,OATIA,EAAO/G,KAAKnE,MAAMklB,IACpB3C,EAAS,CAEPxtB,QAASmW,EACT7S,SAAUA,EACVuY,QAAS6S,IAIN3d,EAAKoF,MAKdka,EAAe,SAAsBjY,GACvC,OAAO,SAAUrH,GACf,OAAO,SAAUoF,GAUf,OATKA,EAAO/G,KAAKnE,MAAMklB,IACrB3C,EAAS,CAEPxtB,QAASmW,EACT7S,SAAUA,EACVuY,QAAS6S,IAIN3d,EAAKoF,MAYlB,OAPA6Y,EAAcoB,EAAexQ,IAC7BoP,EAAcqB,EAAcnQ,IAMrB,WACL+O,EAAiBmB,EAAexQ,IAChCqP,EAAiBoB,EAAcnQ,KAInC,IAAI+H,EAAW7mB,EAAK6J,MAAMklB,GAAcvQ,GAASM,GAE7CoQ,EAAU,SAAiBlY,GAC7B,OAAO,SAAUrH,GACf,OAAO,SAAUoF,GAkBf,OAhBIA,EAAO/G,OAAShO,GAClBosB,EAAS,CAEPxtB,QAASmW,EACT7S,SAAUA,EACVuY,QAAS6S,EACT/L,MAAOwM,IAUJpe,EAAKoF,MAMlB,OADA6Y,EAAcsB,EAASrI,GAChB,WACL,OAAOgH,EAAiBqB,EAASrI,KA0BrCsI,KAAM,SAAcnvB,EAAMosB,GACxB,IAAKpsB,IAASsI,EAAW8jB,GACvB,OAAO,EAGT,GAAIpsB,IAASsX,GAAOkB,UAClB,MAAM,IAAIrW,MAAM,sBAAwBnC,GAG1C,IAAIovB,EAAiBltB,EAAS4sB,GAAG9uB,GAAM,SAAU+E,GAC/C,IAAInG,EAAUmG,EAAMnG,QACpBwtB,EAAS,CAEPxtB,QAASA,EACTsD,SAAUA,EACVuY,QAAS6S,EACT/L,MAAOwM,IAGTqB,OAEF,OAAOA,GAiBThrB,SAAU,SAAkBrI,GAC1B,IAAIgR,EAAQiK,EAAM5S,WAClB,OAAIrI,EAAY,IAAQgR,EAAOhR,GACxBE,OAAOod,OAAO,GAAItM,IAO3B+H,SAAU,SAAkBC,GAC1B,IAAIsa,EAAa7mB,EAASuM,GAAU,CAClC/G,KAAM+G,GACJA,EAEJ,GAAI2C,GAAiB2X,EAAWrhB,MAC9B,MAAM,IAAI7L,MAAM,mBAAqBktB,EAAWrhB,MAGlD,IAAIshB,EAAWva,EAAOqF,GAAK,GAIvBmV,EAAelc,EAAcA,EAAc,GAAIgc,GAAa,GAAI,CAClEjV,EAAG/G,EAAc,CACf4P,eAAgBoM,EAAWrhB,MAC1BshB,KAILtY,EAAMlC,SAASya,IAIjB1J,aAAcpL,EAAQ4T,OAGtBvI,cAAerL,EAAQ6T,QAGvB7T,QAASA,EAwBT7S,QAAS,CAYPH,QAASG,EAAQH,QAajBT,QAAS,SAAiBjL,EAAKC,EAAO2L,GACpCqP,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAOkY,aACbzzB,IAAKA,EACLC,MAAOA,EACP2L,QAASA,KAcbV,WAAY,SAAoBlL,EAAK4L,GACnCqP,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAOmY,gBACb1zB,IAAKA,EACL4L,QAASA,MAef+nB,eAAgB,SAAwBhX,EAAa/Q,GAGnDzF,EAAS0F,QAAQZ,QAAQ+Q,GAASW,EAAa/Q,IAOjDse,OAAQ,CACNvJ,IAAK+Q,EACL/J,KAAMtM,EACNqD,QAASkT,IAKTgC,EAAmB,SAA0BC,GAC/C,OAAO,SAAUjgB,GACf,OAAO,SAAUoF,GAKf,OAJKA,EAAOiK,OACVjK,EAAOiK,KAAOqN,MAGT1c,EAAKoF,MAKd+B,EAAc4V,EAAc5V,YAAY/Z,OAAO,CAAC4yB,EAEpD7B,EAAmBtP,IAGnB0G,GAAiBhjB,EAAUoY,EAAY,CACrCoC,IAAK+Q,EACLhT,QAASkT,IACPtH,GAAkBze,GAAU0Q,GAAqBpW,GAAWwX,GAAmBxX,GAEnF4rB,EAAmBhP,MAGf+Q,EAAe,CACjBjjB,QAASA,GACT3I,KAAMkV,GAAYvR,GAClB1D,KAAMA,GACNY,MAAO6lB,GACPlQ,QAASuM,GAAc1M,GACvBH,MAAO2Q,IAELgF,EAAmBrZ,EACnBsZ,EAAyBtZ,EAE7B,GAAI1N,GAAahH,EAAOzE,MAAO,CAC7B,IAAI0yB,EAAWttB,OAAOutB,qCAElBD,IACFF,EAAmBE,EAAS,CAC1BpsB,OAAO,EACPssB,WAAY,MAIhBH,EAAyB,WACvB,OAAyB,IAArBtzB,UAAUC,OAAqB6uB,KAC/B7iB,EAAS6C,EAAU9O,UAAU,KAAaivB,KACvCA,KAAmBxY,MAAM,KAAMzW,YAI1C,IAAI0zB,EAAgBlH,GAAYlnB,GAC5BquB,EAAoB1D,EAAcpH,aAAa5kB,QAAO,SAAUC,EAAKma,GACvE,IAAI9a,EAAO8a,EAAO9a,KACd+B,EAAS+Y,EAAO/Y,OAChBoD,EAAS2V,EAAO3V,OAChBgiB,EAAYuF,EAAcK,cAAc/sB,GAQ5C,OAPAW,EAAIX,GAAQ,CACV2c,QAASwK,EAET/I,cAAa+I,GAAYC,SAAStM,EAAO9Y,YACzCmD,OAAQiiB,QAAQjiB,KAChBpD,OAAQA,GAAU,IAEbpB,IACN,IACCoV,EAAe,CACjBnJ,QAASujB,EACTlsB,KAAM+pB,EACNvT,QAAS2V,GAKPpZ,EAAQhD,EACZyB,EAAgBpC,EAAcA,EAAc,GAAIwc,GAAerD,IAC/DzW,EACAga,EAAuBD,EAAiBjZ,EAAgB3D,WAAM,EAAQ1I,EAAkBsM,OAExF,SAASuZ,EAAgBjlB,GACvB,OAAO,SAAUnM,EAAOktB,EAAUmE,GAEhC,IAAItR,EAAOqN,GAAaptB,EAAM+f,KAAMmN,EAAUR,GAAY2E,IAGtDC,EAAWld,EAAcA,EAAc,GAAIpU,GAAQ,CACrD+f,KAAMA,IAIR,OAAO5T,EAAG8H,MAAM,KAAM,CAACqd,KAK3BvZ,EAAMlC,SAAWub,EAAgBrZ,EAAMlC,UAGvC,IAAI0b,GAAav0B,OAAOY,KAAKywB,GAG7BtW,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAOkB,UACbiC,QAAS+V,GACTzuB,OAAQouB,EACRhnB,OAAQA,EACRlF,KAAM+pB,EACNvV,cAAeA,IAEjB,IAAIgY,GAAiBD,GAAWxzB,QAAO,SAAUgD,GAC/C,OAAO0sB,EAAcK,cAAc/sB,MAEjC0wB,GAAkBF,GAAWxzB,QAAO,SAAUgD,GAChD,OAAQ0sB,EAAcK,cAAc/sB,MAuDtC,SAASitB,GAAgB7hB,GACvB,OAAO,WACL,IAAIulB,EAAelmB,MAAMvE,UAAUwL,MAAM5G,KAAKrO,WAE1Cm0B,EAAanmB,MAAMyI,MAAM,KAAMzI,MAAMW,EAAG1O,SAASiN,KAAI,eAAgBA,KAAI,SAAUpB,EAAG/L,GACxF,GAAIm0B,EAAan0B,KAA0B,IAApBm0B,EAAan0B,IAAoC,OAApBm0B,EAAan0B,GAC/D,OAAOm0B,EAAan0B,MAGvBO,OAAOmF,GAER,OAAOkJ,EAAG8H,MAAM,CACdhR,SAAUA,GACT0uB,IAMP,OAtEA5Z,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAOuZ,gBACbpW,QAAS+V,GACT7T,QAAS+P,EAAcK,gBAIzBL,EAAcpH,aAAa3b,KAAI,SAAUmR,EAAQte,GAC/C,IAAIgc,EAAYsC,EAAOtC,UACnBzW,EAAS+Y,EAAO/Y,OAChB/B,EAAO8a,EAAO9a,KAEdwY,GAAalQ,EAAWkQ,IAC1BA,EAAU,CACRtW,SAAUA,EACVH,OAAQA,EACRnD,QAASkc,IAMb9D,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAOE,mBAAmBxX,GAChCA,KAAMA,EACN2c,QAAS+P,EAAcK,cAAc/sB,GACrC8a,OAAQA,IAIN4R,EAAcpH,aAAa5oB,SAAWF,EAAI,GAC5Cwa,EAAMlC,SAAS,CACb9G,KAAMsJ,GAAO4G,gBACbzD,QAASgW,GACT/K,SAAUgL,QAOdtF,IAAM,SAAU1Q,GACd1D,EAAMlC,SAAS,CACb9G,KAAM0M,EAAUpD,GAAOoD,QAAUpD,GAAOyR,YAK5CpN,GAAU3E,EAAOsD,EAAYpY,GAsBxBA,GC1lJL,GAfJ,SAAyBpG,EAAKC,EAAKC,GAYjC,OAXID,KAAOD,EACTG,OAAOC,eAAeJ,EAAKC,EAAK,CAC9BC,MAAOA,EACPG,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZP,EAAIC,GAAOC,EAGNF,GAKT,SAAS,GAAQsV,EAAQ+B,GACvB,IAAItW,EAAOZ,OAAOY,KAAKuU,GAEvB,GAAInV,OAAOa,sBAAuB,CAChC,IAAIsW,EAAUnX,OAAOa,sBAAsBsU,GACvC+B,IAAgBC,EAAUA,EAAQpW,QAAO,SAAUC,GACrD,OAAOhB,OAAOiB,yBAAyBkU,EAAQnU,GAAKd,eAEtDU,EAAK+F,KAAKsQ,MAAMrW,EAAMuW,GAGxB,OAAOvW,EAuBT,IAAI,GApBJ,SAAwBN,GACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAE/CA,EAAI,EACN,GAAQG,GAAQ,GAAMQ,SAAQ,SAAUpB,GACtC,GAAeQ,EAAQR,EAAKY,EAAOZ,OAE5BE,OAAOqX,0BAChBrX,OAAOsX,iBAAiBhX,EAAQN,OAAOqX,0BAA0B3W,IAEjE,GAAQA,GAAQQ,SAAQ,SAAUpB,GAChCE,OAAOC,eAAeK,EAAQR,EAAKE,OAAOiB,yBAAyBP,EAAQZ,OAKjF,OAAOQ,GAaT,GARA,WACE,IAAImC,EAAOjC,UAAUC,OAAS,QAAsBiC,IAAjBlC,UAAU,GAAmBA,UAAU,GAAK,GAC3Eq0B,EAAkB,CACpBlpB,QAAS,GAEX,OAAO,GAAU,GAAc,GAAc,GAAIkpB,GAAkBpyB,M,iBC9DrE2M,EAAOC,QAAU,SAAUylB,GACzB,GAAiB,mBAANA,EACT,MAAM9lB,UAAU+lB,OAAOD,GAAM,sBAC7B,OAAOA,I,qBCHX,IAAIroB,EAAW,EAAQ,KAEvB2C,EAAOC,QAAU,SAAUylB,GACzB,IAAKroB,EAASqoB,IAAc,OAAPA,EACnB,MAAM9lB,UAAU,aAAe+lB,OAAOD,GAAM,mBAC5C,OAAOA,I,qBCLX,IAAIE,EAAkB,EAAQ,MAC1BtkB,EAAS,EAAQ,IACjBukB,EAAuB,EAAQ,MAE/BC,EAAcF,EAAgB,eAC9BG,EAAiB3mB,MAAMvE,UAIQvH,MAA/ByyB,EAAeD,IACjBD,EAAqBG,EAAED,EAAgBD,EAAa,CAClD/0B,cAAc,EACdJ,MAAO2Q,EAAO,QAKlBtB,EAAOC,QAAU,SAAUvP,GACzBq1B,EAAeD,GAAap1B,IAAO,I,iBClBrCsP,EAAOC,QAAU,SAAUylB,EAAIpK,EAAa3mB,GAC1C,KAAM+wB,aAAcpK,GAClB,MAAM1b,UAAU,cAAgBjL,EAAOA,EAAO,IAAM,IAAM,cAC1D,OAAO+wB,I,qBCHX,IAAIroB,EAAW,EAAQ,KAEvB2C,EAAOC,QAAU,SAAUylB,GACzB,IAAKroB,EAASqoB,GACZ,MAAM9lB,UAAU+lB,OAAOD,GAAM,qBAC7B,OAAOA,I,kCCJX,IAAIzF,EAAO,EAAQ,MACfgG,EAAW,EAAQ,MACnBC,EAA+B,EAAQ,MACvCC,EAAwB,EAAQ,MAChCC,EAAW,EAAQ,MACnBC,EAAiB,EAAQ,MACzBC,EAAoB,EAAQ,MAIhCtmB,EAAOC,QAAU,SAAcsmB,GAC7B,IAOIl1B,EAAQwS,EAAQ2iB,EAAM7rB,EAAU2J,EAAM3T,EAPtC81B,EAAIR,EAASM,GACbG,EAAmB,mBAARxjB,KAAqBA,KAAO9D,MACvCunB,EAAkBv1B,UAAUC,OAC5Bu1B,EAAQD,EAAkB,EAAIv1B,UAAU,QAAKkC,EAC7CuzB,OAAoBvzB,IAAVszB,EACVxhB,EAAiBkhB,EAAkBG,GACnClwB,EAAQ,EAIZ,GAFIswB,IAASD,EAAQ3G,EAAK2G,EAAOD,EAAkB,EAAIv1B,UAAU,QAAKkC,EAAW,IAE3DA,MAAlB8R,GAAiCshB,GAAKtnB,OAAS+mB,EAAsB/gB,GAWvE,IADAvB,EAAS,IAAI6iB,EADbr1B,EAAS+0B,EAASK,EAAEp1B,SAEdA,EAASkF,EAAOA,IACpB5F,EAAQk2B,EAAUD,EAAMH,EAAElwB,GAAQA,GAASkwB,EAAElwB,GAC7C8vB,EAAexiB,EAAQtN,EAAO5F,QAThC,IAFA2T,GADA3J,EAAWyK,EAAe3F,KAAKgnB,IACfniB,KAChBT,EAAS,IAAI6iB,IACLF,EAAOliB,EAAK7E,KAAK9E,IAAWiI,KAAMrM,IACxC5F,EAAQk2B,EAAUX,EAA6BvrB,EAAUisB,EAAO,CAACJ,EAAK71B,MAAO4F,IAAQ,GAAQiwB,EAAK71B,MAClG01B,EAAexiB,EAAQtN,EAAO5F,GAWlC,OADAkT,EAAOxS,OAASkF,EACTsN,I,qBCvCT,IAAIijB,EAAkB,EAAQ,MAC1BV,EAAW,EAAQ,MACnBW,EAAkB,EAAQ,MAG1BC,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAOC,EAAIC,GAC1B,IAGIz2B,EAHA81B,EAAIK,EAAgBI,GACpB71B,EAAS+0B,EAASK,EAAEp1B,QACpBkF,EAAQwwB,EAAgBK,EAAW/1B,GAIvC,GAAI41B,GAAeE,GAAMA,GAAI,KAAO91B,EAASkF,GAG3C,IAFA5F,EAAQ81B,EAAElwB,OAEG5F,EAAO,OAAO,OAEtB,KAAMU,EAASkF,EAAOA,IAC3B,IAAK0wB,GAAe1wB,KAASkwB,IAAMA,EAAElwB,KAAW4wB,EAAI,OAAOF,GAAe1wB,GAAS,EACnF,OAAQ0wB,IAAgB,IAI9BjnB,EAAOC,QAAU,CAGfqM,SAAU0a,GAAa,GAGvB/qB,QAAS+qB,GAAa,K,qBC9BxB,IAAIK,EAAW,EAAQ,MACnBC,EAAgB,EAAQ,MAG5BtnB,EAAOC,QAAU,SAAUtF,EAAUoF,EAAIpP,EAAO42B,GAC9C,IACE,OAAOA,EAAUxnB,EAAGsnB,EAAS12B,GAAO,GAAIA,EAAM,IAAMoP,EAAGpP,GAEvD,MAAOsT,GAEP,MADAqjB,EAAc3sB,GACRsJ,K,qBCVV,IAEIujB,EAFkB,EAAQ,KAEf5B,CAAgB,YAC3B6B,GAAe,EAEnB,IACE,IAAIrX,EAAS,EACTsX,EAAqB,CACvBpjB,KAAM,WACJ,MAAO,CAAE1B,OAAQwN,MAEnB,OAAU,WACRqX,GAAe,IAGnBC,EAAmBF,GAAY,WAC7B,OAAOtkB,MAGT9D,MAAMM,KAAKgoB,GAAoB,WAAc,MAAM,KACnD,MAAOzjB,IAETjE,EAAOC,QAAU,SAAUjC,EAAM2pB,GAC/B,IAAKA,IAAiBF,EAAc,OAAO,EAC3C,IAAIG,GAAoB,EACxB,IACE,IAAI7hB,EAAS,GACbA,EAAOyhB,GAAY,WACjB,MAAO,CACLljB,KAAM,WACJ,MAAO,CAAE1B,KAAMglB,GAAoB,MAIzC5pB,EAAK+H,GACL,MAAO9B,IACT,OAAO2jB,I,iBCpCT,IAAInyB,EAAW,GAAGA,SAElBuK,EAAOC,QAAU,SAAUylB,GACzB,OAAOjwB,EAASgK,KAAKimB,GAAIrf,MAAM,GAAI,K,oBCHrC,IAAIwhB,EAAwB,EAAQ,MAChCC,EAAa,EAAQ,MAGrBC,EAFkB,EAAQ,KAEVnC,CAAgB,eAEhCoC,EAAuE,aAAnDF,EAAW,WAAc,OAAO12B,UAArB,IAUnC4O,EAAOC,QAAU4nB,EAAwBC,EAAa,SAAUpC,GAC9D,IAAIe,EAAGrI,EAAKva,EACZ,YAAcvQ,IAAPoyB,EAAmB,YAAqB,OAAPA,EAAc,OAEM,iBAAhDtH,EAXD,SAAUsH,EAAIh1B,GACzB,IACE,OAAOg1B,EAAGh1B,GACV,MAAOuT,KAQSgkB,CAAOxB,EAAI71B,OAAO80B,GAAKqC,IAA8B3J,EAEnE4J,EAAoBF,EAAWrB,GAEH,WAA3B5iB,EAASikB,EAAWrB,KAAsC,mBAAZA,EAAEyB,OAAuB,YAAcrkB,I,qBCxB5F,IAAIskB,EAAM,EAAQ,MACd52B,EAAU,EAAQ,MAClB62B,EAAiC,EAAQ,MACzCvC,EAAuB,EAAQ,MAEnC7lB,EAAOC,QAAU,SAAU/O,EAAQI,GAIjC,IAHA,IAAIE,EAAOD,EAAQD,GACfT,EAAiBg1B,EAAqBG,EACtCn0B,EAA2Bu2B,EAA+BpC,EACrD70B,EAAI,EAAGA,EAAIK,EAAKH,OAAQF,IAAK,CACpC,IAAIT,EAAMc,EAAKL,GACVg3B,EAAIj3B,EAAQR,IAAMG,EAAeK,EAAQR,EAAKmB,EAAyBP,EAAQZ,O,qBCXxF,IAAI23B,EAAQ,EAAQ,MAEpBroB,EAAOC,SAAWooB,GAAM,WACtB,SAASC,KAET,OADAA,EAAEztB,UAAUD,YAAc,KACnBhK,OAAO2M,eAAe,IAAI+qB,KAASA,EAAEztB,c,kCCJ9C,IAAIoI,EAAoB,0BACpB3B,EAAS,EAAQ,IACjBinB,EAA2B,EAAQ,MACnCC,EAAiB,EAAQ,MACzBC,EAAY,EAAQ,MAEpBC,EAAa,WAAc,OAAOxlB,MAEtClD,EAAOC,QAAU,SAAU0oB,EAAqBC,EAAMtkB,GACpD,IAAIyjB,EAAgBa,EAAO,YAI3B,OAHAD,EAAoB9tB,UAAYyG,EAAO2B,EAAmB,CAAEqB,KAAMikB,EAAyB,EAAGjkB,KAC9FkkB,EAAeG,EAAqBZ,GAAe,GAAO,GAC1DU,EAAUV,GAAiBW,EACpBC,I,qBCdT,IAAIE,EAAc,EAAQ,MACtBhD,EAAuB,EAAQ,MAC/B0C,EAA2B,EAAQ,MAEvCvoB,EAAOC,QAAU4oB,EAAc,SAAU9iB,EAAQrV,EAAKC,GACpD,OAAOk1B,EAAqBG,EAAEjgB,EAAQrV,EAAK63B,EAAyB,EAAG53B,KACrE,SAAUoV,EAAQrV,EAAKC,GAEzB,OADAoV,EAAOrV,GAAOC,EACPoV,I,iBCRT/F,EAAOC,QAAU,SAAU6oB,EAAQn4B,GACjC,MAAO,CACLG,aAAuB,EAATg4B,GACd/3B,eAAyB,EAAT+3B,GAChB93B,WAAqB,EAAT83B,GACZn4B,MAAOA,K,kCCJX,IAAIo4B,EAAc,EAAQ,MACtBlD,EAAuB,EAAQ,MAC/B0C,EAA2B,EAAQ,MAEvCvoB,EAAOC,QAAU,SAAU8F,EAAQrV,EAAKC,GACtC,IAAIq4B,EAAcD,EAAYr4B,GAC1Bs4B,KAAejjB,EAAQ8f,EAAqBG,EAAEjgB,EAAQijB,EAAaT,EAAyB,EAAG53B,IAC9FoV,EAAOijB,GAAer4B,I,iCCP7B,IAAIs4B,EAAI,EAAQ,MACZC,EAA4B,EAAQ,MACpC3rB,EAAiB,EAAQ,MACzBoI,EAAiB,EAAQ,MACzB6iB,EAAiB,EAAQ,MACzBW,EAA8B,EAAQ,MACtCC,EAAW,EAAQ,MACnBxD,EAAkB,EAAQ,MAC1ByD,EAAU,EAAQ,MAClBZ,EAAY,EAAQ,MACpBa,EAAgB,EAAQ,MAExBrmB,EAAoBqmB,EAAcrmB,kBAClCsmB,EAAyBD,EAAcC,uBACvC/B,EAAW5B,EAAgB,YAC3B4D,EAAO,OACPC,EAAS,SACTlC,EAAU,UAEVmB,EAAa,WAAc,OAAOxlB,MAEtClD,EAAOC,QAAU,SAAUypB,EAAUd,EAAMD,EAAqBrkB,EAAMqlB,EAASC,EAAQC,GACrFX,EAA0BP,EAAqBC,EAAMtkB,GAErD,IAkBIwlB,EAA0BnI,EAASoI,EAlBnCC,EAAqB,SAAUC,GACjC,GAAIA,IAASN,GAAWO,EAAiB,OAAOA,EAChD,IAAKX,GAA0BU,KAAQE,EAAmB,OAAOA,EAAkBF,GACnF,OAAQA,GACN,KAAKT,EACL,KAAKC,EACL,KAAKlC,EAAS,OAAO,WAAqB,OAAO,IAAIoB,EAAoBzlB,KAAM+mB,IAC/E,OAAO,WAAc,OAAO,IAAItB,EAAoBzlB,QAGpD6kB,EAAgBa,EAAO,YACvBwB,GAAwB,EACxBD,EAAoBT,EAAS7uB,UAC7BwvB,EAAiBF,EAAkB3C,IAClC2C,EAAkB,eAClBR,GAAWQ,EAAkBR,GAC9BO,GAAmBX,GAA0Bc,GAAkBL,EAAmBL,GAClFW,EAA4B,SAAR1B,GAAkBuB,EAAkBI,SAA4BF,EAiCxF,GA7BIC,IACFR,EAA2BvsB,EAAe+sB,EAAkB7qB,KAAK,IAAIiqB,IACjEzmB,IAAsBrS,OAAOiK,WAAaivB,EAAyBxlB,OAChE+kB,GAAW9rB,EAAeusB,KAA8B7mB,IACvD0C,EACFA,EAAemkB,EAA0B7mB,GACa,mBAAtC6mB,EAAyBtC,IACzC2B,EAA4BW,EAA0BtC,EAAUkB,IAIpEF,EAAesB,EAA0B/B,GAAe,GAAM,GAC1DsB,IAASZ,EAAUV,GAAiBW,KAKxCiB,GAAWF,GAAUY,GAAkBA,EAAe11B,OAAS80B,IACjEW,GAAwB,EACxBF,EAAkB,WAAoB,OAAOG,EAAe5qB,KAAKyD,QAI7DmmB,IAAWQ,GAAWM,EAAkB3C,KAAc0C,GAC1Df,EAA4BgB,EAAmB3C,EAAU0C,GAE3DzB,EAAUG,GAAQsB,EAGdP,EAMF,GALAhI,EAAU,CACRte,OAAQ2mB,EAAmBP,GAC3Bj4B,KAAMo4B,EAASM,EAAkBF,EAAmBR,GACpDe,QAASP,EAAmBzC,IAE1BsC,EAAQ,IAAKE,KAAOpI,GAClB4H,GAA0Ba,KAA2BL,KAAOI,KAC9Df,EAASe,EAAmBJ,EAAKpI,EAAQoI,SAEtCd,EAAE,CAAE/3B,OAAQ03B,EAAMtrB,OAAO,EAAMktB,OAAQjB,GAA0Ba,GAAyBzI,GAGnG,OAAOA,I,qBCxFT,IAAI0G,EAAQ,EAAQ,MAGpBroB,EAAOC,SAAWooB,GAAM,WACtB,OAA8E,GAAvEz3B,OAAOC,eAAe,GAAI,EAAG,CAAE45B,IAAK,WAAc,OAAO,KAAQ,O,oBCJ1E,IAAIpvB,EAAS,EAAQ,MACjBgC,EAAW,EAAQ,KAEnB3K,EAAW2I,EAAO3I,SAElBg4B,EAASrtB,EAAS3K,IAAa2K,EAAS3K,EAASgF,eAErDsI,EAAOC,QAAU,SAAUylB,GACzB,OAAOgF,EAASh4B,EAASgF,cAAcguB,GAAM,K,iBCN/C1lB,EAAOC,QAAU,CACf0qB,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACdC,eAAgB,EAChBC,YAAa,EACbC,cAAe,EACfC,aAAc,EACdC,qBAAsB,EACtBC,SAAU,EACVC,kBAAmB,EACnBC,eAAgB,EAChBC,gBAAiB,EACjBC,kBAAmB,EACnBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,SAAU,EACVC,iBAAkB,EAClBC,OAAQ,EACRC,YAAa,EACbC,cAAe,EACfC,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdC,cAAe,EACfC,iBAAkB,EAClBC,iBAAkB,EAClBC,eAAgB,EAChBC,iBAAkB,EAClBC,cAAe,EACfC,UAAW,I,qBCjCb,IAAIlP,EAAY,EAAQ,MAExBvd,EAAOC,QAAU,mCAAmC8a,KAAKwC,I,qBCFzD,IAAImP,EAAU,EAAQ,MAClBrxB,EAAS,EAAQ,MAErB2E,EAAOC,QAAqC,WAA3BysB,EAAQrxB,EAAOqU,U,qBCHhC,IAAI6N,EAAY,EAAQ,MAExBvd,EAAOC,QAAU,qBAAqB8a,KAAKwC,I,qBCF3C,IAAIoP,EAAa,EAAQ,MAEzB3sB,EAAOC,QAAU0sB,EAAW,YAAa,cAAgB,I,qBCFzD,IAMInuB,EAAO6e,EANPhiB,EAAS,EAAQ,MACjBkiB,EAAY,EAAQ,MAEpB7N,EAAUrU,EAAOqU,QACjBkd,EAAWld,GAAWA,EAAQkd,SAC9BC,EAAKD,GAAYA,EAASC,GAG1BA,EAEFxP,GADA7e,EAAQquB,EAAGh3B,MAAM,MACD,GAAK2I,EAAM,GAClB+e,MACT/e,EAAQ+e,EAAU/e,MAAM,iBACVA,EAAM,IAAM,MACxBA,EAAQ+e,EAAU/e,MAAM,oBACb6e,EAAU7e,EAAM,IAI/BwB,EAAOC,QAAUod,IAAYA,G,gBClB7Brd,EAAOC,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,Y,qBCRF,IAAI5E,EAAS,EAAQ,MACjBxJ,EAA2B,UAC3Bs3B,EAA8B,EAAQ,MACtCC,EAAW,EAAQ,MACnB0D,EAAY,EAAQ,MACpBC,EAA4B,EAAQ,MACpCC,EAAW,EAAQ,MAgBvBhtB,EAAOC,QAAU,SAAU3D,EAAShL,GAClC,IAGYJ,EAAQR,EAAKu8B,EAAgBC,EAAgBC,EAHrDC,EAAS9wB,EAAQpL,OACjBsK,EAASc,EAAQjB,OACjBgyB,EAAS/wB,EAAQgxB,KASrB,GANEp8B,EADEsK,EACOH,EACAgyB,EACAhyB,EAAO+xB,IAAWN,EAAUM,EAAQ,KAEnC/xB,EAAO+xB,IAAW,IAAIvyB,UAEtB,IAAKnK,KAAOY,EAAQ,CAQ9B,GAPA47B,EAAiB57B,EAAOZ,GAGtBu8B,EAFE3wB,EAAQixB,aACVJ,EAAat7B,EAAyBX,EAAQR,KACfy8B,EAAWx8B,MACpBO,EAAOR,IACtBs8B,EAASxxB,EAAS9K,EAAM08B,GAAUC,EAAS,IAAM,KAAO38B,EAAK4L,EAAQkuB,cAE5Cl3B,IAAnB25B,EAA8B,CAC3C,UAAWC,UAA0BD,EAAgB,SACrDF,EAA0BG,EAAgBD,IAGxC3wB,EAAQkxB,MAASP,GAAkBA,EAAeO,OACpDrE,EAA4B+D,EAAgB,QAAQ,GAGtD9D,EAASl4B,EAAQR,EAAKw8B,EAAgB5wB,M,iBCnD1C0D,EAAOC,QAAU,SAAUjC,GACzB,IACE,QAASA,IACT,MAAOiG,GACP,OAAO,K,qBCJX,IAAIwpB,EAAY,EAAQ,MAGxBztB,EAAOC,QAAU,SAAUF,EAAI2tB,EAAMr8B,GAEnC,GADAo8B,EAAU1tB,QACGzM,IAATo6B,EAAoB,OAAO3tB,EAC/B,OAAQ1O,GACN,KAAK,EAAG,OAAO,WACb,OAAO0O,EAAGN,KAAKiuB,IAEjB,KAAK,EAAG,OAAO,SAAUx2B,GACvB,OAAO6I,EAAGN,KAAKiuB,EAAMx2B,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAGqU,GAC1B,OAAOxL,EAAGN,KAAKiuB,EAAMx2B,EAAGqU,IAE1B,KAAK,EAAG,OAAO,SAAUrU,EAAGqU,EAAGtM,GAC7B,OAAOc,EAAGN,KAAKiuB,EAAMx2B,EAAGqU,EAAGtM,IAG/B,OAAO,WACL,OAAOc,EAAG8H,MAAM6lB,EAAMt8B,c,qBCrB1B,IAAI6H,EAAO,EAAQ,KACfoC,EAAS,EAAQ,MAEjBoyB,EAAY,SAAUE,GACxB,MAA0B,mBAAZA,EAAyBA,OAAWr6B,GAGpD0M,EAAOC,QAAU,SAAUkY,EAAWvW,GACpC,OAAOxQ,UAAUC,OAAS,EAAIo8B,EAAUx0B,EAAKkf,KAAesV,EAAUpyB,EAAO8c,IACzElf,EAAKkf,IAAclf,EAAKkf,GAAWvW,IAAWvG,EAAO8c,IAAc9c,EAAO8c,GAAWvW,K,qBCT3F,IAAI8qB,EAAU,EAAQ,KAClBjE,EAAY,EAAQ,MAGpBjB,EAFkB,EAAQ,KAEf5B,CAAgB,YAE/B5lB,EAAOC,QAAU,SAAUylB,GACzB,GAAUpyB,MAANoyB,EAAiB,OAAOA,EAAG8B,IAC1B9B,EAAG,eACH+C,EAAUiE,EAAQhH,M,qBCTzB,IAAIkI,EAAQ,SAAUlI,GACpB,OAAOA,GAAMA,EAAGrvB,MAAQA,MAAQqvB,GAIlC1lB,EAAOC,QAEL2tB,EAA2B,iBAAdC,YAA0BA,aACvCD,EAAuB,iBAAVv2B,QAAsBA,SACnCu2B,EAAqB,iBAARxyB,MAAoBA,OACjCwyB,EAAuB,iBAAV,EAAA32B,GAAsB,EAAAA,IAEnC,WAAe,OAAOiM,KAAtB,IAAoCoE,SAAS,cAATA,I,iBCZtC,IAAI5O,EAAiB,GAAGA,eAExBsH,EAAOC,QAAU,SAAUylB,EAAIh1B,GAC7B,OAAOgI,EAAe+G,KAAKimB,EAAIh1B,K,iBCHjCsP,EAAOC,QAAU,I,oBCAjB,IAAI5E,EAAS,EAAQ,MAErB2E,EAAOC,QAAU,SAAU/I,EAAGqU,GAC5B,IAAIuiB,EAAUzyB,EAAOyyB,QACjBA,GAAWA,EAAQ7pB,QACA,IAArB7S,UAAUC,OAAey8B,EAAQ7pB,MAAM/M,GAAK42B,EAAQ7pB,MAAM/M,EAAGqU,M,oBCLjE,IAAIohB,EAAa,EAAQ,MAEzB3sB,EAAOC,QAAU0sB,EAAW,WAAY,oB,qBCFxC,IAAI9D,EAAc,EAAQ,MACtBR,EAAQ,EAAQ,MAChB3wB,EAAgB,EAAQ,KAG5BsI,EAAOC,SAAW4oB,IAAgBR,GAAM,WACtC,OAEQ,GAFDz3B,OAAOC,eAAe6G,EAAc,OAAQ,IAAK,CACtD+yB,IAAK,WAAc,OAAO,KACzBvzB,M,qBCRL,IAAImxB,EAAQ,EAAQ,MAChBqE,EAAU,EAAQ,MAElB72B,EAAQ,GAAGA,MAGfmK,EAAOC,QAAUooB,GAAM,WAGrB,OAAQz3B,OAAO,KAAKm9B,qBAAqB,MACtC,SAAUrI,GACb,MAAsB,UAAfgH,EAAQhH,GAAkB7vB,EAAM4J,KAAKimB,EAAI,IAAM90B,OAAO80B,IAC3D90B,Q,qBCZJ,IAAI+a,EAAQ,EAAQ,MAEhBqiB,EAAmB1mB,SAAS7R,SAGE,mBAAvBkW,EAAMsiB,gBACftiB,EAAMsiB,cAAgB,SAAUvI,GAC9B,OAAOsI,EAAiBvuB,KAAKimB,KAIjC1lB,EAAOC,QAAU0L,EAAMsiB,e,qBCXvB,IAUIC,EAAKzD,EAAKtC,EAVVgG,EAAkB,EAAQ,MAC1B9yB,EAAS,EAAQ,MACjBgC,EAAW,EAAQ,KACnB8rB,EAA8B,EAAQ,MACtCiF,EAAY,EAAQ,MACpBC,EAAS,EAAQ,MACjBC,EAAY,EAAQ,MACpBC,EAAa,EAAQ,MAErBC,EAAUnzB,EAAOmzB,QAgBrB,GAAIL,EAAiB,CACnB,IAAIxiB,EAAQ0iB,EAAO3sB,QAAU2sB,EAAO3sB,MAAQ,IAAI8sB,GAC5CC,EAAQ9iB,EAAM8e,IACdiE,EAAQ/iB,EAAMwc,IACdwG,EAAQhjB,EAAMuiB,IAClBA,EAAM,SAAUxI,EAAIkJ,GAGlB,OAFAA,EAASC,OAASnJ,EAClBiJ,EAAMlvB,KAAKkM,EAAO+Z,EAAIkJ,GACfA,GAETnE,EAAM,SAAU/E,GACd,OAAO+I,EAAMhvB,KAAKkM,EAAO+Z,IAAO,IAElCyC,EAAM,SAAUzC,GACd,OAAOgJ,EAAMjvB,KAAKkM,EAAO+Z,QAEtB,CACL,IAAIoJ,EAAQR,EAAU,SACtBC,EAAWO,IAAS,EACpBZ,EAAM,SAAUxI,EAAIkJ,GAGlB,OAFAA,EAASC,OAASnJ,EAClByD,EAA4BzD,EAAIoJ,EAAOF,GAChCA,GAETnE,EAAM,SAAU/E,GACd,OAAO0I,EAAU1I,EAAIoJ,GAASpJ,EAAGoJ,GAAS,IAE5C3G,EAAM,SAAUzC,GACd,OAAO0I,EAAU1I,EAAIoJ,IAIzB9uB,EAAOC,QAAU,CACfiuB,IAAKA,EACLzD,IAAKA,EACLtC,IAAKA,EACL4G,QAjDY,SAAUrJ,GACtB,OAAOyC,EAAIzC,GAAM+E,EAAI/E,GAAMwI,EAAIxI,EAAI,KAiDnCsJ,UA9Cc,SAAUC,GACxB,OAAO,SAAUvJ,GACf,IAAIhkB,EACJ,IAAKrE,EAASqoB,KAAQhkB,EAAQ+oB,EAAI/E,IAAK/iB,OAASssB,EAC9C,MAAMrvB,UAAU,0BAA4BqvB,EAAO,aACnD,OAAOvtB,M,qBCrBb,IAAIkkB,EAAkB,EAAQ,MAC1B6C,EAAY,EAAQ,MAEpBjB,EAAW5B,EAAgB,YAC3BG,EAAiB3mB,MAAMvE,UAG3BmF,EAAOC,QAAU,SAAUylB,GACzB,YAAcpyB,IAAPoyB,IAAqB+C,EAAUrpB,QAAUsmB,GAAMK,EAAeyB,KAAc9B,K,qBCRrF,IAAI2C,EAAQ,EAAQ,MAEhB6G,EAAc,kBAEdlC,EAAW,SAAUmC,EAASC,GAChC,IAAIz+B,EAAQ8C,EAAK47B,EAAUF,IAC3B,OAAOx+B,GAAS2+B,GACZ3+B,GAAS4+B,IACW,mBAAbH,EAA0B/G,EAAM+G,KACrCA,IAGJC,EAAYrC,EAASqC,UAAY,SAAUG,GAC7C,OAAO7J,OAAO6J,GAAQ/xB,QAAQyxB,EAAa,KAAKO,eAG9Ch8B,EAAOu5B,EAASv5B,KAAO,GACvB87B,EAASvC,EAASuC,OAAS,IAC3BD,EAAWtC,EAASsC,SAAW,IAEnCtvB,EAAOC,QAAU+sB,G,gBCpBjBhtB,EAAOC,QAAU,SAAUylB,GACzB,MAAqB,iBAAPA,EAAyB,OAAPA,EAA4B,mBAAPA,I,iBCDvD1lB,EAAOC,SAAU,G,oBCAjB,IAAIonB,EAAW,EAAQ,MACnBlB,EAAwB,EAAQ,MAChCC,EAAW,EAAQ,MACnBnG,EAAO,EAAQ,MACfqG,EAAoB,EAAQ,MAC5BgB,EAAgB,EAAQ,MAExBoI,EAAS,SAAUC,EAAS9rB,GAC9BX,KAAKysB,QAAUA,EACfzsB,KAAKW,OAASA,GAGhB7D,EAAOC,QAAU,SAAUkF,EAAUyqB,EAAiBtzB,GACpD,IAKI3B,EAAUk1B,EAAQt5B,EAAOlF,EAAQwS,EAAQS,EAAMkiB,EAL/CkH,EAAOpxB,GAAWA,EAAQoxB,KAC1BoC,KAAgBxzB,IAAWA,EAAQwzB,YACnCC,KAAiBzzB,IAAWA,EAAQyzB,aACpCC,KAAiB1zB,IAAWA,EAAQ0zB,aACpCjwB,EAAKkgB,EAAK2P,EAAiBlC,EAAM,EAAIoC,EAAaE,GAGlD1pB,EAAO,SAAU2pB,GAEnB,OADIt1B,GAAU2sB,EAAc3sB,GACrB,IAAI+0B,GAAO,EAAMO,IAGtBC,EAAS,SAAUv/B,GACrB,OAAIm/B,GACFzI,EAAS12B,GACFq/B,EAAcjwB,EAAGpP,EAAM,GAAIA,EAAM,GAAI2V,GAAQvG,EAAGpP,EAAM,GAAIA,EAAM,KAChEq/B,EAAcjwB,EAAGpP,EAAO2V,GAAQvG,EAAGpP,IAG9C,GAAIo/B,EACFp1B,EAAWwK,MACN,CAEL,GAAqB,mBADrB0qB,EAASvJ,EAAkBnhB,IACM,MAAMvF,UAAU,0BAEjD,GAAIumB,EAAsB0J,GAAS,CACjC,IAAKt5B,EAAQ,EAAGlF,EAAS+0B,EAASjhB,EAAS9T,QAASA,EAASkF,EAAOA,IAElE,IADAsN,EAASqsB,EAAO/qB,EAAS5O,MACXsN,aAAkB6rB,EAAQ,OAAO7rB,EAC/C,OAAO,IAAI6rB,GAAO,GAEtB/0B,EAAWk1B,EAAOpwB,KAAK0F,GAIzB,IADAb,EAAO3J,EAAS2J,OACPkiB,EAAOliB,EAAK7E,KAAK9E,IAAWiI,MAAM,CACzC,IACEiB,EAASqsB,EAAO1J,EAAK71B,OACrB,MAAOsT,GAEP,MADAqjB,EAAc3sB,GACRsJ,EAER,GAAqB,iBAAVJ,GAAsBA,GAAUA,aAAkB6rB,EAAQ,OAAO7rB,EAC5E,OAAO,IAAI6rB,GAAO,K,qBCxDtB,IAAIrI,EAAW,EAAQ,MAEvBrnB,EAAOC,QAAU,SAAUtF,GACzB,IAAIw1B,EAAex1B,EAAiB,OACpC,QAAqBrH,IAAjB68B,EACF,OAAO9I,EAAS8I,EAAa1wB,KAAK9E,IAAWhK,Q,kCCJjD,IAcIsS,EAAmBmtB,EAAmCC,EAdtDhI,EAAQ,EAAQ,MAChB9qB,EAAiB,EAAQ,MACzB4rB,EAA8B,EAAQ,MACtChB,EAAM,EAAQ,MACdvC,EAAkB,EAAQ,MAC1ByD,EAAU,EAAQ,MAElB7B,EAAW5B,EAAgB,YAC3B2D,GAAyB,EAQzB,GAAG/3B,OAGC,SAFN6+B,EAAgB,GAAG7+B,SAIjB4+B,EAAoC7yB,EAAeA,EAAe8yB,OACxBz/B,OAAOiK,YAAWoI,EAAoBmtB,GAHlD7G,GAAyB,GAO3D,IAAI+G,EAA8Ch9B,MAArB2P,GAAkColB,GAAM,WACnE,IAAItN,EAAO,GAEX,OAAO9X,EAAkBukB,GAAU/nB,KAAKsb,KAAUA,KAGhDuV,IAAwBrtB,EAAoB,IAG1ComB,IAAWiH,GAA4BnI,EAAIllB,EAAmBukB,IAClE2B,EAA4BlmB,EAAmBukB,GA1BhC,WAAc,OAAOtkB,QA6BtClD,EAAOC,QAAU,CACfgD,kBAAmBA,EACnBsmB,uBAAwBA,I,iBC1C1BvpB,EAAOC,QAAU,I,qBCAjB,IAeIswB,EAAOC,EAAMtR,EAAMuR,EAAQC,EAAQC,EAAM7Z,EAAS/S,EAflD1I,EAAS,EAAQ,MACjBxJ,EAA2B,UAC3B++B,EAAY,WACZC,EAAS,EAAQ,MACjBC,EAAkB,EAAQ,MAC1BC,EAAU,EAAQ,MAElBC,EAAmB31B,EAAO21B,kBAAoB31B,EAAO41B,uBACrDv+B,EAAW2I,EAAO3I,SAClBgd,EAAUrU,EAAOqU,QACjB5J,EAAUzK,EAAOyK,QAEjBorB,EAA2Br/B,EAAyBwJ,EAAQ,kBAC5D81B,EAAiBD,GAA4BA,EAAyBvgC,MAKrEwgC,IACHZ,EAAQ,WACN,IAAIa,EAAQrxB,EAEZ,IADIgxB,IAAYK,EAAS1hB,EAAQzX,SAASm5B,EAAOC,OAC1Cb,GAAM,CACXzwB,EAAKywB,EAAKzwB,GACVywB,EAAOA,EAAKlsB,KACZ,IACEvE,IACA,MAAOkE,GAGP,MAFIusB,EAAMC,IACLvR,OAAO5rB,EACN2Q,GAERib,OAAO5rB,EACL89B,GAAQA,EAAOE,SAKhBT,GAAWE,GAAYD,IAAmBE,IAAoBt+B,EAQxDoT,GAAWA,EAAQnC,SAE5BmT,EAAUhR,EAAQnC,aAAQrQ,GAC1ByQ,EAAO+S,EAAQ/S,KACf0sB,EAAS,WACP1sB,EAAKtE,KAAKqX,EAASyZ,KAIrBE,EADSM,EACA,WACPrhB,EAAQ6hB,SAAShB,IASV,WAEPK,EAAUnxB,KAAKpE,EAAQk1B,KA5BzBG,GAAS,EACTC,EAAOj+B,EAAS8+B,eAAe,IAC/B,IAAIR,EAAiBT,GAAOkB,QAAQd,EAAM,CAAEe,eAAe,IAC3DjB,EAAS,WACPE,EAAKl9B,KAAOi9B,GAAUA,KA6B5B1wB,EAAOC,QAAUkxB,GAAkB,SAAUpxB,GAC3C,IAAIpH,EAAO,CAAEoH,GAAIA,EAAIuE,UAAMhR,GACvB4rB,IAAMA,EAAK5a,KAAO3L,GACjB63B,IACHA,EAAO73B,EACP83B,KACAvR,EAAOvmB,I,qBC9EX,IAAI0C,EAAS,EAAQ,MAErB2E,EAAOC,QAAU5E,EAAOyK,S,oBCFxB,IAAIuiB,EAAQ,EAAQ,MAEpBroB,EAAOC,UAAYrP,OAAOa,wBAA0B42B,GAAM,WAGxD,OAAQ1C,OAAOjrB,c,qBCLjB,IAAIW,EAAS,EAAQ,MACjB4yB,EAAgB,EAAQ,MAExBO,EAAUnzB,EAAOmzB,QAErBxuB,EAAOC,QAA6B,mBAAZuuB,GAA0B,cAAczT,KAAKkT,EAAcO,K,kCCJnF,IAAIf,EAAY,EAAQ,MAEpBkE,EAAoB,SAAUjL,GAChC,IAAI/iB,EAASC,EACbV,KAAK4T,QAAU,IAAI4P,GAAE,SAAUkL,EAAWC,GACxC,QAAgBv+B,IAAZqQ,QAAoCrQ,IAAXsQ,EAAsB,MAAMhE,UAAU,2BACnE+D,EAAUiuB,EACVhuB,EAASiuB,KAEX3uB,KAAKS,QAAU8pB,EAAU9pB,GACzBT,KAAKU,OAAS6pB,EAAU7pB,IAI1B5D,EAAOC,QAAQ+lB,EAAI,SAAUU,GAC3B,OAAO,IAAIiL,EAAkBjL,K,kCCf/B,IAAImC,EAAc,EAAQ,MACtBR,EAAQ,EAAQ,MAChByJ,EAAa,EAAQ,MACrBC,EAA8B,EAAQ,MACtCC,EAA6B,EAAQ,MACrC/L,EAAW,EAAQ,MACnBgM,EAAgB,EAAQ,MAExBC,EAAethC,OAAOod,OACtBnd,EAAiBD,OAAOC,eAI5BmP,EAAOC,SAAWiyB,GAAgB7J,GAAM,WAEtC,GAAIQ,GAQiB,IARFqJ,EAAa,CAAE3mB,EAAG,GAAK2mB,EAAarhC,EAAe,GAAI,IAAK,CAC7EC,YAAY,EACZ25B,IAAK,WACH55B,EAAeqS,KAAM,IAAK,CACxBvS,MAAO,EACPG,YAAY,OAGd,CAAEya,EAAG,KAAMA,EAAS,OAAO,EAE/B,IAAI4mB,EAAI,GACJC,EAAI,GAEJC,EAAS33B,SACT43B,EAAW,uBAGf,OAFAH,EAAEE,GAAU,EACZC,EAASz8B,MAAM,IAAI/D,SAAQ,SAAUygC,GAAOH,EAAEG,GAAOA,KACf,GAA/BL,EAAa,GAAIC,GAAGE,IAAgBP,EAAWI,EAAa,GAAIE,IAAIxY,KAAK,KAAO0Y,KACpF,SAAgBphC,EAAQI,GAM3B,IALA,IAAIkhC,EAAIvM,EAAS/0B,GACby1B,EAAkBv1B,UAAUC,OAC5BkF,EAAQ,EACR9E,EAAwBsgC,EAA4B/L,EACpD+H,EAAuBiE,EAA2BhM,EAC/CW,EAAkBpwB,GAMvB,IALA,IAII7F,EAJA+hC,EAAIR,EAAc7gC,UAAUmF,MAC5B/E,EAAOC,EAAwBqgC,EAAWW,GAAG/gC,OAAOD,EAAsBghC,IAAMX,EAAWW,GAC3FphC,EAASG,EAAKH,OACdqhC,EAAI,EAEDrhC,EAASqhC,GACdhiC,EAAMc,EAAKkhC,KACN7J,IAAekF,EAAqBtuB,KAAKgzB,EAAG/hC,KAAM8hC,EAAE9hC,GAAO+hC,EAAE/hC,IAEpE,OAAO8hC,GACPN,G,mBCnDJ,IAmDIS,EAnDAtL,EAAW,EAAQ,MACnBnf,EAAmB,EAAQ,MAC3B0qB,EAAc,EAAQ,KACtBrE,EAAa,EAAQ,MACrBsE,EAAO,EAAQ,KACfC,EAAwB,EAAQ,KAOhCC,EANY,EAAQ,KAMTzE,CAAU,YAErB0E,EAAmB,aAEnBC,EAAY,SAAUp+B,GACxB,MAAOq+B,WAAmBr+B,EAAnBq+B,cAmCLC,EAAkB,WACpB,IAEER,EAAkBjgC,SAASuF,QAAU,IAAIm7B,cAAc,YACvD,MAAOnvB,IA1BoB,IAIzBovB,EAFAC,EAyBJH,EAAkBR,EApCY,SAAUA,GACxCA,EAAgBY,MAAMN,EAAU,KAChCN,EAAgBa,QAChB,IAAI31B,EAAO80B,EAAgBc,aAAa7iC,OAExC,OADA+hC,EAAkB,KACX90B,EA+B6B61B,CAA0Bf,KAzB1DW,EAASR,EAAsB,WAG5Ba,MAAMC,QAAU,OACvBf,EAAKgB,YAAYP,GAEjBA,EAAO1gC,IAAM+yB,OALJ,gBAMT0N,EAAiBC,EAAOQ,cAAcphC,UACvBqhC,OACfV,EAAeE,MAAMN,EAAU,sBAC/BI,EAAeG,QACRH,EAAe/K,GAgBtB,IADA,IAAIj3B,EAASuhC,EAAYvhC,OAClBA,YAAiB8hC,EAAyB,UAAEP,EAAYvhC,IAC/D,OAAO8hC,KAGT5E,EAAWwE,IAAY,EAIvB/yB,EAAOC,QAAUrP,OAAO0Q,QAAU,SAAgBmlB,EAAGuN,GACnD,IAAInwB,EAQJ,OAPU,OAAN4iB,GACFuM,EAA0B,UAAI3L,EAASZ,GACvC5iB,EAAS,IAAImvB,EACbA,EAA0B,UAAI,KAE9BnvB,EAAOkvB,GAAYtM,GACd5iB,EAASsvB,SACM7/B,IAAf0gC,EAA2BnwB,EAASqE,EAAiBrE,EAAQmwB,K,qBC5EtE,IAAInL,EAAc,EAAQ,MACtBhD,EAAuB,EAAQ,MAC/BwB,EAAW,EAAQ,MACnByK,EAAa,EAAQ,MAIzB9xB,EAAOC,QAAU4oB,EAAcj4B,OAAOsX,iBAAmB,SAA0Bue,EAAGuN,GACpF3M,EAASZ,GAKT,IAJA,IAGI/1B,EAHAc,EAAOsgC,EAAWkC,GAClB3iC,EAASG,EAAKH,OACdkF,EAAQ,EAELlF,EAASkF,GAAOsvB,EAAqBG,EAAES,EAAG/1B,EAAMc,EAAK+E,KAAUy9B,EAAWtjC,IACjF,OAAO+1B,I,qBCdT,IAAIoC,EAAc,EAAQ,MACtBoL,EAAiB,EAAQ,MACzB5M,EAAW,EAAQ,MACnB0B,EAAc,EAAQ,MAEtBmL,EAAuBtjC,OAAOC,eAIlCoP,EAAQ+lB,EAAI6C,EAAcqL,EAAuB,SAAwBzN,EAAG0N,EAAGC,GAI7E,GAHA/M,EAASZ,GACT0N,EAAIpL,EAAYoL,GAAG,GACnB9M,EAAS+M,GACLH,EAAgB,IAClB,OAAOC,EAAqBzN,EAAG0N,EAAGC,GAClC,MAAOnwB,IACT,GAAI,QAASmwB,GAAc,QAASA,EAAY,MAAMx0B,UAAU,2BAEhE,MADI,UAAWw0B,IAAY3N,EAAE0N,GAAKC,EAAWzjC,OACtC81B,I,qBClBT,IAAIoC,EAAc,EAAQ,MACtBmJ,EAA6B,EAAQ,MACrCzJ,EAA2B,EAAQ,MACnCzB,EAAkB,EAAQ,MAC1BiC,EAAc,EAAQ,MACtBZ,EAAM,EAAQ,MACd8L,EAAiB,EAAQ,MAEzBI,EAAiCzjC,OAAOiB,yBAI5CoO,EAAQ+lB,EAAI6C,EAAcwL,EAAiC,SAAkC5N,EAAG0N,GAG9F,GAFA1N,EAAIK,EAAgBL,GACpB0N,EAAIpL,EAAYoL,GAAG,GACfF,EAAgB,IAClB,OAAOI,EAA+B5N,EAAG0N,GACzC,MAAOlwB,IACT,GAAIkkB,EAAI1B,EAAG0N,GAAI,OAAO5L,GAA0ByJ,EAA2BhM,EAAEvmB,KAAKgnB,EAAG0N,GAAI1N,EAAE0N,M,qBClB7F,IAAIG,EAAqB,EAAQ,MAG7B/F,EAFc,EAAQ,KAEG78B,OAAO,SAAU,aAI9CuO,EAAQ+lB,EAAIp1B,OAAO2jC,qBAAuB,SAA6B9N,GACrE,OAAO6N,EAAmB7N,EAAG8H,K,mBCR/BtuB,EAAQ+lB,EAAIp1B,OAAOa,uB,qBCAnB,IAAI02B,EAAM,EAAQ,MACdlC,EAAW,EAAQ,MACnBqI,EAAY,EAAQ,MACpBkG,EAA2B,EAAQ,MAEnCzB,EAAWzE,EAAU,YACrBmG,EAAkB7jC,OAAOiK,UAI7BmF,EAAOC,QAAUu0B,EAA2B5jC,OAAO2M,eAAiB,SAAUkpB,GAE5E,OADAA,EAAIR,EAASQ,GACT0B,EAAI1B,EAAGsM,GAAkBtM,EAAEsM,GACH,mBAAjBtM,EAAE7rB,aAA6B6rB,aAAaA,EAAE7rB,YAChD6rB,EAAE7rB,YAAYC,UACd4rB,aAAa71B,OAAS6jC,EAAkB,O,qBCfnD,IAAItM,EAAM,EAAQ,MACdrB,EAAkB,EAAQ,MAC1B7qB,EAAU,gBACVsyB,EAAa,EAAQ,MAEzBvuB,EAAOC,QAAU,SAAU8F,EAAQ2uB,GACjC,IAGIhkC,EAHA+1B,EAAIK,EAAgB/gB,GACpB5U,EAAI,EACJ0S,EAAS,GAEb,IAAKnT,KAAO+1B,GAAI0B,EAAIoG,EAAY79B,IAAQy3B,EAAI1B,EAAG/1B,IAAQmT,EAAOtM,KAAK7G,GAEnE,KAAOgkC,EAAMrjC,OAASF,GAAOg3B,EAAI1B,EAAG/1B,EAAMgkC,EAAMvjC,SAC7C8K,EAAQ4H,EAAQnT,IAAQmT,EAAOtM,KAAK7G,IAEvC,OAAOmT,I,qBCfT,IAAIywB,EAAqB,EAAQ,MAC7B1B,EAAc,EAAQ,KAI1B5yB,EAAOC,QAAUrP,OAAOY,MAAQ,SAAci1B,GAC5C,OAAO6N,EAAmB7N,EAAGmM,K,gCCL/B,IAAI+B,EAA6B,GAAG5G,qBAChCl8B,EAA2BjB,OAAOiB,yBAGlC+iC,EAAc/iC,IAA6B8iC,EAA2Bl1B,KAAK,CAAEo1B,EAAG,GAAK,GAIzF50B,EAAQ+lB,EAAI4O,EAAc,SAA8BE,GACtD,IAAI3H,EAAat7B,EAAyBqR,KAAM4xB,GAChD,QAAS3H,GAAcA,EAAWr8B,YAChC6jC,G,qBCXJ,IAAItN,EAAW,EAAQ,MACnB0N,EAAqB,EAAQ,MAKjC/0B,EAAOC,QAAUrP,OAAO+U,iBAAmB,aAAe,GAAK,WAC7D,IAEIqvB,EAFAC,GAAiB,EACjBla,EAAO,GAEX,KACEia,EAASpkC,OAAOiB,yBAAyBjB,OAAOiK,UAAW,aAAaqzB,KACjEzuB,KAAKsb,EAAM,IAClBka,EAAiBla,aAAgB3b,MACjC,MAAO6E,IACT,OAAO,SAAwBwiB,EAAGnpB,GAKhC,OAJA+pB,EAASZ,GACTsO,EAAmBz3B,GACf23B,EAAgBD,EAAOv1B,KAAKgnB,EAAGnpB,GAC9BmpB,EAAE7gB,UAAYtI,EACZmpB,GAdoD,QAgBzDnzB,I,iCCtBN,IAAIu0B,EAAwB,EAAQ,MAChC6E,EAAU,EAAQ,KAItB1sB,EAAOC,QAAU4nB,EAAwB,GAAGpyB,SAAW,WACrD,MAAO,WAAai3B,EAAQxpB,MAAQ,M,qBCPtC,IAAIypB,EAAa,EAAQ,MACrBuI,EAA4B,EAAQ,MACpCnD,EAA8B,EAAQ,MACtC1K,EAAW,EAAQ,MAGvBrnB,EAAOC,QAAU0sB,EAAW,UAAW,YAAc,SAAiBjH,GACpE,IAAIl0B,EAAO0jC,EAA0BlP,EAAEqB,EAAS3B,IAC5Cj0B,EAAwBsgC,EAA4B/L,EACxD,OAAOv0B,EAAwBD,EAAKE,OAAOD,EAAsBi0B,IAAOl0B,I,oBCT1E,IAAI6J,EAAS,EAAQ,MAErB2E,EAAOC,QAAU5E,G,iBCFjB2E,EAAOC,QAAU,SAAUjC,GACzB,IACE,MAAO,CAAEiG,OAAO,EAAOtT,MAAOqN,KAC9B,MAAOiG,GACP,MAAO,CAAEA,OAAO,EAAMtT,MAAOsT,M,qBCJjC,IAAIojB,EAAW,EAAQ,MACnBhqB,EAAW,EAAQ,KACnB83B,EAAuB,EAAQ,MAEnCn1B,EAAOC,QAAU,SAAUymB,EAAGxpB,GAE5B,GADAmqB,EAASX,GACLrpB,EAASH,IAAMA,EAAEtC,cAAgB8rB,EAAG,OAAOxpB,EAC/C,IAAIk4B,EAAoBD,EAAqBnP,EAAEU,GAG/C,OADA/iB,EADcyxB,EAAkBzxB,SACxBzG,GACDk4B,EAAkBte,U,qBCV3B,IAAIsS,EAAW,EAAQ,MAEvBppB,EAAOC,QAAU,SAAU/O,EAAQ0B,EAAK0J,GACtC,IAAK,IAAI5L,KAAOkC,EAAKw2B,EAASl4B,EAAQR,EAAKkC,EAAIlC,GAAM4L,GACrD,OAAOpL,I,qBCJT,IAAImK,EAAS,EAAQ,MACjB8tB,EAA8B,EAAQ,MACtChB,EAAM,EAAQ,MACd2E,EAAY,EAAQ,MACpBmB,EAAgB,EAAQ,MACxBoH,EAAsB,EAAQ,MAE9BC,EAAmBD,EAAoB5K,IACvC8K,EAAuBF,EAAoBtG,QAC3CyG,EAAW7P,OAAOA,QAAQ9vB,MAAM,WAEnCmK,EAAOC,QAAU,SAAUwmB,EAAG/1B,EAAKC,EAAO2L,GACzC,IAGIoF,EAHA+zB,IAASn5B,KAAYA,EAAQm5B,OAC7BC,IAASp5B,KAAYA,EAAQxL,WAC7By8B,IAAcjxB,KAAYA,EAAQixB,YAElB,mBAAT58B,IACS,iBAAPD,GAAoBy3B,EAAIx3B,EAAO,SACxCw4B,EAA4Bx4B,EAAO,OAAQD,IAE7CgR,EAAQ6zB,EAAqB5kC,IAClBW,SACToQ,EAAMpQ,OAASkkC,EAAS5b,KAAmB,iBAAPlpB,EAAkBA,EAAM,MAG5D+1B,IAAMprB,GAIEo6B,GAEAlI,GAAe9G,EAAE/1B,KAC3BglC,GAAS,UAFFjP,EAAE/1B,GAIPglC,EAAQjP,EAAE/1B,GAAOC,EAChBw4B,EAA4B1C,EAAG/1B,EAAKC,IATnC+kC,EAAQjP,EAAE/1B,GAAOC,EAChBm8B,EAAUp8B,EAAKC,KAUrB2W,SAASzM,UAAW,YAAY,WACjC,MAAsB,mBAARqI,MAAsBoyB,EAAiBpyB,MAAM5R,QAAU28B,EAAc/qB,U,iBCpCrFlD,EAAOC,QAAU,SAAUylB,GACzB,GAAUpyB,MAANoyB,EAAiB,MAAM9lB,UAAU,wBAA0B8lB,GAC/D,OAAOA,I,qBCJT,IAAIrqB,EAAS,EAAQ,MACjB8tB,EAA8B,EAAQ,MAE1CnpB,EAAOC,QAAU,SAAUvP,EAAKC,GAC9B,IACEw4B,EAA4B9tB,EAAQ3K,EAAKC,GACzC,MAAOsT,GACP5I,EAAO3K,GAAOC,EACd,OAAOA,I,kCCPX,IAAIg8B,EAAa,EAAQ,MACrB9G,EAAuB,EAAQ,MAC/BD,EAAkB,EAAQ,MAC1BiD,EAAc,EAAQ,MAEtB8M,EAAU/P,EAAgB,WAE9B5lB,EAAOC,QAAU,SAAU21B,GACzB,IAAIta,EAAcqR,EAAWiJ,GACzB/kC,EAAiBg1B,EAAqBG,EAEtC6C,GAAevN,IAAgBA,EAAYqa,IAC7C9kC,EAAeyqB,EAAaqa,EAAS,CACnC5kC,cAAc,EACd05B,IAAK,WAAc,OAAOvnB,U,qBCfhC,IAAIrS,EAAiB,UACjBs3B,EAAM,EAAQ,MAGdJ,EAFkB,EAAQ,KAEVnC,CAAgB,eAEpC5lB,EAAOC,QAAU,SAAUylB,EAAImQ,EAAKxI,GAC9B3H,IAAOyC,EAAIzC,EAAK2H,EAAS3H,EAAKA,EAAG7qB,UAAWktB,IAC9Cl3B,EAAe60B,EAAIqC,EAAe,CAAEh3B,cAAc,EAAMJ,MAAOklC,M,qBCRnE,IAAIxH,EAAS,EAAQ,MACjByH,EAAM,EAAQ,MAEdtkC,EAAO68B,EAAO,QAElBruB,EAAOC,QAAU,SAAUvP,GACzB,OAAOc,EAAKd,KAASc,EAAKd,GAAOolC,EAAIplC,M,qBCNvC,IAAI2K,EAAS,EAAQ,MACjByxB,EAAY,EAAQ,MAEpBiJ,EAAS,qBACTpqB,EAAQtQ,EAAO06B,IAAWjJ,EAAUiJ,EAAQ,IAEhD/1B,EAAOC,QAAU0L,G,qBCNjB,IAAI0d,EAAU,EAAQ,MAClB1d,EAAQ,EAAQ,OAEnB3L,EAAOC,QAAU,SAAUvP,EAAKC,GAC/B,OAAOgb,EAAMjb,KAASib,EAAMjb,QAAiB4C,IAAV3C,EAAsBA,EAAQ,MAChE,WAAY,IAAI4G,KAAK,CACtB8lB,QAAS,QACT2Y,KAAM3M,EAAU,OAAS,SACzB4M,UAAW,0C,qBCRb,IAAI5O,EAAW,EAAQ,MACnBoG,EAAY,EAAQ,MAGpBkI,EAFkB,EAAQ,KAEhB/P,CAAgB,WAI9B5lB,EAAOC,QAAU,SAAUwmB,EAAGyP,GAC5B,IACIzD,EADA/L,EAAIW,EAASZ,GAAG7rB,YAEpB,YAAatH,IAANozB,GAAiDpzB,OAA7Bm/B,EAAIpL,EAASX,GAAGiP,IAAyBO,EAAqBzI,EAAUgF,K,qBCXrG,IAAI0D,EAAY,EAAQ,MACpBC,EAAyB,EAAQ,MAGjCpP,EAAe,SAAUqP,GAC3B,OAAO,SAAUnP,EAAOoP,GACtB,IAGIC,EAAOC,EAHP/D,EAAI9M,OAAOyQ,EAAuBlP,IAClC1L,EAAW2a,EAAUG,GACrBG,EAAOhE,EAAEphC,OAEb,OAAImqB,EAAW,GAAKA,GAAYib,EAAaJ,EAAoB,QAAK/iC,GACtEijC,EAAQ9D,EAAEiE,WAAWlb,IACN,OAAU+a,EAAQ,OAAU/a,EAAW,IAAMib,IACtDD,EAAS/D,EAAEiE,WAAWlb,EAAW,IAAM,OAAUgb,EAAS,MAC1DH,EAAoB5D,EAAErsB,OAAOoV,GAAY+a,EACzCF,EAAoB5D,EAAEpsB,MAAMmV,EAAUA,EAAW,GAA+Bgb,EAAS,OAAlCD,EAAQ,OAAU,IAA0B,QAI7Gv2B,EAAOC,QAAU,CAGf02B,OAAQ3P,GAAa,GAGrB5gB,OAAQ4gB,GAAa,K,oBCzBvB,IAiBI4P,EAAOC,EAASC,EAjBhBz7B,EAAS,EAAQ,MACjBgtB,EAAQ,EAAQ,MAChBpI,EAAO,EAAQ,MACf4S,EAAO,EAAQ,KACfn7B,EAAgB,EAAQ,KACxBm5B,EAAS,EAAQ,MACjBE,EAAU,EAAQ,MAElB73B,EAAWmC,EAAOnC,SAClBg1B,EAAM7yB,EAAO07B,aACbC,EAAQ37B,EAAO47B,eACfvnB,EAAUrU,EAAOqU,QACjBwnB,EAAiB77B,EAAO67B,eACxBC,EAAW97B,EAAO87B,SAClBC,EAAU,EACVtoB,EAAQ,GAIRuoB,EAAM,SAAUrhC,GAElB,GAAI8Y,EAAMpW,eAAe1C,GAAK,CAC5B,IAAI+J,EAAK+O,EAAM9Y,UACR8Y,EAAM9Y,GACb+J,MAIAu3B,EAAS,SAAUthC,GACrB,OAAO,WACLqhC,EAAIrhC,KAIJsT,EAAW,SAAU1V,GACvByjC,EAAIzjC,EAAMH,OAGR8jC,EAAO,SAAUvhC,GAEnBqF,EAAOm8B,YAAYxhC,EAAK,GAAIkD,EAASu+B,SAAW,KAAOv+B,EAASw+B,OAI7DxJ,GAAQ8I,IACX9I,EAAM,SAAsBnuB,GAG1B,IAFA,IAAI6H,EAAO,GACPzW,EAAI,EACDC,UAAUC,OAASF,GAAGyW,EAAKrQ,KAAKnG,UAAUD,MAMjD,OALA2d,IAAQsoB,GAAW,YAEH,mBAANr3B,EAAmBA,EAAKuH,SAASvH,IAAK8H,WAAMvU,EAAWsU,IAEjEgvB,EAAMQ,GACCA,GAETJ,EAAQ,SAAwBhhC,UACvB8Y,EAAM9Y,IAGX+6B,EACF6F,EAAQ,SAAU5gC,GAChB0Z,EAAQ6hB,SAAS+F,EAAOthC,KAGjBmhC,GAAYA,EAASQ,IAC9Bf,EAAQ,SAAU5gC,GAChBmhC,EAASQ,IAAIL,EAAOthC,KAIbkhC,IAAmBrG,GAE5BiG,GADAD,EAAU,IAAIK,GACCU,MACff,EAAQgB,MAAMC,UAAYxuB,EAC1BstB,EAAQ3W,EAAK6W,EAAKU,YAAaV,EAAM,IAIrCz7B,EAAO08B,kBACe,mBAAfP,cACNn8B,EAAO28B,eACR9+B,GAAkC,UAAtBA,EAASu+B,WACpBpP,EAAMkP,IAEPX,EAAQW,EACRl8B,EAAO08B,iBAAiB,UAAWzuB,GAAU,IAG7CstB,EAzEqB,uBAwEUl/B,EAAc,UACrC,SAAU1B,GAChB68B,EAAKgB,YAAYn8B,EAAc,WAA6B,mBAAI,WAC9Dm7B,EAAKoF,YAAY/0B,MACjBm0B,EAAIrhC,KAKA,SAAUA,GAChB6X,WAAWypB,EAAOthC,GAAK,KAK7BgK,EAAOC,QAAU,CACfiuB,IAAKA,EACL8I,MAAOA,I,qBCzGT,IAAIb,EAAY,EAAQ,MAEpB+B,EAAM7hC,KAAK6hC,IACXC,EAAM9hC,KAAK8hC,IAKfn4B,EAAOC,QAAU,SAAU1J,EAAOlF,GAChC,IAAI+mC,EAAUjC,EAAU5/B,GACxB,OAAO6hC,EAAU,EAAIF,EAAIE,EAAU/mC,EAAQ,GAAK8mC,EAAIC,EAAS/mC,K,qBCT/D,IAAI4gC,EAAgB,EAAQ,MACxBmE,EAAyB,EAAQ,MAErCp2B,EAAOC,QAAU,SAAUylB,GACzB,OAAOuM,EAAcmE,EAAuB1Q,M,iBCL9C,IAAI2S,EAAOhiC,KAAKgiC,KACZC,EAAQjiC,KAAKiiC,MAIjBt4B,EAAOC,QAAU,SAAUs4B,GACzB,OAAOlzB,MAAMkzB,GAAYA,GAAY,GAAKA,EAAW,EAAID,EAAQD,GAAME,K,qBCNzE,IAAIpC,EAAY,EAAQ,MAEpBgC,EAAM9hC,KAAK8hC,IAIfn4B,EAAOC,QAAU,SAAUs4B,GACzB,OAAOA,EAAW,EAAIJ,EAAIhC,EAAUoC,GAAW,kBAAoB,I,qBCPrE,IAAInC,EAAyB,EAAQ,MAIrCp2B,EAAOC,QAAU,SAAUs4B,GACzB,OAAO3nC,OAAOwlC,EAAuBmC,M,qBCLvC,IAAIl7B,EAAW,EAAQ,KAMvB2C,EAAOC,QAAU,SAAUlF,EAAOy9B,GAChC,IAAKn7B,EAAStC,GAAQ,OAAOA,EAC7B,IAAIgF,EAAI2V,EACR,GAAI8iB,GAAoD,mBAAxBz4B,EAAKhF,EAAMtF,YAA4B4H,EAASqY,EAAM3V,EAAGN,KAAK1E,IAAS,OAAO2a,EAC9G,GAAmC,mBAAvB3V,EAAKhF,EAAM09B,WAA2Bp7B,EAASqY,EAAM3V,EAAGN,KAAK1E,IAAS,OAAO2a,EACzF,IAAK8iB,GAAoD,mBAAxBz4B,EAAKhF,EAAMtF,YAA4B4H,EAASqY,EAAM3V,EAAGN,KAAK1E,IAAS,OAAO2a,EAC/G,MAAM9V,UAAU,6C,qBCZlB,IAGImb,EAAO,GAEXA,EALsB,EAAQ,KAEV6K,CAAgB,gBAGd,IAEtB5lB,EAAOC,QAA2B,eAAjB0lB,OAAO5K,I,iBCPxB,IAAI/kB,EAAK,EACL0iC,EAAUriC,KAAK2I,SAEnBgB,EAAOC,QAAU,SAAUvP,GACzB,MAAO,UAAYi1B,YAAeryB,IAAR5C,EAAoB,GAAKA,GAAO,QAAUsF,EAAK0iC,GAASjjC,SAAS,M,qBCJ7F,IAAIkjC,EAAgB,EAAQ,KAE5B34B,EAAOC,QAAU04B,IAEXj+B,OAAO8yB,MACkB,iBAAnB9yB,OAAOC,U,qBCLnB,IAAIU,EAAS,EAAQ,MACjBgzB,EAAS,EAAQ,MACjBlG,EAAM,EAAQ,MACd2N,EAAM,EAAQ,MACd6C,EAAgB,EAAQ,KACxBC,EAAoB,EAAQ,MAE5BC,EAAwBxK,EAAO,OAC/B3zB,EAASW,EAAOX,OAChBo+B,EAAwBF,EAAoBl+B,EAASA,GAAUA,EAAOq+B,eAAiBjD,EAE3F91B,EAAOC,QAAU,SAAUtL,GAIvB,OAHGwzB,EAAI0Q,EAAuBlkC,KAC1BgkC,GAAiBxQ,EAAIztB,EAAQ/F,GAAOkkC,EAAsBlkC,GAAQ+F,EAAO/F,GACxEkkC,EAAsBlkC,GAAQmkC,EAAsB,UAAYnkC,IAC9DkkC,EAAsBlkC,K,kCCdjC,IAAIs0B,EAAI,EAAQ,MACZ1rB,EAAiB,EAAQ,MACzBoI,EAAiB,EAAQ,MACzBrE,EAAS,EAAQ,IACjB6nB,EAA8B,EAAQ,MACtCZ,EAA2B,EAAQ,MACnCyQ,EAAU,EAAQ,KAElBC,EAAkB,SAAwBC,EAAQC,GACpD,IAAIzL,EAAOxqB,KACX,KAAMwqB,aAAgBuL,GAAkB,OAAO,IAAIA,EAAgBC,EAAQC,GACvExzB,IAEF+nB,EAAO/nB,EAAe,IAAI7O,WAAMxD,GAAYiK,EAAemwB,UAE7Cp6B,IAAZ6lC,GAAuBhQ,EAA4BuE,EAAM,UAAW/H,OAAOwT,IAC/E,IAAIC,EAAc,GAGlB,OAFAJ,EAAQE,EAAQE,EAAY7hC,KAAM,CAAEm2B,KAAM0L,IAC1CjQ,EAA4BuE,EAAM,SAAU0L,GACrC1L,GAGTuL,EAAgBp+B,UAAYyG,EAAOxK,MAAM+D,UAAW,CAClDD,YAAa2tB,EAAyB,EAAG0Q,GACzCE,QAAS5Q,EAAyB,EAAG,IACrC5zB,KAAM4zB,EAAyB,EAAG,oBAKpCU,EAAE,CAAE5tB,QAAQ,GAAQ,CAClBg+B,eAAgBJ,K,qBChClB,IAAIhQ,EAAI,EAAQ,MACZvpB,EAAO,EAAQ,MASnBupB,EAAE,CAAE/3B,OAAQ,QAASo8B,MAAM,EAAM9C,QARC,EAAQ,KAEf8O,EAA4B,SAAUn0B,GAC/D/F,MAAMM,KAAKyF,OAKmD,CAC9DzF,KAAMA,K,kCCVR,IAAIupB,EAAI,EAAQ,MACZsQ,EAAY,iBACZC,EAAmB,EAAQ,MAI/BvQ,EAAE,CAAE/3B,OAAQ,QAASoM,OAAO,GAAQ,CAClCgP,SAAU,SAAkB6a,GAC1B,OAAOoS,EAAUr2B,KAAMikB,EAAI/1B,UAAUC,OAAS,EAAID,UAAU,QAAKkC,MAKrEkmC,EAAiB,a,kCCbjB,IAAI1S,EAAkB,EAAQ,MAC1B0S,EAAmB,EAAQ,MAC3B/Q,EAAY,EAAQ,MACpB4M,EAAsB,EAAQ,MAC9BoE,EAAiB,EAAQ,KAEzBC,EAAiB,iBACjBC,EAAmBtE,EAAoBnH,IACvCoH,EAAmBD,EAAoBrG,UAAU0K,GAYrD15B,EAAOC,QAAUw5B,EAAer6B,MAAO,SAAS,SAAUw6B,EAAUC,GAClEF,EAAiBz2B,KAAM,CACrBP,KAAM+2B,EACNxoC,OAAQ41B,EAAgB8S,GACxBrjC,MAAO,EACPsjC,KAAMA,OAIP,WACD,IAAIn4B,EAAQ4zB,EAAiBpyB,MACzBhS,EAASwQ,EAAMxQ,OACf2oC,EAAOn4B,EAAMm4B,KACbtjC,EAAQmL,EAAMnL,QAClB,OAAKrF,GAAUqF,GAASrF,EAAOG,QAC7BqQ,EAAMxQ,YAASoC,EACR,CAAE3C,WAAO2C,EAAWsP,MAAM,IAEvB,QAARi3B,EAAuB,CAAElpC,MAAO4F,EAAOqM,MAAM,GACrC,UAARi3B,EAAyB,CAAElpC,MAAOO,EAAOqF,GAAQqM,MAAM,GACpD,CAAEjS,MAAO,CAAC4F,EAAOrF,EAAOqF,IAASqM,MAAM,KAC7C,UAKH6lB,EAAUqR,UAAYrR,EAAUrpB,MAGhCo6B,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,Y,qBCpDjB,IAAIvQ,EAAI,EAAQ,MACZjb,EAAS,EAAQ,MAIrBib,EAAE,CAAE/3B,OAAQ,SAAUo8B,MAAM,EAAM9C,OAAQ55B,OAAOod,SAAWA,GAAU,CACpEA,OAAQA,K,qBCNV,IAAI6Z,EAAwB,EAAQ,MAChCuB,EAAW,EAAQ,MACnB3zB,EAAW,EAAQ,KAIlBoyB,GACHuB,EAASx4B,OAAOiK,UAAW,WAAYpF,EAAU,CAAEggC,QAAQ,K,kCCN7D,IAAIxM,EAAI,EAAQ,MACZwE,EAAY,EAAQ,MACpBsM,EAA6B,EAAQ,MACrCC,EAAU,EAAQ,MAClBhB,EAAU,EAAQ,KAItB/P,EAAE,CAAE/3B,OAAQ,UAAWo8B,MAAM,GAAQ,CACnC2M,WAAY,SAAoB90B,GAC9B,IAAIuhB,EAAIxjB,KACJg3B,EAAaH,EAA2B/T,EAAEU,GAC1C/iB,EAAUu2B,EAAWv2B,QACrBC,EAASs2B,EAAWt2B,OACpBC,EAASm2B,GAAQ,WACnB,IAAIG,EAAiB1M,EAAU/G,EAAE/iB,SAC7BN,EAAS,GACT+zB,EAAU,EACVgD,EAAY,EAChBpB,EAAQ7zB,GAAU,SAAU2R,GAC1B,IAAIvgB,EAAQ6gC,IACRiD,GAAgB,EACpBh3B,EAAO9L,UAAKjE,GACZ8mC,IACAD,EAAe16B,KAAKinB,EAAG5P,GAAS/S,MAAK,SAAUpT,GACzC0pC,IACJA,GAAgB,EAChBh3B,EAAO9M,GAAS,CAAE6lB,OAAQ,YAAazrB,MAAOA,KAC5CypC,GAAaz2B,EAAQN,OACtB,SAAUY,GACPo2B,IACJA,GAAgB,EAChBh3B,EAAO9M,GAAS,CAAE6lB,OAAQ,WAAYpG,OAAQ/R,KAC5Cm2B,GAAaz2B,EAAQN,YAGzB+2B,GAAaz2B,EAAQN,MAGzB,OADIQ,EAAOI,OAAOL,EAAOC,EAAOlT,OACzBupC,EAAWpjB,Y,kCCvCtB,IAAImS,EAAI,EAAQ,MACZwE,EAAY,EAAQ,MACpBd,EAAa,EAAQ,MACrBoN,EAA6B,EAAQ,MACrCC,EAAU,EAAQ,MAClBhB,EAAU,EAAQ,KAElBsB,EAAoB,0BAIxBrR,EAAE,CAAE/3B,OAAQ,UAAWo8B,MAAM,GAAQ,CACnCiN,IAAK,SAAap1B,GAChB,IAAIuhB,EAAIxjB,KACJg3B,EAAaH,EAA2B/T,EAAEU,GAC1C/iB,EAAUu2B,EAAWv2B,QACrBC,EAASs2B,EAAWt2B,OACpBC,EAASm2B,GAAQ,WACnB,IAAIG,EAAiB1M,EAAU/G,EAAE/iB,SAC7Bu1B,EAAS,GACT9B,EAAU,EACVgD,EAAY,EACZI,GAAkB,EACtBxB,EAAQ7zB,GAAU,SAAU2R,GAC1B,IAAIvgB,EAAQ6gC,IACRqD,GAAkB,EACtBvB,EAAO3hC,UAAKjE,GACZ8mC,IACAD,EAAe16B,KAAKinB,EAAG5P,GAAS/S,MAAK,SAAUpT,GACzC8pC,GAAmBD,IACvBA,GAAkB,EAClB72B,EAAQhT,OACP,SAAUsT,GACPw2B,GAAmBD,IACvBC,GAAkB,EAClBvB,EAAO3iC,GAAS0N,IACdm2B,GAAax2B,EAAO,IAAK+oB,EAAW,kBAAhB,CAAmCuM,EAAQoB,aAGnEF,GAAax2B,EAAO,IAAK+oB,EAAW,kBAAhB,CAAmCuM,EAAQoB,OAGnE,OADIz2B,EAAOI,OAAOL,EAAOC,EAAOlT,OACzBupC,EAAWpjB,Y,kCC1CtB,IAAImS,EAAI,EAAQ,MACZI,EAAU,EAAQ,MAClBqR,EAAgB,EAAQ,MACxBrS,EAAQ,EAAQ,MAChBsE,EAAa,EAAQ,MACrBgO,EAAqB,EAAQ,MAC7BR,EAAiB,EAAQ,MACzB/Q,EAAW,EAAQ,MASvBH,EAAE,CAAE/3B,OAAQ,UAAWoM,OAAO,EAAMs9B,MAAM,EAAMpQ,SAN5BkQ,GAAiBrS,GAAM,WACzCqS,EAAc7/B,UAAmB,QAAE4E,KAAK,CAAEsE,KAAM,eAA+B,mBAKV,CACrE,QAAW,SAAU82B,GACnB,IAAInU,EAAIiU,EAAmBz3B,KAAMypB,EAAW,YACxC1vB,EAAiC,mBAAb49B,EACxB,OAAO33B,KAAKa,KACV9G,EAAa,SAAUC,GACrB,OAAOi9B,EAAezT,EAAGmU,KAAa92B,MAAK,WAAc,OAAO7G,MAC9D29B,EACJ59B,EAAa,SAAU/B,GACrB,OAAOi/B,EAAezT,EAAGmU,KAAa92B,MAAK,WAAc,MAAM7I,MAC7D2/B,MAMLxR,GAAmC,mBAAjBqR,GAAgCA,EAAc7/B,UAAmB,SACtFuuB,EAASsR,EAAc7/B,UAAW,UAAW8xB,EAAW,WAAW9xB,UAAmB,U,kCCjCxF,IAiDIigC,EAAUC,EAAsBC,EAAgBC,EAjDhDhS,EAAI,EAAQ,MACZI,EAAU,EAAQ,MAClBhuB,EAAS,EAAQ,MACjBsxB,EAAa,EAAQ,MACrB+N,EAAgB,EAAQ,MACxBtR,EAAW,EAAQ,MACnB8R,EAAc,EAAQ,MACtB1S,EAAiB,EAAQ,MACzB2S,EAAa,EAAQ,MACrB99B,EAAW,EAAQ,KACnBowB,EAAY,EAAQ,MACpB2N,EAAa,EAAQ,MACrBnN,EAAgB,EAAQ,MACxB+K,EAAU,EAAQ,KAClBM,EAA8B,EAAQ,MACtCqB,EAAqB,EAAQ,MAC7BhiC,EAAO,WACP0iC,EAAY,EAAQ,MACpBlB,EAAiB,EAAQ,MACzBmB,EAAmB,EAAQ,KAC3BvB,EAA6B,EAAQ,MACrCC,EAAU,EAAQ,MAClB3E,EAAsB,EAAQ,MAC9BrI,EAAW,EAAQ,MACnBpH,EAAkB,EAAQ,MAC1BmL,EAAU,EAAQ,MAClBwK,EAAa,EAAQ,MAErB5F,EAAU/P,EAAgB,WAC1B4V,EAAU,UACVlG,EAAmBD,EAAoB5K,IACvCkP,EAAmBtE,EAAoBnH,IACvCuN,EAA0BpG,EAAoBrG,UAAUwM,GACxDE,EAAqBhB,EACrB96B,EAAYvE,EAAOuE,UACnBlN,EAAW2I,EAAO3I,SAClBgd,EAAUrU,EAAOqU,QACjBisB,EAAShP,EAAW,SACpBwI,EAAuB4E,EAA2B/T,EAClD4V,EAA8BzG,EAC9B0G,KAAoBnpC,GAAYA,EAASopC,aAAezgC,EAAO0gC,eAC/DC,EAAyD,mBAAzBC,sBAChCC,EAAsB,qBAStBrS,EAASmD,EAASwO,GAAS,WAE7B,GAD6BvN,EAAcyN,KAAwB/V,OAAO+V,GAC7C,CAI3B,GAAmB,KAAfH,EAAmB,OAAO,EAE9B,IAAKxK,IAAYiL,EAAwB,OAAO,EAGlD,GAAI3S,IAAYqS,EAAmB7gC,UAAmB,QAAG,OAAO,EAIhE,GAAI0gC,GAAc,IAAM,cAAcxgB,KAAK2gB,GAAqB,OAAO,EAEvE,IAAI5kB,EAAU4kB,EAAmB/3B,QAAQ,GACrCw4B,EAAc,SAAUn+B,GAC1BA,GAAK,eAA6B,gBAIpC,OAFkB8Y,EAAQlc,YAAc,IAC5B+6B,GAAWwG,IACdrlB,EAAQ/S,MAAK,yBAAwCo4B,MAG5DC,EAAsBvS,IAAWyP,GAA4B,SAAUn0B,GACzEu2B,EAAmBrqB,IAAIlM,GAAiB,OAAE,kBAIxCk3B,EAAa,SAAU3W,GACzB,IAAI3hB,EACJ,SAAO1G,EAASqoB,IAAkC,mBAAnB3hB,EAAO2hB,EAAG3hB,QAAsBA,GAG7D0sB,EAAS,SAAU/uB,EAAO46B,GAC5B,IAAI56B,EAAM66B,SAAV,CACA76B,EAAM66B,UAAW,EACjB,IAAI7wB,EAAQhK,EAAM86B,UAClBnB,GAAU,WAKR,IAJA,IAAI1qC,EAAQ+Q,EAAM/Q,MACd8rC,EAhDQ,GAgDH/6B,EAAMA,MACXnL,EAAQ,EAELmV,EAAMra,OAASkF,GAAO,CAC3B,IAKIsN,EAAQE,EAAM24B,EALdC,EAAWjxB,EAAMnV,KACjBstB,EAAU4Y,EAAKE,EAASF,GAAKE,EAASC,KACtCj5B,EAAUg5B,EAASh5B,QACnBC,EAAS+4B,EAAS/4B,OAClB3L,EAAS0kC,EAAS1kC,OAEtB,IACM4rB,GACG4Y,IAzDC,IA0DA/6B,EAAMm7B,WAAyBC,GAAkBp7B,GACrDA,EAAMm7B,UA5DJ,IA8DY,IAAZhZ,EAAkBhgB,EAASlT,GAEzBsH,GAAQA,EAAOq5B,QACnBztB,EAASggB,EAAQlzB,GACbsH,IACFA,EAAOo5B,OACPqL,GAAS,IAGT74B,IAAW84B,EAAS7lB,QACtBlT,EAAOhE,EAAU,yBACRmE,EAAOs4B,EAAWx4B,IAC3BE,EAAKtE,KAAKoE,EAAQF,EAASC,GACtBD,EAAQE,IACVD,EAAOjT,GACd,MAAOsT,GACHhM,IAAWykC,GAAQzkC,EAAOo5B,OAC9BztB,EAAOK,IAGXvC,EAAM86B,UAAY,GAClB96B,EAAM66B,UAAW,EACbD,IAAa56B,EAAMm7B,WAAWE,GAAYr7B,QAI9Cq6B,EAAgB,SAAUpnC,EAAMmiB,EAASd,GAC3C,IAAIpiB,EAAOiwB,EACPgY,IACFjoC,EAAQlB,EAASopC,YAAY,UACvBhlB,QAAUA,EAChBljB,EAAMoiB,OAASA,EACfpiB,EAAMopC,UAAUroC,GAAM,GAAO,GAC7B0G,EAAO0gC,cAAcnoC,IAChBA,EAAQ,CAAEkjB,QAASA,EAASd,OAAQA,IACtCgmB,IAA2BnY,EAAUxoB,EAAO,KAAO1G,IAAQkvB,EAAQjwB,GAC/De,IAASunC,GAAqBZ,EAAiB,8BAA+BtlB,IAGrF+mB,GAAc,SAAUr7B,GAC1B/I,EAAK8G,KAAKpE,GAAQ,WAChB,IAGIwI,EAHAiT,EAAUpV,EAAMmtB,OAChBl+B,EAAQ+Q,EAAM/Q,MAGlB,GAFmBssC,GAAYv7B,KAG7BmC,EAASm2B,GAAQ,WACXjJ,EACFrhB,EAAQwtB,KAAK,qBAAsBvsC,EAAOmmB,GACrCilB,EAAcG,EAAqBplB,EAASnmB,MAGrD+Q,EAAMm7B,UAAY9L,GAAWkM,GAAYv7B,GAjH/B,EADF,EAmHJmC,EAAOI,OAAO,MAAMJ,EAAOlT,UAKjCssC,GAAc,SAAUv7B,GAC1B,OAzHY,IAyHLA,EAAMm7B,YAA0Bn7B,EAAM0vB,QAG3C0L,GAAoB,SAAUp7B,GAChC/I,EAAK8G,KAAKpE,GAAQ,WAChB,IAAIyb,EAAUpV,EAAMmtB,OAChBkC,EACFrhB,EAAQwtB,KAAK,mBAAoBpmB,GAC5BilB,EArIa,mBAqIoBjlB,EAASpV,EAAM/Q,WAIvDsvB,GAAO,SAAUlgB,EAAI2B,EAAOy7B,GAC9B,OAAO,SAAUxsC,GACfoP,EAAG2B,EAAO/Q,EAAOwsC,KAIjBC,GAAiB,SAAU17B,EAAO/Q,EAAOwsC,GACvCz7B,EAAMkB,OACVlB,EAAMkB,MAAO,EACTu6B,IAAQz7B,EAAQy7B,GACpBz7B,EAAM/Q,MAAQA,EACd+Q,EAAMA,MAjJO,EAkJb+uB,EAAO/uB,GAAO,KAGZ27B,GAAkB,SAAU37B,EAAO/Q,EAAOwsC,GAC5C,IAAIz7B,EAAMkB,KAAV,CACAlB,EAAMkB,MAAO,EACTu6B,IAAQz7B,EAAQy7B,GACpB,IACE,GAAIz7B,EAAMmtB,SAAWl+B,EAAO,MAAMiP,EAAU,oCAC5C,IAAImE,EAAOs4B,EAAW1rC,GAClBoT,EACFs3B,GAAU,WACR,IAAIiC,EAAU,CAAE16B,MAAM,GACtB,IACEmB,EAAKtE,KAAK9O,EACRsvB,GAAKod,GAAiBC,EAAS57B,GAC/Bue,GAAKmd,GAAgBE,EAAS57B,IAEhC,MAAOuC,GACPm5B,GAAeE,EAASr5B,EAAOvC,QAInCA,EAAM/Q,MAAQA,EACd+Q,EAAMA,MA3KI,EA4KV+uB,EAAO/uB,GAAO,IAEhB,MAAOuC,GACPm5B,GAAe,CAAEx6B,MAAM,GAASqB,EAAOvC,MAKvCmoB,IAEF6R,EAAqB,SAAiB6B,GACpCnC,EAAWl4B,KAAMw4B,EAAoBF,GACrC/N,EAAU8P,GACVzC,EAASr7B,KAAKyD,MACd,IAAIxB,EAAQ4zB,EAAiBpyB,MAC7B,IACEq6B,EAAStd,GAAKod,GAAiB37B,GAAQue,GAAKmd,GAAgB17B,IAC5D,MAAOuC,GACPm5B,GAAe17B,EAAOuC,MAI1B62B,EAAW,SAAiByC,GAC1B5D,EAAiBz2B,KAAM,CACrBP,KAAM64B,EACN54B,MAAM,EACN25B,UAAU,EACVnL,QAAQ,EACRoL,UAAW,GACXK,WAAW,EACXn7B,MA3MQ,EA4MR/Q,WAAO2C,MAGFuH,UAAYqgC,EAAYQ,EAAmB7gC,UAAW,CAG7DkJ,KAAM,SAAcy5B,EAAaC,GAC/B,IAAI/7B,EAAQ+5B,EAAwBv4B,MAChCy5B,EAAWxH,EAAqBwF,EAAmBz3B,KAAMw4B,IAO7D,OANAiB,EAASF,GAA2B,mBAAfe,GAA4BA,EACjDb,EAASC,KAA4B,mBAAda,GAA4BA,EACnDd,EAAS1kC,OAAS84B,EAAUrhB,EAAQzX,YAAS3E,EAC7CoO,EAAM0vB,QAAS,EACf1vB,EAAM86B,UAAUjlC,KAAKolC,GAzNb,GA0NJj7B,EAAMA,OAAkB+uB,EAAO/uB,GAAO,GACnCi7B,EAAS7lB,SAIlB,MAAS,SAAU2mB,GACjB,OAAOv6B,KAAKa,UAAKzQ,EAAWmqC,MAGhC1C,EAAuB,WACrB,IAAIjkB,EAAU,IAAIgkB,EACdp5B,EAAQ4zB,EAAiBxe,GAC7B5T,KAAK4T,QAAUA,EACf5T,KAAKS,QAAUsc,GAAKod,GAAiB37B,GACrCwB,KAAKU,OAASqc,GAAKmd,GAAgB17B,IAErCq4B,EAA2B/T,EAAImP,EAAuB,SAAUzO,GAC9D,OAAOA,IAAMgV,GAAsBhV,IAAMsU,EACrC,IAAID,EAAqBrU,GACzBkV,EAA4BlV,IAG7B2C,GAAmC,mBAAjBqR,IACrBO,EAAaP,EAAc7/B,UAAUkJ,KAGrCqlB,EAASsR,EAAc7/B,UAAW,QAAQ,SAAc2iC,EAAaC,GACnE,IAAI/P,EAAOxqB,KACX,OAAO,IAAIw4B,GAAmB,SAAU/3B,EAASC,GAC/Cq3B,EAAWx7B,KAAKiuB,EAAM/pB,EAASC,MAC9BG,KAAKy5B,EAAaC,KAEpB,CAAEhI,QAAQ,IAGQ,mBAAVkG,GAAsB1S,EAAE,CAAE5tB,QAAQ,EAAMvK,YAAY,EAAM05B,QAAQ,GAAQ,CAEnFkT,MAAO,SAAe3iC,GACpB,OAAOo/B,EAAeuB,EAAoBC,EAAO9zB,MAAMxM,EAAQjK,iBAMvE63B,EAAE,CAAE5tB,QAAQ,EAAM0F,MAAM,EAAMypB,OAAQX,GAAU,CAC9C/jB,QAAS41B,IAGXlT,EAAekT,EAAoBF,GAAS,GAAO,GACnDL,EAAWK,GAEXR,EAAiBrO,EAAW6O,GAG5BvS,EAAE,CAAE/3B,OAAQsqC,EAASlO,MAAM,EAAM9C,OAAQX,GAAU,CAGjDjmB,OAAQ,SAAgB1E,GACtB,IAAIg7B,EAAa/E,EAAqBjyB,MAEtC,OADAg3B,EAAWt2B,OAAOnE,UAAKnM,EAAW4L,GAC3Bg7B,EAAWpjB,WAItBmS,EAAE,CAAE/3B,OAAQsqC,EAASlO,MAAM,EAAM9C,OAAQnB,GAAWQ,GAAU,CAG5DlmB,QAAS,SAAiBzG,GACxB,OAAOi9B,EAAe9Q,GAAWnmB,OAAS83B,EAAiBU,EAAqBx4B,KAAMhG,MAI1F+rB,EAAE,CAAE/3B,OAAQsqC,EAASlO,MAAM,EAAM9C,OAAQ4R,GAAuB,CAG9D/qB,IAAK,SAAalM,GAChB,IAAIuhB,EAAIxjB,KACJg3B,EAAa/E,EAAqBzO,GAClC/iB,EAAUu2B,EAAWv2B,QACrBC,EAASs2B,EAAWt2B,OACpBC,EAASm2B,GAAQ,WACnB,IAAI2D,EAAkBlQ,EAAU/G,EAAE/iB,SAC9BN,EAAS,GACT+zB,EAAU,EACVgD,EAAY,EAChBpB,EAAQ7zB,GAAU,SAAU2R,GAC1B,IAAIvgB,EAAQ6gC,IACRiD,GAAgB,EACpBh3B,EAAO9L,UAAKjE,GACZ8mC,IACAuD,EAAgBl+B,KAAKinB,EAAG5P,GAAS/S,MAAK,SAAUpT,GAC1C0pC,IACJA,GAAgB,EAChBh3B,EAAO9M,GAAS5F,IACdypC,GAAaz2B,EAAQN,MACtBO,QAEHw2B,GAAaz2B,EAAQN,MAGzB,OADIQ,EAAOI,OAAOL,EAAOC,EAAOlT,OACzBupC,EAAWpjB,SAIpB8mB,KAAM,SAAcz4B,GAClB,IAAIuhB,EAAIxjB,KACJg3B,EAAa/E,EAAqBzO,GAClC9iB,EAASs2B,EAAWt2B,OACpBC,EAASm2B,GAAQ,WACnB,IAAI2D,EAAkBlQ,EAAU/G,EAAE/iB,SAClCq1B,EAAQ7zB,GAAU,SAAU2R,GAC1B6mB,EAAgBl+B,KAAKinB,EAAG5P,GAAS/S,KAAKm2B,EAAWv2B,QAASC,SAI9D,OADIC,EAAOI,OAAOL,EAAOC,EAAOlT,OACzBupC,EAAWpjB,Y,kCCzXtB,IAAI1Q,EAAS,eACTivB,EAAsB,EAAQ,MAC9BoE,EAAiB,EAAQ,KAEzBoE,EAAkB,kBAClBlE,EAAmBtE,EAAoBnH,IACvCoH,EAAmBD,EAAoBrG,UAAU6O,GAIrDpE,EAAe9T,OAAQ,UAAU,SAAUiU,GACzCD,EAAiBz2B,KAAM,CACrBP,KAAMk7B,EACNrO,OAAQ7J,OAAOiU,GACfrjC,MAAO,OAIR,WACD,IAGIunC,EAHAp8B,EAAQ4zB,EAAiBpyB,MACzBssB,EAAS9tB,EAAM8tB,OACfj5B,EAAQmL,EAAMnL,MAElB,OAAIA,GAASi5B,EAAOn+B,OAAe,CAAEV,WAAO2C,EAAWsP,MAAM,IAC7Dk7B,EAAQ13B,EAAOopB,EAAQj5B,GACvBmL,EAAMnL,OAASunC,EAAMzsC,OACd,CAAEV,MAAOmtC,EAAOl7B,MAAM,Q,qBC3B/B,IAAIvH,EAAS,EAAQ,MACjB0iC,EAAe,EAAQ,MACvBC,EAAuB,EAAQ,MAC/B7U,EAA8B,EAAQ,MACtCvD,EAAkB,EAAQ,MAE1B4B,EAAW5B,EAAgB,YAC3BmC,EAAgBnC,EAAgB,eAChCqY,EAAcD,EAAqB36B,OAEvC,IAAK,IAAI66B,KAAmBH,EAAc,CACxC,IAAII,EAAa9iC,EAAO6iC,GACpBE,EAAsBD,GAAcA,EAAWtjC,UACnD,GAAIujC,EAAqB,CAEvB,GAAIA,EAAoB5W,KAAcyW,EAAa,IACjD9U,EAA4BiV,EAAqB5W,EAAUyW,GAC3D,MAAOh6B,GACPm6B,EAAoB5W,GAAYyW,EAKlC,GAHKG,EAAoBrW,IACvBoB,EAA4BiV,EAAqBrW,EAAemW,GAE9DH,EAAaG,GAAkB,IAAK,IAAIG,KAAeL,EAEzD,GAAII,EAAoBC,KAAiBL,EAAqBK,GAAc,IAC1ElV,EAA4BiV,EAAqBC,EAAaL,EAAqBK,IACnF,MAAOp6B,GACPm6B,EAAoBC,GAAeL,EAAqBK,O,iBCiBhE,SAASC,EAAUC,EAAQve,GACzBue,EAAOC,OAAS,WACdt7B,KAAKu7B,QAAUv7B,KAAKs7B,OAAS,KAC7Bxe,EAAG,KAAMue,IAEXA,EAAOE,QAAU,WAGfv7B,KAAKu7B,QAAUv7B,KAAKs7B,OAAS,KAC7Bxe,EAAG,IAAIlpB,MAAM,kBAAoBoM,KAAKtQ,KAAM2rC,IAIhD,SAASG,EAASH,EAAQve,GACxBue,EAAOI,mBAAqB,WACH,YAAnBz7B,KAAK07B,YAA+C,UAAnB17B,KAAK07B,aAC1C17B,KAAKy7B,mBAAqB,KAC1B3e,EAAG,KAAMue,KA7Dbv+B,EAAOC,QAAU,SAAerN,EAAKS,EAAM2sB,GACzC,IAAIwQ,EAAO99B,SAAS89B,MAAQ99B,SAASiF,qBAAqB,QAAQ,GAC9D4mC,EAAS7rC,SAASgF,cAAc,UAEhB,mBAATrE,IACT2sB,EAAK3sB,EACLA,EAAO,IAGTA,EAAOA,GAAQ,GACf2sB,EAAKA,GAAM,aAEXue,EAAO57B,KAAOtP,EAAKsP,MAAQ,kBAC3B47B,EAAOM,QAAUxrC,EAAKwrC,SAAW,OACjCN,EAAO3mC,QAAQ,UAAWvE,MAASA,EAAKuE,MACxC2mC,EAAO3rC,IAAMA,EAETS,EAAKyrC,OAqBX,SAAuBP,EAAQO,GAC7B,IAAK,IAAIC,KAAQD,EACfP,EAAOS,aAAaD,EAAMD,EAAMC,IAtBhCE,CAAcV,EAAQlrC,EAAKyrC,OAGzBzrC,EAAKmmB,OACP+kB,EAAO/kB,KAAO,GAAKnmB,EAAKmmB,OAGd,WAAY+kB,EAASD,EAAWI,GACtCH,EAAQve,GAKTue,EAAOC,QACVF,EAASC,EAAQve,GAGnBwQ,EAAKqD,YAAY0K,K,8BC5BN,IAAIvY,EAAE/uB,EAAEioC,EAAEjhC,EAAE,GAAG,iBAAkBkhC,aAAa,mBAAoBA,YAAYxH,IAAI,CAAC,IAAIngC,EAAE2nC,YAAYl/B,EAAQm/B,aAAa,WAAW,OAAO5nC,EAAEmgC,WAAW,CAAC,IAAIhiC,EAAE8B,KAAKH,EAAE3B,EAAEgiC,MAAM13B,EAAQm/B,aAAa,WAAW,OAAOzpC,EAAEgiC,MAAMrgC,GAC3O,GAAG,oBAAqBD,QAAQ,mBAAoB6/B,eAAe,CAAC,IAAImI,EAAE,KAAKvgC,EAAE,KAAKwgC,EAAE,WAAW,GAAG,OAAOD,EAAE,IAAI,IAAInoC,EAAE+I,EAAQm/B,eAAeC,GAAE,EAAGnoC,GAAGmoC,EAAE,KAAK,MAAM9zB,GAAG,MAAMsC,WAAWyxB,EAAE,GAAG/zB,IAAKya,EAAE,SAAS9uB,GAAG,OAAOmoC,EAAExxB,WAAWmY,EAAE,EAAE9uB,IAAImoC,EAAEnoC,EAAE2W,WAAWyxB,EAAE,KAAKroC,EAAE,SAASC,EAAEqU,GAAGzM,EAAE+O,WAAW3W,EAAEqU,IAAI2zB,EAAE,WAAWK,aAAazgC,IAAImB,EAAQu/B,qBAAqB,WAAW,OAAM,GAAIvhC,EAAEgC,EAAQw/B,wBAAwB,iBAAiB,CAAC,IAAIviC,EAAE7F,OAAOwW,WAAW6xB,EAAEroC,OAAOkoC,aAAa,GAAG,oBAAqBzR,QAAQ,CAAC,IAAI6R,EAC7ftoC,OAAOuoC,qBAAqB,mBAAoBvoC,OAAOwoC,uBAAuB/R,QAAQ7pB,MAAM,sJAAsJ,mBAAoB07B,GAAG7R,QAAQ7pB,MAAM,qJAAqJ,IAAIkuB,GAAE,EAAGC,EAAE,KAAK1L,GAAG,EAAEoZ,EAAE,EAAEC,EAAE,EAAE9/B,EAAQu/B,qBAAqB,WAAW,OAAOv/B,EAAQm/B,gBAChgBW,GAAG9hC,EAAE,aAAagC,EAAQw/B,wBAAwB,SAASvoC,GAAG,EAAEA,GAAG,IAAIA,EAAE42B,QAAQ7pB,MAAM,mHAAmH67B,EAAE,EAAE5oC,EAAEb,KAAKiiC,MAAM,IAAIphC,GAAG,GAAG,IAAIoxB,EAAE,IAAI4O,eAAe8I,EAAE1X,EAAEsP,MAAMtP,EAAEuP,MAAMC,UAAU,WAAW,GAAG,OAAO1F,EAAE,CAAC,IAAIl7B,EAAE+I,EAAQm/B,eAAeW,EAAE7oC,EAAE4oC,EAAE,IAAI1N,GAAE,EAAGl7B,GAAG8oC,EAAExI,YAAY,OAAOrF,GAAE,EAAGC,EAAE,MAAM,MAAM7mB,GAAG,MAAMy0B,EAAExI,YAAY,MAAMjsB,QAAS4mB,GAAE,GAAInM,EAAE,SAAS9uB,GAAGk7B,EAAEl7B,EAAEi7B,IAAIA,GAAE,EAAG6N,EAAExI,YAAY,QAAQvgC,EAAE,SAASC,EAAEqU,GAAGmb,EACtfxpB,GAAE,WAAWhG,EAAE+I,EAAQm/B,kBAAiB7zB,IAAI2zB,EAAE,WAAWQ,EAAEhZ,GAAGA,GAAG,GAAG,SAASuZ,EAAE/oC,EAAEqU,GAAG,IAAItM,EAAE/H,EAAE7F,OAAO6F,EAAEK,KAAKgU,GAAGrU,EAAE,OAAO,CAAC,IAAIyjB,EAAE1b,EAAE,IAAI,EAAE/D,EAAEhE,EAAEyjB,GAAG,UAAG,IAASzf,GAAG,EAAEglC,EAAEhlC,EAAEqQ,IAA0B,MAAMrU,EAA7BA,EAAEyjB,GAAGpP,EAAErU,EAAE+H,GAAG/D,EAAE+D,EAAE0b,GAAgB,SAASwlB,EAAEjpC,GAAU,YAAO,KAAdA,EAAEA,EAAE,IAAqB,KAAKA,EAChP,SAASkpC,EAAElpC,GAAG,IAAIqU,EAAErU,EAAE,GAAG,QAAG,IAASqU,EAAE,CAAC,IAAItM,EAAE/H,EAAE+O,MAAM,GAAGhH,IAAIsM,EAAE,CAACrU,EAAE,GAAG+H,EAAE/H,EAAE,IAAI,IAAIyjB,EAAE,EAAEzf,EAAEhE,EAAE7F,OAAOspB,EAAEzf,GAAG,CAAC,IAAI/D,EAAE,GAAGwjB,EAAE,GAAG,EAAE0lB,EAAEnpC,EAAEC,GAAG+G,EAAE/G,EAAE,EAAE+H,EAAEhI,EAAEgH,GAAG,QAAG,IAASmiC,GAAG,EAAEH,EAAEG,EAAEphC,QAAG,IAASC,GAAG,EAAEghC,EAAEhhC,EAAEmhC,IAAInpC,EAAEyjB,GAAGzb,EAAEhI,EAAEgH,GAAGe,EAAE0b,EAAEzc,IAAIhH,EAAEyjB,GAAG0lB,EAAEnpC,EAAEC,GAAG8H,EAAE0b,EAAExjB,OAAQ,WAAG,IAAS+H,GAAG,EAAEghC,EAAEhhC,EAAED,IAA0B,MAAM/H,EAA7BA,EAAEyjB,GAAGzb,EAAEhI,EAAEgH,GAAGe,EAAE0b,EAAEzc,IAAgB,OAAOqN,EAAE,OAAO,KAAK,SAAS20B,EAAEhpC,EAAEqU,GAAG,IAAItM,EAAE/H,EAAEopC,UAAU/0B,EAAE+0B,UAAU,OAAO,IAAIrhC,EAAEA,EAAE/H,EAAElB,GAAGuV,EAAEvV,GAAG,IAAIuqC,EAAE,GAAGC,EAAE,GAAGC,EAAE,EAAEha,EAAE,KAAK0N,EAAE,EAAEuM,GAAE,EAAGC,GAAE,EAAGlO,GAAE,EACja,SAASD,EAAEt7B,GAAG,IAAI,IAAIqU,EAAE40B,EAAEK,GAAG,OAAOj1B,GAAG,CAAC,GAAG,OAAOA,EAAEwV,SAASqf,EAAEI,OAAQ,MAAGj1B,EAAEq1B,WAAW1pC,GAAgD,MAA9CkpC,EAAEI,GAAGj1B,EAAE+0B,UAAU/0B,EAAEs1B,eAAeZ,EAAEM,EAAEh1B,GAAcA,EAAE40B,EAAEK,IAAI,SAASM,EAAE5pC,GAAa,GAAVu7B,GAAE,EAAGD,EAAEt7B,IAAOypC,EAAE,GAAG,OAAOR,EAAEI,GAAGI,GAAE,EAAG3a,EAAE8O,OAAO,CAAC,IAAIvpB,EAAE40B,EAAEK,GAAG,OAAOj1B,GAAGtU,EAAE6pC,EAAEv1B,EAAEq1B,UAAU1pC,IACtP,SAAS49B,EAAE59B,EAAEqU,GAAGo1B,GAAE,EAAGlO,IAAIA,GAAE,EAAGyM,KAAKwB,GAAE,EAAG,IAAIzhC,EAAEk1B,EAAE,IAAS,IAAL3B,EAAEjnB,GAAOkb,EAAE0Z,EAAEI,GAAG,OAAO9Z,MAAMA,EAAEoa,eAAet1B,IAAIrU,IAAI+I,EAAQu/B,yBAAyB,CAAC,IAAI7kB,EAAE8L,EAAE1F,SAAS,GAAG,mBAAoBpG,EAAE,CAAC8L,EAAE1F,SAAS,KAAKoT,EAAE1N,EAAEsa,cAAc,IAAI7lC,EAAEyf,EAAE8L,EAAEoa,gBAAgBt1B,GAAGA,EAAEtL,EAAQm/B,eAAe,mBAAoBlkC,EAAEurB,EAAE1F,SAAS7lB,EAAEurB,IAAI0Z,EAAEI,IAAIH,EAAEG,GAAG/N,EAAEjnB,QAAQ60B,EAAEG,GAAG9Z,EAAE0Z,EAAEI,GAAG,GAAG,OAAO9Z,EAAE,IAAItvB,GAAE,MAAO,CAAC,IAAIkpC,EAAEF,EAAEK,GAAG,OAAOH,GAAGppC,EAAE6pC,EAAET,EAAEO,UAAUr1B,GAAGpU,GAAE,EAAG,OAAOA,EAAE,QAAQsvB,EAAE,KAAK0N,EAAEl1B,EAAEyhC,GAAE,GAAI,IAAIM,EAAE/iC,EAAEgC,EAAQghC,sBAAsB,EACtehhC,EAAQihC,2BAA2B,EAAEjhC,EAAQkhC,qBAAqB,EAAElhC,EAAQmhC,wBAAwB,EAAEnhC,EAAQohC,mBAAmB,KAAKphC,EAAQqhC,8BAA8B,EAAErhC,EAAQshC,wBAAwB,SAASrqC,GAAGA,EAAE6pB,SAAS,MAAM9gB,EAAQuhC,2BAA2B,WAAWb,GAAGD,IAAIC,GAAE,EAAG3a,EAAE8O,KAAK70B,EAAQwhC,iCAAiC,WAAW,OAAOtN,GAAGl0B,EAAQyhC,8BAA8B,WAAW,OAAOvB,EAAEI,IACpatgC,EAAQ0hC,cAAc,SAASzqC,GAAG,OAAOi9B,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI5oB,EAAE,EAAE,MAAM,QAAQA,EAAE4oB,EAAE,IAAIl1B,EAAEk1B,EAAEA,EAAE5oB,EAAE,IAAI,OAAOrU,IAAI,QAAQi9B,EAAEl1B,IAAIgB,EAAQ2hC,wBAAwB,aAAa3hC,EAAQ4hC,sBAAsBb,EAAE/gC,EAAQ6hC,yBAAyB,SAAS5qC,EAAEqU,GAAG,OAAOrU,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAI+H,EAAEk1B,EAAEA,EAAEj9B,EAAE,IAAI,OAAOqU,IAAI,QAAQ4oB,EAAEl1B,IACpWgB,EAAQ8hC,0BAA0B,SAAS7qC,EAAEqU,EAAEtM,GAAG,IAAI0b,EAAE1a,EAAQm/B,eAA8F,OAAtCngC,EAAzC,iBAAkBA,GAAG,OAAOA,GAAe,iBAAZA,EAAEA,EAAE+iC,QAA6B,EAAE/iC,EAAE0b,EAAE1b,EAAO0b,EAASzjB,GAAG,KAAK,EAAE,IAAIgE,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAA2M,OAAjMhE,EAAE,CAAClB,GAAGyqC,IAAI1f,SAASxV,EAAEw1B,cAAc7pC,EAAE0pC,UAAU3hC,EAAE4hC,eAAvD3lC,EAAE+D,EAAE/D,EAAoEolC,WAAW,GAAGrhC,EAAE0b,GAAGzjB,EAAEopC,UAAUrhC,EAAEghC,EAAEO,EAAEtpC,GAAG,OAAOipC,EAAEI,IAAIrpC,IAAIipC,EAAEK,KAAK/N,EAAEyM,IAAIzM,GAAE,EAAGx7B,EAAE6pC,EAAE7hC,EAAE0b,MAAMzjB,EAAEopC,UAAUplC,EAAE+kC,EAAEM,EAAErpC,GAAGypC,GAAGD,IAAIC,GAAE,EAAG3a,EAAE8O,KAAY59B,GAC1d+I,EAAQgiC,sBAAsB,SAAS/qC,GAAG,IAAIqU,EAAE4oB,EAAE,OAAO,WAAW,IAAIl1B,EAAEk1B,EAAEA,EAAE5oB,EAAE,IAAI,OAAOrU,EAAE2Q,MAAM3E,KAAK9R,WAAW,QAAQ+iC,EAAEl1B,M,kCChB3He,EAAOC,QAAU,EAAjB,K,6CCHa,SAAkCiiC,GAChD,IAAIr+B,EACAnJ,EAASwnC,EAAKxnC,OAElB,GAAsB,mBAAXA,EACV,GAAIA,EAAO+N,WACV5E,EAASnJ,EAAO+N,eACV,CAKN5E,EAASnJ,EAAOynC,IAAI,gDACpB,IACCznC,EAAO+N,WAAa5E,EACnB,MAAOhI,UAOVgI,EAAS,eCLE,CAZO,oBAATzI,KACFA,KACoB,oBAAX/D,OACTA,YACoB,IAAX,EAAAJ,EACT,EAAAA,EAEA+I,I,0ICTLoiC,EAAiB,sBACjBC,EAAKzxC,OAAO+U,eAAgBA,OAAwB,IAAP08B,EAAgB,SAAU5xC,EAAK6M,GAE5E,OADA7M,EAAImV,UAAYtI,EACT7M,GACP4xC,EACAC,EAAgC,SAAUC,GAE1C,SAASD,EAAenJ,QACJ,IAAZA,IAAsBA,EAAUiJ,GACpC,IAAI/mB,EAAQknB,EAAO9iC,KAAKyD,KAAyB,iBAAZi2B,EAC/BiJ,EAAiB,KAAOjJ,EAAU,6DAClCA,IAAYj2B,KAIlB,OAHAmY,EAAMmnB,YAAc,EACpBnnB,EAAM1mB,KAAOytC,EACbz8B,EAAe0V,EAAOinB,EAAeznC,WAC9BwgB,EAEX,OAXA,QAAUinB,EAAgBC,GAWnBD,EAZwB,CAajCxrC,OACF,SAAS2rC,EAAUxS,EAAWkJ,GAC1B,IAAKlJ,EACD,MAAM,IAAIqS,EAAenJ,GAGjC,IAAIuJ,EAAkB,CAAC,MAAO,OAAQ,QAAS,UAC3CC,EAAiBD,EAAgBzmC,QAAQ,OAC7C,SAAS2mC,EAAkBhhC,GACvB,OAAO,WACH,GAAI8gC,EAAgBzmC,QAAQ2F,IAAW+gC,EACnC,OAAO7U,QAAQlsB,GAAQiG,MAAMimB,QAAS18B,YASlD,SAASyxC,EAAaC,GAClB,IAAIt0B,EAAMk0B,EAAgBC,GAE1B,OADAA,EAAiBtsC,KAAK6hC,IAAI,EAAGwK,EAAgBzmC,QAAQ6mC,IAC9Ct0B,GARX,SAAWi0B,GACPA,EAAUM,IAAMH,EAAkB,OAClCH,EAAUO,KAAOJ,EAAkB,QACnCH,EAAUx+B,MAAQ2+B,EAAkB,SAHxC,CAIGH,IAAcA,EAAY,KAM7B,IAAIQ,EAAc,aAAsB,CAAEC,IAAK,IAC/C,IAAK,YACD,IACItyC,OAAOC,eAAe,IAAY,UAAW,CACzCF,MAAOsyC,IAGf,MAAOE,M,0LCrCX,IAAIC,EAAgB,SAASzoB,EAAGpP,GAI5B,OAHA63B,EAAgBxyC,OAAO+U,gBAClB,CAAEC,UAAW,cAAgBxG,OAAS,SAAUub,EAAGpP,GAAKoP,EAAE/U,UAAY2F,IACvE,SAAUoP,EAAGpP,GAAK,IAAK,IAAI5V,KAAK4V,EAAOA,EAAE7S,eAAe/C,KAAIglB,EAAEhlB,GAAK4V,EAAE5V,MACpDglB,EAAGpP,IAGrB,SAAS83B,EAAU1oB,EAAGpP,GAEzB,SAAS+3B,IAAOpgC,KAAKtI,YAAc+f,EADnCyoB,EAAczoB,EAAGpP,GAEjBoP,EAAE9f,UAAkB,OAAN0Q,EAAa3a,OAAO0Q,OAAOiK,IAAM+3B,EAAGzoC,UAAY0Q,EAAE1Q,UAAW,IAAIyoC,GAG5E,IAAIC,EAAW,WAQlB,OAPAA,EAAW3yC,OAAOod,QAAU,SAAkBqxB,GAC1C,IAAK,IAAItoC,EAAG5F,EAAI,EAAGkvC,EAAIjvC,UAAUC,OAAQF,EAAIkvC,EAAGlvC,IAE5C,IAAK,IAAIwE,KADToB,EAAI3F,UAAUD,GACOP,OAAOiK,UAAUnC,eAAe+G,KAAK1I,EAAGpB,KAAI0pC,EAAE1pC,GAAKoB,EAAEpB,IAE9E,OAAO0pC,IAEKx3B,MAAM3E,KAAM9R,YAGzB,SAASoyC,EAAOzsC,EAAGmE,GACtB,IAAImkC,EAAI,GACR,IAAK,IAAI1pC,KAAKoB,EAAOnG,OAAOiK,UAAUnC,eAAe+G,KAAK1I,EAAGpB,IAAMuF,EAAEe,QAAQtG,GAAK,IAC9E0pC,EAAE1pC,GAAKoB,EAAEpB,IACb,GAAS,MAALoB,GAAqD,mBAAjCnG,OAAOa,sBACtB,KAAIN,EAAI,EAAb,IAAgBwE,EAAI/E,OAAOa,sBAAsBsF,GAAI5F,EAAIwE,EAAEtE,OAAQF,IAC3D+J,EAAEe,QAAQtG,EAAExE,IAAM,GAAKP,OAAOiK,UAAUkzB,qBAAqBtuB,KAAK1I,EAAGpB,EAAExE,MACvEkuC,EAAE1pC,EAAExE,IAAM4F,EAAEpB,EAAExE,KAE1B,OAAOkuC,EAkBJ,SAASoE,EAAUC,EAASC,EAAYxP,EAAG9yB,GAE9C,OAAO,IAAK8yB,IAAMA,EAAIruB,WAAU,SAAUnC,EAASC,GAC/C,SAASggC,EAAUjzC,GAAS,IAAM61B,EAAKnlB,EAAUiD,KAAK3T,IAAW,MAAOuK,GAAK0I,EAAO1I,IACpF,SAAS2oC,EAASlzC,GAAS,IAAM61B,EAAKnlB,EAAiB,MAAE1Q,IAAW,MAAOuK,GAAK0I,EAAO1I,IACvF,SAASsrB,EAAK3iB,GAJlB,IAAelT,EAIakT,EAAOjB,KAAOe,EAAQE,EAAOlT,QAJ1CA,EAIyDkT,EAAOlT,MAJhDA,aAAiBwjC,EAAIxjC,EAAQ,IAAIwjC,GAAE,SAAUxwB,GAAWA,EAAQhT,OAIToT,KAAK6/B,EAAWC,GAClGrd,GAAMnlB,EAAYA,EAAUwG,MAAM67B,EAASC,GAAc,KAAKr/B,WAI/D,SAASw/B,EAAYJ,EAASK,GACjC,IAAsG/d,EAAG0Z,EAAGL,EAAGpoC,EAA3G8X,EAAI,CAAEjb,MAAO,EAAGuO,KAAM,WAAa,GAAW,EAAPg9B,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAO2E,KAAM,GAAIC,IAAK,IAChG,OAAOhtC,EAAI,CAAEqN,KAAM4/B,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAXxpC,SAA0BzD,EAAEyD,OAAOC,UAAY,WAAa,OAAOuI,OAAUjM,EACvJ,SAASitC,EAAK7D,GAAK,OAAO,SAAUniC,GAAK,OACzC,SAAcimC,GACV,GAAIne,EAAG,MAAM,IAAIpmB,UAAU,mCAC3B,KAAOmP,OACH,GAAIiX,EAAI,EAAG0Z,IAAML,EAAY,EAAR8E,EAAG,GAASzE,EAAU,OAAIyE,EAAG,GAAKzE,EAAS,SAAOL,EAAIK,EAAU,SAAML,EAAE5/B,KAAKigC,GAAI,GAAKA,EAAEp7B,SAAW+6B,EAAIA,EAAE5/B,KAAKigC,EAAGyE,EAAG,KAAKvhC,KAAM,OAAOy8B,EAE3J,OADIK,EAAI,EAAGL,IAAG8E,EAAK,CAAS,EAARA,EAAG,GAAQ9E,EAAE1uC,QACzBwzC,EAAG,IACP,KAAK,EAAG,KAAK,EAAG9E,EAAI8E,EAAI,MACxB,KAAK,EAAc,OAAXp1B,EAAEjb,QAAgB,CAAEnD,MAAOwzC,EAAG,GAAIvhC,MAAM,GAChD,KAAK,EAAGmM,EAAEjb,QAAS4rC,EAAIyE,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKp1B,EAAEk1B,IAAIh+B,MAAO8I,EAAEi1B,KAAK/9B,MAAO,SACxC,QACI,MAAkBo5B,GAAZA,EAAItwB,EAAEi1B,MAAY3yC,OAAS,GAAKguC,EAAEA,EAAEhuC,OAAS,KAAkB,IAAV8yC,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEp1B,EAAI,EAAG,SACjG,GAAc,IAAVo1B,EAAG,MAAc9E,GAAM8E,EAAG,GAAK9E,EAAE,IAAM8E,EAAG,GAAK9E,EAAE,IAAM,CAAEtwB,EAAEjb,MAAQqwC,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYp1B,EAAEjb,MAAQurC,EAAE,GAAI,CAAEtwB,EAAEjb,MAAQurC,EAAE,GAAIA,EAAI8E,EAAI,MAC7D,GAAI9E,GAAKtwB,EAAEjb,MAAQurC,EAAE,GAAI,CAAEtwB,EAAEjb,MAAQurC,EAAE,GAAItwB,EAAEk1B,IAAI1sC,KAAK4sC,GAAK,MACvD9E,EAAE,IAAItwB,EAAEk1B,IAAIh+B,MAChB8I,EAAEi1B,KAAK/9B,MAAO,SAEtBk+B,EAAKJ,EAAKtkC,KAAKikC,EAAS30B,GAC1B,MAAO7T,GAAKipC,EAAK,CAAC,EAAGjpC,GAAIwkC,EAAI,EAAK,QAAU1Z,EAAIqZ,EAAI,EACtD,GAAY,EAAR8E,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAExzC,MAAOwzC,EAAG,GAAKA,EAAG,QAAK,EAAQvhC,MAAM,GArB9B4jB,CAAK,CAAC6Z,EAAGniC,MAqEtD,SAASkmC,IACZ,IAAK,IAAIrtC,EAAI,EAAG5F,EAAI,EAAGkzC,EAAKjzC,UAAUC,OAAQF,EAAIkzC,EAAIlzC,IAAK4F,GAAK3F,UAAUD,GAAGE,OACxE,IAAI6N,EAAIE,MAAMrI,GAAIkH,EAAI,EAA3B,IAA8B9M,EAAI,EAAGA,EAAIkzC,EAAIlzC,IACzC,IAAK,IAAI+F,EAAI9F,UAAUD,GAAIuhC,EAAI,EAAG4R,EAAKptC,EAAE7F,OAAQqhC,EAAI4R,EAAI5R,IAAKz0B,IAC1DiB,EAAEjB,GAAK/G,EAAEw7B,GACjB,OAAOxzB,I,mHC/IPqC,G,QANqB,SAA4B5M,GACnD,IAAI4M,GAAU,SAEd,OADAA,EAAQ+D,YAIsC,YAHvC/D,EAGoBgjC,IAEzBC,EAAoB,SAA2B1rC,GACjD,IAAI2rC,EAAW3rC,EAAK2rC,SAChB5tC,EAAWiC,EAAKjC,SAEpB,OCfF,SAAmBo5B,EAAWkJ,GAC1B,IAAIlJ,EAIA,MAAM,IAAIn5B,MANL,oBDeX,CAAUD,GACU,gBAAoB0K,EAAQmjC,SAAU,CACxD/zC,MAAOkG,EACP4tC,SAAUA,GAAY,QA0DtBE,EAAa,aACbC,EAAe,WACjB,OAAOD,EAAWpjC,IAYIA,EAAQsjC","file":"analyticsVendor.js","sourcesContent":["// googleAnalytics events from a node server environment.\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\n/* global ga */\nvar defaultConfig = {\n /* See description below */\n trackingId: null,\n\n /* See description below */\n debug: false,\n\n /* See description below */\n anonymizeIp: false,\n\n /* See description below */\n customDimensions: {},\n\n /* See description below */\n resetCustomDimensionsOnPage: [],\n\n /* See description below */\n setCustomDimensionsToPage: true\n /* Custom metrics https://bit.ly/3c5de88 */\n // TODO customMetrics: { key: 'metric1' }\n\n /* Content groupings https://bit.ly/39Zt3Me */\n // TODO contentGroupings: { key: 'contentGroup1' }\n\n};\nvar loadedInstances = {};\n/**\n * Google analytics plugin\n * @link https://getanalytics.io/plugins/google-analytics/\n * @link https://analytics.google.com/analytics/web/\n * @link https://developers.google.com/analytics/devguides/collection/analyticsjs\n * @param {object} pluginConfig - Plugin settings\n * @param {string} pluginConfig.trackingId - Google Analytics site tracking Id\n * @param {boolean} [pluginConfig.debug] - Enable Google Analytics debug mode\n * @param {boolean} [pluginConfig.anonymizeIp] - Enable [Anonymizing IP addresses](https://bit.ly/3c660Rd) sent to Google Analytics. [See details below](#anonymize-visitor-ips)\n * @param {object} [pluginConfig.customDimensions] - Map [Custom dimensions](https://bit.ly/3c5de88) to send extra information to Google Analytics. [See details below](#using-ga-custom-dimensions)\n * @param {object} [pluginConfig.resetCustomDimensionsOnPage] - Reset custom dimensions by key on analytics.page() calls. Useful for single page apps.\n * @param {boolean} [pluginConfig.setCustomDimensionsToPage] - Mapped dimensions will be set to the page & sent as properties of all subsequent events on that page. If false, analytics will only pass custom dimensions as part of individual events\n * @param {string} [pluginConfig.instanceName] - Custom tracker name for google analytics. Use this if you need multiple googleAnalytics scripts loaded\n * @param {string} [pluginConfig.customScriptSrc] - Custom URL for google analytics script, if proxying calls\n * @param {object} [pluginConfig.cookieConfig] - Additional cookie properties for configuring the [ga cookie](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#configuring_cookie_field_settings)\n * @param {object} [pluginConfig.tasks] - [Set custom google analytic tasks](https://developers.google.com/analytics/devguides/collection/analyticsjs/tasks)\n * @return {*}\n * @example\n *\n * googleAnalytics({\n * trackingId: 'UA-1234567'\n * })\n */\n\nfunction googleAnalytics$1() {\n var pluginConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var pageCalledOnce = false; // Allow for multiple google analytics instances\n\n var _getInstanceDetails = getInstanceDetails(pluginConfig),\n instanceName = _getInstanceDetails.instanceName,\n instancePrefix = _getInstanceDetails.instancePrefix;\n\n return {\n name: 'google-analytics',\n config: _objectSpread({}, defaultConfig, pluginConfig),\n // Load google analytics\n initialize: function initialize(pluginApi) {\n var config = pluginApi.config,\n instance = pluginApi.instance;\n if (!config.trackingId) throw new Error('No GA trackingId defined'); // var to hoist\n\n var scriptSrc = config.customScriptSrc || 'https://www.google-analytics.com/analytics.js'; // Load google analytics script to page\n\n if (gaNotLoaded(scriptSrc)) {\n /* eslint-disable */\n (function (i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function () {\n (i[r].q = i[r].q || []).push(arguments);\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n m.parentNode.insertBefore(a, m);\n })(window, document, 'script', scriptSrc, 'ga');\n /* eslint-enable */\n\n } // Initialize tracker instance on page\n\n\n if (!loadedInstances[instanceName]) {\n var gaConfig = _objectSpread({\n cookieDomain: config.domain || 'auto',\n siteSpeedSampleRate: config.siteSpeedSampleRate || 1,\n sampleRate: config.sampleRate || 100,\n allowLinker: true\n }, config.cookieConfig);\n\n if (instanceName) {\n gaConfig.name = instanceName;\n }\n\n ga('create', config.trackingId, gaConfig);\n\n if (config.debug) {\n // Disable sends to GA http://bit.ly/2Ro0vTR\n ga(\"\".concat(instancePrefix, \"set\"), 'sendHitTask', null);\n window.ga_debug = {\n trace: true\n };\n }\n\n if (config.anonymizeIp) {\n ga(\"\".concat(instancePrefix, \"set\"), 'anonymizeIp', true);\n }\n\n if (config.tasks) {\n var taskList = ['customTask', 'previewTask', 'checkProtocolTask', 'validationTask', 'checkStorageTask', 'historyImportTask', 'samplerTask', 'buildHitTask', 'sendHitTask', 'timingTask', 'displayFeaturesTask'];\n taskList.forEach(function (taskName) {\n if (config.tasks.hasOwnProperty(taskName)) {\n var task = config.tasks[taskName];\n\n if (typeof task === 'function') {\n ga(config.tasks[taskName]);\n } else if (task === null) {\n ga(\"\".concat(instancePrefix, \"set\"), taskName, task);\n }\n }\n });\n }\n /* set custom dimensions from user traits */\n\n\n var user = instance.user() || {};\n var traits = user.traits || {};\n\n if (Object.keys(traits).length) {\n var customDimensions = formatObjectIntoDimensions$1(traits, config);\n ga(\"\".concat(instancePrefix, \"set\"), customDimensions);\n }\n\n loadedInstances[instanceName] = true;\n }\n },\n // Google Analytics page view\n page: function page(_ref) {\n var payload = _ref.payload,\n config = _ref.config,\n instance = _ref.instance;\n var properties = payload.properties;\n var resetCustomDimensionsOnPage = config.resetCustomDimensionsOnPage,\n customDimensions = config.customDimensions;\n var campaign = instance.getState('context.campaign');\n if (gaNotLoaded()) return;\n /* If dimensions are specifiied to reset, clear them before page view */\n\n if (resetCustomDimensionsOnPage && resetCustomDimensionsOnPage.length) {\n var resetDimensions = resetCustomDimensionsOnPage.reduce(function (acc, key) {\n if (customDimensions[key]) {\n acc[customDimensions[key]] = null; // { dimension1: null } etc\n }\n\n return acc;\n }, {});\n\n if (Object.keys(resetDimensions).length) {\n // Reset custom dimensions\n ga(\"\".concat(instancePrefix, \"set\"), resetDimensions);\n }\n }\n\n var path = properties.path || document.location.pathname;\n var pageView = {\n page: path,\n title: properties.title,\n location: properties.url\n };\n var pageData = {\n page: path,\n title: properties.title // allow referrer override if referrer was manually set\n\n };\n\n if (properties.referrer !== document.referrer) {\n pageData.referrer = properties.referrer;\n }\n\n var campaignData = addCampaignData(campaign);\n var dimensions = setCustomDimensions(properties, config, instancePrefix);\n /* Dimensions will only be included in the event if config.setCustomDimensionsToPage is false */\n\n var finalPayload = _objectSpread({}, pageView, campaignData, dimensions);\n\n ga(\"\".concat(instancePrefix, \"set\"), pageData); // Remove location for SPA tracking after initial page view\n\n if (pageCalledOnce) {\n delete finalPayload.location;\n }\n /* send page view to GA */\n\n\n ga(\"\".concat(instancePrefix, \"send\"), 'pageview', finalPayload); // Set after initial page view\n\n pageCalledOnce = true;\n },\n\n /**\n * Google Analytics track event\n * @example\n *\n * analytics.track('playedVideo', {\n * category: 'Videos',\n * label: 'Fall Campaign',\n * value: 42\n * })\n */\n track: function track(_ref2) {\n var payload = _ref2.payload,\n config = _ref2.config,\n instance = _ref2.instance;\n var properties = payload.properties,\n event = payload.event;\n var label = properties.label,\n value = properties.value,\n category = properties.category,\n nonInteraction = properties.nonInteraction;\n var campaign = instance.getState('context.campaign'); // TODO inline this trackEvent\n\n trackEvent$1({\n hitType: 'event',\n event: event,\n label: label,\n category: category || 'All',\n value: value,\n nonInteraction: nonInteraction,\n campaign: campaign\n }, config, payload);\n },\n identify: function identify(_ref3) {\n var payload = _ref3.payload,\n config = _ref3.config;\n identifyVisitor$1(payload.userId, payload.traits, config);\n },\n loaded: function loaded() {\n return !!window.gaplugins;\n }\n };\n}\n\nfunction gaNotLoaded(scriptSrc) {\n if (scriptSrc) {\n return !scriptLoaded(scriptSrc);\n }\n\n return typeof ga === 'undefined';\n}\n\nfunction getInstanceDetails(pluginConfig) {\n var instanceName = pluginConfig.instanceName;\n return {\n instancePrefix: instanceName ? \"\".concat(instanceName, \".\") : '',\n instanceName: instanceName\n };\n}\n/**\n * Send event tracking to Google Analytics\n * @param {object} eventData - GA event payload\n * @param {string} [eventData.hitType = 'event'] - hitType https://bit.ly/2Jab9L1 one of 'pageview', 'screenview', 'event', 'transaction', 'item', 'social', 'exception', 'timing'\n * @param {string} [eventData.event] - event Action https://bit.ly/2CUzeoz\n * @param {string} [eventData.label] - event Label http://bit.ly/2oo8eb3\n * @param {string} [eventData.category] - event Category http://bit.ly/2EAy9UP\n * @param {string} [eventData.nonInteraction = false] - nonInteraction https://bit.ly/2CUzeoz\n * @return {object} sent data\n */\n\n\nfunction trackEvent$1(eventData) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var payload = arguments.length > 2 ? arguments[2] : undefined;\n if (gaNotLoaded()) return;\n\n var _getInstanceDetails2 = getInstanceDetails(opts),\n instancePrefix = _getInstanceDetails2.instancePrefix;\n\n var data = {\n // hitType https://bit.ly/2Jab9L1 one of 'pageview', 'screenview', 'event', 'transaction', 'item', 'social', 'exception', 'timing'\n hitType: eventData.hitType || 'event',\n // eventAction https://bit.ly/2CUzeoz\n eventAction: eventData.event,\n // eventLabel http://bit.ly/2oo8eb3\n eventLabel: eventData.label,\n // eventCategory http://bit.ly/2EAy9UP\n eventCategory: eventData.category || 'All',\n // nonInteraction https://bit.ly/2CUzeoz\n nonInteraction: eventData.nonInteraction !== undefined ? !!eventData.nonInteraction : false\n };\n\n if (eventData.value) {\n // how much is this action worth?\n data.eventValue = format(eventData.value);\n }\n /* Attach campaign data */\n\n\n var campaignData = addCampaignData(eventData);\n /* Set Dimensions or return them for payload is config.setCustomDimensionsToPage is false */\n\n var dimensions = setCustomDimensions(payload.properties, opts, instancePrefix);\n\n var finalPayload = _objectSpread({}, data, campaignData, dimensions);\n /* Send data to Google Analytics */\n\n\n ga(\"\".concat(instancePrefix, \"send\"), 'event', finalPayload);\n return finalPayload;\n}\n/**\n * Add campaign data to GA payload https://bit.ly/34qFCPn\n * @param {Object} [campaignData={}] [description]\n * @param {String} [campaignData.campaignName] - Name of campaign\n * @param {String} [campaignData.campaignSource] - Source of campaign\n * @param {String} [campaignData.campaignMedium] - Medium of campaign\n * @param {String} [campaignData.campaignContent] - Content of campaign\n * @param {String} [campaignData.campaignKeyword] - Keyword of campaign\n */\n\nfunction addCampaignData() {\n var campaignData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var campaign = {};\n var name = campaignData.name,\n source = campaignData.source,\n medium = campaignData.medium,\n content = campaignData.content,\n keyword = campaignData.keyword;\n if (name) campaign.campaignName = name;\n if (source) campaign.campaignSource = source;\n if (medium) campaign.campaignMedium = medium;\n if (content) campaign.campaignContent = content;\n if (keyword) campaign.campaignKeyword = keyword;\n return campaign;\n}\n/* Todo add includeSearch options ¯\\_(ツ)_/¯\nfunction getPagePath(props, opts = {}) {\n if (!props) return\n if (opts.includeSearch && props.search) {\n return `${props.path}${props.search}`\n }\n return props.path\n}\n*/\n// properties, data=opts\n\n\nfunction formatObjectIntoDimensions$1(properties) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var customDimensions = opts.customDimensions; // TODO map opts.customMetrics; Object.keys(customMetrics) { key: 'metric1' }\n // TODO map opts.contentGroupings; Object.keys(contentGroupings) { key: 'contentGroup1' }\n\n /* Map values from payload to any defined custom dimensions */\n\n return Object.keys(customDimensions).reduce(function (acc, key) {\n var dimensionKey = customDimensions[key];\n var value = get$1(properties, key) || properties[key];\n\n if (typeof value === 'boolean') {\n value = value.toString();\n }\n\n if (value || value === 0) {\n acc[dimensionKey] = value;\n return acc;\n }\n\n return acc;\n }, {});\n}\n\nfunction get$1(obj, key, def, p, undef) {\n key = key.split ? key.split('.') : key;\n\n for (p = 0; p < key.length; p++) {\n obj = obj ? obj[key[p]] : undef;\n }\n\n return obj === undef ? def : obj;\n}\n\nfunction setCustomDimensions() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var opts = arguments.length > 1 ? arguments[1] : undefined;\n var instancePrefix = arguments.length > 2 ? arguments[2] : undefined;\n var customDimensions = formatObjectIntoDimensions$1(props, opts);\n\n if (!Object.keys(customDimensions).length) {\n return {};\n } // If setCustomDimensionsToPage false, don't save custom dimensions from event to page\n\n\n if (!opts.setCustomDimensionsToPage) {\n return customDimensions;\n } // Set custom dimensions\n\n\n ga(\"\".concat(instancePrefix, \"set\"), customDimensions);\n return {};\n}\n/**\n * Identify a visitor by Id\n * @param {string} id - unique visitor ID\n */\n\n\nfunction identifyVisitor$1(id) {\n var traits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var conf = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (gaNotLoaded()) return;\n\n var _getInstanceDetails3 = getInstanceDetails(conf),\n instancePrefix = _getInstanceDetails3.instancePrefix;\n\n if (id) ga(\"\".concat(instancePrefix, \"set\"), 'userId', id);\n\n if (Object.keys(traits).length) {\n var custom = formatObjectIntoDimensions$1(traits, conf);\n ga(\"\".concat(instancePrefix, \"set\"), custom);\n }\n}\n\nfunction scriptLoaded(scriptSrc) {\n var scripts = document.querySelectorAll('script[src]');\n return !!Object.keys(scripts).filter(function (key) {\n return (scripts[key].src || '') === scriptSrc;\n }).length;\n}\n\nfunction format(value) {\n if (!value || value < 0) return 0;\n return Math.round(value);\n}\n\nvar browser = /*#__PURE__*/Object.freeze({\n default: googleAnalytics$1,\n trackEvent: trackEvent$1,\n identifyVisitor: identifyVisitor$1\n});\n\n/* This module will shake out unused code + work in browser and node 🎉 */\n\nvar index = googleAnalytics$1;\n/* init for CDN usage. globalName.init() */\n\nvar init = googleAnalytics$1;\n/* Standalone API */\n\nvar initialize$1 = undefined;\nvar page = undefined;\nvar track = trackEvent$1;\nvar identify = identifyVisitor$1;\n\nexport default index;\nexport { init, identify, track, page, initialize$1 as initialize };\n","/*\n// set\ncookie('test', 'a')\n\n// complex set - cookie(name, value, ttl, path, domain, secure)\ncookie('test', 'a', 60*60*24, '/api', '*.example.com', true)\n\n// get\ncookie('test')\n\n// destroy\ncookie('test', '', -1)\n*/\nfunction cookie(name, value, ttl, path, domain, secure) {\n if (typeof window === 'undefined') return;\n /* Set values */\n\n if (arguments.length > 1) {\n // eslint-disable-next-line no-return-assign\n return document.cookie = name + '=' + encodeURIComponent(value) + ( // eslint-disable-next-line operator-linebreak\n !ttl ? '' : // Has TTL set expiration on cookie\n '; expires=' + new Date(+new Date() + ttl * 1000).toUTCString() + ( // If path set path\n !path ? '' : '; path=' + path) + ( // If domain set domain\n !domain ? '' : '; domain=' + domain) + ( // If secure set secure\n !secure ? '' : '; secure'));\n }\n\n return decodeURIComponent((('; ' + document.cookie).split('; ' + name + '=')[1] || '').split(';')[0]);\n}\n\nfunction hasCookieSupport() {\n try {\n var key = '_c_'; // Try to set cookie\n\n cookie(key, '1');\n var valueSet = document.cookie.indexOf(key) !== -1; // Cleanup cookie\n\n cookie(key, '', -1);\n return valueSet;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Get a cookie value\n * @param {string} name - key of cookie\n * @return {string} value of cookie\n */\n\nvar getCookie = cookie;\n/**\n * Set a cookie value\n * @param {string} name - key of cookie\n * @param {string} value - value of cookie\n * @param {string} days - days to keep cookie\n */\n\nvar setCookie = cookie;\n/**\n * Remove a cookie value.\n * @param {string} name - key of cookie\n */\n\nfunction removeCookie(name) {\n return cookie(name, '', -1);\n}\n\nexport { hasCookieSupport, setCookie, getCookie, removeCookie };\n","import { hasCookieSupport, getCookie, setCookie, removeCookie } from '@analytics/cookie-utils';\nexport { getCookie, setCookie, removeCookie, hasCookieSupport } from '@analytics/cookie-utils';\n\nfunction hasLocalStorage() {\n\n try {\n if (typeof localStorage === 'undefined' || typeof JSON === 'undefined') {\n return false;\n } // test for safari private\n\n\n localStorage.setItem('_t_', '1');\n localStorage.removeItem('_t_');\n } catch (err) {\n return false;\n }\n\n return true;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction parse(input) {\n var value;\n\n try {\n value = JSON.parse(input);\n\n if (typeof value === 'undefined') {\n value = input;\n }\n\n if (value === 'true') {\n value = true;\n }\n\n if (value === 'false') {\n value = false;\n }\n\n if (parseFloat(value) === value && _typeof(value) !== 'object') {\n value = parseFloat(value);\n }\n } catch (e) {\n value = input;\n }\n\n return value;\n}\n\nvar globalContext = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === 'object' && self.self === self && self || (typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) === 'object' && global.global === global && global || undefined;\n\nvar LOCAL_STORAGE = 'localStorage';\nvar COOKIE = 'cookie';\nvar GLOBAL = 'global'; // Verify support\n\nvar hasStorage = hasLocalStorage();\nvar hasCookies = hasCookieSupport();\n/**\n * Get storage item from localStorage, cookie, or window\n * @param {string} key - key of item to get\n * @param {object|string} [options] - storage options. If string location of where to get storage\n * @param {string} [options.storage] - Define type of storage to pull from.\n * @return {Any} the value of key\n */\n\nfunction getItem(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!key) return null;\n var storageType = getStorageType(options); // Get value from all locations\n\n if (storageType === 'all') return getAll(key);\n /* 1. Try localStorage */\n\n if (useLocal(storageType)) {\n var value = localStorage.getItem(key);\n if (value || storageType === LOCAL_STORAGE) return parse(value);\n }\n /* 2. Fallback to cookie */\n\n\n if (useCookie(storageType)) {\n var _value = getCookie(key);\n\n if (_value || storageType === COOKIE) return parse(_value);\n }\n /* 3. Fallback to window/global. */\n\n\n return globalContext[key] || null;\n}\n\nfunction getAll(key) {\n return {\n cookie: parse(getCookie(key)),\n localStorage: parse(localStorage.getItem(key)),\n global: globalContext[key] || null\n };\n}\n/**\n * Store values in localStorage, cookie, or window\n * @param {string} key - key of item to set\n * @param {*} value - value of item to set\n * @param {object|string} [options] - storage options. If string location of where to get storage\n * @param {string} [options.storage] - Define type of storage to pull from.\n * @returns {object} returns old value, new values, & location of storage\n */\n\n\nfunction setItem(key, value) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!key || !value) return false;\n var storageType = getStorageType(options);\n var saveValue = JSON.stringify(value);\n /* 1. Try localStorage */\n\n if (useLocal(storageType)) {\n // console.log('SET as localstorage', saveValue)\n var _oldValue = parse(localStorage.getItem(key));\n\n localStorage.setItem(key, saveValue);\n return {\n value: value,\n oldValue: _oldValue,\n location: LOCAL_STORAGE\n };\n }\n /* 2. Fallback to cookie */\n\n\n if (useCookie(storageType)) {\n // console.log('SET as cookie', saveValue)\n var _oldValue2 = parse(getCookie(key));\n\n setCookie(key, saveValue);\n return {\n value: value,\n oldValue: _oldValue2,\n location: COOKIE\n };\n }\n /* 3. Fallback to window/global */\n\n\n var oldValue = globalContext[key];\n globalContext[key] = value;\n return {\n value: value,\n oldValue: oldValue,\n location: GLOBAL\n };\n}\n/**\n * Remove values from localStorage, cookie, or window\n * @param {string} key - key of item to set\n * @param {object|string} [options] - storage options. If string location of where to get storage\n * @param {string} [options.storage] - Define type of storage to pull from.\n */\n\nfunction removeItem(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!key) return false;\n var storageType = getStorageType(options);\n\n if (useLocal(storageType)) {\n /* 1. Try localStorage */\n localStorage.removeItem(key);\n return LOCAL_STORAGE;\n } else if (useCookie(storageType)) {\n /* 2. Fallback to cookie */\n removeCookie(key);\n return COOKIE;\n }\n /* 3. Fallback to window/global */\n\n\n globalContext[key] = undefined;\n return GLOBAL;\n}\n\nfunction getStorageType(options) {\n return typeof options === 'string' ? options : options.storage;\n}\n\nfunction useLocal(storage) {\n return hasStorage && (!storage || storage === LOCAL_STORAGE);\n}\n\nfunction useCookie(storage) {\n return hasCookies && (!storage || storage === COOKIE);\n}\nvar index = {\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem\n};\n\nexport default index;\nexport { getItem, setItem, removeItem, globalContext, hasLocalStorage as hasLocalStorageSupport };\n","export { default as dotProp } from 'dlv';\nexport { default as storage, getCookie, setCookie, globalContext, removeCookie } from '@analytics/storage-utils';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\nfunction isString(x) {\n return typeof x === 'string';\n}\nfunction isUndefined(x) {\n return typeof x === 'undefined';\n}\nfunction isBoolean(x) {\n return typeof x === 'boolean';\n}\nfunction isArray(x) {\n return Array.isArray(x);\n}\nfunction isObject(obj) {\n if (_typeof(obj) !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\nfunction decode(s) {\n try {\n return decodeURIComponent(s.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\nvar inBrowser = typeof document !== 'undefined';\n\nfunction getBrowserLocale() {\n if (!inBrowser) return;\n var _navigator = navigator,\n language = _navigator.language,\n languages = _navigator.languages,\n userLanguage = _navigator.userLanguage;\n if (userLanguage) return userLanguage; // IE only\n\n return languages && languages.length ? languages[0] : language;\n}\n\nfunction getTimeZone() {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n } catch (error) {}\n}\n\nfunction isExternalReferrer(ref) {\n if (!inBrowser) return false;\n var referrer = ref || document.referrer;\n\n if (referrer) {\n var port = window.document.location.port;\n var _ref = referrer.split('/')[2];\n\n if (port) {\n _ref = _ref.replace(\":\".concat(port), '');\n }\n\n return _ref !== window.location.hostname;\n }\n\n return false;\n}\n\n/**\n * Check if a script is loaded\n * @param {String|RegExp} script - Script src as string or regex\n * @return {Boolean} is script loaded\n */\n\nfunction isScriptLoaded(script) {\n if (!inBrowser) return true;\n var scripts = document.getElementsByTagName('script');\n return !!Object.keys(scripts).filter(function (key) {\n var src = scripts[key].src;\n\n if (typeof script === 'string') {\n return src.indexOf(script) !== -1;\n } else if (script instanceof RegExp) {\n return src.match(script);\n }\n\n return false;\n }).length;\n}\n\nfunction noOp() {}\n\nfunction paramsClean(url, param) {\n var search = (url.split('?') || [,])[1]; // eslint-disable-line\n\n if (!search || search.indexOf(param) === -1) {\n return url;\n } // remove all utm params from URL search\n\n\n var regex = new RegExp(\"(\\\\&|\\\\?)\".concat(param, \"([_A-Za-z0-9\\\"+=.\\\\/\\\\-@%]+)\"), 'g');\n var cleanSearch = \"?\".concat(search).replace(regex, '').replace(/^&/, '?'); // replace search params with clean params\n\n var cleanURL = url.replace(\"?\".concat(search), cleanSearch); // use browser history API to clean the params\n\n return cleanURL;\n}\n\n/**\n * Get a given query parameter value\n * @param {string} param - Key of parameter to find\n * @param {string} url - url to search\n * @return {string} match\n */\n\nfunction getValueParamValue(param, url) {\n return decode((RegExp(\"\".concat(param, \"=(.+?)(&|$)\")).exec(url) || [, ''])[1]);\n}\n\n/**\n * Get search string from given url\n * @param {string} [url] - optional url string. If no url, window.location.search will be used\n * @return {string} url search string\n */\n\nfunction getSearchString(url) {\n if (url) {\n var p = url.match(/\\?(.*)/);\n return p && p[1] ? p[1].split('#')[0] : '';\n }\n\n return inBrowser && window.location.search.substring(1);\n}\n/**\n * Parse url parameters into javascript object\n * @param {string} [url] - URI to parse. If no url supplied window.location will be used\n * @return {object} parsed url parameters\n */\n\n\nfunction paramsParse(url) {\n return getParamsAsObject(getSearchString(url));\n}\n/*\n?first=abc&a[]=123&a[]=false&b[]=str&c[]=3.5&a[]=last\nhttps://random.url.com?Target=Report&Method=getStats&fields%5B%5D=Offer.name&fields%5B%5D=Advertiser.company&fields%5B%5D=Stat.clicks&fields%5B%5D=Stat.conversions&fields%5B%5D=Stat.cpa&fields%5B%5D=Stat.payout&fields%5B%5D=Stat.date&fields%5B%5D=Stat.offer_id&fields%5B%5D=Affiliate.company&groups%5B%5D=Stat.offer_id&groups%5B%5D=Stat.date&filters%5BStat.affiliate_id%5D%5Bconditional%5D=EQUAL_TO&filters%5BStat.affiliate_id%5D%5Bvalues%5D=1831&limit=9999\nhttps://random.url.com?Target=Offer&Method=findAll&filters%5Bhas_goals_enabled%5D%5BTRUE%5D=1&filters%5Bstatus%5D=active&fields%5B%5D=id&fields%5B%5D=name&fields%5B%5D=default_goal_name\nhttp://localhost:3000/?Target=Offer&Method=findAll&filters[has_goals_enabled][TRUE]=1&filters[status]=active&filters[wow]arr[]=yaz&filters[wow]arr[]=naz&fields[]=id&fields[]=name&fields[]=default_goal_name */\n\nfunction getParamsAsObject(query) {\n var params = {};\n var temp;\n var re = /([^&=]+)=?([^&]*)/g;\n\n while (temp = re.exec(query)) {\n var k = decode(temp[1]);\n var v = decode(temp[2]);\n\n if (k.substring(k.length - 2) === '[]') {\n k = k.substring(0, k.length - 2);\n (params[k] || (params[k] = [])).push(v);\n } else {\n params[k] = v === '' ? true : v;\n }\n }\n\n for (var prop in params) {\n var arr = prop.split('[');\n\n if (arr.length > 1) {\n assign(params, arr.map(function (x) {\n return x.replace(/[?[\\]\\\\ ]/g, '');\n }), params[prop]);\n delete params[prop];\n }\n }\n\n return params;\n}\n\nfunction assign(obj, keyPath, value) {\n var lastKeyIndex = keyPath.length - 1;\n\n for (var i = 0; i < lastKeyIndex; ++i) {\n var key = keyPath[i];\n\n if (!(key in obj)) {\n obj[key] = {};\n }\n\n obj = obj[key];\n }\n\n obj[keyPath[lastKeyIndex]] = value;\n}\n/*\nhttps://github.com/choojs/nanoquery/blob/791cbdfe49cc380f0b2f93477572128946171b46/browser.js\nvar reg = /([^?=&]+)(=([^&]*))?/g\n\nfunction qs (url) {\n var obj = {}\n url.replace(/^.*\\?/, '').replace(reg, function (a0, a1, a2, a3) {\n var value = decodeURIComponent(a3)\n var key = decodeURIComponent(a1)\n if (obj.hasOwnProperty(key)) {\n if (Array.isArray(obj[key])) obj[key].push(value)\n else obj[key] = [obj[key], value]\n } else {\n obj[key] = value\n }\n })\n return obj\n}\n*/\n\n/**\n * Removes params from url in browser\n * @param {string} param - param key to remove from current URL\n * @param {function} [callback] - callback function to run. Only runs in browser\n * @return {promise}\n */\n\nfunction paramsRemove(param, callback) {\n if (!inBrowser) return Promise.resolve();\n return new Promise(function (resolve, reject) {\n if (window.history && window.history.replaceState) {\n var url = window.location.href;\n var cleanUrl = paramsClean(url, param);\n\n if (url !== cleanUrl) {\n /* replace URL with history API */\n // eslint-disable-next-line no-restricted-globals\n history.replaceState({}, '', cleanUrl);\n }\n }\n\n if (callback) callback();\n return resolve();\n });\n}\n\n/**\n * Get host domain of url\n * @param {String} url - href of page\n * @return {String} hostname of page\n *\n * @example\n * getDomainHost('https://subdomain.my-site.com/')\n * > subdomain.my-site.com\n */\n\nfunction getDomainHost(url) {\n if (!inBrowser) return null;\n var a = document.createElement('a');\n a.setAttribute('href', url);\n return a.hostname;\n}\n/**\n * Get host domain of url\n * @param {String} url - href of page\n * @return {String} base hostname of page\n *\n * @example\n * getDomainBase('https://subdomain.my-site.com/')\n * > my-site.com\n */\n\nfunction getDomainBase(url) {\n var host = getDomainHost(url) || '';\n return host.split('.').slice(-2).join('.');\n}\n/**\n * Remove TLD from domain string\n * @param {String} baseDomain - host name of site\n * @return {String}\n * @example\n * trimTld('google.com')\n * > google\n */\n\nfunction trimTld(baseDomain) {\n var arr = baseDomain.split('.');\n return arr.length > 1 ? arr.slice(0, -1).join('.') : baseDomain;\n}\nvar url = {\n trimTld: trimTld,\n getDomainBase: getDomainBase,\n getDomainHost: getDomainHost\n};\n\nvar googleKey = 'google';\n/**\n * Checks a given url and parses referrer data\n * @param {String} [referrer] - (optional) referring URL\n * @param {String} [currentUrl] - (optional) the current url\n * @return {Object} [description]\n */\n\nfunction parseReferrer(referrer, currentUrl) {\n if (!inBrowser) return false; // default referral data\n\n var refData = {\n 'source': '(direct)',\n 'medium': '(none)',\n 'campaign': '(not set)' // Add raw ref url if external\n\n };\n\n if (referrer && isExternalReferrer(referrer)) {\n refData.referrer = referrer;\n }\n\n var domainInfo = parseDomain(referrer); // Read referrer URI and infer source\n\n if (domainInfo && Object.keys(domainInfo).length) {\n refData = Object.assign({}, refData, domainInfo);\n } // Read URI params and use set utm params\n\n\n var params = paramsParse(currentUrl);\n var paramKeys = Object.keys(params);\n\n if (!paramKeys.length) {\n return refData;\n } // set campaign params off GA matches\n\n\n var gaParams = paramKeys.reduce(function (acc, key) {\n // match utm params & dclid (display) & gclid (cpc)\n if (key.match(/^utm_/)) {\n acc[\"\".concat(key.replace(/^utm_/, ''))] = params[key];\n } // https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters\n // dclid - cpc Cost-Per-Thousand Impressions\n // gclid - cpc Cost per Click\n\n\n if (key.match(/^(d|g)clid/)) {\n acc['source'] = googleKey;\n acc['medium'] = params.gclid ? 'cpc' : 'cpm';\n acc[key] = params[key];\n }\n\n return acc;\n }, {});\n return Object.assign({}, refData, gaParams);\n}\n/**\n * Client side domain parser for determining marketing data.\n * @param {String} referrer - ref url\n * @return {Object}\n */\n\nfunction parseDomain(referrer) {\n if (!referrer || !inBrowser) return false;\n var referringDomain = getDomainBase(referrer);\n var a = document.createElement('a');\n a.href = referrer; // Shim for the billion google search engines\n\n if (a.hostname.indexOf(googleKey) > -1) {\n referringDomain = googleKey;\n } // If is search engine\n\n\n if (searchEngines[referringDomain]) {\n var searchEngine = searchEngines[referringDomain];\n var queryParam = typeof searchEngine === 'string' ? searchEngine : searchEngine.p;\n var termRegex = new RegExp(queryParam + '=.*?([^&#]*|$)', 'gi');\n var term = a.search.match(termRegex);\n return {\n source: searchEngine.n || trimTld(referringDomain),\n medium: 'organic',\n term: (term ? term[0].split('=')[1] : '') || '(not provided)'\n };\n } // Default\n\n\n var medium = !isExternalReferrer(referrer) ? 'internal' : 'referral';\n return {\n source: a.hostname,\n medium: medium\n };\n}\n/**\n * Search engine query string data\n * @type {Object}\n */\n\n\nvar Q = 'q';\nvar QUERY = 'query';\nvar searchEngines = {\n 'daum.net': Q,\n 'eniro.se': 'search_word',\n 'naver.com': QUERY,\n 'yahoo.com': 'p',\n 'msn.com': Q,\n 'aol.com': Q,\n 'ask.com': Q,\n 'baidu.com': 'wd',\n 'yandex.com': 'text',\n 'rambler.ru': 'words',\n 'google': Q,\n 'bing.com': {\n 'p': Q,\n 'n': 'live'\n }\n};\n\nfunction uuid() {\n var u = '',\n m = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx',\n i = 0,\n rb = Math.random() * 0xffffffff | 0;\n\n while (i++ < 36) {\n var c = m[i - 1],\n r = rb & 0xf,\n v = c == 'x' ? r : r & 0x3 | 0x8;\n u += c == '-' || c == '4' ? c : v.toString(16);\n rb = i % 8 == 0 ? Math.random() * 0xffffffff | 0 : rb >> 4;\n }\n\n return u;\n}\n\nfunction throttle(func, wait) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n\n var later = function later() {\n previous = new Date();\n timeout = null;\n result = func.apply(context, args);\n };\n\n return function () {\n var now = new Date();\n\n if (!previous) {\n previous = now;\n }\n\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n\n if (remaining <= 0) {\n clearTimeout(timeout);\n timeout = null;\n previous = now;\n result = func.apply(context, args);\n } else if (!timeout) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n}\n\nexport { isFunction, isString, isArray, isObject, isUndefined, isBoolean, decode as decodeUri, getBrowserLocale, getTimeZone, inBrowser, isExternalReferrer, isScriptLoaded, noOp, paramsClean, getValueParamValue as paramsGet, paramsParse, paramsRemove, parseReferrer, url, uuid, throttle };\n","import { isObject, globalContext, uuid, isFunction, isBoolean, isString, inBrowser, getBrowserLocale, getTimeZone, isArray, paramsParse, dotProp } from 'analytics-utils';\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nvar arrayWithoutHoles = _arrayWithoutHoles;\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nvar iterableToArray = _iterableToArray;\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar nonIterableSpread = _nonIterableSpread;\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nvar toConsumableArray = _toConsumableArray;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar _typeof_1 = createCommonjsModule(function (module) {\nfunction _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\n});\n\nvar runtime_1 = createCommonjsModule(function (module) {\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n module.exports\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n});\n\nvar regenerator = runtime_1;\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nvar asyncToGenerator = _asyncToGenerator;\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar defineProperty = _defineProperty;\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar objectSpread2 = _objectSpread2;\n\nvar FUNC = 'function';\nvar UNDEF = 'undefined';\nvar REDUCER = 'reducer';\nvar base = '@@redux/';\nvar ACTION_INIT = base + 'INIT';\nvar ACTION_TEST = base + Math.random().toString(36);\n\nvar $$observable =\n/* #__PURE__ */\nfunction () {\n return (typeof Symbol === \"undefined\" ? \"undefined\" : _typeof_1(Symbol)) === FUNC && Symbol.observable || '@@observable';\n}();\n/*\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\n\nvar msg = ' != ' + FUNC;\nfunction createStore(reducer, preloadedState, enhancer) {\n if (_typeof_1(preloadedState) === FUNC && _typeof_1(enhancer) === UNDEF) {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (_typeof_1(enhancer) !== UNDEF) {\n if (_typeof_1(enhancer) !== FUNC) {\n throw new Error('enhancer' + msg);\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (_typeof_1(reducer) !== FUNC) {\n throw new Error(REDUCER + msg);\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /*\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n return currentState;\n }\n /*\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (_typeof_1(listener) !== FUNC) {\n throw new Error('Listener' + msg);\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n /* // add default info to actions... \n console.log('dispatch before', _action)\n const action = {\n ..._action,\n ...{\n action: {\n ..._action.action,\n ...{ customInfo: 'yoooo'} \n }\n }\n }\n console.log('dispatch after', action)\n /** */\n if (!isObject(action)) {\n throw new Error('Act != obj');\n }\n\n if (_typeof_1(action.type) === UNDEF) {\n throw new Error('ActType ' + UNDEF);\n }\n\n if (isDispatching) {\n throw new Error('Dispatch in ' + REDUCER);\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (_typeof_1(nextReducer) !== FUNC) {\n throw new Error('next ' + REDUCER + msg);\n }\n\n currentReducer = nextReducer;\n dispatch({\n type: ACTION_INIT\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var outerSubscribe = subscribe;\n return defineProperty({\n /*\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (_typeof_1(observer) !== 'object') {\n throw new TypeError('Observer != obj');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, $$observable, function () {\n return this;\n });\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ACTION_INIT\n });\n return defineProperty({\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, $$observable, observable);\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && actionType.toString() || '?';\n return 'action ' + actionName + REDUCER + ' ' + key + ' returns ' + UNDEF;\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ACTION_INIT\n });\n\n if (_typeof_1(initialState) === UNDEF || _typeof_1(reducer(undefined, {\n type: ACTION_TEST\n })) === UNDEF) {\n throw new Error(REDUCER + ' ' + key + ' ' + UNDEF);\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (_typeof_1(reducers[key]) === FUNC) {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers);\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (_typeof_1(nextStateForKey) === UNDEF) {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n return hasChanged ? nextState : state;\n };\n}\n\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, toConsumableArray(chain))(store.dispatch);\n return objectSpread2(objectSpread2({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nvar coreEvents = [\n/**\n * `bootstrap` - Fires when analytics library starts up.\n * This is the first event fired. '.on/once' listeners are not allowed on bootstrap\n * Plugins can attach logic to this event\n */\n'bootstrap',\n/**\n * `params` - Fires when analytics parses URL parameters\n */\n'params',\n/**\n * `campaign` - Fires if params contain \"utm\" parameters\n */\n'campaign',\n/**\n * `initializeStart` - Fires before 'initialize', allows for plugins to cancel loading of other plugins\n */\n'initializeStart',\n/**\n * `initialize` - Fires when analytics loads plugins\n */\n'initialize',\n/**\n * `initializeEnd` - Fires after initialize, allows for plugins to run logic after initialization methods run\n */\n'initializeEnd',\n/**\n * `ready` - Fires when all analytic providers are fully loaded. This waits for 'initialize' and 'loaded' to return true\n */\n'ready',\n/**\n * `resetStart` - Fires if analytic.reset() is called.\n * Use this event to cancel reset based on a specific condition\n */\n'resetStart',\n/**\n * `reset` - Fires if analytic.reset() is called.\n * Use this event to run custom cleanup logic (if needed)\n */\n'reset',\n/**\n * `resetEnd` - Fires after analytic.reset() is called.\n * Use this event to run a callback after user data is reset\n */\n'resetEnd',\n/******************\n * Page Events\n ******************/\n\n/**\n * `pageStart` - Fires before 'page' events fire.\n * This allows for dynamic page view cancellation based on current state of user or options passed in.\n */\n'pageStart',\n/**\n * `page` - Core analytics hook for page views.\n * If your plugin or integration tracks page views, this is the event to fire on.\n */\n'page',\n/**\n * `pageEnd` - Fires after all registered 'page' methods fire.\n */\n'pageEnd',\n/**\n * `pageAborted` - Fires if 'page' call is cancelled by a plugin\n */\n'pageAborted',\n/****************\n * Track Events\n ***************/\n\n/**\n * `trackStart` - Called before the 'track' events fires.\n * This allows for dynamic page view cancellation based on current state of user or options passed in.\n */\n'trackStart',\n/**\n * `track` - Core analytics hook for event tracking.\n * If your plugin or integration tracks custom events, this is the event to fire on.\n */\n'track',\n/**\n * `trackEnd` - Fires after all registered 'track' events fire from plugins.\n */\n'trackEnd',\n/**\n * `trackAborted` - Fires if 'track' call is cancelled by a plugin\n */\n'trackAborted',\n/******************\n * Identify Events\n ******************/\n\n/**\n * `identifyStart` - Called before the 'identify' events fires.\n * This allows for dynamic page view cancellation based on current state of user or options passed in.\n */\n'identifyStart',\n/**\n * `identify` - Core analytics hook for user identification.\n * If your plugin or integration identifies users or user traits, this is the event to fire on.\n */\n'identify',\n/**\n * `identifyEnd` - Fires after all registered 'identify' events fire from plugins.\n */\n'identifyEnd',\n/**\n * `identifyAborted` - Fires if 'track' call is cancelled by a plugin\n */\n'identifyAborted',\n/**\n * `userIdChanged` - Fires when a user id is updated\n */\n'userIdChanged',\n/******************\n * Plugin Events\n ******************/\n\n/**\n * `registerPlugins` - Fires when analytics is registering plugins\n */\n'registerPlugins',\n/**\n * `enablePlugin` - Fires when 'analytics.plugins.enable()' is called\n */\n'enablePlugin',\n/**\n * `disablePlugin` - Fires when 'analytics.plugins.disable()' is called\n */\n'disablePlugin',\n/*\n * `loadPlugin` - Fires when 'analytics.loadPlugin()' is called\n */\n// 'loadPlugin',\n\n/******************\n * Browser activity events\n ******************/\n\n/**\n * `online` - Fires when browser network goes online.\n * This fires only when coming back online from an offline state.\n */\n'online',\n/**\n * `offline` - Fires when browser network goes offline.\n */\n'offline',\n/******************\n * Storage events\n ******************/\n\n/**\n * `setItemStart` - Fires when analytics.storage.setItem is initialized.\n * This event gives plugins the ability to intercept keys & values and alter them before they are persisted.\n */\n'setItemStart',\n/**\n * `setItem` - Fires when analytics.storage.setItem is called.\n * This event gives plugins the ability to intercept keys & values and alter them before they are persisted.\n */\n'setItem',\n/**\n * `setItemEnd` - Fires when setItem storage is complete.\n */\n'setItemEnd',\n/**\n * `setItemAborted` - Fires when setItem storage is cancelled by a plugin.\n */\n'setItemAborted',\n/**\n * `removeItemStart` - Fires when analytics.storage.removeItem is initialized.\n * This event gives plugins the ability to intercept removeItem calls and abort / alter them.\n */\n'removeItemStart',\n/**\n * `removeItem` - Fires when analytics.storage.removeItem is called.\n * This event gives plugins the ability to intercept removeItem calls and abort / alter them.\n */\n'removeItem',\n/**\n * `removeItemEnd` - Fires when removeItem storage is complete.\n */\n'removeItemEnd',\n/**\n * `removeItemAborted` - Fires when removeItem storage is cancelled by a plugin.\n */\n'removeItemAborted'];\n/* Keys on a plugin that are not considered events */\n\nvar nonEvents = ['name', 'EVENTS', 'config', 'loaded'];\nvar pluginEvents = {\n registerPluginType: function registerPluginType(name) {\n return \"registerPlugin:\".concat(name);\n },\n pluginReadyType: function pluginReadyType(name) {\n return \"ready:\".concat(name);\n }\n};\nvar EVENTS = coreEvents.reduce(function (acc, curr) {\n acc[curr] = curr;\n return acc;\n}, pluginEvents);\nfunction isReservedAction(type) {\n return coreEvents.includes(type);\n}\n\nvar LIBRARY_NAME = 'analytics';\nvar ID = 'userId';\nvar ANONID = 'anonymousId';\nvar ERROR_URL = 'https://lytics.dev/errors/';\nvar PREFIX = '__';\n\n/**\n * Anonymous visitor Id localstorage key\n * @typedef {String} ANON_ID\n */\n\nvar ANON_ID = PREFIX + 'anon_id'; // __anon_id\n\n/**\n * Visitor Id localstorage key\n * @typedef {String} USER_ID\n */\n\nvar USER_ID = PREFIX + 'user_id'; // __user_id\n\n/**\n * Visitor traits localstorage key\n * @typedef {String} USER_TRAITS\n */\n\nvar USER_TRAITS = PREFIX + 'user_traits'; // __user_traits\n\nvar constants = /*#__PURE__*/Object.freeze({\n ANON_ID: ANON_ID,\n USER_ID: USER_ID,\n USER_TRAITS: USER_TRAITS\n});\n\nvar utmRegex = /^utm_/;\nvar propRegex = /^an_prop_/;\nvar traitRegex = /^an_trait_/; // Middleware runs during EVENTS.initialize\n\nfunction initializeMiddleware(instance) {\n var _instance$storage = instance.storage,\n setItem = _instance$storage.setItem,\n getItem = _instance$storage.getItem;\n return function (store) {\n return function (next) {\n return function (action) {\n /* Handle bootstrap event */\n if (action.type === EVENTS.bootstrap) {\n var params = action.params,\n user = action.user,\n persistedUser = action.persistedUser;\n /* 1. Set anonymous ID */\n\n if (persistedUser.anonymousId !== user.anonymousId) {\n setItem(ANON_ID, user.anonymousId);\n }\n /* 2. Set userId */\n\n\n if (persistedUser.userId !== user.userId) {\n setItem(USER_ID, user.userId);\n }\n /* 3. Parse url params */\n\n\n var paramsArray = Object.keys(action.params);\n\n if (paramsArray.length) {\n var an_uid = params.an_uid,\n an_event = params.an_event;\n var groupedParams = paramsArray.reduce(function (acc, key) {\n // match utm params & dclid (display) & gclid (cpc)\n if (key.match(utmRegex) || key.match(/^(d|g)clid/)) {\n var cleanName = key.replace(utmRegex, '');\n var keyName = cleanName === 'campaign' ? 'name' : cleanName;\n acc.campaign[keyName] = params[key];\n }\n\n if (key.match(propRegex)) {\n acc.props[key.replace(propRegex, '')] = params[key];\n }\n\n if (key.match(traitRegex)) {\n acc.traits[key.replace(traitRegex, '')] = params[key];\n }\n\n return acc;\n }, {\n campaign: {},\n props: {},\n traits: {}\n });\n store.dispatch(objectSpread2(objectSpread2({\n type: EVENTS.params,\n raw: params\n }, groupedParams), an_uid ? {\n userId: an_uid\n } : {}));\n /* If userId set, call identify */\n\n if (an_uid) {\n // timeout to debounce and make sure integration is registered. Todo refactor\n setTimeout(function () {\n return instance.identify(an_uid, groupedParams.traits);\n }, 0);\n }\n /* If tracking event set, call track */\n\n\n if (an_event) {\n // timeout to debounce and make sure integration is registered. Todo refactor\n setTimeout(function () {\n return instance.track(an_event, groupedParams.props);\n }, 0);\n } // if url has utm params\n\n\n if (Object.keys(groupedParams.campaign).length) {\n store.dispatch({\n type: EVENTS.campaign,\n campaign: groupedParams.campaign\n });\n }\n }\n }\n\n return next(action);\n };\n };\n };\n}\n\n/* user reducer */\n\nfunction userReducer(storage) {\n return function user() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (action.type === EVENTS.setItemEnd) {\n // Set anonymousId if changed by storage.setItem\n if (action.key === ANON_ID) {\n return objectSpread2(objectSpread2({}, state), {\n anonymousId: action.value\n });\n } // Set userId if changed by storage.setItem\n\n\n if (action.key === USER_ID) {\n return objectSpread2(objectSpread2({}, state), {\n userId: action.value\n });\n }\n }\n\n switch (action.type) {\n case EVENTS.identify:\n return Object.assign({}, state, {\n userId: action.userId,\n traits: objectSpread2(objectSpread2({}, state.traits), action.traits)\n });\n\n case EVENTS.reset:\n // Side effect to fix race condition in Node. TODO refactor\n // This is from default storage.removeItem: (key) => globalContext[key] = undefined\n [USER_ID, ANON_ID, USER_TRAITS].forEach(function (key) {\n // sync storage, not instance.storage\n storage.removeItem(key);\n });\n return Object.assign({}, state, {\n userId: null,\n // TODO reset anon id automatically?\n anonymousId: null,\n traits: {}\n });\n\n default:\n return state;\n }\n };\n}\nfunction getPersistedUserData(storage) {\n return {\n userId: storage.getItem(USER_ID),\n anonymousId: storage.getItem(ANON_ID),\n traits: storage.getItem(USER_TRAITS) || {}\n };\n}\nvar tempKey = function tempKey(key) {\n return PREFIX + 'TEMP' + PREFIX + key;\n};\nfunction getUserPropFunc(storage) {\n return function getUserProp(key, instance, payload) {\n /* 1. Try current state */\n var currentId = instance.getState('user')[key];\n\n if (currentId) {\n /*\n console.log(`from state ${key}`, currentId)\n /** */\n return currentId;\n }\n /* 2. Try event payload */\n\n\n if (payload && isObject(payload) && payload[key]) {\n /*\n console.log(`from payload ${key}`, payload[key])\n /** */\n return payload[key];\n }\n /* 3. Try persisted data */\n\n\n var persistedInfo = getPersistedUserData(storage)[key];\n\n if (persistedInfo) {\n /*\n console.log(`from persistedInfo ${key}`, persistedInfo)\n /** */\n return persistedInfo;\n }\n /* 4. Else, try to get in memory placeholder. TODO watch this for future issues */\n\n\n if (globalContext[tempKey(key)]) {\n /*\n console.log(`from global ${key}`, globalContext[tempKey(key)])\n /** */\n return globalContext[tempKey(key)];\n } // return null instead of undefined for consistency\n\n\n return null;\n };\n}\n\nfunction identifyMiddleware(instance) {\n var _instance$storage = instance.storage,\n setItem = _instance$storage.setItem,\n removeItem = _instance$storage.removeItem,\n getItem = _instance$storage.getItem;\n return function (store) {\n return function (next) {\n return function (action) {\n var userId = action.userId,\n traits = action.traits,\n options = action.options;\n /* Reset user id and traits */\n\n if (action.type === EVENTS.reset) {\n // Remove stored data\n [USER_ID, USER_TRAITS, ANON_ID].forEach(function (key) {\n // Fires async removeItem dispatch\n removeItem(key);\n });\n [ID, ANONID, 'traits'].forEach(function (key) {\n globalContext[tempKey(key)] = undefined;\n });\n }\n\n if (action.type === EVENTS.identify) {\n /* If no anon id. Set it! */\n if (!getItem(ANON_ID)) {\n setItem(ANON_ID, uuid());\n }\n\n var currentId = getItem(USER_ID);\n var currentTraits = getItem(USER_TRAITS) || {};\n\n if (currentId && currentId !== userId) {\n store.dispatch({\n type: EVENTS.userIdChanged,\n old: {\n userId: currentId,\n traits: currentTraits\n },\n \"new\": {\n userId: userId,\n traits: traits\n },\n options: options\n });\n }\n /* Save user id */\n\n\n if (userId) {\n setItem(USER_ID, userId);\n }\n /* Save user traits */\n\n\n if (traits) {\n setItem(USER_TRAITS, objectSpread2(objectSpread2({}, currentTraits), traits));\n }\n }\n\n return next(action);\n };\n };\n };\n}\n\nvar stack = {};\n/*\nwindow.callBackStack = stack\n/** */\n\nfunction runCallback(id, payload) {\n if (stack[id] && isFunction(stack[id])) {\n // console.log(`run ${id}`)\n stack[id](payload);\n delete stack[id];\n }\n}\n\nfunction waitForReady(data, predicate, timeout) {\n return new Promise(function (resolve, reject) {\n if (predicate()) {\n return resolve(data);\n } // Timeout. Add to queue\n\n\n if (timeout < 1) {\n return reject(objectSpread2(objectSpread2({}, data), {}, {\n queue: true\n })); // eslint-disable-line\n } // Else recursive retry\n\n\n return pause(10).then(function (_) {\n return waitForReady(data, predicate, timeout - 10).then(resolve, reject);\n });\n });\n}\n\nfunction pause(ms) {\n return new Promise(function (resolve) {\n return setTimeout(resolve, ms);\n });\n}\n\nfunction processQueue(store, getPlugins, instance) {\n var pluginMethods = getPlugins();\n\n var _store$getState = store.getState(),\n plugins = _store$getState.plugins,\n context = _store$getState.context,\n queue = _store$getState.queue,\n user = _store$getState.user;\n\n var isOnline = !context.offline;\n /* If network connection found and there is items in queue, process them all */\n\n if (isOnline && queue && queue.actions && queue.actions.length) {\n var pipeline = queue.actions.reduce(function (acc, item, index) {\n var isLoaded = plugins[item.plugin].loaded;\n\n if (isLoaded) {\n acc.process.push(item);\n acc.processIndex.push(index);\n } else {\n acc.requeue.push(item);\n acc.requeueIndex.push(index);\n }\n\n return acc;\n }, {\n processIndex: [],\n process: [],\n requeue: [],\n requeueIndex: []\n });\n\n if (pipeline.processIndex && pipeline.processIndex.length) {\n pipeline.processIndex.forEach(function (i) {\n var processAction = queue.actions[i]; // console.log('RePROCESS THIS>', processAction)\n // Call methods directly right now\n\n var currentPlugin = processAction.plugin;\n var currentMethod = processAction.payload.type;\n var method = pluginMethods[currentPlugin][currentMethod];\n\n if (method && isFunction(method)) {\n /* enrich queued payload with userId / anon id if missing */\n\n /* TODO hoist enrich into where action queued? */\n // console.log('before', processAction.payload)\n var enrichedPayload = enrich(processAction.payload, user); // console.log('user.userId', user.userId)\n // console.log('user.anonymousId', user.anonymousId)\n // console.log('after enrich', enrichedPayload)\n\n method({\n payload: enrichedPayload,\n config: plugins[currentPlugin].config,\n instance: instance\n });\n /* Then redispatch for .on listeners / other middleware */\n\n var pluginEvent = \"\".concat(currentMethod, \":\").concat(currentPlugin);\n store.dispatch(objectSpread2(objectSpread2({}, enrichedPayload), {}, {\n type: pluginEvent,\n\n /* Internal data for analytics engine */\n _: {\n called: pluginEvent,\n from: 'queueDrain'\n }\n }));\n }\n });\n /* Removed processed actions */\n\n var reQueueActions = queue.actions.filter(function (value, index) {\n // !~ === return pipeline.processIndex.indexOf(index) === -1\n return !~pipeline.processIndex.indexOf(index);\n });\n /* Set queue actions. TODO refactor to non mutatable or move out of redux */\n\n queue.actions = reQueueActions;\n }\n }\n}\n/* Heartbeat retries queued events */\n\nfunction heartBeat(store, getPlugins, instance) {\n // 3e3 === 3000 ms\n return setInterval(function () {\n return processQueue(store, getPlugins, instance);\n }, 3e3);\n} // Assign userId && anonymousId values if present in payload but null\n\nfunction enrich() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var user = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return [ID, ANONID].reduce(function (acc, key) {\n if (payload.hasOwnProperty(key) && user[key] && user[key] !== payload[key]) {\n // console.log(`${key} stale update with ${user[key]}`)\n acc[key] = user[key];\n }\n\n return acc;\n }, payload);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar arrayWithHoles = _arrayWithHoles;\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nvar iterableToArrayLimit = _iterableToArrayLimit;\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nvar nonIterableRest = _nonIterableRest;\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nvar slicedToArray = _slicedToArray;\n\nfunction fitlerDisabledPlugins(allPlugins) {\n var settings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Object.keys(allPlugins).filter(function (name) {\n var fromCallOptions = options.plugins || {}; // If enabled/disabled by options. Override settings\n\n if (isBoolean(fromCallOptions[name])) {\n return fromCallOptions[name];\n } // If all: false disable everything unless true explicitly set\n\n\n if (fromCallOptions.all === false) {\n return false;\n } // else use state.plugin settings\n\n\n if (settings[name] && settings[name].enabled === false) {\n return false;\n }\n\n return true;\n }).map(function (name) {\n return allPlugins[name];\n });\n}\n\nvar endsWithStartRegex = /Start$/;\nvar bootstrapRegex = /^bootstrap/;\nvar readyRegex = /^ready/;\nfunction runPlugins (_x, _x2, _x3, _x4, _x5) {\n return _ref.apply(this, arguments);\n}\n/**\n * Async reduce over matched plugin methods\n * Fires plugin functions\n */\n\nfunction _ref() {\n _ref = asyncToGenerator(\n /*#__PURE__*/\n regenerator.mark(function _callee(action, getPlugins, instance, store, eventsInfo) {\n var pluginObject, originalType, updatedType, state, activePlugins, allActivePluginKeys, allMatches, actionBefore, actionDuring, afterName, actionAfter;\n return regenerator.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n pluginObject = isFunction(getPlugins) ? getPlugins() : getPlugins;\n originalType = action.type;\n updatedType = originalType.replace(endsWithStartRegex, '');\n /* If action already dispatched exit early. This makes it so plugin methods are not fired twice. */\n\n if (!(action._ && action._.called)) {\n _context.next = 5;\n break;\n }\n\n return _context.abrupt(\"return\", action);\n\n case 5:\n state = instance.getState();\n /* Remove plugins that are disabled by options or by settings */\n\n activePlugins = fitlerDisabledPlugins(pluginObject, state.plugins, action.options);\n /* If analytics.plugin.enable calls do special behavior */\n\n if (originalType === EVENTS.initializeStart && action.fromEnable) {\n // Return list of all enabled plugins that have NOT been initialized yet\n activePlugins = Object.keys(state.plugins).filter(function (name) {\n var info = state.plugins[name];\n return action.plugins.includes(name) && !info.initialized;\n }).map(function (name) {\n return pluginObject[name];\n });\n } // console.log(`engine activePlugins ${action.type}`, activePlugins)\n\n\n allActivePluginKeys = activePlugins.map(function (p) {\n return p.name;\n }); // console.log('allActivePluginKeys', allActivePluginKeys)\n\n allMatches = getAllMatchingCalls(originalType, activePlugins, pluginObject); // console.log('allMatches', allMatches)\n\n /* @TODO cache matches and purge on enable/disable/add plugin */\n\n /**\n * Process all 'actionBefore' hooks\n * Example:\n * This is processes 'pageStart' methods from plugins and update the event to send through the chain\n */\n\n _context.next = 12;\n return processEvent({\n action: action,\n data: {\n exact: allMatches.before,\n namespaced: allMatches.beforeNS\n },\n state: state,\n allPlugins: pluginObject,\n allMatches: allMatches,\n instance: instance,\n store: store,\n EVENTS: eventsInfo\n });\n\n case 12:\n actionBefore = _context.sent;\n\n if (!shouldAbortAll(actionBefore, allActivePluginKeys.length)) {\n _context.next = 15;\n break;\n }\n\n return _context.abrupt(\"return\", actionBefore);\n\n case 15:\n if (!(originalType === updatedType)) {\n _context.next = 19;\n break;\n }\n\n /* If type the same don't double process */\n actionDuring = actionBefore;\n _context.next = 22;\n break;\n\n case 19:\n _context.next = 21;\n return processEvent({\n action: objectSpread2(objectSpread2({}, actionBefore), {}, {\n type: updatedType\n }),\n data: {\n exact: allMatches.during,\n namespaced: allMatches.duringNS\n },\n state: state,\n allPlugins: pluginObject,\n allMatches: allMatches,\n instance: instance,\n store: store,\n EVENTS: eventsInfo\n });\n\n case 21:\n actionDuring = _context.sent;\n\n case 22:\n if (!originalType.match(endsWithStartRegex)) {\n _context.next = 28;\n break;\n }\n\n afterName = \"\".concat(updatedType, \"End\");\n _context.next = 26;\n return processEvent({\n action: objectSpread2(objectSpread2({}, actionDuring), {}, {\n type: afterName\n }),\n data: {\n exact: allMatches.after,\n namespaced: allMatches.afterNS\n },\n state: state,\n allPlugins: pluginObject,\n allMatches: allMatches,\n instance: instance,\n store: store,\n EVENTS: eventsInfo\n });\n\n case 26:\n actionAfter = _context.sent;\n\n // console.log('____ actionAfter', actionAfter)\n\n /* Fire callback if supplied */\n if (actionAfter.meta && actionAfter.meta.hasCallback) {\n /*\n console.log('End of engine action has callback')\n console.log(actionAfter.meta)\n console.log('stack', stack)\n /** */\n // @TODO figure out exact args calls and .on will get\n runCallback(actionAfter.meta.rid, {\n payload: actionAfter\n });\n }\n\n case 28:\n return _context.abrupt(\"return\", actionBefore);\n\n case 29:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _ref.apply(this, arguments);\n}\n\nfunction processEvent(_x6) {\n return _processEvent.apply(this, arguments);\n}\n\nfunction _processEvent() {\n _processEvent = asyncToGenerator(\n /*#__PURE__*/\n regenerator.mark(function _callee5(_ref2) {\n var data, action, instance, state, allPlugins, allMatches, store, EVENTS$$1, plugins, context, method, isStartEvent, abortable, makeArgs, queueData, payloads, resolvedAction, endAction;\n return regenerator.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n data = _ref2.data, action = _ref2.action, instance = _ref2.instance, state = _ref2.state, allPlugins = _ref2.allPlugins, allMatches = _ref2.allMatches, store = _ref2.store, EVENTS$$1 = _ref2.EVENTS;\n plugins = state.plugins, context = state.context;\n method = action.type;\n isStartEvent = method.match(endsWithStartRegex); // console.log(`data ${method}`, data)\n // console.log(`data allMatches ${method}`, allMatches)\n\n abortable = data.exact.map(function (x) {\n return x.pluginName;\n });\n /* If abort is called from xyzStart */\n\n if (isStartEvent) {\n abortable = allMatches.during.map(function (x) {\n return x.pluginName;\n });\n }\n /* make args for functions to concume */\n\n\n makeArgs = argumentFactory(instance, abortable); // console.log('makeArgs', makeArgs)\n\n /* Check if plugin loaded, if not mark action for queue */\n\n queueData = data.exact.reduce(function (acc, thing) {\n var pluginName = thing.pluginName,\n methodName = thing.methodName;\n var addToQueue = false; // Queue actions if plugin not loaded except for initialize and reset\n\n if (!methodName.match(/^initialize/) && !methodName.match(/^reset/)) {\n addToQueue = !plugins[pluginName].loaded;\n }\n /* If offline and its a core method. Add to queue */\n\n\n if (context.offline && methodName.match(/^(page|track|identify)/)) {\n addToQueue = true;\n }\n\n acc[\"\".concat(pluginName)] = addToQueue;\n return acc;\n }, {});\n /* generate plugin specific payloads */\n\n _context5.next = 10;\n return data.exact.reduce(\n /*#__PURE__*/\n function () {\n var _ref6 = asyncToGenerator(\n /*#__PURE__*/\n regenerator.mark(function _callee3(scoped, curr, i) {\n var pluginName, curScope, scopedPayload;\n return regenerator.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n pluginName = curr.pluginName;\n _context3.next = 3;\n return scoped;\n\n case 3:\n curScope = _context3.sent;\n\n if (!(data.namespaced && data.namespaced[pluginName])) {\n _context3.next = 11;\n break;\n }\n\n _context3.next = 7;\n return data.namespaced[pluginName].reduce(\n /*#__PURE__*/\n function () {\n var _ref7 = asyncToGenerator(\n /*#__PURE__*/\n regenerator.mark(function _callee2(acc, p, count) {\n var curScopeData, genAbort, val, returnValue;\n return regenerator.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n genAbort = function _ref8(currentAct, pname, otherPlug) {\n return function (reason, plugins) {\n var callsite = otherPlug || pname; // console.log(`__abort msg: ${reason}`)\n // console.log(`__abort ${pname}`)\n // console.log(`__abort xxx: ${plugins}`)\n // console.log(`__abort otherPlug`, otherPlug)\n\n return objectSpread2(objectSpread2({}, currentAct), {}, {\n abort: {\n reason: reason,\n plugins: plugins || [pname],\n caller: method,\n from: callsite\n }\n });\n };\n };\n\n _context2.next = 3;\n return acc;\n\n case 3:\n curScopeData = _context2.sent;\n\n if (!(!p.method || !isFunction(p.method))) {\n _context2.next = 6;\n break;\n }\n\n return _context2.abrupt(\"return\", curScopeData);\n\n case 6:\n /* Make sure plugins don’t call themselves */\n validateMethod(p.methodName, p.pluginName);\n _context2.next = 9;\n return p.method({\n payload: curScopeData,\n instance: instance,\n abort: genAbort(curScopeData, pluginName, p.pluginName),\n config: getConfig(p.pluginName, plugins, allPlugins),\n plugins: plugins\n });\n\n case 9:\n val = _context2.sent;\n returnValue = isObject(val) ? val : {};\n return _context2.abrupt(\"return\", Promise.resolve(objectSpread2(objectSpread2({}, curScopeData), returnValue)));\n\n case 12:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function (_x10, _x11, _x12) {\n return _ref7.apply(this, arguments);\n };\n }(), Promise.resolve(action));\n\n case 7:\n scopedPayload = _context3.sent;\n\n /* Set scoped payload */\n curScope[pluginName] = scopedPayload;\n _context3.next = 12;\n break;\n\n case 11:\n /* Set payload as default action */\n curScope[pluginName] = action;\n\n case 12:\n return _context3.abrupt(\"return\", Promise.resolve(curScope));\n\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n return function (_x7, _x8, _x9) {\n return _ref6.apply(this, arguments);\n };\n }(), Promise.resolve({}));\n\n case 10:\n payloads = _context5.sent;\n _context5.next = 13;\n return data.exact.reduce(\n /*#__PURE__*/\n function () {\n var _ref9 = asyncToGenerator(\n /*#__PURE__*/\n regenerator.mark(function _callee4(promise, curr, i) {\n var lastLoop, pluginName, currentPlugin, currentActionValue, payloadValue, funcArgs, val, returnValue, merged, scopedPayload, nameSpaceEvent, actionDepth, updatedPayload;\n return regenerator.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n lastLoop = data.exact.length === i + 1;\n pluginName = curr.pluginName;\n currentPlugin = allPlugins[pluginName];\n _context4.next = 5;\n return promise;\n\n case 5:\n currentActionValue = _context4.sent;\n payloadValue = payloads[pluginName] ? payloads[pluginName] : {};\n /* If eventStart, allow for value merging */\n\n if (isStartEvent) {\n payloadValue = currentActionValue;\n }\n\n if (!shouldAbort(payloadValue, pluginName)) {\n _context4.next = 11;\n break;\n }\n\n // console.log(`> Abort from payload specific \"${pluginName}\" abort value`, payloadValue)\n abortDispatch({\n data: payloadValue,\n method: method,\n instance: instance,\n pluginName: pluginName,\n store: store\n });\n return _context4.abrupt(\"return\", Promise.resolve(currentActionValue));\n\n case 11:\n if (!shouldAbort(currentActionValue, pluginName)) {\n _context4.next = 14;\n break;\n }\n\n // console.log(`> Abort from ${method} abort value`, currentActionValue)\n if (lastLoop) {\n abortDispatch({\n data: currentActionValue,\n method: method,\n instance: instance,\n // pluginName,\n store: store\n });\n }\n\n return _context4.abrupt(\"return\", Promise.resolve(currentActionValue));\n\n case 14:\n if (!(queueData.hasOwnProperty(pluginName) && queueData[pluginName] === true)) {\n _context4.next = 17;\n break;\n }\n\n // console.log('Queue this instead', pluginName)\n store.dispatch({\n type: \"queue\",\n plugin: pluginName,\n payload: payloadValue,\n\n /* Internal data for analytics engine */\n _: {\n called: \"queue\",\n from: 'queueMechanism' // for debugging\n\n }\n });\n return _context4.abrupt(\"return\", Promise.resolve(currentActionValue));\n\n case 17:\n /*\n const checkForLoaded = () => {\n const p = instance.getState('plugins')\n return p[currentPlugin.name].loaded\n }\n // const p = instance.getState('plugins')\n console.log(`loaded \"${currentPlugin.name}\" > ${method}:`, p[currentPlugin.name].loaded)\n // await waitForReady(currentPlugin, checkForLoaded, 10000).then((d) => {\n // console.log(`Loaded ${method}`, currentPlugin.name)\n // }).catch((e) => {\n // console.log(`Error ${method} ${currentPlugin.name}`, e)\n // // TODO dispatch failure\n // })\n */\n // @TODO figure out if we want queuing semantics\n funcArgs = makeArgs(payloads[pluginName], allPlugins[pluginName]); // console.log(`funcArgs ${method} ${pluginName}`, funcArgs)\n\n /* Run the plugin function */\n\n _context4.next = 20;\n return currentPlugin[method]({\n // currentPlugin: pluginName,\n abort: funcArgs.abort,\n // Send in original action value or scope payload\n payload: payloadValue,\n instance: instance,\n config: getConfig(pluginName, plugins, allPlugins),\n plugins: plugins\n });\n\n case 20:\n val = _context4.sent;\n returnValue = isObject(val) ? val : {};\n merged = objectSpread2(objectSpread2({}, currentActionValue), returnValue);\n scopedPayload = payloads[pluginName]; // || currentActionValue\n\n if (shouldAbort(scopedPayload, pluginName)) {\n // console.log(`>> HANDLE abort ${method} ${pluginName}`)\n abortDispatch({\n data: scopedPayload,\n method: method,\n instance: instance,\n pluginName: pluginName,\n store: store\n });\n } else {\n nameSpaceEvent = \"\".concat(method, \":\").concat(pluginName);\n actionDepth = (nameSpaceEvent.match(/:/g) || []).length;\n\n if (actionDepth < 2 && !method.match(bootstrapRegex) && !method.match(readyRegex)) {\n updatedPayload = isStartEvent ? merged : payloadValue; // Dispatched for `.on('xyz') listeners.\n\n instance.dispatch(objectSpread2(objectSpread2({}, updatedPayload), {}, {\n type: nameSpaceEvent,\n _: {\n called: nameSpaceEvent,\n from: 'submethod'\n }\n }));\n }\n } // console.log('merged', merged)\n\n\n return _context4.abrupt(\"return\", Promise.resolve(merged));\n\n case 26:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n return function (_x13, _x14, _x15) {\n return _ref9.apply(this, arguments);\n };\n }(), Promise.resolve(action));\n\n case 13:\n resolvedAction = _context5.sent;\n\n if (!(!method.match(endsWithStartRegex) && !method.match(/^registerPlugin/) && // !method.match(/^disablePlugin/) &&\n // !method.match(/^enablePlugin/) &&\n !method.match(readyRegex) && !method.match(bootstrapRegex) && !method.match(/^params/) && !method.match(/^userIdChanged/))) {\n _context5.next = 21;\n break;\n }\n\n if (EVENTS$$1.plugins.includes(method)) ; // console.log(`Dont dispatch for ${method}`, resolvedAction)\n // return resolvedAction\n\n /*\n Verify this original action setup.\n It's intended to keep actions from double dispatching themselves\n */\n\n\n if (!(resolvedAction._ && resolvedAction._.originalAction === method)) {\n _context5.next = 18;\n break;\n }\n\n return _context5.abrupt(\"return\", resolvedAction);\n\n case 18:\n endAction = objectSpread2(objectSpread2({}, resolvedAction), {\n _: {\n originalAction: resolvedAction.type,\n called: resolvedAction.type,\n from: 'engineEnd'\n }\n });\n /* If all plugins are aborted, dispatch xAborted */\n\n if (shouldAbortAll(resolvedAction, data.exact.length) && !method.match(/End$/)) {\n endAction = objectSpread2(objectSpread2({}, endAction), {\n type: resolvedAction.type + 'Aborted'\n });\n }\n\n store.dispatch(endAction);\n\n case 21:\n return _context5.abrupt(\"return\", resolvedAction);\n\n case 22:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n return _processEvent.apply(this, arguments);\n}\n\nfunction abortDispatch(_ref3) {\n var data = _ref3.data,\n method = _ref3.method,\n instance = _ref3.instance,\n pluginName = _ref3.pluginName,\n store = _ref3.store;\n var postFix = pluginName ? ':' + pluginName : '';\n var abortEvent = method + 'Aborted' + postFix;\n store.dispatch(objectSpread2(objectSpread2({}, data), {}, {\n type: abortEvent,\n _: {\n called: abortEvent,\n from: 'abort'\n }\n }));\n}\n\nfunction getConfig(name, pluginState, allPlugins) {\n var pluginData = pluginState[name] || allPlugins[name];\n\n if (pluginData && pluginData.config) {\n return pluginData.config;\n }\n\n return {};\n}\n\nfunction getPluginFunctions(methodName, plugins) {\n return plugins.reduce(function (arr, plugin) {\n return !plugin[methodName] ? arr : arr.concat({\n methodName: methodName,\n pluginName: plugin.name,\n method: plugin[methodName]\n });\n }, []);\n}\n\nfunction formatMethod(type) {\n return type.replace(endsWithStartRegex, '');\n}\n/**\n * Return array of event names\n * @param {String} eventType - original event type\n * @param {String} namespace - optional namespace postfix\n * @return {array} - type, method, end\n */\n\n\nfunction getEventNames(eventType, namespace) {\n var method = formatMethod(eventType);\n var postFix = namespace ? \":\".concat(namespace) : ''; // `typeStart:pluginName`\n\n var type = \"\".concat(eventType).concat(postFix); // `type:pluginName`\n\n var methodName = \"\".concat(method).concat(postFix); // `typeEnd:pluginName`\n\n var end = \"\".concat(method, \"End\").concat(postFix);\n return [type, methodName, end];\n}\n/* Collect all calls for a given event in the system */\n\n\nfunction getAllMatchingCalls(eventType, activePlugins, allPlugins) {\n var eventNames = getEventNames(eventType); // console.log('eventNames', eventNames)\n // 'eventStart', 'event', & `eventEnd`\n\n var core = eventNames.map(function (word) {\n return getPluginFunctions(word, activePlugins);\n }); // Gather nameSpaced Events\n\n return activePlugins.reduce(function (acc, plugin) {\n var name = plugin.name;\n var nameSpacedEvents = getEventNames(eventType, name); // console.log('eventNames namespaced', nameSpacedEvents)\n\n var _nameSpacedEvents$map = nameSpacedEvents.map(function (word) {\n return getPluginFunctions(word, activePlugins);\n }),\n _nameSpacedEvents$map2 = slicedToArray(_nameSpacedEvents$map, 3),\n beforeFuncs = _nameSpacedEvents$map2[0],\n duringFuncs = _nameSpacedEvents$map2[1],\n afterFuncs = _nameSpacedEvents$map2[2];\n\n if (beforeFuncs.length) {\n acc.beforeNS[name] = beforeFuncs;\n }\n\n if (duringFuncs.length) {\n acc.duringNS[name] = duringFuncs;\n }\n\n if (afterFuncs.length) {\n acc.afterNS[name] = afterFuncs;\n }\n\n return acc;\n }, {\n before: core[0],\n beforeNS: {},\n during: core[1],\n duringNS: {},\n after: core[2],\n afterNS: {}\n });\n}\n\nfunction shouldAbort(_ref4, pluginName) {\n var abort = _ref4.abort;\n if (!abort) return false;\n if (abort === true) return true;\n return includes(abort, pluginName) || abort && includes(abort.plugins, pluginName);\n}\n\nfunction shouldAbortAll(_ref5, pluginsCount) {\n var abort = _ref5.abort;\n if (!abort) return false;\n if (abort === true || isString(abort)) return true;\n var plugins = abort.plugins;\n return isArray$1(abort) && abort.length === pluginsCount || isArray$1(plugins) && plugins.length === pluginsCount;\n}\n\nfunction isArray$1(arr) {\n return Array.isArray(arr);\n}\n\nfunction includes(arr, name) {\n if (!arr || !isArray$1(arr)) return false;\n return arr.includes(name);\n}\n/**\n * Generate arguments to pass to plugin methods\n * @param {Object} instance - analytics instance\n * @param {array} abortablePlugins - plugins that can be cancelled by caller\n * @return {*} function to inject plugin params\n */\n\n\nfunction argumentFactory(instance, abortablePlugins) {\n // console.log('abortablePlugins', abortablePlugins)\n return function (action, plugin, otherPlugin) {\n var config = plugin.config,\n name = plugin.name;\n var method = \"\".concat(name, \".\").concat(action.type);\n\n if (otherPlugin) {\n method = otherPlugin.event;\n }\n\n var abortF = action.type.match(endsWithStartRegex) ? abortFunction(name, method, abortablePlugins, otherPlugin, action) : notAbortableError(action, method);\n return {\n /* self: plugin, for future maybe */\n // clone objects to avoid reassign\n payload: formatPayload(action),\n instance: instance,\n config: config || {},\n abort: abortF\n };\n };\n}\n\nfunction abortFunction(pluginName, method, abortablePlugins, otherPlugin, action) {\n return function (reason, plugins) {\n var caller = otherPlugin ? otherPlugin.name : pluginName;\n var pluginsToAbort = plugins && isArray$1(plugins) ? plugins : abortablePlugins;\n\n if (otherPlugin) {\n pluginsToAbort = plugins && isArray$1(plugins) ? plugins : [pluginName];\n\n if (!pluginsToAbort.includes(pluginName) || pluginsToAbort.length !== 1) {\n throw new Error(\"Method \".concat(method, \" can only abort \").concat(pluginName, \" plugin. \").concat(JSON.stringify(pluginsToAbort), \" input valid\"));\n }\n }\n\n return objectSpread2(objectSpread2({}, action), {}, {\n // 🔥 todo verify this merge is ok\n abort: {\n reason: reason,\n plugins: pluginsToAbort,\n caller: method,\n _: caller\n }\n });\n };\n}\n\nfunction notAbortableError(action, method) {\n return function () {\n throw new Error(action.type + ' action not cancellable. Remove abort in ' + method);\n };\n}\n/**\n * Verify plugin is not calling itself with whatever:myPluginName self refs\n */\n\n\nfunction validateMethod(actionName, pluginName) {\n var text = getNameSpacedAction(actionName);\n var methodCallMatchesPluginNamespace = text && text.name === pluginName;\n\n if (methodCallMatchesPluginNamespace) {\n var sub = getNameSpacedAction(text.method);\n var subText = sub ? 'or ' + sub.method : '';\n throw new Error([pluginName + ' plugin is calling method ' + actionName, 'Plugins cant call self', \"Use \".concat(text.method, \" \").concat(subText, \" in \").concat(pluginName, \" plugin insteadof \").concat(actionName)].join('\\n'));\n }\n}\n\nfunction getNameSpacedAction(event) {\n var split = event.match(/(.*):(.*)/);\n\n if (!split) {\n return false;\n }\n\n return {\n method: split[1],\n name: split[2]\n };\n}\n\nfunction formatPayload(action) {\n return Object.keys(action).reduce(function (acc, key) {\n // redact type from { payload }\n if (key === 'type') {\n return acc;\n }\n\n if (isObject(action[key])) {\n acc[key] = Object.assign({}, action[key]);\n } else {\n acc[key] = action[key];\n }\n\n return acc;\n }, {});\n}\n/*\nfunction getMatchingMethods(eventType, activePlugins) {\n const exact = getPluginFunctions(eventType, activePlugins)\n // console.log('exact', exact)\n // Gather nameSpaced Events\n return activePlugins.reduce((acc, plugin) => {\n const { name } = plugin\n const clean = getPluginFunctions(`${eventType}:${name}`, activePlugins)\n if (clean.length) {\n acc.namespaced[name] = clean\n }\n return acc\n }, {\n exact: exact,\n namespaced: {}\n })\n}\n*/\n\nfunction pluginMiddleware(instance, getPlugins, systemEvents) {\n var isReady = {};\n return function (store) {\n return function (next) {\n return (\n /*#__PURE__*/\n function () {\n var _ref = asyncToGenerator(\n /*#__PURE__*/\n regenerator.mark(function _callee(action) {\n var type, abort, plugins, updatedAction, allPlugins, pluginsArray, allRegisteredPlugins, completed, failed, disabled, waitForPluginsToLoad, updated;\n return regenerator.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n type = action.type, abort = action.abort, plugins = action.plugins;\n updatedAction = action;\n\n if (!abort) {\n _context.next = 4;\n break;\n }\n\n return _context.abrupt(\"return\", next(action));\n\n case 4:\n /* Analytics.plugins.enable called, we need to init the plugins */\n if (type === EVENTS.enablePlugin) {\n store.dispatch({\n type: EVENTS.initializeStart,\n plugins: plugins,\n disabled: [],\n fromEnable: true,\n meta: action.meta\n });\n }\n\n if (type === EVENTS.disablePlugin) {\n // If cached callback, resolve promise/run callback. debounced to fix race condition\n setTimeout(function () {\n return runCallback(action.meta.rid, {\n payload: action\n });\n }, 0);\n }\n /* @TODO implement\n if (type === EVENTS.loadPlugin) {\n // Rerun initialize calls in plugins\n const allPlugins = getPlugins()\n const pluginsToLoad = Object.keys(allPlugins).filter((name) => {\n return plugins.includes(name)\n }).reduce((acc, curr) => {\n acc[curr] = allPlugins[curr]\n return acc\n }, {})\n const initializeAction = {\n type: EVENTS.initializeStart,\n plugins: plugins\n }\n const updated = await runPlugins(initializeAction, pluginsToLoad, instance, store, systemEvents)\n return next(updated)\n }\n */\n //* || type.match(/^initializeAbort:/)\n\n\n if (type === EVENTS.initializeEnd) {\n allPlugins = getPlugins();\n pluginsArray = Object.keys(allPlugins);\n allRegisteredPlugins = pluginsArray.filter(function (name) {\n return plugins.includes(name);\n }).map(function (name) {\n return allPlugins[name];\n });\n completed = [];\n failed = [];\n disabled = action.disabled; // console.log('allRegisteredPlugins', allRegisteredPlugins)\n\n waitForPluginsToLoad = allRegisteredPlugins.map(function (plugin) {\n var loaded = plugin.loaded,\n name = plugin.name;\n /* Plugins will abort trying to load after 10 seconds. 1e4 === 10000 MS */\n\n return waitForReady(plugin, loaded, 1e4).then(function (d) {\n if (!isReady[name]) {\n // only dispatch namespaced rdy once\n store.dispatch({\n type: EVENTS.pluginReadyType(name),\n // `ready:${name}`\n name: name,\n events: Object.keys(plugin).filter(function (name) {\n return !nonEvents.includes(name);\n })\n });\n isReady[name] = true;\n }\n\n completed = completed.concat(name);\n return plugin; // It's loaded! run the command\n })[\"catch\"](function (e) {\n // Timeout Add to queue\n // console.log('Error generic waitForReady. Push this to queue', e)\n if (e instanceof Error) {\n throw new Error(e);\n }\n\n failed = failed.concat(e.name); // Failed to fire, add to queue\n\n return e;\n });\n });\n Promise.all(waitForPluginsToLoad).then(function (calls) {\n // setTimeout to ensure runs after 'page'\n var payload = {\n plugins: completed,\n failed: failed,\n disabled: disabled\n };\n setTimeout(function () {\n if (pluginsArray.length === waitForPluginsToLoad.length + disabled.length) {\n store.dispatch(objectSpread2(objectSpread2({}, {\n type: EVENTS.ready\n }), payload));\n }\n }, 0);\n });\n }\n /* New plugin system */\n\n\n if (!(type !== EVENTS.bootstrap)) {\n _context.next = 13;\n break;\n }\n\n if (/^ready:([^:]*)$/.test(type)) {\n // Immediately flush queue\n setTimeout(function () {\n return processQueue(store, getPlugins, instance);\n }, 0);\n }\n\n _context.next = 11;\n return runPlugins(action, getPlugins, instance, store, systemEvents);\n\n case 11:\n updated = _context.sent;\n return _context.abrupt(\"return\", next(updated));\n\n case 13:\n return _context.abrupt(\"return\", next(updatedAction));\n\n case 14:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()\n );\n };\n };\n}\n\nfunction storageMiddleware(storage) {\n return function (store) {\n return function (next) {\n return function (action) {\n var type = action.type,\n key = action.key,\n value = action.value,\n options = action.options;\n\n if (type === EVENTS.setItem || type === EVENTS.removeItem) {\n if (action.abort) {\n return next(action);\n } // Run storage set or remove\n\n\n if (type === EVENTS.setItem) {\n storage.setItem(key, value, options);\n } else {\n storage.removeItem(key, options);\n }\n }\n\n return next(action);\n };\n };\n };\n}\n/*\n Todo: emit events for keys we care about\n window.addEventListener('storage', (event) => console.log(event));\n*/\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar classCallCheck = _classCallCheck;\n\n/* Class to fix dynamic middlewares from conflicting with each other\nif more than one analytic instance is active */\n\nvar DynamicMiddleware = function DynamicMiddleware() {\n var _this = this;\n\n classCallCheck(this, DynamicMiddleware);\n\n defineProperty(this, \"before\", []);\n\n defineProperty(this, \"after\", []);\n\n defineProperty(this, \"addMiddleware\", function (middlewares, position) {\n _this[position] = _this[position].concat(middlewares);\n });\n\n defineProperty(this, \"removeMiddleware\", function (middleware, position) {\n var index = _this[position].findIndex(function (d) {\n return d === middleware;\n });\n\n if (index === -1) return;\n _this[position] = [].concat(toConsumableArray(_this[position].slice(0, index)), toConsumableArray(_this[position].slice(index + 1)));\n });\n\n defineProperty(this, \"dynamicMiddlewares\", function (position) {\n return function (store) {\n return function (next) {\n return function (action) {\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(act) {\n return store.dispatch(act);\n }\n };\n\n var chain = _this[position].map(function (middleware) {\n return middleware(middlewareAPI);\n });\n\n return compose.apply(void 0, toConsumableArray(chain))(next)(action);\n };\n };\n };\n });\n};\n\nfunction createReducer(getPlugins) {\n return function plugins() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var newState = {};\n\n if (action.type === 'initialize:aborted') {\n return state;\n }\n\n if (/^registerPlugin:([^:]*)$/.test(action.type)) {\n var name = getNameFromEventType(action.type, 'registerPlugin');\n var plugin = getPlugins()[name];\n\n if (!plugin || !name) {\n return state;\n }\n\n var isEnabled = action.enabled;\n newState[name] = {\n enabled: isEnabled,\n\n /* if no initialization method. Set initialized true */\n initialized: isEnabled ? Boolean(!plugin.initialize) : false,\n\n /* If plugin enabled === false, set loaded to false, else check plugin.loaded function */\n loaded: isEnabled ? Boolean(plugin.loaded()) : false,\n config: plugin.config || {}\n };\n return objectSpread2(objectSpread2({}, state), newState);\n }\n\n if (/^initialize:([^:]*)$/.test(action.type)) {\n var _name = getNameFromEventType(action.type, EVENTS.initialize);\n\n var _plugin = getPlugins()[_name];\n\n if (!_plugin || !_name) {\n return state;\n }\n\n newState[_name] = objectSpread2(objectSpread2({}, state[_name]), {\n initialized: true,\n\n /* check plugin.loaded function */\n loaded: Boolean(_plugin.loaded())\n });\n return objectSpread2(objectSpread2({}, state), newState);\n }\n\n if (/^ready:([^:]*)$/.test(action.type)) {\n // const name = getNameFromEventType(action.type, 'ready')\n newState[action.name] = objectSpread2(objectSpread2({}, state[action.name]), {\n loaded: true\n });\n return objectSpread2(objectSpread2({}, state), newState);\n }\n\n switch (action.type) {\n /* case EVENTS.pluginFailed:\n // console.log('PLUGIN_FAILED', action.name)\n newState[action.name] = {\n ...state[action.name],\n ...{ loaded: false }\n }\n return { ...state, ...newState }\n */\n\n /* When analytics.plugins.disable called */\n case EVENTS.disablePlugin:\n return objectSpread2(objectSpread2({}, state), togglePluginStatus(action.plugins, false, state));\n\n /* When analytics.plugins.enable called */\n\n case EVENTS.enablePlugin:\n return objectSpread2(objectSpread2({}, state), togglePluginStatus(action.plugins, true, state));\n\n default:\n return state;\n }\n };\n}\n\nfunction getNameFromEventType(type, baseName) {\n return type.substring(baseName.length + 1, type.length);\n}\n\nfunction togglePluginStatus(plugins, status, currentState) {\n return plugins.reduce(function (acc, pluginKey) {\n acc[pluginKey] = objectSpread2(objectSpread2({}, currentState[pluginKey]), {\n enabled: status\n });\n return acc;\n }, currentState);\n}\n\n// TODO fix os. os getting stripped out for node build\n\nfunction getBrowserOS() {\n if (!inBrowser) return false;\n var os = navigator.appVersion; // ~os bitwise operator to check if in navigator\n\n if (~os.indexOf('Win')) return 'Windows';\n if (~os.indexOf('Mac')) return 'MacOS';\n if (~os.indexOf('X11')) return 'UNIX';\n if (~os.indexOf('Linux')) return 'Linux'; // default\n\n return 'Unknown OS';\n}\n\nvar osName;\nvar referrer;\nvar locale;\nvar timeZone;\n\n{\n osName = getBrowserOS();\n referrer = inBrowser ? document.referrer : null;\n locale = getBrowserLocale();\n timeZone = getTimeZone();\n}\n\nvar initialState = {\n initialized: false,\n sessionId: uuid(),\n app: null,\n version: null,\n debug: false,\n offline: inBrowser ? !navigator.onLine : false,\n // use node network is-online\n os: {\n name: osName\n },\n userAgent: inBrowser ? navigator.userAgent : 'node',\n // https://github.com/bestiejs/platform.js\n library: {\n name: LIBRARY_NAME,\n // TODO fix version number. npm run publish:patch has wrong version\n version: \"0.10.2\"\n },\n timezone: timeZone,\n locale: locale,\n campaign: {},\n referrer: referrer // context reducer\n\n};\nfunction context() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var initialized = state.initialized;\n var type = action.type,\n campaign = action.campaign;\n\n switch (type) {\n case EVENTS.campaign:\n return objectSpread2(objectSpread2({}, state), {\n campaign: campaign\n });\n\n case EVENTS.offline:\n return objectSpread2(objectSpread2({}, state), {\n offline: true\n });\n\n case EVENTS.online:\n return objectSpread2(objectSpread2({}, state), {\n offline: false\n });\n\n default:\n if (!initialized) {\n return objectSpread2(objectSpread2(objectSpread2({}, initialState), state), {\n initialized: true\n });\n }\n\n return state;\n }\n}\nvar excludeItems = ['plugins', 'reducers', 'storage']; // Pull plugins and reducers off intital config\n\nfunction makeContext(config) {\n return Object.keys(config).reduce(function (acc, current) {\n if (excludeItems.includes(current)) {\n return acc;\n }\n\n acc[current] = config[current];\n return acc;\n }, {});\n}\n\nfunction serialize(obj) {\n var s = obj;\n\n try {\n s = JSON.parse(JSON.stringify(obj));\n } catch (err) {}\n\n return s;\n}\n\nvar hashRegex = /#.*$/;\n\nfunction canonicalUrl() {\n if (!inBrowser) return;\n var tags = document.getElementsByTagName('link');\n\n for (var i = 0, tag; tag = tags[i]; i++) {\n if (tag.getAttribute('rel') === 'canonical') {\n return tag.getAttribute('href');\n }\n }\n}\n\nfunction urlPath(url) {\n var regex = /(http[s]?:\\/\\/)?([^\\/\\s]+\\/)(.*)/g;\n var matches = regex.exec(url);\n var pathMatch = matches && matches[3] ? matches[3].split('?')[0].replace(hashRegex, '') : '';\n return '/' + pathMatch;\n}\n/**\n * Return the canonical URL and rmove the hash.\n * @param {string} search - search param\n * @return {string} return current canonical URL\n */\n\n\nfunction currentUrl(search) {\n var canonical = canonicalUrl();\n if (!canonical) return window.location.href.replace(hashRegex, '');\n return canonical.match(/\\?/) ? canonical : canonical + search;\n}\n/**\n * Page data for overides\n * @typedef {object} PageData\n * @property {string} [title] - Page title\n * @property {string} [url] - Page url\n * @property {string} [path] - Page path\n * @property {string} [search] - Page search\n * @property {string} [width] - Page width\n * @property {string} [height] - Page height\n*/\n\n/**\n * Get information about current page\n * @typedef {Function} getPageData\n * @param {PageData} [pageData = {}] - Page data overides\n * @return {PageData} resolved page data\n */\n\n\nvar getPageData = function getPageData() {\n var pageData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!inBrowser) return pageData;\n var _document = document,\n title = _document.title,\n referrer = _document.referrer;\n var _window = window,\n location = _window.location,\n innerWidth = _window.innerWidth,\n innerHeight = _window.innerHeight;\n var hash = location.hash,\n search = location.search;\n var url = currentUrl(search);\n var page = {\n title: title,\n url: url,\n path: urlPath(url),\n hash: hash,\n search: search,\n width: innerWidth,\n height: innerHeight\n };\n\n if (referrer && referrer !== '') {\n page.referrer = referrer;\n }\n\n return objectSpread2(objectSpread2({}, page), pageData);\n};\nvar initialState$1 = {\n last: {},\n history: [] // page reducer\n\n};\nfunction page() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState$1;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var properties = action.properties,\n options = action.options,\n meta = action.meta;\n\n switch (action.type) {\n case EVENTS.page:\n var viewData = serialize(objectSpread2({\n properties: properties,\n meta: meta\n }, Object.keys(options).length && {\n options: options\n }));\n return objectSpread2(objectSpread2({}, state), {\n last: viewData,\n // Todo prevent LARGE arrays https://bit.ly/2MnBwPT\n history: state.history.concat(viewData)\n });\n\n default:\n return state;\n }\n}\n\nvar initialState$2 = {\n last: {},\n history: [] // track reducer\n\n};\nfunction trackReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState$2;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var type = action.type,\n meta = action.meta,\n options = action.options,\n event = action.event,\n properties = action.properties;\n\n switch (type) {\n case EVENTS.track:\n var trackEvent = serialize(objectSpread2(objectSpread2({\n event: event,\n properties: properties\n }, Object.keys(options).length && {\n options: options\n }), {}, {\n meta: meta\n }));\n return objectSpread2(objectSpread2({}, state), {\n last: trackEvent,\n // Todo prevent LARGE arrays https://bit.ly/2MnBwPT\n history: state.history.concat(trackEvent)\n });\n // todo push events to history\n\n default:\n return state;\n }\n}\n\n/*\nTODO figure out if this should live in state...\nQueue could be in mermory as well.\nBut also needs to be persisted to storage\n*/\n\nvar initialState$3 = {\n actions: []\n};\nfunction queueReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState$3;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var type = action.type,\n payload = action.payload;\n\n switch (type) {\n case 'queue':\n var actionChain;\n /* prioritize identify in event queue */\n\n if (payload && payload.type && payload.type === EVENTS.identify) {\n actionChain = [action].concat(state.actions);\n } else {\n actionChain = state.actions.concat(action);\n }\n\n return objectSpread2(objectSpread2({}, state), {}, {\n actions: actionChain\n });\n\n case 'dequeue':\n return [];\n // todo push events to history\n\n default:\n return state;\n }\n}\n\nfunction listen(events, func, toAdd) {\n if (!inBrowser) return false;\n var fn = window[(toAdd ? 'add' : 'remove') + 'EventListener'];\n events.split(' ').forEach(function (ev) {\n fn(ev, func);\n });\n}\n\nfunction check() {\n return Promise.resolve(!navigator.onLine);\n}\nfunction watch(cb) {\n var fn = function fn(_) {\n return check().then(cb);\n };\n\n var listener = listen.bind(null, 'online offline', fn);\n listener(true); // return unsubscribe\n\n return function (_) {\n return listener(false);\n };\n}\n\nfunction Debug() {\n // initialize global history\n\n var globalVariable = PREFIX + LIBRARY_NAME + PREFIX; // Global key is window.__analytics__\n\n globalContext[globalVariable] = [];\n return function (createStore$$1) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore$$1(reducer, preloadedState, enhancer);\n var origDispatch = store.dispatch;\n\n var dispatch = function dispatch(action) {\n var a = action.action || action;\n globalContext[globalVariable].push(a);\n return origDispatch(action);\n };\n\n return Object.assign(store, {\n dispatch: dispatch\n });\n };\n };\n}\nfunction composeWithDebug(config) {\n return function () {\n return compose(compose.apply(null, arguments), Debug(config));\n };\n}\n\nfunction ensureArray(singleOrArray) {\n if (!singleOrArray) return [];\n if (isArray(singleOrArray)) return singleOrArray;\n return [singleOrArray];\n}\n\nfunction getCallbackFromArgs(argArray) {\n var processArray = argArray || Array.prototype.slice.call(arguments);\n return processArray.reduce(function (acc, arg) {\n if (acc) return acc;\n\n if (isFunction(arg)) {\n return arg;\n }\n\n return acc;\n }, false);\n}\n\nfunction timeStamp() {\n return new Date().getTime();\n}\n\nfunction deferredPromiseResolver(resolver, callback) {\n return function (data) {\n if (callback) callback(data);\n resolver(data);\n };\n}\n\nfunction generateMeta() {\n var meta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var resolve = arguments.length > 1 ? arguments[1] : undefined;\n var possibleCallbacks = arguments.length > 2 ? arguments[2] : undefined;\n var rid = uuid();\n\n if (resolve) {\n // stack[`${rid}-info`] = meta\n stack[rid] = deferredPromiseResolver(resolve, getCallbackFromArgs(possibleCallbacks));\n }\n\n return objectSpread2(objectSpread2({}, meta), {}, {\n rid: rid,\n ts: timeStamp()\n }, !resolve ? {} : {\n hasCallback: true\n });\n}\n\n/**\n * Analytics library configuration\n *\n * After the library is initialized with config, the core API is exposed & ready for use in the application.\n *\n * @param {object} config - analytics core config\n * @param {string} [config.app] - Name of site / app\n * @param {string} [config.version] - Version of your app\n * @param {boolean} [config.debug] - Should analytics run in debug mode\n * @param {Array.} [config.plugins] - Array of analytics plugins\n * @return {AnalyticsInstance} Analytics Instance\n * @example\n *\n * import Analytics from 'analytics'\n * import pluginABC from 'analytics-plugin-abc'\n * import pluginXYZ from 'analytics-plugin-xyz'\n *\n * // initialize analytics\n * const analytics = Analytics({\n * app: 'my-awesome-app',\n * plugins: [\n * pluginABC,\n * pluginXYZ\n * ]\n * })\n *\n */\n\nfunction analytics() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var customReducers = config.reducers || {};\n var initialUser = config.initialUser || {}; // @TODO add custom value reolvers for userId and anonId\n // const resolvers = config.resolvers || {}\n\n /* Parse plugins array */\n\n var parsedOptions = (config.plugins || []).reduce(function (acc, plugin) {\n if (isFunction(plugin)) {\n /* Custom redux middleware */\n acc.middlewares = acc.middlewares.concat(plugin);\n return acc;\n } // Legacy plugin with name\n\n\n if (plugin.NAMESPACE) plugin.name = plugin.NAMESPACE;\n\n if (!plugin.name) {\n /* Plugins must supply a \"name\" property. See error url for more details */\n throw new Error(ERROR_URL + '1');\n } // if plugin exposes EVENTS capture available events\n\n\n var definedEvents = plugin.EVENTS ? Object.keys(plugin.EVENTS).map(function (k) {\n return plugin.EVENTS[k];\n }) : [];\n var enabledFromMerge = !(plugin.enabled === false);\n var enabledFromPluginConfig = !(plugin.config && plugin.config.enabled === false); // top level { enabled: false } takes presidence over { config: enabled: false }\n\n acc.pluginEnabled[plugin.name] = enabledFromMerge && enabledFromPluginConfig;\n delete plugin.enabled;\n\n if (plugin.methods) {\n acc.methods[plugin.name] = Object.keys(plugin.methods).reduce(function (a, c) {\n // enrich methods with analytics instance\n a[c] = appendArguments(plugin.methods[c]);\n return a;\n }, {}); // Remove additional methods from plugins\n\n delete plugin.methods;\n } // Convert available methods into events\n\n\n var methodsToEvents = Object.keys(plugin); // Combine events\n\n var allEvents = methodsToEvents.concat(definedEvents); // Dedupe events list\n\n var allEventsUnique = new Set(acc.events.concat(allEvents));\n acc.events = Array.from(allEventsUnique);\n acc.pluginsArray = acc.pluginsArray.concat(plugin);\n\n if (acc.plugins[plugin.name]) {\n throw new Error(plugin.name + 'AlreadyLoaded');\n }\n\n acc.plugins[plugin.name] = plugin;\n\n if (!acc.plugins[plugin.name].loaded) {\n // set default loaded func\n acc.plugins[plugin.name].loaded = function () {\n return true;\n };\n }\n\n return acc;\n }, {\n plugins: {},\n pluginEnabled: {},\n methods: {},\n pluginsArray: [],\n middlewares: [],\n events: []\n });\n /* Storage by default is set to global & is not persisted */\n\n var storage = config.storage ? config.storage : {\n getItem: function getItem(key) {\n return globalContext[key];\n },\n setItem: function setItem(key, value) {\n return globalContext[key] = value;\n },\n removeItem: function removeItem(key) {\n return globalContext[key] = undefined;\n }\n };\n var getUserProp = getUserPropFunc(storage); // mutable intregrations object for dynamic loading\n\n var customPlugins = parsedOptions.plugins;\n /* Grab all registered events from plugins loaded */\n\n var pluginEvents = parsedOptions.events.filter(function (name) {\n return !nonEvents.includes(name);\n });\n var uniqueEvents = new Set(pluginEvents.concat(coreEvents).filter(function (name) {\n return !nonEvents.includes(name);\n }));\n var allSystemEvents = Array.from(uniqueEvents).sort();\n var allPluginEvents = pluginEvents.sort();\n /* plugin methods(functions) must be kept out of state. thus they live here */\n\n var getPlugins = function getPlugins() {\n return customPlugins;\n };\n\n var _ref = new DynamicMiddleware(),\n addMiddleware = _ref.addMiddleware,\n removeMiddleware = _ref.removeMiddleware,\n dynamicMiddlewares = _ref.dynamicMiddlewares;\n\n var nonAbortable = function nonAbortable() {\n // throw new Error(`${ERROR_URL}3`)\n throw new Error('Abort disabled inListener');\n }; // Parse URL parameters\n\n\n var params = paramsParse(); // Initialize visitor information\n\n var persistedUser = getPersistedUserData(storage);\n\n var visitorInfo = objectSpread2(objectSpread2(objectSpread2(objectSpread2({}, persistedUser), initialUser), !params.an_uid ? {} : {\n userId: params.an_uid\n }), !params.an_aid ? {} : {\n anonymousId: params.an_aid\n }); // If no anon id set, create one\n\n\n if (!visitorInfo.anonymousId) {\n visitorInfo.anonymousId = uuid();\n } // TODO merge and set traits\n\n /**\n * Async Management methods for plugins. \n * \n * This is also where [custom methods](https://bit.ly/329vFXy) are loaded into the instance.\n * @typedef {Object} Plugins\n * @property {EnablePlugin} enable - Set storage value\n * @property {DisablePlugin} disable - Remove storage value\n * @example\n *\n * // Enable a plugin by namespace\n * analytics.plugins.enable('keenio')\n *\n * // Disable a plugin by namespace\n * analytics.plugins.disable('google-analytics')\n */\n\n\n var plugins = objectSpread2({\n /**\n * Enable analytics plugin\n * @typedef {Function} EnablePlugin\n * @param {String|Array} plugins - name of plugins(s) to disable\n * @param {Function} [callback] - callback after enable runs\n * @returns {Promise}\n * @example\n *\n * analytics.plugins.enable('google-analytics').then(() => {\n * console.log('do stuff')\n * })\n *\n * // Enable multiple plugins at once\n * analytics.plugins.enable(['google-analytics', 'segment']).then(() => {\n * console.log('do stuff')\n * })\n */\n enable: function enable(plugins, callback) {\n return new Promise(function (resolve) {\n store.dispatch({\n type: EVENTS.enablePlugin,\n plugins: ensureArray(plugins),\n _: {\n originalAction: EVENTS.enablePlugin\n }\n }, resolve, [callback]);\n });\n },\n\n /**\n * Disable analytics plugin\n * @typedef {Function} DisablePlugin\n * @param {String|Array} plugins - name of integration(s) to disable\n * @param {Function} callback - callback after disable runs\n * @returns {Promise}\n * @example\n *\n * analytics.plugins.disable('google').then(() => {\n * console.log('do stuff')\n * })\n *\n * analytics.plugins.disable(['google', 'segment']).then(() => {\n * console.log('do stuff')\n * })\n */\n disable: function disable(plugins, callback) {\n return new Promise(function (resolve) {\n store.dispatch({\n type: EVENTS.disablePlugin,\n plugins: ensureArray(plugins),\n _: {\n originalAction: EVENTS.disablePlugin\n }\n }, resolve, [callback]);\n });\n }\n }, parsedOptions.methods);\n /**\n * Analytic instance returned from initialization\n * @typedef {Object} AnalyticsInstance\n * @property {Identify} identify - Identify a user\n * @property {Track} track - Track an analytics event\n * @property {Page} page - Trigger page view\n * @property {User} user - Get user data\n * @property {Reset} reset - Clear information about user & reset analytics\n * @property {Ready} ready - Fire callback on analytics ready event\n * @property {On} on - Fire callback on analytics lifecycle events.\n * @property {Once} once - Fire callback on analytics lifecycle events once.\n * @property {GetState} getState - Get data about user, activity, or context.\n * @property {Storage} storage - storage methods\n * @property {Plugins} plugins - plugin methods\n */\n\n\n var instance = {\n /**\n * Identify a user. This will trigger `identify` calls in any installed plugins and will set user data in localStorage\n * @typedef {Function} Identify\n * @param {String} userId - Unique ID of user\n * @param {Object} [traits] - Object of user traits\n * @param {Object} [options] - Options to pass to identify call\n * @param {Function} [callback] - Callback function after identify completes\n * @returns {Promise}\n * @api public\n *\n * @example\n *\n * // Basic user id identify\n * analytics.identify('xyz-123')\n *\n * // Identify with additional traits\n * analytics.identify('xyz-123', {\n * name: 'steve',\n * company: 'hello-clicky'\n * })\n *\n * // Fire callback with 2nd or 3rd argument\n * analytics.identify('xyz-123', () => {\n * console.log('do this after identify')\n * })\n *\n * // Disable sending user data to specific analytic tools\n * analytics.identify('xyz-123', {}, {\n * plugins: {\n * // disable sending this identify call to segment\n * segment: false\n * }\n * })\n *\n * // Send user data to only to specific analytic tools\n * analytics.identify('xyz-123', {}, {\n * plugins: {\n * // disable this specific identify in all plugins except customerio\n * all: false,\n * customerio: true\n * }\n * })\n */\n identify: function () {\n var _identify = asyncToGenerator(\n /*#__PURE__*/\n regenerator.mark(function _callee(userId, traits, options, callback) {\n var id, data, opts, user, resolvedId;\n return regenerator.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n id = isString(userId) ? userId : null;\n data = isObject(userId) ? userId : traits;\n opts = options || {};\n user = instance.user();\n /* sets temporary in memory id. Not to be relied on */\n\n globalContext[tempKey(ID)] = id;\n resolvedId = id || data.userId || getUserProp(ID, instance, data);\n return _context.abrupt(\"return\", new Promise(function (resolve) {\n store.dispatch(objectSpread2({\n type: EVENTS.identifyStart,\n userId: resolvedId,\n traits: data || {},\n options: opts,\n anonymousId: user.anonymousId\n }, user.id && user.id !== id && {\n previousId: user.id\n }), resolve, [traits, options, callback]);\n }));\n\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n function identify(_x, _x2, _x3, _x4) {\n return _identify.apply(this, arguments);\n }\n\n return identify;\n }(),\n\n /**\n * Track an analytics event. This will trigger `track` calls in any installed plugins\n * @typedef {Function} Track\n * @param {String} eventName - Event name\n * @param {Object} [payload] - Event payload\n * @param {Object} [options] - Event options\n * @param {Function} [callback] - Callback to fire after tracking completes\n * @returns {Promise}\n * @api public\n *\n * @example\n *\n * // Basic event tracking\n * analytics.track('buttonClicked')\n *\n * // Event tracking with payload\n * analytics.track('itemPurchased', {\n * price: 11,\n * sku: '1234'\n * })\n *\n * // Fire callback with 2nd or 3rd argument\n * analytics.track('newsletterSubscribed', () => {\n * console.log('do this after track')\n * })\n *\n * // Disable sending this event to specific analytic tools\n * analytics.track('cartAbandoned', {\n * items: ['xyz', 'abc']\n * }, {\n * plugins: {\n * // disable track event for segment\n * segment: false\n * }\n * })\n *\n * // Send event to only to specific analytic tools\n * analytics.track('customerIoOnlyEventExample', {\n * price: 11,\n * sku: '1234'\n * }, {\n * plugins: {\n * // disable this specific track call all plugins except customerio\n * all: false,\n * customerio: true\n * }\n * })\n */\n track: function () {\n var _track = asyncToGenerator(\n /*#__PURE__*/\n regenerator.mark(function _callee2(eventName, payload, options, callback) {\n var name, data, opts;\n return regenerator.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n name = isObject(eventName) ? eventName.event : eventName;\n\n if (!(!name || !isString(name))) {\n _context2.next = 3;\n break;\n }\n\n throw new Error('EventMissing');\n\n case 3:\n data = isObject(eventName) ? eventName : payload || {};\n opts = isObject(options) ? options : {};\n return _context2.abrupt(\"return\", new Promise(function (resolve) {\n store.dispatch({\n type: EVENTS.trackStart,\n event: name,\n properties: data,\n options: opts,\n userId: getUserProp(ID, instance, payload),\n anonymousId: getUserProp(ANONID, instance, payload)\n }, resolve, [payload, options, callback]);\n }));\n\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n function track(_x5, _x6, _x7, _x8) {\n return _track.apply(this, arguments);\n }\n\n return track;\n }(),\n\n /**\n * Trigger page view. This will trigger `page` calls in any installed plugins\n * @typedef {Function} Page\n * @param {PageData} [data] - Page data overrides.\n * @param {Object} [options] - Page tracking options\n * @param {Function} [callback] - Callback to fire after page view call completes\n * @returns {Promise}\n * @api public\n *\n * @example\n *\n * // Basic page tracking\n * analytics.page()\n *\n * // Page tracking with page data overrides\n * analytics.page({\n * url: 'https://google.com'\n * })\n *\n * // Fire callback with 1st, 2nd or 3rd argument\n * analytics.page(() => {\n * console.log('do this after page')\n * })\n *\n * // Disable sending this pageview to specific analytic tools\n * analytics.page({}, {\n * plugins: {\n * // disable page tracking event for segment\n * segment: false\n * }\n * })\n *\n * // Send pageview to only to specific analytic tools\n * analytics.page({}, {\n * plugins: {\n * // disable this specific page in all plugins except customerio\n * all: false,\n * customerio: true\n * }\n * })\n */\n page: function () {\n var _page = asyncToGenerator(\n /*#__PURE__*/\n regenerator.mark(function _callee3(data, options, callback) {\n var d, opts;\n return regenerator.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n d = isObject(data) ? data : {};\n opts = isObject(options) ? options : {};\n /*\n // @TODO add custom value reolvers for userId and anonId\n if (resolvers.getUserId) {\n const asyncUserId = await resolvers.getUserId()\n console.log('x', x)\n }\n */\n\n return _context3.abrupt(\"return\", new Promise(function (resolve, reject) {\n store.dispatch({\n type: EVENTS.pageStart,\n properties: getPageData(d),\n options: opts,\n userId: getUserProp(ID, instance, d),\n anonymousId: getUserProp(ANONID, instance, d)\n }, resolve, [data, options, callback]);\n }));\n\n case 3:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n function page$$1(_x9, _x10, _x11) {\n return _page.apply(this, arguments);\n }\n\n return page$$1;\n }(),\n\n /**\n * Get user data\n * @typedef {Function} User\n * @param {string} [key] - dot.prop.path of user data. Example: 'traits.company.name'\n * @returns {string|object} value of user data or null\n *\n * @example\n *\n * // Get all user data\n * const userData = analytics.user()\n *\n * // Get user id\n * const userId = analytics.user('userId')\n *\n * // Get user company name\n * const companyName = analytics.user('traits.company.name')\n */\n user: function user(key) {\n if (key === ID || key === 'id') {\n return getUserProp(ID, instance);\n }\n\n if (key === ANONID || key === 'anonId') {\n return getUserProp(ANONID, instance);\n }\n\n var user = instance.getState('user');\n if (!key) return user;\n return dotProp(user, key);\n },\n\n /**\n * Clear all information about the visitor & reset analytic state.\n * @typedef {Function} Reset\n * @param {Function} [callback] - Handler to run after reset\n * @returns {Promise}\n * @example\n *\n * // Reset current visitor\n * analytics.reset()\n */\n reset: function reset(callback) {\n return new Promise(function (resolve, reject) {\n store.dispatch({\n type: EVENTS.resetStart\n }, resolve, callback);\n });\n },\n\n /**\n * Fire callback on analytics ready event\n * @typedef {Function} Ready\n * @param {Function} callback - function to trigger when all providers have loaded\n * @returns {DetachListeners} - Function to detach listener\n *\n * @example\n *\n * analytics.ready() => {\n * console.log('all plugins have loaded or were skipped', payload)\n * })\n */\n ready: function ready(callback) {\n return instance.on(EVENTS.ready, callback);\n },\n\n /**\n * Attach an event handler function for analytics lifecycle events.\n * @typedef {Function} On\n * @param {String} name - Name of event to listen to\n * @param {Function} callback - function to fire on event\n * @return {DetachListeners} - Function to detach listener\n *\n * @example\n *\n * // Fire function when 'track' calls happen\n * analytics.on('track', ({ payload }) => {\n * console.log('track call just happened. Do stuff')\n * })\n *\n * // Remove listener before it is called\n * const removeListener = analytics.on('track', ({ payload }) => {\n * console.log('This will never get called')\n * })\n *\n * // cleanup .on listener\n * removeListener()\n */\n on: function on(name, callback) {\n if (!name || !isFunction(callback)) {\n return false;\n }\n\n if (name === EVENTS.bootstrap) {\n throw new Error('.on disabled for ' + name);\n }\n\n var startRegex = /Start$|Start:/;\n\n if (name === '*') {\n var beforeHandler = function beforeHandler(store) {\n return function (next) {\n return function (action) {\n if (action.type.match(startRegex)) {\n callback({\n // eslint-disable-line\n payload: action,\n instance: instance,\n plugins: customPlugins\n });\n }\n\n return next(action);\n };\n };\n };\n\n var afterHandler = function afterHandler(store) {\n return function (next) {\n return function (action) {\n if (!action.type.match(startRegex)) {\n callback({\n // eslint-disable-line\n payload: action,\n instance: instance,\n plugins: customPlugins\n });\n }\n\n return next(action);\n };\n };\n };\n\n addMiddleware(beforeHandler, before);\n addMiddleware(afterHandler, after);\n /**\n * Detach listeners\n * @typedef {Function} DetachListeners\n */\n\n return function () {\n removeMiddleware(beforeHandler, before);\n removeMiddleware(afterHandler, after);\n };\n }\n\n var position = name.match(startRegex) ? before : after; // eslint-disable-line\n\n var handler = function handler(store) {\n return function (next) {\n return function (action) {\n // Subscribe to EVERYTHING\n if (action.type === name) {\n callback({\n // eslint-disable-line\n payload: action,\n instance: instance,\n plugins: customPlugins,\n abort: nonAbortable\n });\n }\n /* For future matching of event subpaths `track:*` etc\n } else if (name.match(/\\*$/)) {\n const match = (name === '*') ? '.' : name\n const regex = new RegExp(`${match}`, 'g')\n } */\n\n\n return next(action);\n };\n };\n };\n\n addMiddleware(handler, position);\n return function () {\n return removeMiddleware(handler, position);\n };\n },\n\n /**\n * Attach a handler function to an event and only trigger it only once.\n * @typedef {Function} Once\n * @param {String} name - Name of event to listen to\n * @param {Function} callback - function to fire on event\n * @return {DetachListeners} - Function to detach listener\n *\n * @example\n *\n * // Fire function only once 'track'\n * analytics.once('track', ({ payload }) => {\n * console.log('This will only triggered once when analytics.track() fires')\n * })\n *\n * // Remove listener before it is called\n * const listener = analytics.once('track', ({ payload }) => {\n * console.log('This will never get called b/c listener() is called')\n * })\n *\n * // cleanup .once listener before it fires\n * listener()\n */\n once: function once(name, callback) {\n if (!name || !isFunction(callback)) {\n return false;\n }\n\n if (name === EVENTS.bootstrap) {\n throw new Error('.once disabled for ' + name);\n }\n\n var detachListener = instance.on(name, function (_ref2) {\n var payload = _ref2.payload;\n callback({\n // eslint-disable-line\n payload: payload,\n instance: instance,\n plugins: customPlugins,\n abort: nonAbortable\n }); // detach listener after its called once\n\n detachListener();\n });\n return detachListener;\n },\n\n /**\n * Get data about user, activity, or context. Access sub-keys of state with `dot.prop` syntax.\n * @typedef {Function} GetState\n * @param {string} [key] - dot.prop.path value of state\n * @return {any}\n *\n * @example\n *\n * // Get the current state of analytics\n * analytics.getState()\n *\n * // Get a subpath of state\n * analytics.getState('context.offline')\n */\n getState: function getState(key) {\n var state = store.getState();\n if (key) return dotProp(state, key);\n return Object.assign({}, state);\n },\n\n /*\n * Emit events for other plugins or middleware to react to.\n * @param {Object} action - event to dispatch\n */\n dispatch: function dispatch(action) {\n var actionData = isString(action) ? {\n type: action\n } : action;\n\n if (isReservedAction(actionData.type)) {\n throw new Error('reserved action ' + actionData.type);\n }\n\n var _private = action._ || {}; // Dispatch actionStart\n // const autoPrefixType = `${actionData.type.replace(/Start$/, '')}Start`\n\n\n var dispatchData = objectSpread2(objectSpread2({}, actionData), {}, {\n _: objectSpread2({\n originalAction: actionData.type\n }, _private) // type: `${autoPrefixType}`\n\n });\n\n store.dispatch(dispatchData);\n },\n // Do not use. Will be removed. Here for Backwards compatiblity.\n // Moved to analytics.plugins.enable\n enablePlugin: plugins.enable,\n /// Do not use. Will be removed. Here for Backwards compatiblity.\n /// Moved to analytics.plugins.disable\n disablePlugin: plugins.disable,\n // Do not use. Will be removed. Here for Backwards compatiblity.\n // New plugins api\n plugins: plugins,\n\n /**\n * Storage utilities for persisting data.\n * These methods will allow you to save data in localStorage, cookies, or to the window.\n * @typedef {Object} Storage\n * @property {GetItem} getItem - Get value from storage\n * @property {SetItem} setItem - Set storage value\n * @property {RemoveItem} removeItem - Remove storage value\n *\n * @example\n *\n * // Pull storage off analytics instance\n * const { storage } = analytics\n *\n * // Get value\n * storage.getItem('storage_key')\n *\n * // Set value\n * storage.setItem('storage_key', 'value')\n *\n * // Remove value\n * storage.removeItem('storage_key')\n */\n storage: {\n /**\n * Get value from storage\n * @typedef {Function} GetItem\n * @param {String} key - storage key\n * @param {Object} [options] - storage options\n * @return {Any}\n *\n * @example\n *\n * analytics.storage.getItem('storage_key')\n */\n getItem: storage.getItem,\n\n /**\n * Set storage value\n * @typedef {Function} SetItem\n * @param {String} key - storage key\n * @param {any} value - storage value\n * @param {Object} [options] - storage options\n *\n * @example\n *\n * analytics.storage.setItem('storage_key', 'value')\n */\n setItem: function setItem(key, value, options) {\n store.dispatch({\n type: EVENTS.setItemStart,\n key: key,\n value: value,\n options: options\n });\n },\n\n /**\n * Remove storage value\n * @typedef {Function} RemoveItem\n * @param {String} key - storage key\n * @param {Object} [options] - storage options\n *\n * @example\n *\n * analytics.storage.removeItem('storage_key')\n */\n removeItem: function removeItem(key, options) {\n store.dispatch({\n type: EVENTS.removeItemStart,\n key: key,\n options: options\n });\n }\n },\n\n /*\n * Set the anonymous ID of the visitor\n * @param {String} anonymousId - anonymous Id to set\n * @param {Object} [options] - storage options\n *\n * @example\n *\n * // Set anonymous ID\n * analytics.setAnonymousId('1234567')\n */\n setAnonymousId: function setAnonymousId(anonymousId, options) {\n /* sets temporary in memory id. Not to be relied on */\n // globalContext[tempKey(ANONID)] = anonymousId\n instance.storage.setItem(ANON_ID, anonymousId, options);\n },\n\n /*\n * Events exposed by core analytics library and all loaded plugins\n * @type {Array}\n */\n events: {\n all: allSystemEvents,\n core: coreEvents,\n plugins: allPluginEvents // byType: (type) => {} @Todo grab logic from engine and give inspectable events\n\n }\n };\n\n var enrichMiddleware = function enrichMiddleware(storeAPI) {\n return function (next) {\n return function (action) {\n if (!action.meta) {\n action.meta = generateMeta();\n }\n\n return next(action);\n };\n };\n };\n\n var middlewares = parsedOptions.middlewares.concat([enrichMiddleware,\n /* Core analytics middleware */\n dynamicMiddlewares(before), // Before dynamic middleware <-- fixed pageStart .on listener\n\n /* Plugin engine */\n pluginMiddleware(instance, getPlugins, {\n all: allSystemEvents,\n plugins: allPluginEvents\n }), storageMiddleware(storage), initializeMiddleware(instance), identifyMiddleware(instance, storage),\n /* after dynamic middleware */\n dynamicMiddlewares(after)]);\n /* Initial analytics state keys */\n\n var coreReducers = {\n context: context,\n user: userReducer(storage),\n page: page,\n track: trackReducer,\n plugins: createReducer(getPlugins),\n queue: queueReducer\n };\n var composeEnhancers = compose;\n var composeWithGlobalDebug = compose;\n\n if (inBrowser && config.debug) {\n var devTools = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;\n\n if (devTools) {\n composeEnhancers = devTools({\n trace: true,\n traceLimit: 25\n });\n }\n\n composeWithGlobalDebug = function composeWithGlobalDebug() {\n if (arguments.length === 0) return Debug();\n if (isObject(_typeof_1(arguments[0]))) return composeWithDebug(arguments[0]);\n return composeWithDebug().apply(null, arguments);\n };\n }\n\n var initialConfig = makeContext(config);\n var intialPluginState = parsedOptions.pluginsArray.reduce(function (acc, plugin) {\n var name = plugin.name,\n config = plugin.config,\n loaded = plugin.loaded;\n var isEnabled = parsedOptions.pluginEnabled[name];\n acc[name] = {\n enabled: isEnabled,\n // If plugin enabled & has no initialize method, set initialized to true, else false\n initialized: isEnabled ? Boolean(!plugin.initialize) : false,\n loaded: Boolean(loaded()),\n config: config || {}\n };\n return acc;\n }, {});\n var initialState = {\n context: initialConfig,\n user: visitorInfo,\n plugins: intialPluginState // Todo allow for more userland defined initial state?\n\n /* Create analytics store! */\n\n };\n var store = createStore( // register reducers\n combineReducers(objectSpread2(objectSpread2({}, coreReducers), customReducers)), // set user defined initial state\n initialState, // register middleware & plugins used\n composeWithGlobalDebug(composeEnhancers(applyMiddleware.apply(void 0, toConsumableArray(middlewares)))));\n\n function enhanceDispatch(fn) {\n return function (event, resolver, callbacks) {\n // console.log('original event', event)\n var meta = generateMeta(event.meta, resolver, ensureArray(callbacks)); // if (resolver) console.log('dispatch resolver', resolver)\n // if (callbacks) console.log('dispatch callbacks', callbacks)\n\n var newEvent = objectSpread2(objectSpread2({}, event), {\n meta: meta\n }); // console.log('newEvent', newEvent)\n\n\n return fn.apply(null, [newEvent]);\n };\n } // Automatically apply meta to dispatch calls\n\n\n store.dispatch = enhanceDispatch(store.dispatch);\n /* Synchronously call bootstrap & register Plugin methods */\n\n var pluginKeys = Object.keys(customPlugins);\n /* Bootstrap analytic plugins */\n\n store.dispatch({\n type: EVENTS.bootstrap,\n plugins: pluginKeys,\n config: initialConfig,\n params: params,\n user: visitorInfo,\n persistedUser: persistedUser\n });\n var enabledPlugins = pluginKeys.filter(function (name) {\n return parsedOptions.pluginEnabled[name];\n });\n var disabledPlugins = pluginKeys.filter(function (name) {\n return !parsedOptions.pluginEnabled[name];\n });\n /* Register analytic plugins */\n\n store.dispatch({\n type: EVENTS.registerPlugins,\n plugins: pluginKeys,\n enabled: parsedOptions.pluginEnabled\n });\n /* dispatch register for individual plugins */\n\n parsedOptions.pluginsArray.map(function (plugin, i) {\n var bootstrap = plugin.bootstrap,\n config = plugin.config,\n name = plugin.name;\n\n if (bootstrap && isFunction(bootstrap)) {\n bootstrap({\n instance: instance,\n config: config,\n payload: plugin\n });\n }\n /* Register plugins */\n\n\n store.dispatch({\n type: EVENTS.registerPluginType(name),\n name: name,\n enabled: parsedOptions.pluginEnabled[name],\n plugin: plugin\n });\n /* All plugins registered initialize, is last loop */\n\n if (parsedOptions.pluginsArray.length === i + 1) {\n store.dispatch({\n type: EVENTS.initializeStart,\n plugins: enabledPlugins,\n disabled: disabledPlugins\n });\n }\n });\n\n {\n /* Watch for network events */\n watch(function (offline) {\n store.dispatch({\n type: offline ? EVENTS.offline : EVENTS.online\n });\n });\n /* Tick heartbeat for queued events */\n\n heartBeat(store, getPlugins, instance);\n }\n\n function appendArguments(fn) {\n return function () {\n var originalArgs = Array.prototype.slice.call(arguments); // Pass analytics instance as last arg for arrow functions\n\n var argsToPass = Array.apply(null, Array(fn.length)).map(function () {}).map(function (x, i) {\n if (originalArgs[i] || originalArgs[i] === false || originalArgs[i] === null) {\n return originalArgs[i];\n }\n }) // Add instance to args\n .concat(instance); // Set instance on extended methods\n\n return fn.apply({\n instance: instance\n }, argsToPass);\n };\n }\n /* Return analytics instance */\n\n\n return instance;\n} // Duplicated strings\n\n\nvar before = 'before';\nvar after = 'after';\n\nexport default analytics;\nexport { analytics as init, analytics as Analytics, EVENTS, constants as CONSTANTS };\n","import analytics from '@analytics/core';\nexport { EVENTS, CONSTANTS } from '@analytics/core';\nimport storage from '@analytics/storage-utils';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar defineProperty = _defineProperty;\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar objectSpread2 = _objectSpread2;\n\nfunction analyticsLib() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaultSettings = {\n storage: storage\n };\n return analytics(objectSpread2(objectSpread2({}, defaultSettings), opts));\n}\n\nexport default analyticsLib;\nexport { analyticsLib as init, analyticsLib as Analytics };\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n /* global globalThis -- safe */\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n /* global Symbol -- required for testing */\n return !String(Symbol());\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n /* global Symbol -- required for testing */\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.9.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n /* global Symbol -- safe */\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar iterate = require('../internals/iterate');\n\nvar $AggregateError = function AggregateError(errors, message) {\n var that = this;\n if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message);\n if (setPrototypeOf) {\n // eslint-disable-next-line unicorn/error-message -- expected\n that = setPrototypeOf(new Error(undefined), getPrototypeOf(that));\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', String(message));\n var errorsArray = [];\n iterate(errors, errorsArray.push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\n$AggregateError.prototype = create(Error.prototype, {\n constructor: createPropertyDescriptor(5, $AggregateError),\n message: createPropertyDescriptor(5, ''),\n name: createPropertyDescriptor(5, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true }, {\n AggregateError: $AggregateError\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true }, {\n any: function any(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n errors.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","\nmodule.exports = function load (src, opts, cb) {\n var head = document.head || document.getElementsByTagName('head')[0]\n var script = document.createElement('script')\n\n if (typeof opts === 'function') {\n cb = opts\n opts = {}\n }\n\n opts = opts || {}\n cb = cb || function() {}\n\n script.type = opts.type || 'text/javascript'\n script.charset = opts.charset || 'utf8';\n script.async = 'async' in opts ? !!opts.async : true\n script.src = src\n\n if (opts.attrs) {\n setAttributes(script, opts.attrs)\n }\n\n if (opts.text) {\n script.text = '' + opts.text\n }\n\n var onend = 'onload' in script ? stdOnEnd : ieOnEnd\n onend(script, cb)\n\n // some good legacy browsers (firefox) fail the 'in' detection above\n // so as a fallback we always set onload\n // old IE will ignore this and new IE will set onload\n if (!script.onload) {\n stdOnEnd(script, cb);\n }\n\n head.appendChild(script)\n}\n\nfunction setAttributes(script, attrs) {\n for (var attr in attrs) {\n script.setAttribute(attr, attrs[attr]);\n }\n}\n\nfunction stdOnEnd (script, cb) {\n script.onload = function () {\n this.onerror = this.onload = null\n cb(null, script)\n }\n script.onerror = function () {\n // this.onload = null here is necessary\n // because even IE9 works not like others\n this.onerror = this.onload = null\n cb(new Error('Failed to load ' + this.src), script)\n }\n}\n\nfunction ieOnEnd (script, cb) {\n script.onreadystatechange = function () {\n if (this.readyState != 'complete' && this.readyState != 'loaded') return\n this.onreadystatechange = null\n cb(null, script) // there is no way to catch loading errors in IE8\n }\n}\n","/** @license React v0.20.1\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\n\t\t\t// This just needs to be something that won't trample other user's Symbol.for use\n\t\t\t// It also will guide people to the source of their issues, if this is problematic.\n\t\t\t// META: It's a resource locator!\n\t\t\tresult = Symbol.for('https://github.com/benlesh/symbol-observable');\n\t\t\ttry {\n\t\t\t\tSymbol.observable = result;\n\t\t\t} catch (err) {\n\t\t\t\t// Do nothing. In some environments, users have frozen `Symbol` for security reasons,\n\t\t\t\t// if it is frozen assigning to it will throw. In this case, we don't care, because\n\t\t\t\t// they will need to use the returned value from the ponyfill.\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","import { __extends } from 'tslib';\nimport globalThis from '@ungap/global-this';\n\nvar genericMessage = \"Invariant Violation\";\r\nvar _a = Object.setPrototypeOf, setPrototypeOf = _a === void 0 ? function (obj, proto) {\r\n obj.__proto__ = proto;\r\n return obj;\r\n} : _a;\r\nvar InvariantError = /** @class */ (function (_super) {\r\n __extends(InvariantError, _super);\r\n function InvariantError(message) {\r\n if (message === void 0) { message = genericMessage; }\r\n var _this = _super.call(this, typeof message === \"number\"\r\n ? genericMessage + \": \" + message + \" (see https://github.com/apollographql/invariant-packages)\"\r\n : message) || this;\r\n _this.framesToPop = 1;\r\n _this.name = genericMessage;\r\n setPrototypeOf(_this, InvariantError.prototype);\r\n return _this;\r\n }\r\n return InvariantError;\r\n}(Error));\r\nfunction invariant(condition, message) {\r\n if (!condition) {\r\n throw new InvariantError(message);\r\n }\r\n}\r\nvar verbosityLevels = [\"log\", \"warn\", \"error\", \"silent\"];\r\nvar verbosityLevel = verbosityLevels.indexOf(\"log\");\r\nfunction wrapConsoleMethod(method) {\r\n return function () {\r\n if (verbosityLevels.indexOf(method) >= verbosityLevel) {\r\n return console[method].apply(console, arguments);\r\n }\r\n };\r\n}\r\n(function (invariant) {\r\n invariant.log = wrapConsoleMethod(\"log\");\r\n invariant.warn = wrapConsoleMethod(\"warn\");\r\n invariant.error = wrapConsoleMethod(\"error\");\r\n})(invariant || (invariant = {}));\r\nfunction setVerbosity(level) {\r\n var old = verbosityLevels[verbosityLevel];\r\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\r\n return old;\r\n}\r\nvar processStub = globalThis.process || { env: {} };\r\nif (!globalThis.process)\r\n try {\r\n Object.defineProperty(globalThis, \"process\", {\r\n value: processStub,\r\n });\r\n }\r\n catch (_b) {\r\n // If this fails, it isn't the end of the world.\r\n }\r\nvar invariant$1 = invariant;\n\nexport default invariant$1;\nexport { InvariantError, invariant, processStub as process, setVerbosity };\n//# sourceMappingURL=invariant.esm.js.map\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import React from 'react';\nimport invariant from 'tiny-invariant';\nimport createContext from 'mini-create-react-context';\nimport hoistStatics from 'hoist-non-react-statics';\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar context = /* #__PURE__ */createNamedContext('Analytics');\n\nvar AnalyticsProvider = function AnalyticsProvider(_ref) {\n var children = _ref.children,\n instance = _ref.instance;\n invariant(instance, \"Analytics instance not provided to \");\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: instance,\n children: children || null\n });\n};\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction withAnalytics(Component) {\n var displayName = \"withAnalytics(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n invariant(context, \"You should not use \" + displayName + \" outside of a \");\n return /*#__PURE__*/React.createElement(Component, _extends({}, remainingProps, {\n analytics: context,\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nvar useAnalytics = function useAnalytics() {\n return useContext(context);\n};\nvar useTrack = function useTrack() {\n return useContext(context).track;\n};\nvar usePage = function usePage() {\n return useContext(context).page;\n};\nvar useIdentify = function useIdentify() {\n return useContext(context).identify;\n};\n\nvar AnalyticsConsumer = context.Consumer;\n\nexport { AnalyticsConsumer, context as AnalyticsContext, AnalyticsProvider, useAnalytics, useIdentify, usePage, useTrack, withAnalytics };\n//# sourceMappingURL=index.modern.js.map\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n"],"sourceRoot":""}