diff --git a/.editorconfig b/.editorconfig index 70f2fab10..89cf80bba 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2019 Martin Donath +# Copyright (c) 2016-2020 Martin Donath # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to diff --git a/.env b/.env index 539ec817b..361ee65fd 100755 --- a/.env +++ b/.env @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright (c) 2016-2019 Martin Donath +# Copyright (c) 2016-2020 Martin Donath # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ba77e684a..91769cfae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2019 Martin Donath +# Copyright (c) 2016-2020 Martin Donath # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to diff --git a/.gitignore b/.gitignore index 687bf2856..38f43d723 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2019 Martin Donath +# Copyright (c) 2016-2020 Martin Donath # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to diff --git a/.stylelintignore b/.stylelintignore index 7dc94a401..b7acff70b 100644 --- a/.stylelintignore +++ b/.stylelintignore @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2019 Martin Donath +# Copyright (c) 2016-2020 Martin Donath # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to diff --git a/CHANGELOG b/CHANGELOG index 859cf1d35..fa445e05b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,16 @@ +mkdocs-material 4.6.2 (2020-02-08) + + * Added Romanian translations + * Fixed #1451: Inconsistent spacing for fenced code blocks + +mkdocs-material 4.6.1 (2020-02-08) + + * Fixed #1324: Metadata author only rendering first character + * Fixed #1393: Set tabindex to 0 for skip to content link + * Fixed code blocks after Markdown 3.2 release + * Fixed errors in Japanese translations + * Improved Google Lighthouse score + mkdocs-material 4.6.0 (2019-12-11) * Added support for mkdocs-git-revision-date-localized-plugin diff --git a/Dockerfile b/Dockerfile index 36a0b643a..935181ce2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2019 Martin Donath +# Copyright (c) 2016-2020 Martin Donath # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to diff --git a/LICENSE b/LICENSE index 7a8232f93..17241bd2d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2016-2019 Martin Donath +Copyright (c) 2016-2020 Martin Donath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to @@ -16,4 +16,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. \ No newline at end of file +IN THE SOFTWARE. diff --git a/Makefile b/Makefile index 8e466b781..edc5edebd 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2019 Martin Donath +# Copyright (c) 2016-2020 Martin Donath # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to diff --git a/README.md b/README.md index 8b00458b7..7993dfb7e 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ theme: ## What to expect * Responsive design and fluid layout for all kinds of screens and devices, - designed to serve your project documentation in a user-friendly way in 40 + designed to serve your project documentation in a user-friendly way in 41 languages with optimal readability. * Easily customizable primary and accent color, fonts, favicon and logo; @@ -67,7 +67,7 @@ you may check out squidfunk's [Amazon wish list][3]. **MIT License** -Copyright (c) 2016-2019 Martin Donath +Copyright (c) 2016-2020 Martin Donath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to diff --git a/docs/authors-notes.md b/docs/authors-notes.md index a149513c3..038327f5a 100644 --- a/docs/authors-notes.md +++ b/docs/authors-notes.md @@ -3,10 +3,12 @@ ## Hi, I'm Martin ([@squidfunk][1]) I'm a freelance polyglot software engineer and entrepreneur from Cologne, -Germany with more than 12 years of experience in full-stack web development and -system programming. +Germany with more than 13 years of experience in full-stack web development and +system programming. I'm currently working full time on an exciting new venture, +an __analytical browser engine__ called [Ginseng][2]. [1]: https://github.com/squidfunk + [2]: https://ginseng.ai ## Why another theme? diff --git a/docs/extensions/codehilite.md b/docs/extensions/codehilite.md index 17777adc3..cb94348c8 100644 --- a/docs/extensions/codehilite.md +++ b/docs/extensions/codehilite.md @@ -915,6 +915,27 @@ module Finity end ``` +### Scala + +```scala +// Every record of this DataFrame contains the label and +// features represented by a vector. +val df = sqlContext.createDataFrame(data).toDF("label", "features") + +// Set parameters for the algorithm. +// Here, we limit the number of iterations to 10. +val lr = new LogisticRegression().setMaxIter(10) + +// Fit the model to the data. +val model = lr.fit(df) + +// Inspect the model: get the feature weights. +val weights = model.weights + +// Given a dataset, predict each point's label, and show the results. +model.transform(df).show()g +``` + ### XML ``` xml diff --git a/docs/getting-started.md b/docs/getting-started.md index ba2d91d03..b277db26f 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -356,31 +356,32 @@ translations for all template variables and labels in the following languages: fa / Persian pl / Polish pt / Portugese - ru / Russian + ro / Romanian + ru / Russian sr / Serbian sh / Serbo-Croatian sk / Slovak - si / Slovenian + si / Slovenian es / Spanish sv / Swedish th / Thai + tr / Turkish - uk / Ukrainian - vi / Vietnamese + vi / Vietnamese + + + zh / Chinese (Simplified) - - - zh-Hant / Chinese (Traditional) - zh-TW / Chinese (Taiwanese) - + zh-TW / Chinese (Taiwanese) + Submit a new language diff --git a/docs/index.md b/docs/index.md index 03462ef2c..c9d0892b2 100644 --- a/docs/index.md +++ b/docs/index.md @@ -29,7 +29,7 @@ theme: ## What to expect * Responsive design and fluid layout for all kinds of screens and devices, - designed to serve your project documentation in a user-friendly way in 40 + designed to serve your project documentation in a user-friendly way in 41 languages with optimal readability. * Easily customizable primary and accent color, fonts, favicon and logo; diff --git a/docs/license.md b/docs/license.md index 724404251..666eb9378 100644 --- a/docs/license.md +++ b/docs/license.md @@ -2,7 +2,7 @@ **MIT License** -Copyright © 2016 - 2019 Martin Donath +Copyright © 2016 - 2020 Martin Donath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to diff --git a/docs/release-notes.md b/docs/release-notes.md index c770379ff..b2cd97dc2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -64,6 +64,19 @@ pip show mkdocs-material ## Changelog +### 4.6.2 _ February 8, 2020 + +* Added Romanian translations +* Fixed #1451: Inconsistent spacing for fenced code blocks + +### 4.6.1 _ February 8, 2020 + +* Fixed #1324: Metadata author only rendering first character +* Fixed #1393: Set `tabindex` to `0` for skip to content link +* Fixed code blocks after Markdown 3.2 release +* Fixed errors in Japanese translations +* Improved Google Lighthouse score + ### 4.6.0 _ December 11, 2019 * Added support for [mkdocs-git-revision-date-localized-plugin][3] diff --git a/material/assets/javascripts/bundle.js.map b/material/assets/javascripts/bundle.js.map index fb51c7de2..d77dee92f 100644 --- a/material/assets/javascripts/bundle.js.map +++ b/material/assets/javascripts/bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/rxjs/_esm5/internal/util/root.js","webpack:///./node_modules/clipboard/dist/clipboard.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/ramda/es/internal/_isPlaceholder.js","webpack:///./node_modules/ramda/es/internal/_curry1.js","webpack:///./node_modules/ramda/es/internal/_identity.js","webpack:///./node_modules/ramda/es/identity.js","webpack:///./node_modules/ramda/es/internal/_has.js","webpack:///./node_modules/ramda/es/internal/_isArguments.js","webpack:///./node_modules/ramda/es/keys.js","webpack:///./node_modules/ramda/es/values.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isFunction.js","webpack:///./node_modules/rxjs/_esm5/internal/config.js","webpack:///./node_modules/rxjs/_esm5/internal/util/hostReportError.js","webpack:///./node_modules/rxjs/_esm5/internal/Observer.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isArray.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isObject.js","webpack:///./node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js","webpack:///./node_modules/rxjs/_esm5/internal/Subscription.js","webpack:///./node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js","webpack:///./node_modules/rxjs/_esm5/internal/Subscriber.js","webpack:///./node_modules/rxjs/_esm5/internal/symbol/observable.js","webpack:///./node_modules/rxjs/_esm5/internal/util/noop.js","webpack:///./node_modules/rxjs/_esm5/internal/util/pipe.js","webpack:///./node_modules/rxjs/_esm5/internal/Observable.js","webpack:///./node_modules/rxjs/_esm5/internal/util/toSubscriber.js","webpack:///./node_modules/rxjs/_esm5/internal/util/canReportError.js","webpack:///./node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js","webpack:///./node_modules/rxjs/_esm5/internal/SubjectSubscription.js","webpack:///./node_modules/rxjs/_esm5/internal/Subject.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isScheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToArray.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/fromArray.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/of.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/empty.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/map.js","webpack:///./node_modules/rxjs/_esm5/internal/symbol/iterator.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isArrayLike.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isPromise.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeTo.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/scheduled.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isInteropObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isIterable.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/from.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/forkJoin.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/fromEvent.js","webpack:///./node_modules/rxjs/_esm5/internal/InnerSubscriber.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js","webpack:///./node_modules/rxjs/_esm5/internal/OuterSubscriber.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/mergeMap.js","webpack:///./node_modules/rxjs/_esm5/internal/util/identity.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/mergeAll.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/merge.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/dom/ajax.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/filter.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/tap.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/pluck.js","webpack:///./node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/take.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/switchMap.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/Action.js","webpack:///./node_modules/rxjs/_esm5/internal/Notification.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js","webpack:///./node_modules/rxjs/_esm5/internal/Scheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/async.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/throwError.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/delay.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isDate.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/switchMapTo.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/never.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/scan.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/queue.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/observeOn.js","webpack:///./node_modules/rxjs/_esm5/internal/ReplaySubject.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/shareReplay.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/mapTo.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/concat.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/concatAll.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/startWith.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/skip.js","webpack:///./src/assets/javascripts/utilities/agent/document/index.ts","webpack:///./src/assets/javascripts/utilities/agent/element/_/index.ts","webpack:///./src/assets/javascripts/utilities/agent/element/offset/index.ts","webpack:///./node_modules/rxjs/_esm5/internal/operators/refCount.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/multicast.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/share.js","webpack:///./src/assets/javascripts/utilities/agent/location/index.ts","webpack:///./src/assets/javascripts/utilities/agent/media/index.ts","webpack:///./node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js","webpack:///./src/assets/javascripts/utilities/agent/viewport/index.ts","webpack:///./node_modules/rxjs/_esm5/internal/operators/throttle.js","webpack:///./src/assets/javascripts/utilities/agent/worker/index.ts","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/finalize.js","webpack:///./src/assets/javascripts/utilities/string/index.ts","webpack:///./src/assets/javascripts/actions/anchor/index.ts","webpack:///./src/assets/javascripts/actions/search/result/index.ts","webpack:///./src/assets/javascripts/utilities/hidden/index.ts","webpack:///./src/assets/javascripts/actions/hidden/index.ts","webpack:///./src/assets/javascripts/utilities/toggle/index.ts","webpack:///./src/assets/javascripts/components/header/_/index.ts","webpack:///./node_modules/rxjs/_esm5/internal/observable/defer.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/combineLatest.js","webpack:///./src/assets/javascripts/components/header/offset/index.ts","webpack:///./src/assets/javascripts/extensions/jsx/index.ts","webpack:///./src/assets/javascripts/extensions/rxjs/_/index.ts","webpack:///./node_modules/rxjs/_esm5/internal/operators/takeUntil.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js","webpack:///./src/assets/javascripts/extensions/rxjs/operators/index.ts","webpack:///./src/assets/javascripts/components/hero/index.ts","webpack:///./src/assets/javascripts/components/main/_/index.ts","webpack:///./node_modules/ramda/es/internal/_curry2.js","webpack:///./node_modules/ramda/es/internal/_arrayFromIterator.js","webpack:///./node_modules/ramda/es/internal/_includesWith.js","webpack:///./node_modules/ramda/es/internal/_objectIs.js","webpack:///./node_modules/ramda/es/type.js","webpack:///./node_modules/ramda/es/internal/_equals.js","webpack:///./node_modules/ramda/es/internal/_functionName.js","webpack:///./node_modules/ramda/es/equals.js","webpack:///./src/assets/javascripts/components/main/sidebar/index.ts","webpack:///./src/assets/javascripts/actions/sidebar/index.ts","webpack:///./src/assets/javascripts/components/navigation/_/index.ts","webpack:///./src/assets/javascripts/components/search/query/index.ts","webpack:///./src/assets/javascripts/utilities/agent/element/focus/index.ts","webpack:///./src/assets/javascripts/components/search/reset/index.ts","webpack:///./src/assets/javascripts/templates/search/result/article/index.tsx","webpack:///./src/assets/javascripts/templates/search/result/section/index.tsx","webpack:///./src/assets/javascripts/templates/search/result/_/index.tsx","webpack:///./src/assets/javascripts/templates/source/index.tsx","webpack:///./src/assets/javascripts/components/search/result/meta/index.ts","webpack:///./src/assets/javascripts/components/search/result/_/index.ts","webpack:///./src/assets/javascripts/components/search/result/list/index.ts","webpack:///./src/assets/javascripts/components/tabs/index.ts","webpack:///./node_modules/ramda/es/reverse.js","webpack:///./node_modules/ramda/es/internal/_isString.js","webpack:///./node_modules/ramda/es/internal/_includes.js","webpack:///./node_modules/ramda/es/internal/_indexOf.js","webpack:///./node_modules/ramda/es/internal/_Set.js","webpack:///./node_modules/ramda/es/difference.js","webpack:///./src/assets/javascripts/workers/packer/_/index.ts","webpack:///./src/assets/javascripts/workers/search/_/index.ts","webpack:///./src/assets/javascripts/components/toc/_/index.ts","webpack:///./src/assets/javascripts/components/toc/anchor/index.ts","webpack:///./src/assets/javascripts/templates/clipboard/index.tsx","webpack:///./node_modules/ramda/es/internal/_isArray.js","webpack:///./node_modules/ramda/es/internal/_isTransformer.js","webpack:///./node_modules/ramda/es/internal/_dispatchable.js","webpack:///./node_modules/ramda/es/internal/_xfBase.js","webpack:///./node_modules/ramda/es/internal/_xfindLast.js","webpack:///./node_modules/ramda/es/findLast.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/bufferCount.js","webpack:///./src/assets/javascripts/components/navigation/layer/index.ts","webpack:///./src/assets/javascripts/index.ts","webpack:///./src/assets/javascripts/utilities/agent/_/index.ts","webpack:///./src/assets/javascripts/components/_/index.ts","webpack:///./src/assets/javascripts/components/header/shadow/index.ts","webpack:///./src/assets/javascripts/actions/header/index.ts","webpack:///./src/assets/javascripts/actions/scrolling/index.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__window","window","__self","self","WorkerGlobalScope","_root","global","factory","_typeof","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","configurable","writable","Constructor","protoProps","staticProps","_clipboardAction2","_interopRequireDefault","_tinyEmitter2","_goodListener2","default","Clipboard","_Emitter","trigger","options","instance","TypeError","_classCallCheck","this","_this","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","resolveOptions","listenClick","subClass","superClass","setPrototypeOf","_inherits","arguments","undefined","action","defaultAction","defaultTarget","text","defaultText","container","document","body","_this2","listener","e","onClick","delegateTarget","currentTarget","clipboardAction","emitter","getAttributeValue","selector","querySelector","destroy","actions","support","queryCommandSupported","forEach","suffix","element","attribute","hasAttribute","getAttribute","_select","_select2","ClipboardAction","initSelection","selectedText","selectFake","selectTarget","isRTL","documentElement","removeFake","fakeHandlerCallback","fakeHandler","addEventListener","fakeElem","createElement","style","fontSize","border","padding","margin","position","yPosition","pageYOffset","scrollTop","top","setAttribute","appendChild","copyText","removeEventListener","removeChild","succeeded","execCommand","err","handleResult","emit","clearSelection","focus","getSelection","removeAllRanges","set","_action","Error","nodeType","_target","nodeName","isReadOnly","select","setSelectionRange","removeAttribute","selection","range","createRange","selectNodeContents","addRange","toString","E","on","callback","ctx","push","fn","once","off","apply","_","data","slice","evtArr","len","evts","liveEvents","is","delegate","type","string","node","listenNode","nodeList","Array","listenNodeList","listenSelector","HTMLElement","String","closest","_delegate","useCapture","listenerFn","elements","querySelectorAll","map","DOCUMENT_NODE_TYPE","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentNode","g","Function","_isPlaceholder","a","_curry1","f1","_identity","x","_has","prop","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","hasArgsEnumBug","contains","list","item","idx","keys","nIdx","ks","checkArgsLength","vals","extendStatics","b","__extends","__","isFunction","_enable_super_gross_mode_that_will_cause_bad_things","Promise","stack","hostReportError","setTimeout","empty","closed","next","error","useDeprecatedSynchronousErrorHandling","complete","isArray","isObject","UnsubscriptionError","UnsubscriptionErrorImpl","errors","message","join","Subscription","unsubscribe","_parentOrParents","_subscriptions","_unsubscribe","remove","index","flattenUnsubscriptionErrors","sub","concat","add","teardown","subscription","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","reduce","errs","rxSubscriber","Math","random","_super","Subscriber","destinationOrNext","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","destination","subscriber","_next","_error","_complete","_unsubscribeAndRecycle","SafeSubscriber","_parentSubscriber","observerOrNext","context","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","parent","observable","noop","pipe","fns","_i","pipeFromArray","input","prev","Observable","subscribe","_isScalar","_subscribe","lift","operator","source","sink","nextOrObserver","toSubscriber","_trySubscribe","observer","_a","closed_1","canReportError","console","warn","promiseCtor","getPromiseCtor","resolve","reject","operations","toPromise","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","SubjectSubscription","subject","observers","subscriberIndex","SubjectSubscriber","Subject","hasError","thrownError","copy","asObservable","AnonymousSubject","isScheduler","schedule","subscribeToArray","array","scheduleArray","scheduler","fromArray","of","args","pop","emptyScheduled","project","thisArg","MapOperator","MapSubscriber","count","result","getSymbolIterator","isArrayLike","isPromise","then","subscribeTo","obs","promise","iterable","done","return","scheduled","isInteropObservable","scheduleObservable","schedulePromise","isIterable","scheduleIterable","from","forkJoinInternal","sources","values","completed","emitted","_loop_1","hasValue","fromEvent","eventName","resultSelector","setupSubscription","sourceObj","handler","isEventTarget","source_1","isJQueryStyleEventEmitter","source_2","addListener","removeListener","isNodeStyleEventEmitter","source_3","InnerSubscriber","outerValue","outerIndex","notifyNext","notifyError","notifyComplete","subscribeToResult","outerSubscriber","OuterSubscriber","innerValue","innerIndex","innerSub","MergeMapOperator","concurrent","Number","POSITIVE_INFINITY","MergeMapSubscriber","hasCompleted","buffer","active","_tryNext","_innerSub","ish","innerSubscriber","shift","mergeAll","mergeMap","ii","merge","observables","last","ajaxGet","url","headers","method","ajaxPost","ajaxDelete","ajaxPut","ajaxPatch","mapResponse","response","ajaxGetJSON","responseType","AjaxObservable","urlOrRequest","request","async","createXHR","crossDomain","root","XMLHttpRequest","XDomainRequest","getCORSRequest","progId","progIds","ActiveXObject","getXMLHttpRequest","withCredentials","timeout","post","delete","put","patch","getJSON","AjaxSubscriber","getHeader","FormData","serializeBody","send","xhr","AjaxResponse","_b","user","password","setupEvents","open","setHeaders","contentType","splitIndex","substring","encodeURIComponent","JSON","stringify","setRequestHeader","headerName","toLowerCase","progressSubscriber","xhrTimeout","AjaxTimeoutError","ontimeout","upload","xhrProgress_1","xhrError_1","onprogress","AjaxError","onerror","xhrReadyStateChange","xhrLoad","readyState","status_1","status","responseText","onreadystatechange","onload","abort","originalEvent","parseXhrResponse","AjaxErrorImpl","parse","parseJson","responseXML","ajax","filter","predicate","FilterOperator","FilterSubscriber","tap","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","pluck","properties","currentProp","plucker","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","TakeOperator","total","TakeSubscriber","switchMap","SwitchMapOperator","SwitchMapSubscriber","innerSubscription","distinctUntilChanged","compare","keySelector","DistinctUntilChangedOperator","DistinctUntilChangedSubscriber","hasKey","y","distinctUntilKeyChanged","NotificationKind","AsyncAction","work","pending","state","delay","id","recycleAsyncId","requestAsyncId","setInterval","flush","clearInterval","execute","_execute","errored","errorValue","Action","Scheduler","SchedulerAction","now","Date","AsyncScheduler","dispatch","Notification","kind","observe","do","accept","toObservable","createNext","undefinedValueNotification","createError","createComplete","completeNotification","delayFor","isNaN","abs","DelayOperator","DelaySubscriber","queue","time","notification","delay_1","max","_schedule","scheduleNotification","DelayMessage","switchMapTo","innerObservable","NEVER","scan","accumulator","seed","hasSeed","ScanOperator","ScanSubscriber","_seed","QueueAction","QueueScheduler","observeOn","ObserveOnOperator","ObserveOnSubscriber","arg","scheduleMessage","ObserveOnMessage","ReplaySubject","bufferSize","windowTime","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","shareReplay","configOrBufferSize","config","refCount","_c","useRefCount","isComplete","shareReplayOperator","mapTo","MapToOperator","MapToSubscriber","concatAll","startWith","load$","getElement","getElements","getElementOffset","el","scrollLeft","RefCountOperator","connectable","_refCount","refCounter","connection","connect","RefCountSubscriber","sharedConnection","_connection","ConnectableObservable","subjectFactory","_isComplete","getSubject","_subject","connectableObservableDescriptor","connectableProto","ConnectableSubscriber","MulticastOperator","shareSubjectFactory","share","subjectOrSubjectFactory","hashchange$","popstate$","watchMedia","query","media","matchMedia","fromEventPattern","addHandler","removeHandler","retValue","resize$","getViewportOffset","pageXOffset","getViewportSize","width","innerWidth","height","innerHeight","defaultThrottleConfig","leading","trailing","ThrottleOperator","durationSelector","ThrottleSubscriber","_leading","_trailing","_hasValue","_sendValue","_throttled","throttle","duration","tryDurationSelector","throttlingDone","watchWorker","worker","send$","recv$","postMessage","AnimationFrameAction","requestAnimationFrame","cancelAnimationFrame","animationFrame","AnimationFrameScheduler","finalize","FinallyOperator","lang","FinallySubscriber","setAnchorBlur","resetAnchorBlur","setAnchorActive","classList","toggle","resetAnchorActive","addToSearchResultList","child","paintHidden","offset","setHidden","resetHidden","truncate","translate","innerText","replace","setToggle","checked","click","watchHeader","observableFactory","sticky","getComputedStyle","getPropertyValue","offsetHeight","NONE","combineLatest","CombineLatestOperator","CombineLatestSubscriber","toRespond","unused","oldVal","_tryResultSelector","watchViewportOffsetFromTopOf","viewport","header$","adjust$","size$","offsetTop","offset$","innerHTML","Node","h","tag","attributes","attr","children","not","toggle$","TakeUntilOperator","notifier","takeUntilSubscriber","notifierSubscription","seenValue","TakeUntilSubscriber","withLatestFrom","WithLatestFromOperator","WithLatestFromSubscriber","found","_tryProject","switchMapIf","begin$","end$","takeIf","mountHero","agent","screen$","hidden","watchHero","mountMain","height$","adjust","bottom","active$","watchMain","_curry2","f2","_arrayFromIterator","iter","_includesWith","pred","val","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","_equals","aItem","f","match","typeA","equals","valueOf","ignoreCase","multiline","unicode","size","entries","keysA","extendedStackA","extendedStackB","watchSidebar","main$","parseFloat","parentElement","min","lock$","lock","paintSidebar","setSidebarHeight","setSidebarLock","resetSidebarHeight","resetSidebarLock","mountNavigation","sidebar","watchNavigation","watchSearchQuery","prepare","focus$","blur$","activeElement","watchElementFocus","watchSearchReset","css","link","article","title","teaser","renderSectionDocument","location","href","class","tabIndex","renderSearchResult","sections","renderArticleDocument","facts","fact","paintSearchResultMeta","query$","meta","textContent","setSearchResultMeta","resetSearchResultMeta","watchSearchResult","result$","render$","watchElementOffset","scrollHeight","resetSearchResultList","paintSearchResultList","mountTabs","watchTabs","split","reverse","_includes","inf","_indexOf","hasOrAdd","shouldAdd","prevSize","Infinity","_items","_nativeSet","has","bIdx","_Set","Set","first","second","out","firstLen","secondLen","toFilterOut","PackerMessageType","SearchMessageType","watchTableOfContents","sidebar$","els","anchors$","table","Map","decodeURIComponent","hash","header","path","anchor","tagName","begin","end","watchAnchorList","paintAnchorList","anchors","isSearchDumpMessage","DUMP","isSearchResultMessage","RESULT","_isTransformer","_dispatchable","methodNames","xf","_isArray","transducer","XFindLast","_xfBase","BufferCountOperator","startBufferEvery","subscriberClass","BufferCountSubscriber","BufferSkipCountSubscriber","buffers","watchActiveLayer","nav","label","htmlFor","newvalue","trim","setupWorkers","base","Worker","search","packer","packerMessage$","packer$","BINARY","localStorage","setItem","searchMessage$","search$","STRING","data$","fromLocal","getItem","first_1","resultSelector_1","forkJoin","SETUP","initialize","isConfig","SyntaxError","location$","href$","hash$","tablet$","searchWorkerRecv$","log","sessionStorage","format","toFixed","repo","stargazers_count","forks_count","public_repos","repository","dataset","mdState","renderSource","components$","names","document$","components","replaceWith","watchComponentMap","component","switchComponent","setHeaderShadow","resetHeaderShadow","paintHeaderShadow","section","QUERY","navigation$","toc$","mountTableOfContents","resultComponent$","mountSearchResult","tabs$","hero$","drawer","searchActive$","reset$","key$","ev","metaKey","ctrlKey","includes","isContentEditable","keyCode","preventDefault","findIndex","stopPropagation","blur","details","detail","blocks","block","button","renderClipboard","insertBefore","alert","webkitOverflowScrolling","rest","temp"],"mappings":"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","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 7);\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n/*@__PURE__*/ (function () {\n if (!_root) {\n throw /*@__PURE__*/ new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\nexport { _root as root };\n//# sourceMappingURL=root.js.map\n","/*!\n * clipboard.js v2.0.4\n * https://zenorocha.github.io/clipboard.js\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clipboardAction = __webpack_require__(1);\n\nvar _clipboardAction2 = _interopRequireDefault(_clipboardAction);\n\nvar _tinyEmitter = __webpack_require__(3);\n\nvar _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);\n\nvar _goodListener = __webpack_require__(4);\n\nvar _goodListener2 = _interopRequireDefault(_goodListener);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\nvar Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = _typeof(options.container) === 'object' ? options.container : document.body;\n }\n\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new _clipboardAction2.default({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: 'defaultText',\n\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n}(_tinyEmitter2.default);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n\nmodule.exports = Clipboard;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _select = __webpack_require__(2);\n\nvar _select2 = _interopRequireDefault(_select);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\nvar ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = (0, _select2.default)(this.fakeElem);\n this.copyText();\n }\n\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = (0, _select2.default)(this.target);\n this.copyText();\n }\n\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: 'destroy',\n\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\nmodule.exports = ClipboardAction;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(5);\nvar delegate = __webpack_require__(6);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(7);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ })\n/******/ ]);\n});","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","export default function _identity(x) {\n return x;\n}","import _curry1 from './internal/_curry1.js';\nimport _identity from './internal/_identity.js';\n\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\nvar identity = /*#__PURE__*/_curry1(_identity);\nexport default identity;","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has.js';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from './internal/_curry1.js';\nimport _has from './internal/_has.js';\nimport _isArguments from './internal/_isArguments.js';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","import _curry1 from './internal/_curry1.js';\nimport keys from './keys.js';\n\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\nvar values = /*#__PURE__*/_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n return vals;\n});\nexport default values;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\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++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\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 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) : new P(function (resolve) { resolve(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 __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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 __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","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = /*@__PURE__*/ new Error();\n /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map\n","/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArray = /*@__PURE__*/ (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar UnsubscriptionErrorImpl = /*@__PURE__*/ (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map\n","/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */\nimport { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = /*@__PURE__*/ (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var rxSubscriber = /*@__PURE__*/ (function () {\n return typeof Symbol === 'function'\n ? /*@__PURE__*/ Symbol('rxSubscriber')\n : '@@rxSubscriber_' + /*@__PURE__*/ Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n","/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var observable = /*@__PURE__*/ (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function noop() { }\n//# sourceMappingURL=noop.js.map\n","/** PURE_IMPORTS_START _noop PURE_IMPORTS_END */\nimport { noop } from './noop';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (!fns) {\n return noop;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map\n","/** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */\nimport { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nvar Observable = /*@__PURE__*/ (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map\n","/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map\n","/** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar ObjectUnsubscribedErrorImpl = /*@__PURE__*/ (function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map\n","/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var subscribeToArray = function (array) {\n return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n };\n};\n//# sourceMappingURL=subscribeToArray.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map\n","/** PURE_IMPORTS_START _Observable,_util_subscribeToArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map\n","/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n//# sourceMappingURL=of.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport var EMPTY = /*@__PURE__*/ new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = /*@__PURE__*/ (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = /*@__PURE__*/ getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map\n","/** PURE_IMPORTS_START _subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function (result) {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map\n","/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) {\n return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n };\n};\n//# sourceMappingURL=subscribeToObservable.js.map\n","/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */\nimport { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) {\n return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, hostReportError);\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToPromise.js.map\n","/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) {\n return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToIterable.js.map\n","/** PURE_IMPORTS_START _scheduleObservable,_schedulePromise,_scheduleArray,_scheduleIterable,_util_isInteropObservable,_util_isPromise,_util_isArrayLike,_util_isIterable PURE_IMPORTS_END */\nimport { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=scheduled.js.map\n","/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleObservable.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n });\n }));\n return sub;\n });\n}\n//# sourceMappingURL=schedulePromise.js.map\n","/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map\n","/** PURE_IMPORTS_START _Observable,_util_subscribeTo,_scheduled_scheduled PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n//# sourceMappingURL=from.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isArray,_operators_map,_util_isObject,_from PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 1) {\n var first_1 = sources[0];\n if (isArray(first_1)) {\n return forkJoinInternal(first_1, null);\n }\n if (isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {\n var keys = Object.keys(first_1);\n return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);\n }\n }\n if (typeof sources[sources.length - 1] === 'function') {\n var resultSelector_1 = sources.pop();\n sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(map(function (args) { return resultSelector_1.apply(void 0, args); }));\n }\n return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n return new Observable(function (subscriber) {\n var len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n var values = new Array(len);\n var completed = 0;\n var emitted = 0;\n var _loop_1 = function (i) {\n var source = from(sources[i]);\n var hasValue = false;\n subscriber.add(source.subscribe({\n next: function (value) {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: function (err) { return subscriber.error(err); },\n complete: function () {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n };\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n }\n });\n}\n//# sourceMappingURL=forkJoin.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nvar toString = /*@__PURE__*/ (function () { return Object.prototype.toString; })();\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar InnerSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber));\nexport { InnerSubscriber };\n//# sourceMappingURL=InnerSubscriber.js.map\n","/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo,_Observable PURE_IMPORTS_END */\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) {\n if (destination === void 0) {\n destination = new InnerSubscriber(outerSubscriber, outerValue, outerIndex);\n }\n if (destination.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(destination);\n }\n return subscribeTo(result)(destination);\n}\n//# sourceMappingURL=subscribeToResult.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar OuterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber));\nexport { OuterSubscriber };\n//# sourceMappingURL=OuterSubscriber.js.map\n","/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber,_map,_observable_from PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = /*@__PURE__*/ (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, ish, value, index, innerSubscriber);\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(OuterSubscriber));\nexport { MergeMapSubscriber };\n//# sourceMappingURL=mergeMap.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map\n","/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */\nimport { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isScheduler,_operators_mergeAll,_fromArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = null;\n var last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map\n","/** PURE_IMPORTS_START tslib,_.._util_root,_.._Observable,_.._Subscriber,_.._operators_map PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { root } from '../../util/root';\nimport { Observable } from '../../Observable';\nimport { Subscriber } from '../../Subscriber';\nimport { map } from '../../operators/map';\nfunction getCORSRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else if (!!root.XDomainRequest) {\n return new root.XDomainRequest();\n }\n else {\n throw new Error('CORS is not supported by your browser');\n }\n}\nfunction getXMLHttpRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else {\n var progId = void 0;\n try {\n var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n for (var i = 0; i < 3; i++) {\n try {\n progId = progIds[i];\n if (new root.ActiveXObject(progId)) {\n break;\n }\n }\n catch (e) {\n }\n }\n return new root.ActiveXObject(progId);\n }\n catch (e) {\n throw new Error('XMLHttpRequest is not supported by your browser');\n }\n }\n}\nexport function ajaxGet(url, headers) {\n if (headers === void 0) {\n headers = null;\n }\n return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nexport function ajaxPost(url, body, headers) {\n return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nexport function ajaxDelete(url, headers) {\n return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nexport function ajaxPut(url, body, headers) {\n return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nexport function ajaxPatch(url, body, headers) {\n return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = /*@__PURE__*/ map(function (x, index) { return x.response; });\nexport function ajaxGetJSON(url, headers) {\n return mapResponse(new AjaxObservable({\n method: 'GET',\n url: url,\n responseType: 'json',\n headers: headers\n }));\n}\nvar AjaxObservable = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AjaxObservable, _super);\n function AjaxObservable(urlOrRequest) {\n var _this = _super.call(this) || this;\n var request = {\n async: true,\n createXHR: function () {\n return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n },\n crossDomain: true,\n withCredentials: false,\n headers: {},\n method: 'GET',\n responseType: 'json',\n timeout: 0\n };\n if (typeof urlOrRequest === 'string') {\n request.url = urlOrRequest;\n }\n else {\n for (var prop in urlOrRequest) {\n if (urlOrRequest.hasOwnProperty(prop)) {\n request[prop] = urlOrRequest[prop];\n }\n }\n }\n _this.request = request;\n return _this;\n }\n AjaxObservable.prototype._subscribe = function (subscriber) {\n return new AjaxSubscriber(subscriber, this.request);\n };\n AjaxObservable.create = (function () {\n var create = function (urlOrRequest) {\n return new AjaxObservable(urlOrRequest);\n };\n create.get = ajaxGet;\n create.post = ajaxPost;\n create.delete = ajaxDelete;\n create.put = ajaxPut;\n create.patch = ajaxPatch;\n create.getJSON = ajaxGetJSON;\n return create;\n })();\n return AjaxObservable;\n}(Observable));\nexport { AjaxObservable };\nvar AjaxSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AjaxSubscriber, _super);\n function AjaxSubscriber(destination, request) {\n var _this = _super.call(this, destination) || this;\n _this.request = request;\n _this.done = false;\n var headers = request.headers = request.headers || {};\n if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {\n headers['X-Requested-With'] = 'XMLHttpRequest';\n }\n var contentTypeHeader = _this.getHeader(headers, 'Content-Type');\n if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));\n _this.send();\n return _this;\n }\n AjaxSubscriber.prototype.next = function (e) {\n this.done = true;\n var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n var result;\n try {\n result = new AjaxResponse(e, xhr, request);\n }\n catch (err) {\n return destination.error(err);\n }\n destination.next(result);\n };\n AjaxSubscriber.prototype.send = function () {\n var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n try {\n var xhr = this.xhr = request.createXHR();\n this.setupEvents(xhr, request);\n if (user) {\n xhr.open(method, url, async, user, password);\n }\n else {\n xhr.open(method, url, async);\n }\n if (async) {\n xhr.timeout = request.timeout;\n xhr.responseType = request.responseType;\n }\n if ('withCredentials' in xhr) {\n xhr.withCredentials = !!request.withCredentials;\n }\n this.setHeaders(xhr, headers);\n if (body) {\n xhr.send(body);\n }\n else {\n xhr.send();\n }\n }\n catch (err) {\n this.error(err);\n }\n };\n AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n if (!body || typeof body === 'string') {\n return body;\n }\n else if (root.FormData && body instanceof root.FormData) {\n return body;\n }\n if (contentType) {\n var splitIndex = contentType.indexOf(';');\n if (splitIndex !== -1) {\n contentType = contentType.substring(0, splitIndex);\n }\n }\n switch (contentType) {\n case 'application/x-www-form-urlencoded':\n return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n case 'application/json':\n return JSON.stringify(body);\n default:\n return body;\n }\n };\n AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n };\n AjaxSubscriber.prototype.getHeader = function (headers, headerName) {\n for (var key in headers) {\n if (key.toLowerCase() === headerName.toLowerCase()) {\n return headers[key];\n }\n }\n return undefined;\n };\n AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n var progressSubscriber = request.progressSubscriber;\n function xhrTimeout(e) {\n var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxTimeoutError(this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n xhr.ontimeout = xhrTimeout;\n xhrTimeout.request = request;\n xhrTimeout.subscriber = this;\n xhrTimeout.progressSubscriber = progressSubscriber;\n if (xhr.upload && 'withCredentials' in xhr) {\n if (progressSubscriber) {\n var xhrProgress_1;\n xhrProgress_1 = function (e) {\n var progressSubscriber = xhrProgress_1.progressSubscriber;\n progressSubscriber.next(e);\n };\n if (root.XDomainRequest) {\n xhr.onprogress = xhrProgress_1;\n }\n else {\n xhr.upload.onprogress = xhrProgress_1;\n }\n xhrProgress_1.progressSubscriber = progressSubscriber;\n }\n var xhrError_1;\n xhrError_1 = function (e) {\n var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxError('ajax error', this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n };\n xhr.onerror = xhrError_1;\n xhrError_1.request = request;\n xhrError_1.subscriber = this;\n xhrError_1.progressSubscriber = progressSubscriber;\n }\n function xhrReadyStateChange(e) {\n return;\n }\n xhr.onreadystatechange = xhrReadyStateChange;\n xhrReadyStateChange.subscriber = this;\n xhrReadyStateChange.progressSubscriber = progressSubscriber;\n xhrReadyStateChange.request = request;\n function xhrLoad(e) {\n var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (this.readyState === 4) {\n var status_1 = this.status === 1223 ? 204 : this.status;\n var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n if (status_1 === 0) {\n status_1 = response ? 200 : 0;\n }\n if (status_1 < 400) {\n if (progressSubscriber) {\n progressSubscriber.complete();\n }\n subscriber.next(e);\n subscriber.complete();\n }\n else {\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error = void 0;\n try {\n error = new AjaxError('ajax error ' + status_1, this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n }\n }\n xhr.onload = xhrLoad;\n xhrLoad.subscriber = this;\n xhrLoad.progressSubscriber = progressSubscriber;\n xhrLoad.request = request;\n };\n AjaxSubscriber.prototype.unsubscribe = function () {\n var _a = this, done = _a.done, xhr = _a.xhr;\n if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n xhr.abort();\n }\n _super.prototype.unsubscribe.call(this);\n };\n return AjaxSubscriber;\n}(Subscriber));\nexport { AjaxSubscriber };\nvar AjaxResponse = /*@__PURE__*/ (function () {\n function AjaxResponse(originalEvent, xhr, request) {\n this.originalEvent = originalEvent;\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n }\n return AjaxResponse;\n}());\nexport { AjaxResponse };\nvar AjaxErrorImpl = /*@__PURE__*/ (function () {\n function AjaxErrorImpl(message, xhr, request) {\n Error.call(this);\n this.message = message;\n this.name = 'AjaxError';\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n return this;\n }\n AjaxErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return AjaxErrorImpl;\n})();\nexport var AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n if ('response' in xhr) {\n return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n }\n else {\n return JSON.parse(xhr.responseText || 'null');\n }\n}\nfunction parseXhrResponse(responseType, xhr) {\n switch (responseType) {\n case 'json':\n return parseJson(xhr);\n case 'xml':\n return xhr.responseXML;\n case 'text':\n default:\n return ('response' in xhr) ? xhr.response : xhr.responseText;\n }\n}\nfunction AjaxTimeoutErrorImpl(xhr, request) {\n AjaxError.call(this, 'ajax timeout', xhr, request);\n this.name = 'AjaxTimeoutError';\n return this;\n}\nexport var AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map\n","/** PURE_IMPORTS_START _AjaxObservable PURE_IMPORTS_END */\nimport { AjaxObservable } from './AjaxObservable';\nexport var ajax = /*@__PURE__*/ (function () { return AjaxObservable.create; })();\n//# sourceMappingURL=ajax.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = /*@__PURE__*/ (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = /*@__PURE__*/ (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map\n","/** PURE_IMPORTS_START _map PURE_IMPORTS_END */\nimport { map } from './map';\nexport function pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return function (source) { return map(plucker(properties, length))(source); };\n}\nfunction plucker(props, length) {\n var mapper = function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[props[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n };\n return mapper;\n}\n//# sourceMappingURL=pluck.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar ArgumentOutOfRangeErrorImpl = /*@__PURE__*/ (function () {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = /*@__PURE__*/ (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = /*@__PURE__*/ (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = subscribeToResult(this, result, value, index, innerSubscriber);\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n this.unsubscribe();\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = /*@__PURE__*/ (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var key;\n try {\n var keySelector = this.keySelector;\n key = keySelector ? keySelector(value) : value;\n }\n catch (err) {\n return this.destination.error(err);\n }\n var result = false;\n if (this.hasKey) {\n try {\n var compare = this.compare;\n result = compare(this.key, key);\n }\n catch (err) {\n return this.destination.error(err);\n }\n }\n else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map\n","/** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */\nimport { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map\n","/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */\nimport { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n/*@__PURE__*/ (function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = /*@__PURE__*/ (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map\n","/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map\n","var Scheduler = /*@__PURE__*/ (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map\n","/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map\n","/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var async = /*@__PURE__*/ new AsyncScheduler(AsyncAction);\n//# sourceMappingURL=async.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map\n","/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n var absoluteDelay = isDate(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = /*@__PURE__*/ (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(Notification.createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n DelaySubscriber.prototype._complete = function () {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n };\n return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = /*@__PURE__*/ (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map\n","/** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */\nimport { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map\n","/** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = /*@__PURE__*/ new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = /*@__PURE__*/ (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) {\n hasSeed = false;\n }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._seed = _seed;\n _this.hasSeed = hasSeed;\n _this.index = 0;\n return _this;\n }\n Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n get: function () {\n return this._seed;\n },\n set: function (value) {\n this.hasSeed = true;\n this._seed = value;\n },\n enumerable: true,\n configurable: true\n });\n ScanSubscriber.prototype._next = function (value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n };\n ScanSubscriber.prototype._tryNext = function (value) {\n var index = this.index++;\n var result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n };\n return ScanSubscriber;\n}(Subscriber));\n//# sourceMappingURL=scan.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map\n","/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */\nimport { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queue = /*@__PURE__*/ new QueueScheduler(QueueAction);\n//# sourceMappingURL=queue.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = /*@__PURE__*/ (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = /*@__PURE__*/ (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) {\n bufferSize = Number.POSITIVE_INFINITY;\n }\n if (windowTime === void 0) {\n windowTime = Number.POSITIVE_INFINITY;\n }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = /*@__PURE__*/ (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map\n","/** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */\nimport { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n var config;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n }\n else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime: windowTime,\n refCount: false,\n scheduler: scheduler\n };\n }\n return function (source) { return source.lift(shareReplayOperator(config)); };\n}\nfunction shareReplayOperator(_a) {\n var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next: function (value) { subject.next(value); },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subject.complete();\n },\n });\n }\n var innerSub = subject.subscribe(this);\n this.add(function () {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n//# sourceMappingURL=shareReplay.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = /*@__PURE__*/ (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map\n","/** PURE_IMPORTS_START _of,_operators_concatAll PURE_IMPORTS_END */\nimport { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return concatAll()(of.apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map\n","/** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */\nimport { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map\n","/** PURE_IMPORTS_START _observable_concat,_util_isScheduler PURE_IMPORTS_END */\nimport { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n var scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n return function (source) { return concat(array, source, scheduler); };\n }\n else {\n return function (source) { return concat(array, source); };\n }\n}\n//# sourceMappingURL=startWith.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = /*@__PURE__*/ (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skip.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { ajax } from \"rxjs/ajax\"\nimport {\n distinctUntilChanged,\n map,\n mapTo,\n pluck,\n shareReplay,\n skip,\n startWith,\n switchMap\n} from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Switch options\n */\ninterface SwitchOptions {\n location$: Observable /* Location observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Observable for document load events\n */\nconst load$ = fromEvent(document, \"DOMContentLoaded\")\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch document\n *\n * @return Document observable\n */\nexport function watchDocument(): Observable {\n return load$\n .pipe(\n mapTo(document),\n shareReplay(1)\n )\n}\n\n/**\n * Watch document switch\n *\n * This function returns an observables that fetches a document if the provided\n * location observable emits a new value (i.e. URL). If the emitted URL points\n * to the same page, the request is effectively ignored (e.g. when only the\n * fragment identifier changes).\n *\n * @param options - Options\n *\n * @return Document switch observable\n */\nexport function watchDocumentSwitch(\n { location$ }: SwitchOptions\n): Observable {\n return location$\n .pipe(\n startWith(location.href),\n map(url => url.replace(/#[^#]+$/, \"\")),\n distinctUntilChanged(),\n skip(1),\n\n /* Fetch document */\n switchMap(url => ajax({\n url,\n responseType: \"document\",\n withCredentials: true\n })\n .pipe(\n pluck(\"response\")\n )\n ),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve an element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element\n */\nexport function getElement(\n selector: string, node: ParentNode = document\n): T | undefined {\n return node.querySelector(selector) || undefined\n}\n\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Elements\n */\nexport function getElements(\n selector: string, node: ParentNode = document\n): T[] {\n return Array.from(node.querySelectorAll(selector))\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, shareReplay, startWith } from \"rxjs/operators\"\n\nimport { Agent } from \"../../_\"\nimport { ViewportSize } from \"../../viewport\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n size$: Observable /* Viewport size observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element offset\n *\n * @param el - HTML element\n *\n * @return Element offset\n */\nexport function getElementOffset(el: HTMLElement): ElementOffset {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element offset\n *\n * @param el - Element\n * @param agent - Agent\n *\n * @return Element offset observable\n */\nexport function watchElementOffset(\n el: HTMLElement, { viewport }: Agent\n): Observable {\n const scroll$ = fromEvent(el, \"scroll\")\n return merge(scroll$, viewport.size$)\n .pipe(\n map(() => getElementOffset(el)),\n startWith(getElementOffset(el)),\n shareReplay(1)\n )\n}\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nvar RefCountOperator = /*@__PURE__*/ (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=refCount.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nvar ConnectableObservable = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\nexport var connectableObservableDescriptor = /*@__PURE__*/ (function () {\n var connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nvar ConnectableSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountOperator = /*@__PURE__*/ (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map\n","/** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */\nimport { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = /*@__PURE__*/ (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\nexport { MulticastOperator };\n//# sourceMappingURL=multicast.js.map\n","/** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */\nimport { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, Subject, fromEvent } from \"rxjs\"\nimport { filter, map, share } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Observable for window hash change events\n */\nconst hashchange$ = fromEvent(window, \"hashchange\")\n\n/**\n * Observable for window pop state events\n */\nconst popstate$ = fromEvent(window, \"popstate\")\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch location\n *\n * @return Location subject\n */\nexport function watchLocation(): Subject {\n const location$ = new Subject()\n popstate$\n .pipe(\n map(() => location.href),\n share()\n )\n .subscribe(location$)\n\n /* Return subject */\n return location$\n}\n\n/**\n * Watch location hash\n *\n * @return Location hash observable\n */\nexport function watchLocationHash(): Observable {\n return hashchange$\n .pipe(\n map(() => location.hash),\n filter(hash => hash.length > 0),\n share()\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEventPattern } from \"rxjs\"\nimport { shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch media query\n *\n * @param query - Media query\n *\n * @return Media observable\n */\nexport function watchMedia(query: string): Observable {\n const media = matchMedia(query)\n return fromEventPattern(next =>\n media.addListener(() => next(media.matches))\n )\n .pipe(\n startWith(media.matches),\n shareReplay(1)\n )\n}\n","/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Observable for window scroll events\n */\nconst scroll$ = fromEvent(window, \"scroll\")\n\n/**\n * Observable for window resize events\n */\nconst resize$ = fromEvent(window, \"resize\")\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport offset\n */\nexport interface ViewportOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/**\n * Viewport size\n */\nexport interface ViewportSize {\n width: number /* Viewport width */\n height: number /* Viewport height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport offset\n *\n * @return Viewport offset\n */\nexport function getViewportOffset(): ViewportOffset {\n return {\n x: pageXOffset,\n y: pageYOffset\n }\n}\n\n/**\n * Retrieve viewport size\n *\n * @return Viewport size\n */\nexport function getViewportSize(): ViewportSize {\n return {\n width: innerWidth,\n height: innerHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport offset\n *\n * @return Viewport offset observable\n */\nexport function watchViewportOffset(): Observable {\n return merge(scroll$, resize$)\n .pipe(\n map(getViewportOffset),\n startWith(getViewportOffset()),\n shareReplay(1)\n )\n}\n\n/**\n * Watch viewport size\n *\n * @return Viewport size observable\n */\nexport function watchViewportSize(): Observable {\n return resize$\n .pipe(\n map(getViewportSize),\n startWith(getViewportSize()),\n shareReplay(1)\n )\n}\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport var defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nexport function throttle(durationSelector, config) {\n if (config === void 0) {\n config = defaultThrottleConfig;\n }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); };\n}\nvar ThrottleOperator = /*@__PURE__*/ (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = subscribeToResult(this, duration));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=throttle.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { pluck, share, switchMapTo, tap, throttle } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Worker message\n */\nexport interface WorkerMessage {\n type: unknown /* Message type */\n data: unknown /* Message data */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n *\n * @template T - Worker message type\n */\ninterface Options {\n send$: Observable /* Message observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch a web worker\n *\n * This function returns an observable that will send all values emitted by the\n * message observable to the web worker. Web worker communication is expected\n * to be bidirectional (request-response) and synchronous. Messages that are\n * emitted during a pending request are throttled, the last one is emitted.\n *\n * @param worker - Web worker\n *\n * @return Worker message observable\n */\nexport function watchWorker(\n worker: Worker, { send$ }: Options\n): Observable {\n\n /* Intercept messages from web worker */\n const recv$ = fromEvent(worker, \"message\")\n .pipe(\n pluck(\"data\"),\n share()\n )\n\n /* Send and receive messages, return hot observable */\n return send$\n .pipe(\n throttle(() => recv$, { leading: true, trailing: true }),\n tap(message => worker.postMessage(message)),\n switchMapTo(recv$),\n share()\n )\n}\n","/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar AnimationFrameAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map\n","/** PURE_IMPORTS_START _AnimationFrameAction,_AnimationFrameScheduler PURE_IMPORTS_END */\nimport { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrame = /*@__PURE__*/ new AnimationFrameScheduler(AnimationFrameAction);\n//# sourceMappingURL=animationFrame.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = /*@__PURE__*/ (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new Subscription(callback));\n return _this;\n }\n return FinallySubscriber;\n}(Subscriber));\n//# sourceMappingURL=finalize.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElement } from \"../agent\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Translations\n */\nlet lang: Record\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Truncate a string after the given number of characters\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @return Truncated value\n */\nexport function truncate(value: string, n: number): string {\n let i = n\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0); // tslint:disable-line\n return `${value.substring(0, i)}...`\n }\n return value\n}\n\n/**\n * Translate the given key\n *\n * @param key - Key to be translated\n * @param value - Value to be replaced\n *\n * @return Translation\n */\nexport function translate(key: string, value?: string): string {\n if (typeof lang === \"undefined\") {\n const el = getElement(\"#__lang\")!\n lang = JSON.parse(el.innerText)\n }\n if (typeof lang[key] === \"undefined\") {\n throw new ReferenceError(`Invalid translation: ${key}`)\n }\n return typeof value !== \"undefined\"\n ? lang[key].replace(\"#\", value)\n : lang[key]\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set anchor blur\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is blurred\n */\nexport function setAnchorBlur(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"blur\" : \"\")\n}\n\n/**\n * Reset anchor blur\n *\n * @param el - Anchor element\n */\nexport function resetAnchorBlur(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Set anchor active\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is active\n */\nexport function setAnchorActive(\n el: HTMLElement, value: boolean\n): void {\n el.classList.toggle(\"md-nav__link--active\", value)\n}\n\n/**\n * Reset anchor active\n *\n * @param el - Anchor element\n */\nexport function resetAnchorActive(\n el: HTMLElement\n): void {\n el.classList.remove(\"md-nav__link--active\")\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { translate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set number of search results\n *\n * @param el - Search result metadata element\n * @param value - Number of results\n */\nexport function setSearchResultMeta(\n el: HTMLElement, value: number\n): void {\n switch (value) {\n\n /* No results */\n case 0:\n el.textContent = translate(\"search.result.none\")\n break\n\n /* One result */\n case 1:\n el.textContent = translate(\"search.result.one\")\n break\n\n /* Multiple result */\n default:\n el.textContent = translate(\"search.result.other\", value.toString())\n }\n}\n\n/**\n * Reset number of search results\n *\n * @param el - Search result metadata element\n */\nexport function resetSearchResultMeta(\n el: HTMLElement\n): void {\n el.textContent = translate(\"search.result.placeholder\")\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Add an element to the search result list\n *\n * @param el - Search result list element\n * @param child - Search result element\n */\nexport function addToSearchResultList(\n el: HTMLElement, child: HTMLElement\n): void {\n el.appendChild(child)\n}\n\n/**\n * Reset search result list\n *\n * @param el - Search result list element\n */\nexport function resetSearchResultList(\n el: HTMLElement\n): void {\n el.innerHTML = \"\"\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { OperatorFunction, animationFrameScheduler, pipe } from \"rxjs\"\nimport {\n distinctUntilChanged,\n finalize,\n map,\n observeOn,\n tap\n} from \"rxjs/operators\"\n\nimport { resetHidden, setHidden } from \"actions\"\n\nimport { ViewportOffset } from \"../agent\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Paint hideable from source observable\n *\n * @param el - Hideable element\n * @param offset - Additional offset\n *\n * @return Operator function\n */\nexport function paintHidden(\n el: HTMLElement, offset: number = 0\n): OperatorFunction {\n return pipe(\n map(({ y }) => y >= offset),\n distinctUntilChanged(),\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(value => {\n setHidden(el, value)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetHidden(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set hidden\n *\n * @param el - Hideable element\n * @param value - Whether the element is hidden\n */\nexport function setHidden(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\")\n}\n\n/**\n * Reset hidden\n *\n * @param el - Hideable element\n */\nexport function resetHidden(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programatically change the value of a toggle, but this\n * is a much simpler and cleaner solution.\n *\n * @param el - Toggle element\n * @param value - Toggle value\n */\nexport function setToggle(\n el: HTMLInputElement, value: boolean\n): void {\n if (el.checked !== value)\n el.click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch toggle\n *\n * @param el - Toggle element\n *\n * @return Toggle observable\n */\nexport function watchToggle(\n el: HTMLInputElement\n): Observable {\n return fromEvent(el, \"change\")\n .pipe(\n map(() => el.checked),\n startWith(el.checked)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, defer, of } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Header state\n */\nexport interface HeaderState {\n sticky: boolean /* Header stickyness */\n height: number /* Header visible height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch header\n *\n * The header is wrapped in an observable to pave the way for auto-hiding or\n * other dynamic behaviors that may be implemented later on.\n *\n * @param el - Header element\n *\n * @return Header state observable\n */\nexport function watchHeader(\n el: HTMLElement\n): Observable {\n return defer(() => {\n const sticky = getComputedStyle(el)\n .getPropertyValue(\"position\") === \"sticky\"\n\n /* Return header as hot observable */\n return of({\n sticky,\n height: sticky ? el.offsetHeight : 0\n })\n })\n}\n","/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n return new Observable(function (subscriber) {\n var input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map\n","/** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = null;\n var scheduler = null;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = /*@__PURE__*/ (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\nexport { CombineLatestOperator };\nvar CombineLatestSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(OuterSubscriber));\nexport { CombineLatestSubscriber };\n//# sourceMappingURL=combineLatest.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, combineLatest } from \"rxjs\"\nimport {\n distinctUntilChanged,\n map,\n shareReplay,\n switchMapTo\n} from \"rxjs/operators\"\n\nimport { Agent, ViewportOffset } from \"utilities\"\n\nimport { HeaderState } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n header$: Observable /* Header state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport offset relative to an element's top\n *\n * This function returns an observable that computes the relative offset to the\n * top of the given element based on the current viewport offset.\n *\n * @param el - HTML element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Viewport offset observable\n */\nexport function watchViewportOffsetFromTopOf(\n el: HTMLElement, { viewport }: Agent, { header$ }: Options\n): Observable {\n\n /* Compute necessary adjustment for offset */\n const adjust$ = viewport.size$\n .pipe(\n switchMapTo(header$),\n map(({ height }) => el.offsetTop - height),\n distinctUntilChanged()\n )\n\n /* Compute relative offset and return as hot observable */\n return combineLatest([viewport.offset$, adjust$])\n .pipe(\n map(([{ x, y }, adjust]) => ({ x, y: y - adjust })),\n shareReplay(1)\n )\n}\n\n/**\n * Watch viewport offset relative to an element's bottom\n *\n * This function returns an observable that computes the relative offset to the\n * bottom of the given element based on the current viewport offset.\n *\n * @param el - HTML element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Viewport offset observable\n */\nexport function watchViewportOffsetFromBottomOf(\n el: HTMLElement, { viewport }: Agent, { header$ }: Options\n): Observable {\n\n /* Compute necessary adjustment for offset */\n const adjust$ = viewport.size$\n .pipe(\n switchMapTo(header$),\n map(({ height }) => el.offsetTop + el.offsetHeight - height),\n distinctUntilChanged()\n )\n\n /* Compute relative offset and return as hot observable */\n return combineLatest([viewport.offset$, adjust$])\n .pipe(\n map(([{ x, y }, adjust]) => ({ x, y: y - adjust })),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { JSX as JSXInternal } from \"preact\"\nimport { keys } from \"ramda\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * HTML attributes\n */\ntype Attributes =\n & JSXInternal.HTMLAttributes\n & JSXInternal.SVGAttributes\n & Record\n\n/**\n * Child element\n */\ntype Child = Child[] | HTMLElement | Text | string | number\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Append a child node to an element\n *\n * @param el - HTML element\n * @param child - Child node\n */\nfunction appendChild(el: HTMLElement, child: Child): void {\n\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString()\n\n /* Handle nodes */\n } else if (child instanceof Node) {\n el.appendChild(child)\n\n /* Handle nested children */\n } else if (Array.isArray(child)) {\n for (const node of child)\n appendChild(el, node)\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * JSX factory\n *\n * @param tag - HTML tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @return HTML element\n */\nexport function h(\n tag: string, attributes: Attributes | null,\n ...children: Array\n): HTMLElement {\n const el = document.createElement(tag)\n\n /* Set attributes, if any */\n if (attributes)\n for (const attr of keys(attributes))\n if (typeof attributes[attr] !== \"boolean\")\n el.setAttribute(attr, attributes[attr])\n else if (attributes[attr])\n el.setAttribute(attr, \"\")\n\n /* Append child nodes */\n for (const child of children)\n appendChild(el, child)\n\n /* Return element */\n return el\n}\n\n/* ----------------------------------------------------------------------------\n * Namespace\n * ------------------------------------------------------------------------- */\n\nexport declare namespace h {\n namespace JSX {\n type Element = HTMLElement\n type IntrinsicElements = JSXInternal.IntrinsicElements\n }\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport { map } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Invert boolean value of source observable\n *\n * @param toggle$ - Toggle observable\n *\n * @return Inverted toggle observable\n */\nexport function not(\n toggle$: Observable\n): Observable {\n return toggle$\n .pipe(\n map(active => !active)\n )\n}\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function takeUntil(notifier) {\n return function (source) { return source.lift(new TakeUntilOperator(notifier)); };\n}\nvar TakeUntilOperator = /*@__PURE__*/ (function () {\n function TakeUntilOperator(notifier) {\n this.notifier = notifier;\n }\n TakeUntilOperator.prototype.call = function (subscriber, source) {\n var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n var notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n };\n return TakeUntilOperator;\n}());\nvar TakeUntilSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeUntilSubscriber, _super);\n function TakeUntilSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.seenValue = false;\n return _this;\n }\n TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.seenValue = true;\n this.complete();\n };\n TakeUntilSubscriber.prototype.notifyComplete = function () {\n };\n return TakeUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=takeUntil.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = /*@__PURE__*/ (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(subscribeToResult(_this, observable, observable, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = [value].concat(this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n MonoTypeOperatorFunction,\n Observable,\n OperatorFunction,\n combineLatest,\n of,\n pipe\n} from \"rxjs\"\nimport {\n filter,\n map,\n switchMap,\n takeUntil,\n withLatestFrom\n} from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle switch map with another observable\n *\n * @template T - Source value type\n * @template U - Target value type\n *\n * @param toggle$ - Toggle observable\n * @param project - Projection\n *\n * @return Operator function\n */\nexport function switchMapIf(\n toggle$: Observable, project: (value: T) => Observable\n): OperatorFunction {\n const begin$ = toggle$.pipe(filter(value => value))\n const end$ = toggle$.pipe(filter(value => !value))\n return pipe(\n switchMap(value => combineLatest([of(value), begin$])),\n switchMap(([value, active]) => active\n ? project(value)\n .pipe(\n takeUntil(end$)\n )\n : EMPTY\n )\n )\n}\n\n/**\n * Toggle emission with another observable\n *\n * @template T - Value type\n *\n * @param toggle$ - Toggle observable\n *\n * @return Operator function\n */\nexport function takeIf(\n toggle$: Observable\n): MonoTypeOperatorFunction {\n return pipe(\n withLatestFrom(toggle$),\n filter(([, active]) => active),\n map(([value]) => value)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport { map, shareReplay } from \"rxjs/operators\"\n\nimport { switchMapIf } from \"extensions\"\nimport { Agent, paintHidden } from \"utilities\"\n\nimport { HeaderState, watchViewportOffsetFromTopOf } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Hero state\n */\nexport interface HeroState {\n hidden: boolean /* Whether the hero is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n header$: Observable /* Header state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch hero\n *\n * @param el - Hero element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Hero state\n */\nexport function watchHero(\n el: HTMLElement, agent: Agent, { header$ }: Options\n): Observable {\n\n /* Watch and paint visibility */\n const hidden$ = watchViewportOffsetFromTopOf(el, agent, { header$ })\n .pipe(\n paintHidden(el, 20)\n )\n\n /* Combine into a single hot observable */\n return hidden$\n .pipe(\n map(hidden => ({ hidden }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount hero from source observable\n *\n * @param agent - Agent\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountHero(\n agent: Agent, options: Options\n): OperatorFunction {\n const { media } = agent\n return pipe(\n switchMapIf(media.screen$, el => watchHero(el, agent, options)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, combineLatest, pipe } from \"rxjs\"\nimport {\n distinctUntilChanged,\n map,\n pluck,\n shareReplay,\n switchMap\n} from \"rxjs/operators\"\n\nimport { Agent } from \"utilities\"\n\nimport { HeaderState } from \"../../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Main area state\n */\nexport interface MainState {\n offset: number /* Main area top offset */\n height: number /* Main area visible height */\n active: boolean /* Scrolled past top offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n header$: Observable /* Header state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch main area\n *\n * This function returns an observable that computes the visual parameters of\n * the main area which depends on the viewport height and vertical offset, as\n * well as the height of the header element, if the header is fixed.\n *\n * @param el - Main area element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Main area state observable\n */\nexport function watchMain(\n el: HTMLElement, { viewport }: Agent, { header$ }: Options\n): Observable {\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n pluck(\"height\")\n )\n\n /* Compute the main area's visible height */\n const height$ = combineLatest([\n viewport.offset$,\n viewport.size$,\n adjust$\n ])\n .pipe(\n map(([{ y }, { height }, adjust]) => {\n const top = el.offsetTop\n const bottom = el.offsetHeight + top\n return height\n - Math.max(0, top - y, adjust)\n - Math.max(0, height + y - bottom)\n }),\n distinctUntilChanged()\n )\n\n /* Compute whether the viewport offset is past the main area's top */\n const active$ = combineLatest([viewport.offset$, adjust$])\n .pipe(\n map(([{ y }, adjust]) => y >= el.offsetTop - adjust),\n distinctUntilChanged()\n )\n\n /* Combine into a single hot observable */\n return combineLatest([height$, adjust$, active$])\n .pipe(\n map(([height, adjust, active]) => ({\n offset: el.offsetTop - adjust,\n height,\n active\n }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount main area from source observable\n *\n * @param agent - Agent\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountMain(\n agent: Agent, options: Options\n): OperatorFunction {\n return pipe(\n switchMap(el => watchMain(el, agent, options)),\n shareReplay(1)\n )\n}\n","import _curry1 from './_curry1.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _curry1 from './internal/_curry1.js';\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nexport default type;","import _arrayFromIterator from './_arrayFromIterator.js';\nimport _includesWith from './_includesWith.js';\nimport _functionName from './_functionName.js';\nimport _has from './_has.js';\nimport _objectIs from './_objectIs.js';\nimport keys from '../keys.js';\nimport type from '../type.js';\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n\n // if *a* array contains any element that is not included in *b*\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n break;\n }\n\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","import _curry2 from './internal/_curry2.js';\nimport _equals from './internal/_equals.js';\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nexport default equals;","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { equals } from \"ramda\"\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n combineLatest,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilChanged,\n finalize,\n map,\n observeOn,\n shareReplay,\n tap\n} from \"rxjs/operators\"\n\nimport {\n resetSidebarHeight,\n resetSidebarLock,\n setSidebarHeight,\n setSidebarLock\n} from \"actions\"\nimport { Agent } from \"utilities\"\n\nimport { MainState } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Sidebar state\n */\nexport interface SidebarState {\n height: number /* Sidebar height */\n lock: boolean /* Sidebar lock */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n main$: Observable /* Main area state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch sidebar\n *\n * This function returns an observable that computes the visual parameters of\n * the sidebar which depends on the vertical viewport offset, as well as the\n * height of the main area. When the page is scrolled beyond the header, the\n * sidebar is locked and fills the remaining space.\n *\n * @param el - Sidebar element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Sidebar state observable\n */\nexport function watchSidebar(\n el: HTMLElement, { viewport }: Agent, { main$ }: Options\n): Observable {\n\n /* Adjust for internal main area offset */\n const adjust = parseFloat(\n getComputedStyle(el.parentElement!)\n .getPropertyValue(\"padding-top\")\n )\n\n /* Compute the sidebar's available height */\n const height$ = combineLatest([viewport.offset$, main$])\n .pipe(\n map(([{ y }, { offset, height }]) => {\n return height - adjust + Math.min(adjust, Math.max(0, y - offset))\n })\n )\n\n /* Compute whether the sidebar should be locked */\n const lock$ = combineLatest([viewport.offset$, main$])\n .pipe(\n map(([{ y }, { offset }]) => y >= offset + adjust)\n )\n\n /* Combine into single hot observable */\n return combineLatest([height$, lock$])\n .pipe(\n map(([height, lock]) => ({ height, lock })),\n distinctUntilChanged(equals),\n shareReplay(1)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Paint sidebar from source observable\n *\n * @param el - Sidebar element\n *\n * @return Operator function\n */\nexport function paintSidebar(\n el: HTMLElement\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ height, lock }) => {\n setSidebarHeight(el, height)\n setSidebarLock(el, lock)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetSidebarHeight(el)\n resetSidebarLock(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set sidebar height\n *\n * @param el - Sidebar element\n * @param value - Sidebar height\n */\nexport function setSidebarHeight(\n el: HTMLElement, value: number\n): void {\n el.style.height = `${value}px`\n}\n\n/**\n * Reset sidebar height\n *\n * @param el - Sidebar element\n */\nexport function resetSidebarHeight(\n el: HTMLElement\n): void {\n el.style.height = \"\"\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Set sidebar lock\n *\n * @param el - Sidebar element\n * @param value - Whether the sidebar is locked\n */\nexport function setSidebarLock(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"lock\" : \"\")\n}\n\n/**\n * Reset sidebar lock\n *\n * @param el - Sidebar element\n */\nexport function resetSidebarLock(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport { map, shareReplay } from \"rxjs/operators\"\n\nimport { switchMapIf } from \"extensions\"\nimport { Agent } from \"utilities\"\n\nimport {\n MainState,\n SidebarState,\n paintSidebar,\n watchSidebar\n} from \"../../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Navigation state\n */\nexport interface NavigationState {\n sidebar: SidebarState /* Sidebar state */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n main$: Observable /* Main area state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch navigation\n *\n * @param el - Navigation element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Navigation state observable\n */\nexport function watchNavigation(\n el: HTMLElement, agent: Agent, { main$ }: Options\n): Observable {\n\n /* Watch and paint sidebar */\n const sidebar$ = watchSidebar(el, agent, { main$ })\n .pipe(\n paintSidebar(el)\n )\n\n /* Combine into a single hot observable */\n return sidebar$\n .pipe(\n map(sidebar => ({ sidebar }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount navigation from source observable\n *\n * @param agent - Agent\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountNavigation(\n agent: Agent, options: Options\n): OperatorFunction {\n const { media } = agent\n return pipe(\n switchMapIf(media.screen$, el => watchNavigation(el, agent, options)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, combineLatest, fromEvent } from \"rxjs\"\nimport {\n distinctUntilChanged,\n map,\n shareReplay,\n startWith\n} from \"rxjs/operators\"\n\nimport { watchElementFocus } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query state\n */\nexport interface SearchQueryState {\n value: string /* Query value */\n focus: boolean /* Query focus state */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n prepare(value: string): string /* Preparation function */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search query\n *\n * @param el - Search query element\n * @param options - Options\n *\n * @return Search query state observable\n */\nexport function watchSearchQuery(\n el: HTMLInputElement, { prepare }: Options\n): Observable {\n\n /* Intercept keyboard events */\n const value$ = fromEvent(el, \"keyup\")\n .pipe(\n map(() => prepare(el.value)),\n startWith(\"\"),\n distinctUntilChanged()\n )\n\n /* Intercept focus events */\n const focus$ = watchElementFocus(el)\n\n /* Combine into a single hot observable */\n return combineLatest([value$, focus$])\n .pipe(\n map(([value, focus]) => ({ value, focus })),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { mapTo, shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch element focus\n *\n * @param el - Element\n *\n * @return Element focus observable\n */\nexport function watchElementFocus(\n el: HTMLElement\n): Observable {\n const focus$ = fromEvent(el, \"focus\")\n const blur$ = fromEvent(el, \"blur\")\n\n /* Map events to boolean state */\n return merge(\n focus$.pipe(mapTo(true)),\n blur$.pipe(mapTo(false))\n )\n .pipe(\n startWith(el === document.activeElement),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { mapTo } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search reset\n *\n * @param el - Search reset element\n *\n * @return Search reset observable\n */\nexport function watchSearchReset(\n el: HTMLElement\n): Observable {\n return fromEvent(el, \"click\")\n .pipe(\n mapTo(undefined)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"extensions\"\nimport { ArticleDocument } from \"modules\"\nimport { truncate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n link: \"md-search-result__link\",\n article: \"md-search-result__article md-search-result__article--document\",\n title: \"md-search-result__title\",\n teaser: \"md-search-result__teaser\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render an article document\n *\n * @param article - Article document\n *\n * @return HTML element\n */\nexport function renderArticleDocument(\n { location, title, text }: ArticleDocument\n): HTMLElement {\n return (\n \n
\n

{title}

\n {text.length\n ?

{truncate(text, 320)}

\n : undefined\n }\n
\n
\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"extensions\"\nimport { SectionDocument } from \"modules\"\nimport { truncate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n link: \"md-search-result__link\",\n article: \"md-search-result__article\",\n title: \"md-search-result__title\",\n teaser: \"md-search-result__teaser\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a section document\n *\n * @param section - Section document\n *\n * @return HTML element\n */\nexport function renderSectionDocument(\n { location, title, text }: SectionDocument\n): HTMLElement {\n return (\n \n
\n

{title}

\n {text.length\n ?

{truncate(text, 320)}

\n : undefined\n }\n
\n
\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"extensions\"\nimport { SearchResult } from \"modules\"\n\nimport { renderArticleDocument } from \"../article\"\nimport { renderSectionDocument } from \"../section\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n item: \"md-search-result__item\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search result\n *\n * @param result - Search result\n *\n * @return HTML element\n */\nexport function renderSearchResult(\n { article, sections }: SearchResult\n): HTMLElement {\n return (\n
  • \n {renderArticleDocument(article)}\n {...sections.map(renderSectionDocument)}\n
  • \n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"extensions\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n facts: \"md-source__facts\",\n fact: \"md-source__fact\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render source facts\n *\n * @param facts - Source facts\n *\n * @return HTML element\n */\nexport function renderSource(\n facts: any // TODO: add typings\n): HTMLElement {\n return (\n
      \n {facts.map((fact: any) =>
    • {fact}
    • )}\n
    \n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { MonoTypeOperatorFunction, Observable, pipe } from \"rxjs\"\nimport { map, withLatestFrom } from \"rxjs/operators\"\n\nimport {\n resetSearchResultMeta,\n setSearchResultMeta\n} from \"actions\"\nimport { SearchResult } from \"modules\"\nimport { getElement } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Paint search result metadata from source observable\n *\n * @param el - Search result metadata element\n * @param options - Options\n *\n * @return Operator function\n */\nexport function paintSearchResultMeta(\n el: HTMLElement, { query$ }: Options\n): MonoTypeOperatorFunction {\n const meta = getElement(\".md-search-result__meta\", el)!\n return pipe(\n withLatestFrom(query$),\n map(([result, query]) => {\n if (query) {\n setSearchResultMeta(meta, result.length)\n } else {\n resetSearchResultMeta(meta)\n }\n return result\n })\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { identity } from \"ramda\"\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport {\n distinctUntilChanged,\n filter,\n map,\n shareReplay,\n switchMap\n} from \"rxjs/operators\"\n\nimport { SearchResult } from \"modules\"\nimport { Agent, watchElementOffset } from \"utilities\"\n\nimport { paintSearchResultList } from \"../list\"\nimport { paintSearchResultMeta } from \"../meta\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n result$: Observable /* Search result observable */\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search result\n *\n * @param el - Search result element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Search result state observable\n */\nexport function watchSearchResult(\n el: HTMLElement, agent: Agent, { result$, query$ }: Options\n): Observable {\n const container = el.parentElement!\n\n /* Compute whether there are more search results elements */\n const render$ = watchElementOffset(container, agent)\n .pipe(\n map(({ y }) => y >= container.scrollHeight - container.offsetHeight - 16),\n distinctUntilChanged(),\n filter(identity)\n )\n\n /* Paint search results */\n return result$\n .pipe(\n paintSearchResultMeta(el, { query$ }),\n paintSearchResultList(el, { render$ })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount search result from source observable\n *\n * @param agent - Agent\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountSearchResult(\n agent: Agent, options: Options\n): OperatorFunction {\n return pipe(\n switchMap(el => watchSearchResult(el, agent, options)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n pipe\n} from \"rxjs\"\nimport {\n finalize,\n mapTo,\n observeOn,\n scan,\n switchMap\n} from \"rxjs/operators\"\n\nimport {\n addToSearchResultList,\n resetSearchResultList\n} from \"actions\"\nimport { SearchResult } from \"modules\"\nimport { renderSearchResult } from \"templates\"\nimport { getElement } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n render$: Observable /* Render trigger observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Paint search result list from source observable\n *\n * @param el - Search result element\n * @param options - Options\n *\n * @return Operator function\n */\nexport function paintSearchResultList(\n el: HTMLElement, { render$ }: Options\n): MonoTypeOperatorFunction {\n const container = el.parentElement!\n const list = getElement(\".md-search-result__list\", el)!\n return pipe(\n switchMap(result => render$\n .pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n scan(index => {\n while (index < result.length) {\n addToSearchResultList(list, renderSearchResult(result[index++]))\n if (container.scrollHeight - container.offsetHeight > 16)\n break\n }\n return index\n }, 0),\n\n /* Re-map to search result */\n mapTo(result),\n\n /* Reset on complete or error */\n finalize(() => {\n resetSearchResultList(list)\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport { map, shareReplay } from \"rxjs/operators\"\n\nimport { switchMapIf } from \"extensions\"\nimport { Agent, paintHidden } from \"utilities\"\n\nimport { HeaderState, watchViewportOffsetFromTopOf } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Tabs state\n */\nexport interface TabsState {\n hidden: boolean /* Whether the tabs are hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n header$: Observable /* Header state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch tabs\n *\n * This function returns an observable that computes the visual parameters of\n * the tabs, currently only denoting whether the tabs are hidden or not.\n *\n * @param el - Tabs element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Tabs state\n */\nexport function watchTabs(\n el: HTMLElement, agent: Agent, { header$ }: Options\n): Observable {\n\n /* Watch and paint visibility */\n const hidden$ = watchViewportOffsetFromTopOf(el, agent, { header$ })\n .pipe(\n paintHidden(el, 8)\n )\n\n /* Combine into a single hot observable */\n return hidden$\n .pipe(\n map(hidden => ({ hidden }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount tabs from source observable\n *\n * @param agent - Agent\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountTabs(\n agent: Agent, options: Options\n): OperatorFunction {\n const { media } = agent\n return pipe(\n switchMapIf(media.screen$, el => watchTabs(el, agent, options)),\n shareReplay(1)\n )\n}\n","import _curry1 from './internal/_curry1.js';\nimport _isString from './internal/_isString.js';\n\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\nvar reverse = /*#__PURE__*/_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\nexport default reverse;","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _indexOf from './_indexOf.js';\n\nexport default function _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}","import equals from '../equals.js';\n\nexport default function _indexOf(list, a, idx) {\n var inf, item;\n // Array.prototype.indexOf doesn't exist below IE9\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n while (idx < list.length) {\n item = list[idx];\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n }\n // non-zero numbers can utilise Set\n return list.indexOf(a, idx);\n\n // all these types can utilise Set\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n }\n }\n // anything else not covered above, defer to R.equals\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}","import _includes from './_includes.js';\n\nvar _Set = /*#__PURE__*/function () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n };\n\n //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n };\n\n //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n return false;\n }\n }\n // these types can all utilise the native Set\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n }\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n return false;\n }\n return true;\n }\n /* falls through */\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n }\n // scan through all previously applied items\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n}\n\n// A simple Set type that honours R.equals semantics\nexport default _Set;","import _curry2 from './internal/_curry2.js';\nimport _Set from './internal/_Set.js';\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared in terms of\n * value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\nvar difference = /*#__PURE__*/_curry2(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _Set();\n\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n idx += 1;\n }\n return out;\n});\nexport default difference;","\n/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Packer message type\n */\nexport const enum PackerMessageType {\n STRING, /* String data */\n BINARY /* Packed data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message containing an unpacked string\n */\nexport interface PackerStringMessage {\n type: PackerMessageType.STRING /* Message type */\n data: string /* Message data */\n}\n\n/**\n * A message containing a packed string\n */\nexport interface PackerBinaryMessage {\n type: PackerMessageType.BINARY /* Message type */\n data: string /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message exchanged with the packer worker\n */\nexport type PackerMessage =\n | PackerStringMessage\n | PackerBinaryMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for packer binary messages\n *\n * @param message - Packer worker message\n *\n * @return Test result\n */\nexport function isPackerBinaryMessage(\n message: PackerMessage\n): message is PackerBinaryMessage {\n return message.type === PackerMessageType.BINARY\n}\n\n/**\n * Type guard for packer string messages\n *\n * @param message - Packer worker message\n *\n * @return Test result\n */\nexport function isPackerStringMessage(\n message: PackerMessage\n): message is PackerStringMessage {\n return message.type === PackerMessageType.STRING\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndexOptions, SearchResult } from \"modules\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search message type\n */\nexport const enum SearchMessageType {\n SETUP, /* Search index setup */\n DUMP, /* Search index dump */\n QUERY, /* Search query */\n RESULT /* Search results */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message containing the data necessary to setup the search index\n */\nexport interface SearchSetupMessage {\n type: SearchMessageType.SETUP /* Message type */\n data: SearchIndexOptions /* Message data */\n}\n\n/**\n * A message containing the a dump of the search index\n */\nexport interface SearchDumpMessage {\n type: SearchMessageType.DUMP /* Message type */\n data: string /* Message data */\n}\n\n/**\n * A message containing a search query\n */\nexport interface SearchQueryMessage {\n type: SearchMessageType.QUERY /* Message type */\n data: string /* Message data */\n}\n\n/**\n * A message containing results for a search query\n */\nexport interface SearchResultMessage {\n type: SearchMessageType.RESULT /* Message type */\n data: SearchResult[] /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message exchanged with the search worker\n */\nexport type SearchMessage =\n | SearchSetupMessage\n | SearchDumpMessage\n | SearchQueryMessage\n | SearchResultMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchSetupMessage(\n message: SearchMessage\n): message is SearchSetupMessage {\n return message.type === SearchMessageType.SETUP\n}\n\n/**\n * Type guard for search dump messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchDumpMessage(\n message: SearchMessage\n): message is SearchDumpMessage {\n return message.type === SearchMessageType.DUMP\n}\n\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchQueryMessage(\n message: SearchMessage\n): message is SearchQueryMessage {\n return message.type === SearchMessageType.QUERY\n}\n\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchResultMessage(\n message: SearchMessage\n): message is SearchResultMessage {\n return message.type === SearchMessageType.RESULT\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, combineLatest, pipe } from \"rxjs\"\nimport { map, shareReplay } from \"rxjs/operators\"\n\nimport { switchMapIf } from \"extensions\"\nimport { Agent, getElements } from \"utilities\"\n\nimport { HeaderState } from \"../../header\"\nimport {\n MainState,\n SidebarState,\n paintSidebar,\n watchSidebar\n} from \"../../main\"\nimport {\n AnchorList,\n paintAnchorList,\n watchAnchorList\n} from \"../anchor\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Table of contents state\n */\nexport interface TableOfContentsState {\n sidebar: SidebarState /* Sidebar state */\n anchors: AnchorList /* Anchor list */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n header$: Observable /* Header state observable */\n main$: Observable /* Main area state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch table of contents\n *\n * @param el - Table of contents element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Table of contents state observable\n */\nexport function watchTableOfContents(\n el: HTMLElement, agent: Agent, { header$, main$ }: Options\n): Observable {\n\n /* Watch and paint sidebar */\n const sidebar$ = watchSidebar(el, agent, { main$ })\n .pipe(\n paintSidebar(el)\n )\n\n /* Watch and paint anchor list (scroll spy) */\n const els = getElements(\".md-nav__link\", el)\n const anchors$ = watchAnchorList(els, agent, { header$ })\n .pipe(\n paintAnchorList(els)\n )\n\n /* Combine into a single hot observable */\n return combineLatest([sidebar$, anchors$])\n .pipe(\n map(([sidebar, anchors]) => ({ sidebar, anchors }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount table of contents from source observable\n *\n * @param agent - Agent\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountTableOfContents(\n agent: Agent, options: Options\n): OperatorFunction {\n const { media } = agent\n return pipe(\n switchMapIf(media.tablet$, el => watchTableOfContents(el, agent, options)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { difference, reverse } from \"ramda\"\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n combineLatest,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilChanged,\n finalize,\n map,\n observeOn,\n scan,\n shareReplay,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport {\n resetAnchorActive,\n resetAnchorBlur,\n setAnchorActive,\n setAnchorBlur\n} from \"actions\"\nimport { Agent, getElement } from \"utilities\"\n\nimport { HeaderState } from \"../../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Anchor list\n */\nexport interface AnchorList {\n prev: HTMLAnchorElement[][] /* Anchors (previous) */\n next: HTMLAnchorElement[][] /* Anchors (next) */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n header$: Observable /* Header state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch anchor list\n *\n * This is effectively a scroll-spy implementation which will account for the\n * fixed header and automatically re-calculate anchor offsets when the viewport\n * is resized. The returned observable will only emit if the anchor list needs\n * to be repainted.\n *\n * This implementation tracks an anchor element's entire path starting from its\n * level up to the top-most anchor element, e.g. `[h3, h2, h1]`. Although the\n * Material theme currently doesn't make use of this information, it enables\n * the styling of the entire hierarchy through customization.\n *\n * Note that the current anchor is the last item of the `prev` anchor list.\n *\n * @param els - Anchor elements\n * @param agent - Agent\n * @param options - Options\n *\n * @return Anchor list observable\n */\nexport function watchAnchorList(\n els: HTMLAnchorElement[], { viewport }: Agent, { header$ }: Options\n): Observable {\n const table = new Map()\n for (const el of els) {\n const id = decodeURIComponent(el.hash.substring(1))\n const target = getElement(`[id=\"${id}\"]`)\n if (typeof target !== \"undefined\")\n table.set(el, target)\n }\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n map(header => 18 + header.height)\n )\n\n /* Compute partition of previous and next anchors */\n const partition$ = viewport.size$\n .pipe(\n\n /* Build index to map anchor paths to vertical offsets */\n map(() => {\n let path: HTMLAnchorElement[] = []\n return [...table].reduce((index, [anchor, target]) => {\n while (path.length) {\n const last = table.get(path[path.length - 1])!\n if (last.tagName >= target.tagName) {\n path.pop()\n } else {\n break\n }\n }\n return index.set(\n reverse(path = [...path, anchor]),\n target.offsetTop\n )\n }, new Map())\n }),\n\n /* Re-compute partition when viewport offset changes */\n switchMap(index => combineLatest(viewport.offset$, adjust$)\n .pipe(\n scan(([prev, next], [{ y }, adjust]) => {\n\n /* Look forward */\n while (next.length) {\n const [, offset] = next[0]\n if (offset - adjust < y) {\n prev = [...prev, next.shift()!]\n } else {\n break\n }\n }\n\n /* Look backward */\n while (prev.length) {\n const [, offset] = prev[prev.length - 1]\n if (offset - adjust >= y) {\n next = [prev.pop()!, ...next]\n } else {\n break\n }\n }\n\n /* Return partition */\n return [prev, next]\n }, [[], [...index]]),\n distinctUntilChanged((a, b) => {\n return a[0] === b[0]\n && a[1] === b[1]\n })\n )\n )\n )\n\n /* Compute anchor list migrations */\n const migration$ = partition$\n .pipe(\n map(([prev, next]) => ({\n prev: prev.map(([path]) => path),\n next: next.map(([path]) => path)\n })),\n\n /* Extract anchor list migrations */\n scan((a, b) => {\n const begin = Math.max(0, Math.min(b.prev.length, a.prev.length) - 1)\n const end = Math.max(b.prev.length, a.prev.length)\n return {\n prev: b.prev.slice(begin, end + 1),\n next: difference(b.next, a.next)\n }\n }, { prev: [], next: [] })\n )\n\n /* Return anchor list migrations as hot observable */\n return migration$\n .pipe(\n shareReplay(1)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Paint anchor list from source observable\n *\n * @param els - Anchor elements\n *\n * @return Operator function\n */\nexport function paintAnchorList(\n els: HTMLAnchorElement[]\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ prev, next }) => {\n\n /* Look forward */\n for (const [el] of next) {\n resetAnchorActive(el)\n resetAnchorBlur(el)\n }\n\n /* Look backward */\n for (const [index, [el]] of prev.entries()) {\n setAnchorActive(el, index === prev.length - 1)\n setAnchorBlur(el, true)\n }\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n for (const el of els) {\n resetAnchorActive(el)\n resetAnchorBlur(el)\n }\n })\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"extensions\"\nimport { translate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n container: \"md-clipboard md-icon\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render clipboard\n *\n * @param id - Unique identifier\n *\n * @return HTML element\n */\nexport function renderClipboard(\n id: string\n): HTMLElement {\n return (\n \n )\n}\n","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","import _isArray from './_isArray.js';\nimport _isTransformer from './_isTransformer.js';\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\nexport default function _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n if (!_isArray(obj)) {\n var idx = 0;\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n idx += 1;\n }\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n return fn.apply(this, arguments);\n };\n}","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XFindLast = /*#__PURE__*/function () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFindLast.prototype['@@transducer/init'] = _xfBase.init;\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n return result;\n };\n\n return XFindLast;\n}();\n\nvar _xfindLast = /*#__PURE__*/_curry2(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\n});\nexport default _xfindLast;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xfindLast from './internal/_xfindLast.js';\n\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\nvar findLast = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindLast, function findLast(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n idx -= 1;\n }\n}));\nexport default findLast;","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) {\n startBufferEvery = null;\n }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = /*@__PURE__*/ (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=bufferCount.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { findLast } from \"ramda\"\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n fromEvent,\n merge,\n pipe\n} from \"rxjs\"\nimport {\n bufferCount,\n delay,\n map,\n observeOn,\n shareReplay,\n tap\n} from \"rxjs/operators\"\n\nimport {\n resetOverflowScrolling,\n setOverflowScrolling\n} from \"actions\"\nimport { getElement, getElements } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Active layer\n */\nexport interface ActiveLayer {\n prev?: HTMLElement /* Anchors (previous) */\n next: HTMLElement /* Anchors (next) */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch active layer\n *\n * On iOS we want to add `-webkit-overflow-scrolling: touch` for the menus\n * contained in the drawer, but as the navigational layers are nested, we can\n * only add it to the active layer because otherwise weird stuff will happen.\n * This implementation keeps track of the previous and currently active layer.\n *\n * @param el - Navigation element (top-level)\n *\n * @return Active layer observable\n */\nexport function watchActiveLayer(\n el: HTMLElement\n): Observable {\n const table = new Map()\n for (const nav of getElements(\"nav\", el)) {\n const label = getElement(\"label\", nav)\n if (typeof label !== \"undefined\") {\n const input = getElement(`#${label.htmlFor}`)!\n table.set(input, nav)\n }\n }\n\n /* Determine active layer */\n const active$ = merge(\n ...[...table.keys()].map(input => fromEvent(input, \"change\"))\n )\n .pipe(\n map(() => getElement(\".md-nav__list\", table.get(\n findLast(({ checked }) => checked, [...table.keys()])!\n ))!)\n )\n\n /* Return previous and next layer */\n return active$\n .pipe(\n // TODO: this doesnt emit correctly\n bufferCount(2, 1),\n map(([prev, next]) => ({ prev, next })),\n shareReplay(1)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Paint active layer from source observable\n *\n * @param els - Anchor elements\n *\n * @return Operator function\n */\nexport function paintActiveLayer(): MonoTypeOperatorFunction {\n return pipe(\n\n /* Unset overflow scrolling on previous layer */\n observeOn(animationFrameScheduler),\n tap(({ prev }) => {\n if (prev) resetOverflowScrolling(prev)\n }),\n\n /* Wait until transition has finished */\n delay(250),\n\n /* Set overflow scrolling on next layer */\n observeOn(animationFrameScheduler),\n tap(({ next }) => {\n setOverflowScrolling(next)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n// TODO: remove this after we finished refactoring\n// tslint:disable\n\nimport * as Clipboard from \"clipboard\"\nimport { identity, values } from \"ramda\"\nimport {\n EMPTY,\n Observable,\n Subject,\n forkJoin,\n merge,\n of,\n fromEvent,\n interval,\n NEVER\n} from \"rxjs\"\nimport { ajax } from \"rxjs/ajax\"\nimport {\n delay,\n filter,\n map,\n pluck,\n switchMap,\n switchMapTo,\n take,\n tap,\n withLatestFrom,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n} from \"rxjs/operators\"\n\nimport {\n Component,\n paintHeaderShadow,\n mountHero,\n mountMain,\n mountNavigation,\n mountSearchResult,\n mountTableOfContents,\n mountTabs,\n switchComponent,\n watchComponentMap,\n watchHeader,\n watchSearchQuery,\n watchSearchReset\n} from \"./components\"\nimport { SearchIndexOptions } from \"./modules\"\nimport {\n getElement,\n setupAgent,\n watchToggle,\n watchWorker,\n setToggle,\n getElements,\n watchMedia,\n translate,\n watchElementFocus\n} from \"./utilities\"\nimport {\n PackerMessage,\n PackerMessageType,\n SearchMessage,\n SearchMessageType,\n SearchSetupMessage,\n isSearchDumpMessage,\n isSearchResultMessage\n} from \"./workers\"\nimport { renderSource } from \"templates\"\nimport { switchMapIf, not, takeIf } from \"extensions\"\nimport { renderClipboard } from \"templates/clipboard\"\nimport { watchActiveLayer, paintActiveLayer } from \"components/navigation/layer\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Configuration\n */\nexport interface Config {\n base: string /* Base URL */\n worker: {\n search: string /* Search worker URL */\n packer: string /* Packer worker URL */\n }\n}\n\n/* ----------------------------------------------------------------------------\n * TODO: where do we put this stuff?\n * ------------------------------------------------------------------------- */\n\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\nconst names: Component[] = [\n \"container\", /* Container */\n \"header\", /* Header */\n \"header-title\", /* Header title */\n \"hero\", /* Hero */\n \"main\", /* Main area */\n \"navigation\", /* Navigation */\n \"search\", /* Search */\n \"search-query\", /* Search input */\n \"search-reset\", /* Search reset */\n \"search-result\", /* Search results */\n \"tabs\", /* Tabs */\n \"toc\" /* Table of contents */\n]\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Ensure that the given value is a valid configuration\n *\n * We could use `jsonschema` or any other schema validation framework, but that\n * would just add more bloat to the bundle, so we'll keep it plain and simple.\n *\n * @param config - Configuration\n *\n * @return Test result\n */\nfunction isConfig(config: any): config is Config {\n return typeof config === \"object\"\n && typeof config.base === \"string\"\n && typeof config.worker === \"object\"\n && typeof config.worker.search === \"string\"\n && typeof config.worker.packer === \"string\"\n}\n\n/**\n *\n * Rogue control characters must be filtered before handing the query to the\n * search index, as lunr will throw otherwise.\n */\nfunction prepare(value: string): string {\n const newvalue = value\n .replace(/(?:^|\\s+)[*+-:^~]+(?=\\s+|$)/g, \"\")\n .trim()\n\n return newvalue ? newvalue.replace(/\\s+|$/g, \"* \") : \"\"\n}\n\nfunction setupWorkers(config: Config) {\n // Remove trailing URL, or search might not work on the 404 page.\n config.base = config.base.replace(/\\/$/, \"\")\n\n const worker = new Worker(config.worker.search)\n const packer = new Worker(config.worker.packer)\n\n const packerMessage$ = new Subject()\n const packer$ = watchWorker(packer, { send$: packerMessage$ })\n\n // send a message, then switchMapTo worker!\n\n packer$.subscribe(message => {\n // console.log(\"PACKER.MSG\", message.data.length)\n // is always packed!\n if (message.type === PackerMessageType.BINARY && message.data[0] !== \"{\")\n localStorage.setItem(\"index\", message.data)\n })\n\n // storing = experimental feature\n\n const searchMessage$ = new Subject()\n\n const search$ = watchWorker(worker, { send$: searchMessage$ })\n\n /* Link search to packer */\n search$\n .pipe(\n filter(isSearchDumpMessage),\n map(message => ({\n type: PackerMessageType.STRING,\n data: message.data\n })),\n tap(message => packerMessage$.next(message)) // send message and wait!\n // switchMapTo(packer$)\n )\n .subscribe()\n\n const data$ = ajax({\n url: `${config.base}/search/search_index.json`,\n responseType: \"json\",\n withCredentials: true\n })\n .pipe(\n pluck(\"response\"),\n // map(res => {\n // // search language... default for theme language...\n // const override = translate(\"search.tokenizer\")\n // // TODO: ???\n // if (override.length)\n // res.config.separator = override\n\n // return res\n // })\n // take(1)\n )\n\n const fromLocal = localStorage.getItem(\"index\")\n\n ;\n (fromLocal ? of({\n type: PackerMessageType.BINARY,\n data: localStorage.getItem(\"index\")!\n }) : EMPTY)\n .subscribe(x => {\n // console.log(\"send message to packer\")\n packerMessage$.next(x)\n })\n\n const index$ = fromLocal ? packer$.pipe(pluck(\"data\"), take(1)) : of(undefined) // of(localStorage.getItem(\"index\"))\n\n // index$.subscribe(xx => console.log(\"INDEX\", xx))\n\n forkJoin([data$, index$])\n .pipe(\n map(([data, index]) => ({\n type: SearchMessageType.SETUP,\n data: { ...data, index }\n }))\n )\n .subscribe(message => {\n searchMessage$.next(message) // TODO: this shall not complete\n })\n\n return [search$, searchMessage$] as const\n}\n\n/**\n * Yes, this is a super hacky implementation. Needs clean up.\n */\nfunction repository() {\n const el = getElement(\".md-source[href]\") // TODO: dont use classes\n console.log(el)\n if (!el)\n return EMPTY\n\n const data = sessionStorage.getItem(\"repository\")\n if (data) {\n const x = JSON.parse(data)\n return of(x)\n }\n\n // TODO: do correct rounding, see GitHub\n function format(value: number) {\n return value > 999\n ? `${(value / 1000).toFixed(1)}k`\n : `${(value)}`\n }\n\n // github repository...\n const [, user, repo] = el.href.match(/^.+github\\.com\\/([^\\/]+)\\/?([^\\/]+)?.*$/i)\n\n // Show repo stats\n if (user && repo) {\n return ajax({\n url: `https://api.github.com/repos/${user}/${repo}`,\n responseType: \"json\"\n })\n .pipe(\n map(({ status, response }) => {\n if (status === 200) {\n const { stargazers_count, forks_count } = response\n return [\n `${format(stargazers_count)} Stars`,\n `${format(forks_count)} Forks`\n ]\n }\n return []\n }),\n tap(data => sessionStorage.setItem(\"repository\", JSON.stringify(data)))\n )\n\n // Show user or organization stats\n } else if (user) {\n return ajax({\n url: `https://api.github.com/users/${user}`,\n responseType: \"json\"\n })\n .pipe(\n map(({ status, response }) => {\n if (status === 200) {\n const { public_repos } = response\n return [\n `${format(public_repos)} Repositories`\n ]\n }\n return []\n }),\n tap(data => sessionStorage.setItem(\"repository\", JSON.stringify(data)))\n )\n }\n return of([])\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Initialize Material for MkDocs\n *\n * @param config - Configuration\n */\nexport function initialize(config: unknown) {\n if (!isConfig(config))\n throw new SyntaxError(`Invalid configuration: ${JSON.stringify(config)}`)\n\n // pass config here!?\n const agent = setupAgent() // TODO: add a config parameter here to configure media queries\n\n const [\n searchWorkerRecv$,\n searchMessage$\n ] = setupWorkers(config)\n\n // TODO: WIP repo rendering\n repository().subscribe(facts => {\n if (facts.length) {\n const sources = getElements(\".md-source__repository\")\n sources.forEach(repo => {\n repo.dataset.mdState = \"done\"\n repo.appendChild(\n renderSource(facts)\n )\n })\n }\n })\n\n /* ----------------------------------------------------------------------- */\n\n /* Create component map observable */\n const components$ = watchComponentMap(names, { document$: agent.document.load$ })\n const component = (name: Component): Observable => {\n return components$\n .pipe(\n switchComponent(name)\n )\n }\n\n /* Create header observable */\n const header$ = component(\"header\") // TODO:!\n .pipe(\n switchMap(watchHeader)\n )\n\n /* Create header shadow toggle */\n component(\"header\")\n .pipe(\n switchMap(el => main$\n .pipe(\n paintHeaderShadow(el) // technically, this could be done in paintMain\n )\n )\n )\n .subscribe()\n\n // ----------------------------------------------------------------------------\n\n // watchSearchResult // emit, if at bottom...\n // receive results as a second observable!? filter stuff, paint\n\n const result$ = searchWorkerRecv$ // move worker initialization into mountSearch ?\n .pipe(\n // tap(m => console.log(\"message from worker\", m)),\n filter(isSearchResultMessage),\n pluck(\"data\"),\n // Prefix URLs with base URL\n tap(result => result.forEach(item => {\n item.article.location = `${config.base}/${item.article.location}`\n item.sections.forEach(section => {\n section.location = `${config.base}/${section.location}`\n })\n }))\n )\n\n // handleSearchResult <-- operator\n\n const query$ = component(\"search-query\")\n .pipe(\n switchMap(el => watchSearchQuery(el, { prepare }))\n )\n\n query$\n .pipe(\n map(query => ({ // put this into some function...\n type: SearchMessageType.QUERY,\n data: query.value\n })), // TODO. ugly...\n distinctUntilKeyChanged(\"data\")\n // distinctUntilKeyChanged(\"data\")\n )\n .subscribe(searchMessage$)\n\n // create the message subject internally... and link it to the worker...?\n // watchSearchWorker(worker, agent, { query$ }) // message internally...\n\n query$\n .pipe(\n tap(query => {\n if (query.focus)\n setToggle(search, true)\n })\n )\n .subscribe()\n\n /* ----------------------------------------------------------------------- */\n\n const main$ = component(\"main\")\n .pipe(\n mountMain(agent, { header$ })\n )\n\n const navigation$ = component(\"navigation\")\n .pipe(\n mountNavigation(agent, { main$ })\n )\n\n const toc$ = component(\"toc\")\n .pipe(\n mountTableOfContents(agent, { header$, main$ })\n )\n\n // TODO: naming?\n const resultComponent$ = component(\"search-result\")\n .pipe(\n mountSearchResult(agent, { result$, query$: query$.pipe(\n distinctUntilKeyChanged(\"value\"),\n pluck(\"value\")\n ) })\n ) // temporary fix\n\n const tabs$ = component(\"tabs\")\n .pipe(\n mountTabs(agent, { header$ })\n )\n\n const hero$ = component(\"hero\")\n .pipe(\n mountHero(agent, { header$ })\n )\n\n\n /* ----------------------------------------------------------------------- */\n\n const drawer = getElement(\"[data-md-toggle=drawer]\")!\n const search = getElement(\"[data-md-toggle=search]\")!\n\n const searchActive$ = watchToggle(search)\n .pipe(\n delay(400)\n )\n\n const reset$ = component(\"search-reset\")\n .pipe(\n switchMap(watchSearchReset)\n )\n\n const key$ = fromEvent(window, \"keydown\").pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey))\n )\n\n // filter arrow keys if search is active!\n searchActive$.subscribe(console.log)\n\n // shortcodes\n key$\n .pipe(\n takeIf(not(searchActive$))\n )\n .subscribe(ev => {\n if (\n document.activeElement && (\n [\"TEXTAREA\", \"SELECT\", \"INPUT\"].includes(\n document.activeElement.tagName\n ) ||\n document.activeElement instanceof HTMLElement &&\n document.activeElement.isContentEditable\n )\n ) {\n // do nothing...\n } else {\n if (ev.keyCode === 70 || ev.keyCode === 83) {\n setToggle(search, true)\n }\n }\n })\n // check which element is focused...\n // note that all links have tabindex=-1\n key$\n .pipe(\n takeIf(searchActive$),\n\n /* Abort if meta key (macOS) or ctrl key (Windows) is pressed */\n tap(ev => {\n if (ev.key === \"Enter\") {\n if (document.activeElement === getElement(\"[data-md-component=search-query]\")) {\n ev.preventDefault()\n // intercept hash change after search closed\n } else {\n setToggle(search, false)\n }\n }\n\n if (ev.key === \"ArrowUp\" || ev.key === \"ArrowDown\") {\n const active = getElements(\"[data-md-component=search-query], [data-md-component=search-result] [href]\")\n const i = Math.max(0, active.findIndex(el => el === document.activeElement))\n const x = Math.max(0, (i + active.length + (ev.keyCode === 38 ? -1 : +1)) % active.length)\n active[x].focus()\n\n /* Prevent scrolling of page */\n ev.preventDefault()\n ev.stopPropagation()\n\n } else if (ev.key === \"Escape\" || ev.key === \"Tab\") {\n setToggle(search, false)\n getElement(\"[data-md-component=search-query]\")!.blur()\n\n } else {\n if (search.checked && document.activeElement !== getElement(\"[data-md-component=search-query]\")) {\n getElement(\"[data-md-component=search-query]\")!.focus()\n }\n }\n })\n )\n .subscribe()\n\n // TODO: close search on hashchange\n // anchor jump -> always close drawer + search\n\n // focus search on reset, on toggle and on keypress if open\n merge(searchActive$.pipe(filter(identity)), reset$)\n .pipe(\n switchMapTo(component(\"search-query\")),\n tap(el => el.focus()) // TODO: only if element isnt focused! setFocus? setToggle?\n )\n .subscribe()\n\n /* ----------------------------------------------------------------------- */\n\n /* Open details before printing */\n merge(\n watchMedia(\"print\").pipe(filter(identity)), // Webkit\n fromEvent(window, \"beforeprint\") // IE, FF\n )\n .subscribe(() => {\n const details = getElements(\"details\")\n Array.prototype.forEach.call(details, detail => {\n detail.setAttribute(\"open\", \"\")\n })\n })\n\n // Close drawer and search on hash change\n agent.location.hash$.subscribe(() => {\n setToggle(drawer, false)\n setToggle(search, false) // we probably need to delay the anchor jump for search\n })\n\n /* ----------------------------------------------------------------------- */\n\n /* Clipboard integration */\n if (Clipboard.isSupported()) {\n const blocks = getElements(\".codehilite > pre, .highlight> pre, pre > code\")\n Array.prototype.forEach.call(blocks, (block, index) => {\n const id = `__code_${index}`\n\n /* Create button with message container */\n const button = renderClipboard(id)\n\n /* Link to block and insert button */\n const parent = block.parentNode\n parent.id = id\n parent.insertBefore(button, block)\n })\n\n /* Initialize Clipboard listener */\n const copy = new Clipboard(\".md-clipboard\")\n\n /* Success handler */\n copy.on(\"success\", action => {\n alert(\"Copied to clipboard\") // TODO: integrate snackbar\n // TODO: add a snackbar/notification\n\n })\n }\n\n /* ----------------------------------------------------------------------- */\n\n const navigationlayer$ = component(\"navigation\")\n .pipe(\n switchMapIf(not(agent.media.tablet$), el => watchActiveLayer(el)\n .pipe(\n paintActiveLayer()\n )\n )\n )\n .subscribe(console.log)\n\n /* ----------------------------------------------------------------------- */\n\n const state = {\n search: {\n query$,\n result$: resultComponent$,\n reset$,\n },\n main$,\n navigation$,\n toc$,\n tabs$,\n hero$\n }\n\n const { search: temp, ...rest } = state\n merge(...values(rest), ...values(temp))\n .subscribe() // potential memleak <-- use takeUntil\n\n return {\n agent,\n state\n }\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, Subject } from \"rxjs\"\n\nimport {\n ViewportOffset,\n ViewportSize,\n watchDocument,\n watchLocation,\n watchLocationHash,\n watchMedia,\n watchViewportOffset,\n watchViewportSize\n} from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Agent document\n */\nexport interface AgentDocument {\n load$: Observable /* Document observable */\n}\n\n/**\n * Agent location\n */\nexport interface AgentLocation {\n href$: Subject /* Location subject */\n hash$: Observable /* Location hash observable */\n}\n\n/**\n * Agent media\n */\nexport interface AgentMedia {\n tablet$: Observable /* Media observable for tablet */\n screen$: Observable /* Media observable for screen */\n}\n\n/**\n * Agent viewport\n */\nexport interface AgentViewport {\n offset$: Observable /* Viewport offset observable */\n size$: Observable /* Viewport size observable */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Agent\n */\nexport interface Agent {\n document: AgentDocument /* Document observables */\n location: AgentLocation /* Location observables */\n media: AgentMedia /* Media observables */\n viewport: AgentViewport /* Viewport observables */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create the agent\n *\n * This function returns a data structure that contains all observables that\n * are related to the browser and/or environment.\n *\n * @return Agent\n */\nexport function setupAgent(): Agent {\n return {\n document: {\n load$: watchDocument()\n },\n location: {\n href$: watchLocation(),\n hash$: watchLocationHash()\n },\n media: {\n tablet$: watchMedia(\"(min-width: 960px)\"),\n screen$: watchMedia(\"(min-width: 1220px)\")\n },\n viewport: {\n offset$: watchViewportOffset(),\n size$: watchViewportSize()\n }\n }\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { keys } from \"ramda\"\nimport { NEVER, Observable, OperatorFunction, of, pipe } from \"rxjs\"\nimport { map, scan, shareReplay, switchMap } from \"rxjs/operators\"\n\nimport { getElement } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component names\n */\nexport type Component =\n | \"container\" /* Container */\n | \"header\" /* Header */\n | \"header-title\" /* Header title */\n | \"hero\" /* Hero */\n | \"main\" /* Main area */\n | \"navigation\" /* Navigation */\n | \"search\" /* Search */\n | \"search-query\" /* Search input */\n | \"search-reset\" /* Search reset */\n | \"search-result\" /* Search results */\n | \"tabs\" /* Tabs */\n | \"toc\" /* Table of contents */\n\n/**\n * Component map\n */\nexport type ComponentMap = {\n [P in Component]?: HTMLElement\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch component mapping\n *\n * This function returns an observable that will maintain bindings to the given\n * components in-between document switches and update the document in-place.\n *\n * @param names - Component names\n * @param options - Options\n *\n * @return Component mapping observable\n */\nexport function watchComponentMap(\n names: Component[], { document$ }: Options\n): Observable {\n const components$ = document$\n .pipe(\n\n /* Build component map */\n map(document => names.reduce((components, name) => {\n const el = getElement(`[data-md-component=${name}]`, document)\n return {\n ...components,\n ...typeof el !== \"undefined\" ? { [name]: el } : {}\n }\n }, {})),\n\n /* Re-compute component map on document switch */\n scan((prev, next) => {\n for (const name of keys(prev)) {\n switch (name) {\n\n /* Top-level components: update */\n case \"header-title\":\n case \"container\":\n if (name in prev && typeof prev[name] !== \"undefined\") {\n prev[name]!.replaceWith(next[name]!)\n prev[name] = next[name]\n }\n break\n\n /* All other components: rebind */\n default:\n prev[name] = getElement(`[data-md-component=${name}]`)\n }\n }\n return prev\n })\n )\n\n /* Return component map as hot observable */\n return components$\n .pipe(\n shareReplay(1)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Switch to component\n *\n * @template T - Element type\n *\n * @param name - Component name\n *\n * @return Operator function\n */\nexport function switchComponent(\n name: Component\n): OperatorFunction {\n return pipe(\n switchMap(components => {\n return typeof components[name] !== \"undefined\"\n ? of(components[name] as T)\n : NEVER\n })\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n animationFrameScheduler,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n finalize,\n observeOn,\n tap\n} from \"rxjs/operators\"\n\nimport { resetHeaderShadow, setHeaderShadow } from \"actions\"\n\nimport { MainState } from \"../../main\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Paint header shadow from source observable\n *\n * @param el - Header element\n *\n * @return Operator function\n */\nexport function paintHeaderShadow(\n el: HTMLElement\n): MonoTypeOperatorFunction {\n return pipe(\n distinctUntilKeyChanged(\"active\"),\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ active }) => {\n setHeaderShadow(el, active)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetHeaderShadow(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set header shadow\n *\n * @param el - Header element\n * @param value - Whether the shadow is shown\n */\nexport function setHeaderShadow(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"shadow\" : \"\")\n}\n\n/**\n * Reset header shadow\n *\n * @param el - Header element\n */\nexport function resetHeaderShadow(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set overflow scrolling\n *\n * @param el - Scrollable element\n */\nexport function setOverflowScrolling(\n el: HTMLElement\n): void {\n // el.style.backgroundColor = \"yellow\" // TODO: debugging\n el.style.webkitOverflowScrolling = \"touch\"\n}\n\n/**\n * Reset overflow scrolling\n *\n * @param el - Scrollable element\n */\nexport function resetOverflowScrolling(\n el: HTMLElement\n): void {\n // el.style.backgroundColor = \"\" // TODO: debugging\n el.style.webkitOverflowScrolling = \"\"\n}\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/rxjs/_esm5/internal/util/root.js","webpack:///./node_modules/clipboard/dist/clipboard.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/ramda/es/internal/_isPlaceholder.js","webpack:///./node_modules/ramda/es/internal/_curry1.js","webpack:///./node_modules/ramda/es/internal/_identity.js","webpack:///./node_modules/ramda/es/identity.js","webpack:///./node_modules/ramda/es/internal/_has.js","webpack:///./node_modules/ramda/es/internal/_isArguments.js","webpack:///./node_modules/ramda/es/keys.js","webpack:///./node_modules/ramda/es/values.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isFunction.js","webpack:///./node_modules/rxjs/_esm5/internal/config.js","webpack:///./node_modules/rxjs/_esm5/internal/util/hostReportError.js","webpack:///./node_modules/rxjs/_esm5/internal/Observer.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isArray.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isObject.js","webpack:///./node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js","webpack:///./node_modules/rxjs/_esm5/internal/Subscription.js","webpack:///./node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js","webpack:///./node_modules/rxjs/_esm5/internal/Subscriber.js","webpack:///./node_modules/rxjs/_esm5/internal/symbol/observable.js","webpack:///./node_modules/rxjs/_esm5/internal/util/noop.js","webpack:///./node_modules/rxjs/_esm5/internal/util/pipe.js","webpack:///./node_modules/rxjs/_esm5/internal/Observable.js","webpack:///./node_modules/rxjs/_esm5/internal/util/toSubscriber.js","webpack:///./node_modules/rxjs/_esm5/internal/util/canReportError.js","webpack:///./node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js","webpack:///./node_modules/rxjs/_esm5/internal/SubjectSubscription.js","webpack:///./node_modules/rxjs/_esm5/internal/Subject.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isScheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToArray.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/fromArray.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/of.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/empty.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/map.js","webpack:///./node_modules/rxjs/_esm5/internal/symbol/iterator.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isArrayLike.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isPromise.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeTo.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/scheduled.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isInteropObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isIterable.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/from.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/forkJoin.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/fromEvent.js","webpack:///./node_modules/rxjs/_esm5/internal/InnerSubscriber.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js","webpack:///./node_modules/rxjs/_esm5/internal/OuterSubscriber.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/mergeMap.js","webpack:///./node_modules/rxjs/_esm5/internal/util/identity.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/mergeAll.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/merge.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/dom/ajax.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/filter.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/tap.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/pluck.js","webpack:///./node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/take.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/switchMap.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/Action.js","webpack:///./node_modules/rxjs/_esm5/internal/Notification.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js","webpack:///./node_modules/rxjs/_esm5/internal/Scheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/async.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/throwError.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/delay.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isDate.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/switchMapTo.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/never.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/scan.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/queue.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/observeOn.js","webpack:///./node_modules/rxjs/_esm5/internal/ReplaySubject.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/shareReplay.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/mapTo.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/concat.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/concatAll.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/startWith.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/skip.js","webpack:///./src/assets/javascripts/utilities/agent/document/index.ts","webpack:///./src/assets/javascripts/utilities/agent/element/_/index.ts","webpack:///./src/assets/javascripts/utilities/agent/element/offset/index.ts","webpack:///./node_modules/rxjs/_esm5/internal/operators/refCount.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/multicast.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/share.js","webpack:///./src/assets/javascripts/utilities/agent/location/index.ts","webpack:///./src/assets/javascripts/utilities/agent/media/index.ts","webpack:///./node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js","webpack:///./src/assets/javascripts/utilities/agent/viewport/index.ts","webpack:///./node_modules/rxjs/_esm5/internal/operators/throttle.js","webpack:///./src/assets/javascripts/utilities/agent/worker/index.ts","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/finalize.js","webpack:///./src/assets/javascripts/utilities/string/index.ts","webpack:///./src/assets/javascripts/actions/anchor/index.ts","webpack:///./src/assets/javascripts/actions/search/result/index.ts","webpack:///./src/assets/javascripts/utilities/hidden/index.ts","webpack:///./src/assets/javascripts/actions/hidden/index.ts","webpack:///./src/assets/javascripts/utilities/toggle/index.ts","webpack:///./src/assets/javascripts/components/header/_/index.ts","webpack:///./node_modules/rxjs/_esm5/internal/observable/defer.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/combineLatest.js","webpack:///./src/assets/javascripts/components/header/offset/index.ts","webpack:///./src/assets/javascripts/extensions/jsx/index.ts","webpack:///./src/assets/javascripts/extensions/rxjs/_/index.ts","webpack:///./node_modules/rxjs/_esm5/internal/operators/takeUntil.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js","webpack:///./src/assets/javascripts/extensions/rxjs/operators/index.ts","webpack:///./src/assets/javascripts/components/hero/index.ts","webpack:///./src/assets/javascripts/components/main/_/index.ts","webpack:///./node_modules/ramda/es/internal/_curry2.js","webpack:///./node_modules/ramda/es/internal/_arrayFromIterator.js","webpack:///./node_modules/ramda/es/internal/_includesWith.js","webpack:///./node_modules/ramda/es/internal/_objectIs.js","webpack:///./node_modules/ramda/es/type.js","webpack:///./node_modules/ramda/es/internal/_equals.js","webpack:///./node_modules/ramda/es/internal/_functionName.js","webpack:///./node_modules/ramda/es/equals.js","webpack:///./src/assets/javascripts/components/main/sidebar/index.ts","webpack:///./src/assets/javascripts/actions/sidebar/index.ts","webpack:///./src/assets/javascripts/components/navigation/_/index.ts","webpack:///./src/assets/javascripts/components/search/query/index.ts","webpack:///./src/assets/javascripts/utilities/agent/element/focus/index.ts","webpack:///./src/assets/javascripts/components/search/reset/index.ts","webpack:///./src/assets/javascripts/templates/search/result/article/index.tsx","webpack:///./src/assets/javascripts/templates/search/result/section/index.tsx","webpack:///./src/assets/javascripts/templates/search/result/_/index.tsx","webpack:///./src/assets/javascripts/templates/source/index.tsx","webpack:///./src/assets/javascripts/components/search/result/meta/index.ts","webpack:///./src/assets/javascripts/components/search/result/_/index.ts","webpack:///./src/assets/javascripts/components/search/result/list/index.ts","webpack:///./src/assets/javascripts/components/tabs/index.ts","webpack:///./node_modules/ramda/es/reverse.js","webpack:///./node_modules/ramda/es/internal/_isString.js","webpack:///./node_modules/ramda/es/internal/_includes.js","webpack:///./node_modules/ramda/es/internal/_indexOf.js","webpack:///./node_modules/ramda/es/internal/_Set.js","webpack:///./node_modules/ramda/es/difference.js","webpack:///./src/assets/javascripts/workers/packer/_/index.ts","webpack:///./src/assets/javascripts/workers/search/_/index.ts","webpack:///./src/assets/javascripts/components/toc/_/index.ts","webpack:///./src/assets/javascripts/components/toc/anchor/index.ts","webpack:///./src/assets/javascripts/templates/clipboard/index.tsx","webpack:///./node_modules/ramda/es/internal/_isArray.js","webpack:///./node_modules/ramda/es/internal/_isTransformer.js","webpack:///./node_modules/ramda/es/internal/_dispatchable.js","webpack:///./node_modules/ramda/es/internal/_xfBase.js","webpack:///./node_modules/ramda/es/internal/_xfindLast.js","webpack:///./node_modules/ramda/es/findLast.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/bufferCount.js","webpack:///./src/assets/javascripts/components/navigation/layer/index.ts","webpack:///./src/assets/javascripts/index.ts","webpack:///./src/assets/javascripts/utilities/agent/_/index.ts","webpack:///./src/assets/javascripts/components/_/index.ts","webpack:///./src/assets/javascripts/components/header/shadow/index.ts","webpack:///./src/assets/javascripts/actions/header/index.ts","webpack:///./src/assets/javascripts/actions/scrolling/index.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__window","window","__self","self","WorkerGlobalScope","_root","global","factory","_typeof","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","configurable","writable","Constructor","protoProps","staticProps","_clipboardAction2","_interopRequireDefault","_tinyEmitter2","_goodListener2","default","Clipboard","_Emitter","trigger","options","instance","TypeError","_classCallCheck","this","_this","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","resolveOptions","listenClick","subClass","superClass","setPrototypeOf","_inherits","arguments","undefined","action","defaultAction","defaultTarget","text","defaultText","container","document","body","_this2","listener","e","onClick","delegateTarget","currentTarget","clipboardAction","emitter","getAttributeValue","selector","querySelector","destroy","actions","support","queryCommandSupported","forEach","suffix","element","attribute","hasAttribute","getAttribute","_select","_select2","ClipboardAction","initSelection","selectedText","selectFake","selectTarget","isRTL","documentElement","removeFake","fakeHandlerCallback","fakeHandler","addEventListener","fakeElem","createElement","style","fontSize","border","padding","margin","position","yPosition","pageYOffset","scrollTop","top","setAttribute","appendChild","copyText","removeEventListener","removeChild","succeeded","execCommand","err","handleResult","emit","clearSelection","focus","getSelection","removeAllRanges","set","_action","Error","nodeType","_target","nodeName","isReadOnly","select","setSelectionRange","removeAttribute","selection","range","createRange","selectNodeContents","addRange","toString","E","on","callback","ctx","push","fn","once","off","apply","_","data","slice","evtArr","len","evts","liveEvents","is","delegate","type","string","node","listenNode","nodeList","Array","listenNodeList","listenSelector","HTMLElement","String","closest","_delegate","useCapture","listenerFn","elements","querySelectorAll","map","DOCUMENT_NODE_TYPE","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentNode","g","Function","_isPlaceholder","a","_curry1","f1","_identity","x","_has","prop","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","hasArgsEnumBug","contains","list","item","idx","keys","nIdx","ks","checkArgsLength","vals","extendStatics","b","__extends","__","isFunction","_enable_super_gross_mode_that_will_cause_bad_things","Promise","stack","hostReportError","setTimeout","empty","closed","next","error","useDeprecatedSynchronousErrorHandling","complete","isArray","isObject","UnsubscriptionError","UnsubscriptionErrorImpl","errors","message","join","Subscription","unsubscribe","_parentOrParents","_subscriptions","_unsubscribe","remove","index","flattenUnsubscriptionErrors","sub","concat","add","teardown","subscription","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","reduce","errs","rxSubscriber","Math","random","_super","Subscriber","destinationOrNext","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","destination","subscriber","_next","_error","_complete","_unsubscribeAndRecycle","SafeSubscriber","_parentSubscriber","observerOrNext","context","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","parent","observable","noop","pipe","fns","_i","pipeFromArray","input","prev","Observable","subscribe","_isScalar","_subscribe","lift","operator","source","sink","nextOrObserver","toSubscriber","_trySubscribe","observer","_a","closed_1","canReportError","console","warn","promiseCtor","getPromiseCtor","resolve","reject","operations","toPromise","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","SubjectSubscription","subject","observers","subscriberIndex","SubjectSubscriber","Subject","hasError","thrownError","copy","asObservable","AnonymousSubject","isScheduler","schedule","subscribeToArray","array","scheduleArray","scheduler","fromArray","of","args","pop","emptyScheduled","project","thisArg","MapOperator","MapSubscriber","count","result","getSymbolIterator","isArrayLike","isPromise","then","subscribeTo","obs","promise","iterable","done","return","scheduled","isInteropObservable","scheduleObservable","schedulePromise","isIterable","scheduleIterable","from","forkJoinInternal","sources","values","completed","emitted","_loop_1","hasValue","fromEvent","eventName","resultSelector","setupSubscription","sourceObj","handler","isEventTarget","source_1","isJQueryStyleEventEmitter","source_2","addListener","removeListener","isNodeStyleEventEmitter","source_3","InnerSubscriber","outerValue","outerIndex","notifyNext","notifyError","notifyComplete","subscribeToResult","outerSubscriber","OuterSubscriber","innerValue","innerIndex","innerSub","MergeMapOperator","concurrent","Number","POSITIVE_INFINITY","MergeMapSubscriber","hasCompleted","buffer","active","_tryNext","_innerSub","ish","innerSubscriber","shift","mergeAll","mergeMap","ii","merge","observables","last","ajaxGet","url","headers","method","ajaxPost","ajaxDelete","ajaxPut","ajaxPatch","mapResponse","response","ajaxGetJSON","responseType","AjaxObservable","urlOrRequest","request","async","createXHR","crossDomain","root","XMLHttpRequest","XDomainRequest","getCORSRequest","progId","progIds","ActiveXObject","getXMLHttpRequest","withCredentials","timeout","post","delete","put","patch","getJSON","AjaxSubscriber","getHeader","FormData","serializeBody","send","xhr","AjaxResponse","_b","user","password","setupEvents","open","setHeaders","contentType","splitIndex","substring","encodeURIComponent","JSON","stringify","setRequestHeader","headerName","toLowerCase","progressSubscriber","xhrTimeout","AjaxTimeoutError","ontimeout","upload","xhrProgress_1","xhrError_1","onprogress","AjaxError","onerror","xhrReadyStateChange","xhrLoad","readyState","status_1","status","responseText","onreadystatechange","onload","abort","originalEvent","parseXhrResponse","AjaxErrorImpl","parse","parseJson","responseXML","ajax","filter","predicate","FilterOperator","FilterSubscriber","tap","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","pluck","properties","currentProp","plucker","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","TakeOperator","total","TakeSubscriber","switchMap","SwitchMapOperator","SwitchMapSubscriber","innerSubscription","distinctUntilChanged","compare","keySelector","DistinctUntilChangedOperator","DistinctUntilChangedSubscriber","hasKey","y","distinctUntilKeyChanged","NotificationKind","AsyncAction","work","pending","state","delay","id","recycleAsyncId","requestAsyncId","setInterval","flush","clearInterval","execute","_execute","errored","errorValue","Action","Scheduler","SchedulerAction","now","Date","AsyncScheduler","dispatch","Notification","kind","observe","do","accept","toObservable","createNext","undefinedValueNotification","createError","createComplete","completeNotification","delayFor","isNaN","abs","DelayOperator","DelaySubscriber","queue","time","notification","delay_1","max","_schedule","scheduleNotification","DelayMessage","switchMapTo","innerObservable","NEVER","scan","accumulator","seed","hasSeed","ScanOperator","ScanSubscriber","_seed","QueueAction","QueueScheduler","observeOn","ObserveOnOperator","ObserveOnSubscriber","arg","scheduleMessage","ObserveOnMessage","ReplaySubject","bufferSize","windowTime","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","shareReplay","configOrBufferSize","config","refCount","_c","useRefCount","isComplete","shareReplayOperator","mapTo","MapToOperator","MapToSubscriber","concatAll","startWith","load$","getElement","getElements","getElementOffset","el","scrollLeft","RefCountOperator","connectable","_refCount","refCounter","connection","connect","RefCountSubscriber","sharedConnection","_connection","ConnectableObservable","subjectFactory","_isComplete","getSubject","_subject","connectableObservableDescriptor","connectableProto","ConnectableSubscriber","MulticastOperator","shareSubjectFactory","share","subjectOrSubjectFactory","hashchange$","popstate$","watchMedia","query","media","matchMedia","fromEventPattern","addHandler","removeHandler","retValue","resize$","getViewportOffset","pageXOffset","getViewportSize","width","innerWidth","height","innerHeight","defaultThrottleConfig","leading","trailing","ThrottleOperator","durationSelector","ThrottleSubscriber","_leading","_trailing","_hasValue","_sendValue","_throttled","throttle","duration","tryDurationSelector","throttlingDone","watchWorker","worker","send$","recv$","postMessage","AnimationFrameAction","requestAnimationFrame","cancelAnimationFrame","animationFrame","AnimationFrameScheduler","finalize","FinallyOperator","lang","FinallySubscriber","setAnchorBlur","resetAnchorBlur","setAnchorActive","classList","toggle","resetAnchorActive","addToSearchResultList","child","paintHidden","offset","setHidden","resetHidden","truncate","translate","innerText","replace","setToggle","checked","click","watchHeader","observableFactory","sticky","getComputedStyle","getPropertyValue","offsetHeight","NONE","combineLatest","CombineLatestOperator","CombineLatestSubscriber","toRespond","unused","oldVal","_tryResultSelector","watchViewportOffsetFromTopOf","viewport","header$","adjust$","size$","offsetTop","offset$","innerHTML","Node","h","tag","attributes","attr","children","not","toggle$","TakeUntilOperator","notifier","takeUntilSubscriber","notifierSubscription","seenValue","TakeUntilSubscriber","withLatestFrom","WithLatestFromOperator","WithLatestFromSubscriber","found","_tryProject","switchMapIf","begin$","end$","takeIf","mountHero","agent","screen$","hidden","watchHero","mountMain","height$","adjust","bottom","active$","watchMain","_curry2","f2","_arrayFromIterator","iter","_includesWith","pred","val","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","_equals","aItem","f","match","typeA","equals","valueOf","ignoreCase","multiline","unicode","size","entries","keysA","extendedStackA","extendedStackB","watchSidebar","main$","parseFloat","parentElement","min","lock$","lock","paintSidebar","setSidebarHeight","setSidebarLock","resetSidebarHeight","resetSidebarLock","mountNavigation","sidebar","watchNavigation","watchSearchQuery","prepare","focus$","blur$","activeElement","watchElementFocus","watchSearchReset","css","link","article","title","teaser","renderSectionDocument","location","href","class","tabIndex","renderSearchResult","sections","renderArticleDocument","facts","fact","paintSearchResultMeta","query$","meta","textContent","setSearchResultMeta","resetSearchResultMeta","watchSearchResult","result$","render$","watchElementOffset","scrollHeight","resetSearchResultList","paintSearchResultList","mountTabs","watchTabs","split","reverse","_includes","inf","_indexOf","hasOrAdd","shouldAdd","prevSize","Infinity","_items","_nativeSet","has","bIdx","_Set","Set","first","second","out","firstLen","secondLen","toFilterOut","PackerMessageType","SearchMessageType","watchTableOfContents","sidebar$","els","anchors$","table","Map","decodeURIComponent","hash","header","path","anchor","tagName","begin","end","watchAnchorList","paintAnchorList","anchors","isSearchDumpMessage","DUMP","isSearchResultMessage","RESULT","_isTransformer","_dispatchable","methodNames","xf","_isArray","transducer","XFindLast","_xfBase","BufferCountOperator","startBufferEvery","subscriberClass","BufferCountSubscriber","BufferSkipCountSubscriber","buffers","watchActiveLayer","nav","label","htmlFor","newvalue","trim","setupWorkers","base","Worker","search","packer","packerMessage$","packer$","BINARY","localStorage","setItem","searchMessage$","search$","STRING","data$","fromLocal","getItem","first_1","resultSelector_1","forkJoin","SETUP","initialize","isConfig","SyntaxError","location$","href$","hash$","tablet$","searchWorkerRecv$","log","sessionStorage","format","toFixed","repo","stargazers_count","forks_count","public_repos","repository","dataset","mdState","renderSource","components$","names","document$","components","replaceWith","watchComponentMap","component","switchComponent","setHeaderShadow","resetHeaderShadow","paintHeaderShadow","section","QUERY","navigation$","toc$","mountTableOfContents","resultComponent$","mountSearchResult","tabs$","hero$","drawer","searchActive$","reset$","key$","ev","metaKey","ctrlKey","includes","isContentEditable","keyCode","preventDefault","findIndex","stopPropagation","blur","details","detail","blocks","block","button","renderClipboard","insertBefore","alert","webkitOverflowScrolling","rest","temp"],"mappings":"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","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 7);\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n/*@__PURE__*/ (function () {\n if (!_root) {\n throw /*@__PURE__*/ new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\nexport { _root as root };\n//# sourceMappingURL=root.js.map\n","/*!\n * clipboard.js v2.0.4\n * https://zenorocha.github.io/clipboard.js\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clipboardAction = __webpack_require__(1);\n\nvar _clipboardAction2 = _interopRequireDefault(_clipboardAction);\n\nvar _tinyEmitter = __webpack_require__(3);\n\nvar _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);\n\nvar _goodListener = __webpack_require__(4);\n\nvar _goodListener2 = _interopRequireDefault(_goodListener);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\nvar Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = _typeof(options.container) === 'object' ? options.container : document.body;\n }\n\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new _clipboardAction2.default({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: 'defaultText',\n\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n}(_tinyEmitter2.default);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n\nmodule.exports = Clipboard;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _select = __webpack_require__(2);\n\nvar _select2 = _interopRequireDefault(_select);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\nvar ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = (0, _select2.default)(this.fakeElem);\n this.copyText();\n }\n\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = (0, _select2.default)(this.target);\n this.copyText();\n }\n\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: 'destroy',\n\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\nmodule.exports = ClipboardAction;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(5);\nvar delegate = __webpack_require__(6);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(7);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ })\n/******/ ]);\n});","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","export default function _identity(x) {\n return x;\n}","import _curry1 from './internal/_curry1.js';\nimport _identity from './internal/_identity.js';\n\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\nvar identity = /*#__PURE__*/_curry1(_identity);\nexport default identity;","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has.js';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from './internal/_curry1.js';\nimport _has from './internal/_has.js';\nimport _isArguments from './internal/_isArguments.js';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","import _curry1 from './internal/_curry1.js';\nimport keys from './keys.js';\n\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\nvar values = /*#__PURE__*/_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n return vals;\n});\nexport default values;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\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++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\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 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) : new P(function (resolve) { resolve(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 __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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 __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","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = /*@__PURE__*/ new Error();\n /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map\n","/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArray = /*@__PURE__*/ (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar UnsubscriptionErrorImpl = /*@__PURE__*/ (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map\n","/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */\nimport { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = /*@__PURE__*/ (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var rxSubscriber = /*@__PURE__*/ (function () {\n return typeof Symbol === 'function'\n ? /*@__PURE__*/ Symbol('rxSubscriber')\n : '@@rxSubscriber_' + /*@__PURE__*/ Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n","/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var observable = /*@__PURE__*/ (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function noop() { }\n//# sourceMappingURL=noop.js.map\n","/** PURE_IMPORTS_START _noop PURE_IMPORTS_END */\nimport { noop } from './noop';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (!fns) {\n return noop;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map\n","/** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */\nimport { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nvar Observable = /*@__PURE__*/ (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map\n","/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map\n","/** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar ObjectUnsubscribedErrorImpl = /*@__PURE__*/ (function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map\n","/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var subscribeToArray = function (array) {\n return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n };\n};\n//# sourceMappingURL=subscribeToArray.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map\n","/** PURE_IMPORTS_START _Observable,_util_subscribeToArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map\n","/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n//# sourceMappingURL=of.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport var EMPTY = /*@__PURE__*/ new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = /*@__PURE__*/ (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = /*@__PURE__*/ getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map\n","/** PURE_IMPORTS_START _subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function (result) {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map\n","/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) {\n return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n };\n};\n//# sourceMappingURL=subscribeToObservable.js.map\n","/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */\nimport { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) {\n return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, hostReportError);\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToPromise.js.map\n","/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) {\n return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToIterable.js.map\n","/** PURE_IMPORTS_START _scheduleObservable,_schedulePromise,_scheduleArray,_scheduleIterable,_util_isInteropObservable,_util_isPromise,_util_isArrayLike,_util_isIterable PURE_IMPORTS_END */\nimport { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=scheduled.js.map\n","/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleObservable.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n });\n }));\n return sub;\n });\n}\n//# sourceMappingURL=schedulePromise.js.map\n","/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map\n","/** PURE_IMPORTS_START _Observable,_util_subscribeTo,_scheduled_scheduled PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n//# sourceMappingURL=from.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isArray,_operators_map,_util_isObject,_from PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 1) {\n var first_1 = sources[0];\n if (isArray(first_1)) {\n return forkJoinInternal(first_1, null);\n }\n if (isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {\n var keys = Object.keys(first_1);\n return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);\n }\n }\n if (typeof sources[sources.length - 1] === 'function') {\n var resultSelector_1 = sources.pop();\n sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(map(function (args) { return resultSelector_1.apply(void 0, args); }));\n }\n return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n return new Observable(function (subscriber) {\n var len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n var values = new Array(len);\n var completed = 0;\n var emitted = 0;\n var _loop_1 = function (i) {\n var source = from(sources[i]);\n var hasValue = false;\n subscriber.add(source.subscribe({\n next: function (value) {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: function (err) { return subscriber.error(err); },\n complete: function () {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n };\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n }\n });\n}\n//# sourceMappingURL=forkJoin.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nvar toString = /*@__PURE__*/ (function () { return Object.prototype.toString; })();\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar InnerSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber));\nexport { InnerSubscriber };\n//# sourceMappingURL=InnerSubscriber.js.map\n","/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo,_Observable PURE_IMPORTS_END */\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) {\n if (destination === void 0) {\n destination = new InnerSubscriber(outerSubscriber, outerValue, outerIndex);\n }\n if (destination.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(destination);\n }\n return subscribeTo(result)(destination);\n}\n//# sourceMappingURL=subscribeToResult.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar OuterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber));\nexport { OuterSubscriber };\n//# sourceMappingURL=OuterSubscriber.js.map\n","/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber,_map,_observable_from PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = /*@__PURE__*/ (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, ish, value, index, innerSubscriber);\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(OuterSubscriber));\nexport { MergeMapSubscriber };\n//# sourceMappingURL=mergeMap.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map\n","/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */\nimport { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isScheduler,_operators_mergeAll,_fromArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = null;\n var last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map\n","/** PURE_IMPORTS_START tslib,_.._util_root,_.._Observable,_.._Subscriber,_.._operators_map PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { root } from '../../util/root';\nimport { Observable } from '../../Observable';\nimport { Subscriber } from '../../Subscriber';\nimport { map } from '../../operators/map';\nfunction getCORSRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else if (!!root.XDomainRequest) {\n return new root.XDomainRequest();\n }\n else {\n throw new Error('CORS is not supported by your browser');\n }\n}\nfunction getXMLHttpRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else {\n var progId = void 0;\n try {\n var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n for (var i = 0; i < 3; i++) {\n try {\n progId = progIds[i];\n if (new root.ActiveXObject(progId)) {\n break;\n }\n }\n catch (e) {\n }\n }\n return new root.ActiveXObject(progId);\n }\n catch (e) {\n throw new Error('XMLHttpRequest is not supported by your browser');\n }\n }\n}\nexport function ajaxGet(url, headers) {\n if (headers === void 0) {\n headers = null;\n }\n return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nexport function ajaxPost(url, body, headers) {\n return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nexport function ajaxDelete(url, headers) {\n return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nexport function ajaxPut(url, body, headers) {\n return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nexport function ajaxPatch(url, body, headers) {\n return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = /*@__PURE__*/ map(function (x, index) { return x.response; });\nexport function ajaxGetJSON(url, headers) {\n return mapResponse(new AjaxObservable({\n method: 'GET',\n url: url,\n responseType: 'json',\n headers: headers\n }));\n}\nvar AjaxObservable = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AjaxObservable, _super);\n function AjaxObservable(urlOrRequest) {\n var _this = _super.call(this) || this;\n var request = {\n async: true,\n createXHR: function () {\n return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n },\n crossDomain: true,\n withCredentials: false,\n headers: {},\n method: 'GET',\n responseType: 'json',\n timeout: 0\n };\n if (typeof urlOrRequest === 'string') {\n request.url = urlOrRequest;\n }\n else {\n for (var prop in urlOrRequest) {\n if (urlOrRequest.hasOwnProperty(prop)) {\n request[prop] = urlOrRequest[prop];\n }\n }\n }\n _this.request = request;\n return _this;\n }\n AjaxObservable.prototype._subscribe = function (subscriber) {\n return new AjaxSubscriber(subscriber, this.request);\n };\n AjaxObservable.create = (function () {\n var create = function (urlOrRequest) {\n return new AjaxObservable(urlOrRequest);\n };\n create.get = ajaxGet;\n create.post = ajaxPost;\n create.delete = ajaxDelete;\n create.put = ajaxPut;\n create.patch = ajaxPatch;\n create.getJSON = ajaxGetJSON;\n return create;\n })();\n return AjaxObservable;\n}(Observable));\nexport { AjaxObservable };\nvar AjaxSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AjaxSubscriber, _super);\n function AjaxSubscriber(destination, request) {\n var _this = _super.call(this, destination) || this;\n _this.request = request;\n _this.done = false;\n var headers = request.headers = request.headers || {};\n if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {\n headers['X-Requested-With'] = 'XMLHttpRequest';\n }\n var contentTypeHeader = _this.getHeader(headers, 'Content-Type');\n if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));\n _this.send();\n return _this;\n }\n AjaxSubscriber.prototype.next = function (e) {\n this.done = true;\n var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n var result;\n try {\n result = new AjaxResponse(e, xhr, request);\n }\n catch (err) {\n return destination.error(err);\n }\n destination.next(result);\n };\n AjaxSubscriber.prototype.send = function () {\n var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n try {\n var xhr = this.xhr = request.createXHR();\n this.setupEvents(xhr, request);\n if (user) {\n xhr.open(method, url, async, user, password);\n }\n else {\n xhr.open(method, url, async);\n }\n if (async) {\n xhr.timeout = request.timeout;\n xhr.responseType = request.responseType;\n }\n if ('withCredentials' in xhr) {\n xhr.withCredentials = !!request.withCredentials;\n }\n this.setHeaders(xhr, headers);\n if (body) {\n xhr.send(body);\n }\n else {\n xhr.send();\n }\n }\n catch (err) {\n this.error(err);\n }\n };\n AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n if (!body || typeof body === 'string') {\n return body;\n }\n else if (root.FormData && body instanceof root.FormData) {\n return body;\n }\n if (contentType) {\n var splitIndex = contentType.indexOf(';');\n if (splitIndex !== -1) {\n contentType = contentType.substring(0, splitIndex);\n }\n }\n switch (contentType) {\n case 'application/x-www-form-urlencoded':\n return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n case 'application/json':\n return JSON.stringify(body);\n default:\n return body;\n }\n };\n AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n };\n AjaxSubscriber.prototype.getHeader = function (headers, headerName) {\n for (var key in headers) {\n if (key.toLowerCase() === headerName.toLowerCase()) {\n return headers[key];\n }\n }\n return undefined;\n };\n AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n var progressSubscriber = request.progressSubscriber;\n function xhrTimeout(e) {\n var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxTimeoutError(this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n xhr.ontimeout = xhrTimeout;\n xhrTimeout.request = request;\n xhrTimeout.subscriber = this;\n xhrTimeout.progressSubscriber = progressSubscriber;\n if (xhr.upload && 'withCredentials' in xhr) {\n if (progressSubscriber) {\n var xhrProgress_1;\n xhrProgress_1 = function (e) {\n var progressSubscriber = xhrProgress_1.progressSubscriber;\n progressSubscriber.next(e);\n };\n if (root.XDomainRequest) {\n xhr.onprogress = xhrProgress_1;\n }\n else {\n xhr.upload.onprogress = xhrProgress_1;\n }\n xhrProgress_1.progressSubscriber = progressSubscriber;\n }\n var xhrError_1;\n xhrError_1 = function (e) {\n var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxError('ajax error', this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n };\n xhr.onerror = xhrError_1;\n xhrError_1.request = request;\n xhrError_1.subscriber = this;\n xhrError_1.progressSubscriber = progressSubscriber;\n }\n function xhrReadyStateChange(e) {\n return;\n }\n xhr.onreadystatechange = xhrReadyStateChange;\n xhrReadyStateChange.subscriber = this;\n xhrReadyStateChange.progressSubscriber = progressSubscriber;\n xhrReadyStateChange.request = request;\n function xhrLoad(e) {\n var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (this.readyState === 4) {\n var status_1 = this.status === 1223 ? 204 : this.status;\n var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n if (status_1 === 0) {\n status_1 = response ? 200 : 0;\n }\n if (status_1 < 400) {\n if (progressSubscriber) {\n progressSubscriber.complete();\n }\n subscriber.next(e);\n subscriber.complete();\n }\n else {\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error = void 0;\n try {\n error = new AjaxError('ajax error ' + status_1, this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n }\n }\n xhr.onload = xhrLoad;\n xhrLoad.subscriber = this;\n xhrLoad.progressSubscriber = progressSubscriber;\n xhrLoad.request = request;\n };\n AjaxSubscriber.prototype.unsubscribe = function () {\n var _a = this, done = _a.done, xhr = _a.xhr;\n if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n xhr.abort();\n }\n _super.prototype.unsubscribe.call(this);\n };\n return AjaxSubscriber;\n}(Subscriber));\nexport { AjaxSubscriber };\nvar AjaxResponse = /*@__PURE__*/ (function () {\n function AjaxResponse(originalEvent, xhr, request) {\n this.originalEvent = originalEvent;\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n }\n return AjaxResponse;\n}());\nexport { AjaxResponse };\nvar AjaxErrorImpl = /*@__PURE__*/ (function () {\n function AjaxErrorImpl(message, xhr, request) {\n Error.call(this);\n this.message = message;\n this.name = 'AjaxError';\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n return this;\n }\n AjaxErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return AjaxErrorImpl;\n})();\nexport var AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n if ('response' in xhr) {\n return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n }\n else {\n return JSON.parse(xhr.responseText || 'null');\n }\n}\nfunction parseXhrResponse(responseType, xhr) {\n switch (responseType) {\n case 'json':\n return parseJson(xhr);\n case 'xml':\n return xhr.responseXML;\n case 'text':\n default:\n return ('response' in xhr) ? xhr.response : xhr.responseText;\n }\n}\nfunction AjaxTimeoutErrorImpl(xhr, request) {\n AjaxError.call(this, 'ajax timeout', xhr, request);\n this.name = 'AjaxTimeoutError';\n return this;\n}\nexport var AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map\n","/** PURE_IMPORTS_START _AjaxObservable PURE_IMPORTS_END */\nimport { AjaxObservable } from './AjaxObservable';\nexport var ajax = /*@__PURE__*/ (function () { return AjaxObservable.create; })();\n//# sourceMappingURL=ajax.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = /*@__PURE__*/ (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = /*@__PURE__*/ (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map\n","/** PURE_IMPORTS_START _map PURE_IMPORTS_END */\nimport { map } from './map';\nexport function pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return function (source) { return map(plucker(properties, length))(source); };\n}\nfunction plucker(props, length) {\n var mapper = function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[props[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n };\n return mapper;\n}\n//# sourceMappingURL=pluck.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar ArgumentOutOfRangeErrorImpl = /*@__PURE__*/ (function () {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = /*@__PURE__*/ (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = /*@__PURE__*/ (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = subscribeToResult(this, result, value, index, innerSubscriber);\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n this.unsubscribe();\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = /*@__PURE__*/ (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var key;\n try {\n var keySelector = this.keySelector;\n key = keySelector ? keySelector(value) : value;\n }\n catch (err) {\n return this.destination.error(err);\n }\n var result = false;\n if (this.hasKey) {\n try {\n var compare = this.compare;\n result = compare(this.key, key);\n }\n catch (err) {\n return this.destination.error(err);\n }\n }\n else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map\n","/** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */\nimport { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map\n","/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */\nimport { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n/*@__PURE__*/ (function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = /*@__PURE__*/ (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map\n","/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map\n","var Scheduler = /*@__PURE__*/ (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map\n","/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map\n","/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var async = /*@__PURE__*/ new AsyncScheduler(AsyncAction);\n//# sourceMappingURL=async.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map\n","/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n var absoluteDelay = isDate(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = /*@__PURE__*/ (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(Notification.createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n DelaySubscriber.prototype._complete = function () {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n };\n return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = /*@__PURE__*/ (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map\n","/** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */\nimport { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map\n","/** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = /*@__PURE__*/ new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = /*@__PURE__*/ (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) {\n hasSeed = false;\n }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._seed = _seed;\n _this.hasSeed = hasSeed;\n _this.index = 0;\n return _this;\n }\n Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n get: function () {\n return this._seed;\n },\n set: function (value) {\n this.hasSeed = true;\n this._seed = value;\n },\n enumerable: true,\n configurable: true\n });\n ScanSubscriber.prototype._next = function (value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n };\n ScanSubscriber.prototype._tryNext = function (value) {\n var index = this.index++;\n var result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n };\n return ScanSubscriber;\n}(Subscriber));\n//# sourceMappingURL=scan.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map\n","/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */\nimport { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queue = /*@__PURE__*/ new QueueScheduler(QueueAction);\n//# sourceMappingURL=queue.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = /*@__PURE__*/ (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = /*@__PURE__*/ (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) {\n bufferSize = Number.POSITIVE_INFINITY;\n }\n if (windowTime === void 0) {\n windowTime = Number.POSITIVE_INFINITY;\n }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = /*@__PURE__*/ (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map\n","/** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */\nimport { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n var config;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n }\n else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime: windowTime,\n refCount: false,\n scheduler: scheduler\n };\n }\n return function (source) { return source.lift(shareReplayOperator(config)); };\n}\nfunction shareReplayOperator(_a) {\n var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next: function (value) { subject.next(value); },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subject.complete();\n },\n });\n }\n var innerSub = subject.subscribe(this);\n this.add(function () {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n//# sourceMappingURL=shareReplay.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = /*@__PURE__*/ (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map\n","/** PURE_IMPORTS_START _of,_operators_concatAll PURE_IMPORTS_END */\nimport { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return concatAll()(of.apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map\n","/** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */\nimport { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map\n","/** PURE_IMPORTS_START _observable_concat,_util_isScheduler PURE_IMPORTS_END */\nimport { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n var scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n return function (source) { return concat(array, source, scheduler); };\n }\n else {\n return function (source) { return concat(array, source); };\n }\n}\n//# sourceMappingURL=startWith.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = /*@__PURE__*/ (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skip.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { ajax } from \"rxjs/ajax\"\nimport {\n distinctUntilChanged,\n map,\n mapTo,\n pluck,\n shareReplay,\n skip,\n startWith,\n switchMap\n} from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Switch options\n */\ninterface SwitchOptions {\n location$: Observable /* Location observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Observable for document load events\n */\nconst load$ = fromEvent(document, \"DOMContentLoaded\")\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch document\n *\n * @return Document observable\n */\nexport function watchDocument(): Observable {\n return load$\n .pipe(\n mapTo(document),\n shareReplay(1)\n )\n}\n\n/**\n * Watch document switch\n *\n * This function returns an observables that fetches a document if the provided\n * location observable emits a new value (i.e. URL). If the emitted URL points\n * to the same page, the request is effectively ignored (e.g. when only the\n * fragment identifier changes).\n *\n * @param options - Options\n *\n * @return Document switch observable\n */\nexport function watchDocumentSwitch(\n { location$ }: SwitchOptions\n): Observable {\n return location$\n .pipe(\n startWith(location.href),\n map(url => url.replace(/#[^#]+$/, \"\")),\n distinctUntilChanged(),\n skip(1),\n\n /* Fetch document */\n switchMap(url => ajax({\n url,\n responseType: \"document\",\n withCredentials: true\n })\n .pipe(\n pluck(\"response\")\n )\n ),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve an element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element\n */\nexport function getElement(\n selector: string, node: ParentNode = document\n): T | undefined {\n return node.querySelector(selector) || undefined\n}\n\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Elements\n */\nexport function getElements(\n selector: string, node: ParentNode = document\n): T[] {\n return Array.from(node.querySelectorAll(selector))\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, shareReplay, startWith } from \"rxjs/operators\"\n\nimport { Agent } from \"../../_\"\nimport { ViewportSize } from \"../../viewport\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n size$: Observable /* Viewport size observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element offset\n *\n * @param el - HTML element\n *\n * @return Element offset\n */\nexport function getElementOffset(el: HTMLElement): ElementOffset {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element offset\n *\n * @param el - Element\n * @param agent - Agent\n *\n * @return Element offset observable\n */\nexport function watchElementOffset(\n el: HTMLElement, { viewport }: Agent\n): Observable {\n const scroll$ = fromEvent(el, \"scroll\")\n return merge(scroll$, viewport.size$)\n .pipe(\n map(() => getElementOffset(el)),\n startWith(getElementOffset(el)),\n shareReplay(1)\n )\n}\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nvar RefCountOperator = /*@__PURE__*/ (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=refCount.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nvar ConnectableObservable = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\nexport var connectableObservableDescriptor = /*@__PURE__*/ (function () {\n var connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nvar ConnectableSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountOperator = /*@__PURE__*/ (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map\n","/** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */\nimport { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = /*@__PURE__*/ (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\nexport { MulticastOperator };\n//# sourceMappingURL=multicast.js.map\n","/** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */\nimport { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, Subject, fromEvent } from \"rxjs\"\nimport { filter, map, share } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Observable for window hash change events\n */\nconst hashchange$ = fromEvent(window, \"hashchange\")\n\n/**\n * Observable for window pop state events\n */\nconst popstate$ = fromEvent(window, \"popstate\")\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch location\n *\n * @return Location subject\n */\nexport function watchLocation(): Subject {\n const location$ = new Subject()\n popstate$\n .pipe(\n map(() => location.href),\n share()\n )\n .subscribe(location$)\n\n /* Return subject */\n return location$\n}\n\n/**\n * Watch location hash\n *\n * @return Location hash observable\n */\nexport function watchLocationHash(): Observable {\n return hashchange$\n .pipe(\n map(() => location.hash),\n filter(hash => hash.length > 0),\n share()\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEventPattern } from \"rxjs\"\nimport { shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch media query\n *\n * @param query - Media query\n *\n * @return Media observable\n */\nexport function watchMedia(query: string): Observable {\n const media = matchMedia(query)\n return fromEventPattern(next =>\n media.addListener(() => next(media.matches))\n )\n .pipe(\n startWith(media.matches),\n shareReplay(1)\n )\n}\n","/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Observable for window scroll events\n */\nconst scroll$ = fromEvent(window, \"scroll\")\n\n/**\n * Observable for window resize events\n */\nconst resize$ = fromEvent(window, \"resize\")\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport offset\n */\nexport interface ViewportOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/**\n * Viewport size\n */\nexport interface ViewportSize {\n width: number /* Viewport width */\n height: number /* Viewport height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport offset\n *\n * @return Viewport offset\n */\nexport function getViewportOffset(): ViewportOffset {\n return {\n x: pageXOffset,\n y: pageYOffset\n }\n}\n\n/**\n * Retrieve viewport size\n *\n * @return Viewport size\n */\nexport function getViewportSize(): ViewportSize {\n return {\n width: innerWidth,\n height: innerHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport offset\n *\n * @return Viewport offset observable\n */\nexport function watchViewportOffset(): Observable {\n return merge(scroll$, resize$)\n .pipe(\n map(getViewportOffset),\n startWith(getViewportOffset()),\n shareReplay(1)\n )\n}\n\n/**\n * Watch viewport size\n *\n * @return Viewport size observable\n */\nexport function watchViewportSize(): Observable {\n return resize$\n .pipe(\n map(getViewportSize),\n startWith(getViewportSize()),\n shareReplay(1)\n )\n}\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport var defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nexport function throttle(durationSelector, config) {\n if (config === void 0) {\n config = defaultThrottleConfig;\n }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); };\n}\nvar ThrottleOperator = /*@__PURE__*/ (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = subscribeToResult(this, duration));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=throttle.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { pluck, share, switchMapTo, tap, throttle } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Worker message\n */\nexport interface WorkerMessage {\n type: unknown /* Message type */\n data: unknown /* Message data */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n *\n * @template T - Worker message type\n */\ninterface Options {\n send$: Observable /* Message observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch a web worker\n *\n * This function returns an observable that will send all values emitted by the\n * message observable to the web worker. Web worker communication is expected\n * to be bidirectional (request-response) and synchronous. Messages that are\n * emitted during a pending request are throttled, the last one is emitted.\n *\n * @param worker - Web worker\n *\n * @return Worker message observable\n */\nexport function watchWorker(\n worker: Worker, { send$ }: Options\n): Observable {\n\n /* Intercept messages from web worker */\n const recv$ = fromEvent(worker, \"message\")\n .pipe(\n pluck(\"data\"),\n share()\n )\n\n /* Send and receive messages, return hot observable */\n return send$\n .pipe(\n throttle(() => recv$, { leading: true, trailing: true }),\n tap(message => worker.postMessage(message)),\n switchMapTo(recv$),\n share()\n )\n}\n","/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar AnimationFrameAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map\n","/** PURE_IMPORTS_START _AnimationFrameAction,_AnimationFrameScheduler PURE_IMPORTS_END */\nimport { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrame = /*@__PURE__*/ new AnimationFrameScheduler(AnimationFrameAction);\n//# sourceMappingURL=animationFrame.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = /*@__PURE__*/ (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new Subscription(callback));\n return _this;\n }\n return FinallySubscriber;\n}(Subscriber));\n//# sourceMappingURL=finalize.js.map\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElement } from \"../agent\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Translations\n */\nlet lang: Record\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Truncate a string after the given number of characters\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @return Truncated value\n */\nexport function truncate(value: string, n: number): string {\n let i = n\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0); // tslint:disable-line\n return `${value.substring(0, i)}...`\n }\n return value\n}\n\n/**\n * Translate the given key\n *\n * @param key - Key to be translated\n * @param value - Value to be replaced\n *\n * @return Translation\n */\nexport function translate(key: string, value?: string): string {\n if (typeof lang === \"undefined\") {\n const el = getElement(\"#__lang\")!\n lang = JSON.parse(el.innerText)\n }\n if (typeof lang[key] === \"undefined\") {\n throw new ReferenceError(`Invalid translation: ${key}`)\n }\n return typeof value !== \"undefined\"\n ? lang[key].replace(\"#\", value)\n : lang[key]\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set anchor blur\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is blurred\n */\nexport function setAnchorBlur(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"blur\" : \"\")\n}\n\n/**\n * Reset anchor blur\n *\n * @param el - Anchor element\n */\nexport function resetAnchorBlur(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Set anchor active\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is active\n */\nexport function setAnchorActive(\n el: HTMLElement, value: boolean\n): void {\n el.classList.toggle(\"md-nav__link--active\", value)\n}\n\n/**\n * Reset anchor active\n *\n * @param el - Anchor element\n */\nexport function resetAnchorActive(\n el: HTMLElement\n): void {\n el.classList.remove(\"md-nav__link--active\")\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { translate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set number of search results\n *\n * @param el - Search result metadata element\n * @param value - Number of results\n */\nexport function setSearchResultMeta(\n el: HTMLElement, value: number\n): void {\n switch (value) {\n\n /* No results */\n case 0:\n el.textContent = translate(\"search.result.none\")\n break\n\n /* One result */\n case 1:\n el.textContent = translate(\"search.result.one\")\n break\n\n /* Multiple result */\n default:\n el.textContent = translate(\"search.result.other\", value.toString())\n }\n}\n\n/**\n * Reset number of search results\n *\n * @param el - Search result metadata element\n */\nexport function resetSearchResultMeta(\n el: HTMLElement\n): void {\n el.textContent = translate(\"search.result.placeholder\")\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Add an element to the search result list\n *\n * @param el - Search result list element\n * @param child - Search result element\n */\nexport function addToSearchResultList(\n el: HTMLElement, child: HTMLElement\n): void {\n el.appendChild(child)\n}\n\n/**\n * Reset search result list\n *\n * @param el - Search result list element\n */\nexport function resetSearchResultList(\n el: HTMLElement\n): void {\n el.innerHTML = \"\"\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { OperatorFunction, animationFrameScheduler, pipe } from \"rxjs\"\nimport {\n distinctUntilChanged,\n finalize,\n map,\n observeOn,\n tap\n} from \"rxjs/operators\"\n\nimport { resetHidden, setHidden } from \"actions\"\n\nimport { ViewportOffset } from \"../agent\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Paint hideable from source observable\n *\n * @param el - Hideable element\n * @param offset - Additional offset\n *\n * @return Operator function\n */\nexport function paintHidden(\n el: HTMLElement, offset: number = 0\n): OperatorFunction {\n return pipe(\n map(({ y }) => y >= offset),\n distinctUntilChanged(),\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(value => {\n setHidden(el, value)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetHidden(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set hidden\n *\n * @param el - Hideable element\n * @param value - Whether the element is hidden\n */\nexport function setHidden(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\")\n}\n\n/**\n * Reset hidden\n *\n * @param el - Hideable element\n */\nexport function resetHidden(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programatically change the value of a toggle, but this\n * is a much simpler and cleaner solution.\n *\n * @param el - Toggle element\n * @param value - Toggle value\n */\nexport function setToggle(\n el: HTMLInputElement, value: boolean\n): void {\n if (el.checked !== value)\n el.click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch toggle\n *\n * @param el - Toggle element\n *\n * @return Toggle observable\n */\nexport function watchToggle(\n el: HTMLInputElement\n): Observable {\n return fromEvent(el, \"change\")\n .pipe(\n map(() => el.checked),\n startWith(el.checked)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, defer, of } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Header state\n */\nexport interface HeaderState {\n sticky: boolean /* Header stickyness */\n height: number /* Header visible height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch header\n *\n * The header is wrapped in an observable to pave the way for auto-hiding or\n * other dynamic behaviors that may be implemented later on.\n *\n * @param el - Header element\n *\n * @return Header state observable\n */\nexport function watchHeader(\n el: HTMLElement\n): Observable {\n return defer(() => {\n const sticky = getComputedStyle(el)\n .getPropertyValue(\"position\") === \"sticky\"\n\n /* Return header as hot observable */\n return of({\n sticky,\n height: sticky ? el.offsetHeight : 0\n })\n })\n}\n","/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n return new Observable(function (subscriber) {\n var input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map\n","/** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = null;\n var scheduler = null;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = /*@__PURE__*/ (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\nexport { CombineLatestOperator };\nvar CombineLatestSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(OuterSubscriber));\nexport { CombineLatestSubscriber };\n//# sourceMappingURL=combineLatest.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, combineLatest } from \"rxjs\"\nimport {\n distinctUntilChanged,\n map,\n shareReplay,\n switchMapTo\n} from \"rxjs/operators\"\n\nimport { Agent, ViewportOffset } from \"utilities\"\n\nimport { HeaderState } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n header$: Observable /* Header state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport offset relative to an element's top\n *\n * This function returns an observable that computes the relative offset to the\n * top of the given element based on the current viewport offset.\n *\n * @param el - HTML element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Viewport offset observable\n */\nexport function watchViewportOffsetFromTopOf(\n el: HTMLElement, { viewport }: Agent, { header$ }: Options\n): Observable {\n\n /* Compute necessary adjustment for offset */\n const adjust$ = viewport.size$\n .pipe(\n switchMapTo(header$),\n map(({ height }) => el.offsetTop - height),\n distinctUntilChanged()\n )\n\n /* Compute relative offset and return as hot observable */\n return combineLatest([viewport.offset$, adjust$])\n .pipe(\n map(([{ x, y }, adjust]) => ({ x, y: y - adjust })),\n shareReplay(1)\n )\n}\n\n/**\n * Watch viewport offset relative to an element's bottom\n *\n * This function returns an observable that computes the relative offset to the\n * bottom of the given element based on the current viewport offset.\n *\n * @param el - HTML element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Viewport offset observable\n */\nexport function watchViewportOffsetFromBottomOf(\n el: HTMLElement, { viewport }: Agent, { header$ }: Options\n): Observable {\n\n /* Compute necessary adjustment for offset */\n const adjust$ = viewport.size$\n .pipe(\n switchMapTo(header$),\n map(({ height }) => el.offsetTop + el.offsetHeight - height),\n distinctUntilChanged()\n )\n\n /* Compute relative offset and return as hot observable */\n return combineLatest([viewport.offset$, adjust$])\n .pipe(\n map(([{ x, y }, adjust]) => ({ x, y: y - adjust })),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { JSX as JSXInternal } from \"preact\"\nimport { keys } from \"ramda\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * HTML attributes\n */\ntype Attributes =\n & JSXInternal.HTMLAttributes\n & JSXInternal.SVGAttributes\n & Record\n\n/**\n * Child element\n */\ntype Child = Child[] | HTMLElement | Text | string | number\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Append a child node to an element\n *\n * @param el - HTML element\n * @param child - Child node\n */\nfunction appendChild(el: HTMLElement, child: Child): void {\n\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString()\n\n /* Handle nodes */\n } else if (child instanceof Node) {\n el.appendChild(child)\n\n /* Handle nested children */\n } else if (Array.isArray(child)) {\n for (const node of child)\n appendChild(el, node)\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * JSX factory\n *\n * @param tag - HTML tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @return HTML element\n */\nexport function h(\n tag: string, attributes: Attributes | null,\n ...children: Array\n): HTMLElement {\n const el = document.createElement(tag)\n\n /* Set attributes, if any */\n if (attributes)\n for (const attr of keys(attributes))\n if (typeof attributes[attr] !== \"boolean\")\n el.setAttribute(attr, attributes[attr])\n else if (attributes[attr])\n el.setAttribute(attr, \"\")\n\n /* Append child nodes */\n for (const child of children)\n appendChild(el, child)\n\n /* Return element */\n return el\n}\n\n/* ----------------------------------------------------------------------------\n * Namespace\n * ------------------------------------------------------------------------- */\n\nexport declare namespace h {\n namespace JSX {\n type Element = HTMLElement\n type IntrinsicElements = JSXInternal.IntrinsicElements\n }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport { map } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Invert boolean value of source observable\n *\n * @param toggle$ - Toggle observable\n *\n * @return Inverted toggle observable\n */\nexport function not(\n toggle$: Observable\n): Observable {\n return toggle$\n .pipe(\n map(active => !active)\n )\n}\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function takeUntil(notifier) {\n return function (source) { return source.lift(new TakeUntilOperator(notifier)); };\n}\nvar TakeUntilOperator = /*@__PURE__*/ (function () {\n function TakeUntilOperator(notifier) {\n this.notifier = notifier;\n }\n TakeUntilOperator.prototype.call = function (subscriber, source) {\n var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n var notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n };\n return TakeUntilOperator;\n}());\nvar TakeUntilSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeUntilSubscriber, _super);\n function TakeUntilSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.seenValue = false;\n return _this;\n }\n TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.seenValue = true;\n this.complete();\n };\n TakeUntilSubscriber.prototype.notifyComplete = function () {\n };\n return TakeUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=takeUntil.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = /*@__PURE__*/ (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(subscribeToResult(_this, observable, observable, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = [value].concat(this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n MonoTypeOperatorFunction,\n Observable,\n OperatorFunction,\n combineLatest,\n of,\n pipe\n} from \"rxjs\"\nimport {\n filter,\n map,\n switchMap,\n takeUntil,\n withLatestFrom\n} from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle switch map with another observable\n *\n * @template T - Source value type\n * @template U - Target value type\n *\n * @param toggle$ - Toggle observable\n * @param project - Projection\n *\n * @return Operator function\n */\nexport function switchMapIf(\n toggle$: Observable, project: (value: T) => Observable\n): OperatorFunction {\n const begin$ = toggle$.pipe(filter(value => value))\n const end$ = toggle$.pipe(filter(value => !value))\n return pipe(\n switchMap(value => combineLatest([of(value), begin$])),\n switchMap(([value, active]) => active\n ? project(value)\n .pipe(\n takeUntil(end$)\n )\n : EMPTY\n )\n )\n}\n\n/**\n * Toggle emission with another observable\n *\n * @template T - Value type\n *\n * @param toggle$ - Toggle observable\n *\n * @return Operator function\n */\nexport function takeIf(\n toggle$: Observable\n): MonoTypeOperatorFunction {\n return pipe(\n withLatestFrom(toggle$),\n filter(([, active]) => active),\n map(([value]) => value)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport { map, shareReplay } from \"rxjs/operators\"\n\nimport { switchMapIf } from \"extensions\"\nimport { Agent, paintHidden } from \"utilities\"\n\nimport { HeaderState, watchViewportOffsetFromTopOf } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Hero state\n */\nexport interface HeroState {\n hidden: boolean /* Whether the hero is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n header$: Observable /* Header state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch hero\n *\n * @param el - Hero element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Hero state\n */\nexport function watchHero(\n el: HTMLElement, agent: Agent, { header$ }: Options\n): Observable {\n\n /* Watch and paint visibility */\n const hidden$ = watchViewportOffsetFromTopOf(el, agent, { header$ })\n .pipe(\n paintHidden(el, 20)\n )\n\n /* Combine into a single hot observable */\n return hidden$\n .pipe(\n map(hidden => ({ hidden }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount hero from source observable\n *\n * @param agent - Agent\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountHero(\n agent: Agent, options: Options\n): OperatorFunction {\n const { media } = agent\n return pipe(\n switchMapIf(media.screen$, el => watchHero(el, agent, options)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, combineLatest, pipe } from \"rxjs\"\nimport {\n distinctUntilChanged,\n map,\n pluck,\n shareReplay,\n switchMap\n} from \"rxjs/operators\"\n\nimport { Agent } from \"utilities\"\n\nimport { HeaderState } from \"../../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Main area state\n */\nexport interface MainState {\n offset: number /* Main area top offset */\n height: number /* Main area visible height */\n active: boolean /* Scrolled past top offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n header$: Observable /* Header state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch main area\n *\n * This function returns an observable that computes the visual parameters of\n * the main area which depends on the viewport height and vertical offset, as\n * well as the height of the header element, if the header is fixed.\n *\n * @param el - Main area element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Main area state observable\n */\nexport function watchMain(\n el: HTMLElement, { viewport }: Agent, { header$ }: Options\n): Observable {\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n pluck(\"height\")\n )\n\n /* Compute the main area's visible height */\n const height$ = combineLatest([\n viewport.offset$,\n viewport.size$,\n adjust$\n ])\n .pipe(\n map(([{ y }, { height }, adjust]) => {\n const top = el.offsetTop\n const bottom = el.offsetHeight + top\n return height\n - Math.max(0, top - y, adjust)\n - Math.max(0, height + y - bottom)\n }),\n distinctUntilChanged()\n )\n\n /* Compute whether the viewport offset is past the main area's top */\n const active$ = combineLatest([viewport.offset$, adjust$])\n .pipe(\n map(([{ y }, adjust]) => y >= el.offsetTop - adjust),\n distinctUntilChanged()\n )\n\n /* Combine into a single hot observable */\n return combineLatest([height$, adjust$, active$])\n .pipe(\n map(([height, adjust, active]) => ({\n offset: el.offsetTop - adjust,\n height,\n active\n }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount main area from source observable\n *\n * @param agent - Agent\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountMain(\n agent: Agent, options: Options\n): OperatorFunction {\n return pipe(\n switchMap(el => watchMain(el, agent, options)),\n shareReplay(1)\n )\n}\n","import _curry1 from './_curry1.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _curry1 from './internal/_curry1.js';\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nexport default type;","import _arrayFromIterator from './_arrayFromIterator.js';\nimport _includesWith from './_includesWith.js';\nimport _functionName from './_functionName.js';\nimport _has from './_has.js';\nimport _objectIs from './_objectIs.js';\nimport keys from '../keys.js';\nimport type from '../type.js';\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n\n // if *a* array contains any element that is not included in *b*\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n break;\n }\n\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","import _curry2 from './internal/_curry2.js';\nimport _equals from './internal/_equals.js';\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nexport default equals;","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { equals } from \"ramda\"\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n combineLatest,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilChanged,\n finalize,\n map,\n observeOn,\n shareReplay,\n tap\n} from \"rxjs/operators\"\n\nimport {\n resetSidebarHeight,\n resetSidebarLock,\n setSidebarHeight,\n setSidebarLock\n} from \"actions\"\nimport { Agent } from \"utilities\"\n\nimport { MainState } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Sidebar state\n */\nexport interface SidebarState {\n height: number /* Sidebar height */\n lock: boolean /* Sidebar lock */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n main$: Observable /* Main area state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch sidebar\n *\n * This function returns an observable that computes the visual parameters of\n * the sidebar which depends on the vertical viewport offset, as well as the\n * height of the main area. When the page is scrolled beyond the header, the\n * sidebar is locked and fills the remaining space.\n *\n * @param el - Sidebar element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Sidebar state observable\n */\nexport function watchSidebar(\n el: HTMLElement, { viewport }: Agent, { main$ }: Options\n): Observable {\n\n /* Adjust for internal main area offset */\n const adjust = parseFloat(\n getComputedStyle(el.parentElement!)\n .getPropertyValue(\"padding-top\")\n )\n\n /* Compute the sidebar's available height */\n const height$ = combineLatest([viewport.offset$, main$])\n .pipe(\n map(([{ y }, { offset, height }]) => {\n return height - adjust + Math.min(adjust, Math.max(0, y - offset))\n })\n )\n\n /* Compute whether the sidebar should be locked */\n const lock$ = combineLatest([viewport.offset$, main$])\n .pipe(\n map(([{ y }, { offset }]) => y >= offset + adjust)\n )\n\n /* Combine into single hot observable */\n return combineLatest([height$, lock$])\n .pipe(\n map(([height, lock]) => ({ height, lock })),\n distinctUntilChanged(equals),\n shareReplay(1)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Paint sidebar from source observable\n *\n * @param el - Sidebar element\n *\n * @return Operator function\n */\nexport function paintSidebar(\n el: HTMLElement\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ height, lock }) => {\n setSidebarHeight(el, height)\n setSidebarLock(el, lock)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetSidebarHeight(el)\n resetSidebarLock(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set sidebar height\n *\n * @param el - Sidebar element\n * @param value - Sidebar height\n */\nexport function setSidebarHeight(\n el: HTMLElement, value: number\n): void {\n el.style.height = `${value}px`\n}\n\n/**\n * Reset sidebar height\n *\n * @param el - Sidebar element\n */\nexport function resetSidebarHeight(\n el: HTMLElement\n): void {\n el.style.height = \"\"\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Set sidebar lock\n *\n * @param el - Sidebar element\n * @param value - Whether the sidebar is locked\n */\nexport function setSidebarLock(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"lock\" : \"\")\n}\n\n/**\n * Reset sidebar lock\n *\n * @param el - Sidebar element\n */\nexport function resetSidebarLock(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport { map, shareReplay } from \"rxjs/operators\"\n\nimport { switchMapIf } from \"extensions\"\nimport { Agent } from \"utilities\"\n\nimport {\n MainState,\n SidebarState,\n paintSidebar,\n watchSidebar\n} from \"../../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Navigation state\n */\nexport interface NavigationState {\n sidebar: SidebarState /* Sidebar state */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n main$: Observable /* Main area state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch navigation\n *\n * @param el - Navigation element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Navigation state observable\n */\nexport function watchNavigation(\n el: HTMLElement, agent: Agent, { main$ }: Options\n): Observable {\n\n /* Watch and paint sidebar */\n const sidebar$ = watchSidebar(el, agent, { main$ })\n .pipe(\n paintSidebar(el)\n )\n\n /* Combine into a single hot observable */\n return sidebar$\n .pipe(\n map(sidebar => ({ sidebar }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount navigation from source observable\n *\n * @param agent - Agent\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountNavigation(\n agent: Agent, options: Options\n): OperatorFunction {\n const { media } = agent\n return pipe(\n switchMapIf(media.screen$, el => watchNavigation(el, agent, options)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, combineLatest, fromEvent } from \"rxjs\"\nimport {\n distinctUntilChanged,\n map,\n shareReplay,\n startWith\n} from \"rxjs/operators\"\n\nimport { watchElementFocus } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query state\n */\nexport interface SearchQueryState {\n value: string /* Query value */\n focus: boolean /* Query focus state */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n prepare(value: string): string /* Preparation function */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search query\n *\n * @param el - Search query element\n * @param options - Options\n *\n * @return Search query state observable\n */\nexport function watchSearchQuery(\n el: HTMLInputElement, { prepare }: Options\n): Observable {\n\n /* Intercept keyboard events */\n const value$ = fromEvent(el, \"keyup\")\n .pipe(\n map(() => prepare(el.value)),\n startWith(\"\"),\n distinctUntilChanged()\n )\n\n /* Intercept focus events */\n const focus$ = watchElementFocus(el)\n\n /* Combine into a single hot observable */\n return combineLatest([value$, focus$])\n .pipe(\n map(([value, focus]) => ({ value, focus })),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { mapTo, shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch element focus\n *\n * @param el - Element\n *\n * @return Element focus observable\n */\nexport function watchElementFocus(\n el: HTMLElement\n): Observable {\n const focus$ = fromEvent(el, \"focus\")\n const blur$ = fromEvent(el, \"blur\")\n\n /* Map events to boolean state */\n return merge(\n focus$.pipe(mapTo(true)),\n blur$.pipe(mapTo(false))\n )\n .pipe(\n startWith(el === document.activeElement),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { mapTo } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search reset\n *\n * @param el - Search reset element\n *\n * @return Search reset observable\n */\nexport function watchSearchReset(\n el: HTMLElement\n): Observable {\n return fromEvent(el, \"click\")\n .pipe(\n mapTo(undefined)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"extensions\"\nimport { ArticleDocument } from \"modules\"\nimport { truncate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n link: \"md-search-result__link\",\n article: \"md-search-result__article md-search-result__article--document\",\n title: \"md-search-result__title\",\n teaser: \"md-search-result__teaser\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render an article document\n *\n * @param article - Article document\n *\n * @return HTML element\n */\nexport function renderArticleDocument(\n { location, title, text }: ArticleDocument\n): HTMLElement {\n return (\n \n
    \n

    {title}

    \n {text.length\n ?

    {truncate(text, 320)}

    \n : undefined\n }\n
    \n
    \n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"extensions\"\nimport { SectionDocument } from \"modules\"\nimport { truncate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n link: \"md-search-result__link\",\n article: \"md-search-result__article\",\n title: \"md-search-result__title\",\n teaser: \"md-search-result__teaser\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a section document\n *\n * @param section - Section document\n *\n * @return HTML element\n */\nexport function renderSectionDocument(\n { location, title, text }: SectionDocument\n): HTMLElement {\n return (\n \n
    \n

    {title}

    \n {text.length\n ?

    {truncate(text, 320)}

    \n : undefined\n }\n
    \n
    \n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"extensions\"\nimport { SearchResult } from \"modules\"\n\nimport { renderArticleDocument } from \"../article\"\nimport { renderSectionDocument } from \"../section\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n item: \"md-search-result__item\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search result\n *\n * @param result - Search result\n *\n * @return HTML element\n */\nexport function renderSearchResult(\n { article, sections }: SearchResult\n): HTMLElement {\n return (\n
  • \n {renderArticleDocument(article)}\n {...sections.map(renderSectionDocument)}\n
  • \n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"extensions\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n facts: \"md-source__facts\",\n fact: \"md-source__fact\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render source facts\n *\n * @param facts - Source facts\n *\n * @return HTML element\n */\nexport function renderSource(\n facts: any // TODO: add typings\n): HTMLElement {\n return (\n
      \n {facts.map((fact: any) =>
    • {fact}
    • )}\n
    \n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { MonoTypeOperatorFunction, Observable, pipe } from \"rxjs\"\nimport { map, withLatestFrom } from \"rxjs/operators\"\n\nimport {\n resetSearchResultMeta,\n setSearchResultMeta\n} from \"actions\"\nimport { SearchResult } from \"modules\"\nimport { getElement } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Paint search result metadata from source observable\n *\n * @param el - Search result metadata element\n * @param options - Options\n *\n * @return Operator function\n */\nexport function paintSearchResultMeta(\n el: HTMLElement, { query$ }: Options\n): MonoTypeOperatorFunction {\n const meta = getElement(\".md-search-result__meta\", el)!\n return pipe(\n withLatestFrom(query$),\n map(([result, query]) => {\n if (query) {\n setSearchResultMeta(meta, result.length)\n } else {\n resetSearchResultMeta(meta)\n }\n return result\n })\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { identity } from \"ramda\"\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport {\n distinctUntilChanged,\n filter,\n map,\n shareReplay,\n switchMap\n} from \"rxjs/operators\"\n\nimport { SearchResult } from \"modules\"\nimport { Agent, watchElementOffset } from \"utilities\"\n\nimport { paintSearchResultList } from \"../list\"\nimport { paintSearchResultMeta } from \"../meta\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n result$: Observable /* Search result observable */\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search result\n *\n * @param el - Search result element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Search result state observable\n */\nexport function watchSearchResult(\n el: HTMLElement, agent: Agent, { result$, query$ }: Options\n): Observable {\n const container = el.parentElement!\n\n /* Compute whether there are more search results elements */\n const render$ = watchElementOffset(container, agent)\n .pipe(\n map(({ y }) => y >= container.scrollHeight - container.offsetHeight - 16),\n distinctUntilChanged(),\n filter(identity)\n )\n\n /* Paint search results */\n return result$\n .pipe(\n paintSearchResultMeta(el, { query$ }),\n paintSearchResultList(el, { render$ })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount search result from source observable\n *\n * @param agent - Agent\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountSearchResult(\n agent: Agent, options: Options\n): OperatorFunction {\n return pipe(\n switchMap(el => watchSearchResult(el, agent, options)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n pipe\n} from \"rxjs\"\nimport {\n finalize,\n mapTo,\n observeOn,\n scan,\n switchMap\n} from \"rxjs/operators\"\n\nimport {\n addToSearchResultList,\n resetSearchResultList\n} from \"actions\"\nimport { SearchResult } from \"modules\"\nimport { renderSearchResult } from \"templates\"\nimport { getElement } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n render$: Observable /* Render trigger observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Paint search result list from source observable\n *\n * @param el - Search result element\n * @param options - Options\n *\n * @return Operator function\n */\nexport function paintSearchResultList(\n el: HTMLElement, { render$ }: Options\n): MonoTypeOperatorFunction {\n const container = el.parentElement!\n const list = getElement(\".md-search-result__list\", el)!\n return pipe(\n switchMap(result => render$\n .pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n scan(index => {\n while (index < result.length) {\n addToSearchResultList(list, renderSearchResult(result[index++]))\n if (container.scrollHeight - container.offsetHeight > 16)\n break\n }\n return index\n }, 0),\n\n /* Re-map to search result */\n mapTo(result),\n\n /* Reset on complete or error */\n finalize(() => {\n resetSearchResultList(list)\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport { map, shareReplay } from \"rxjs/operators\"\n\nimport { switchMapIf } from \"extensions\"\nimport { Agent, paintHidden } from \"utilities\"\n\nimport { HeaderState, watchViewportOffsetFromTopOf } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Tabs state\n */\nexport interface TabsState {\n hidden: boolean /* Whether the tabs are hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n header$: Observable /* Header state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch tabs\n *\n * This function returns an observable that computes the visual parameters of\n * the tabs, currently only denoting whether the tabs are hidden or not.\n *\n * @param el - Tabs element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Tabs state\n */\nexport function watchTabs(\n el: HTMLElement, agent: Agent, { header$ }: Options\n): Observable {\n\n /* Watch and paint visibility */\n const hidden$ = watchViewportOffsetFromTopOf(el, agent, { header$ })\n .pipe(\n paintHidden(el, 8)\n )\n\n /* Combine into a single hot observable */\n return hidden$\n .pipe(\n map(hidden => ({ hidden }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount tabs from source observable\n *\n * @param agent - Agent\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountTabs(\n agent: Agent, options: Options\n): OperatorFunction {\n const { media } = agent\n return pipe(\n switchMapIf(media.screen$, el => watchTabs(el, agent, options)),\n shareReplay(1)\n )\n}\n","import _curry1 from './internal/_curry1.js';\nimport _isString from './internal/_isString.js';\n\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\nvar reverse = /*#__PURE__*/_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\nexport default reverse;","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _indexOf from './_indexOf.js';\n\nexport default function _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}","import equals from '../equals.js';\n\nexport default function _indexOf(list, a, idx) {\n var inf, item;\n // Array.prototype.indexOf doesn't exist below IE9\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n while (idx < list.length) {\n item = list[idx];\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n }\n // non-zero numbers can utilise Set\n return list.indexOf(a, idx);\n\n // all these types can utilise Set\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n }\n }\n // anything else not covered above, defer to R.equals\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}","import _includes from './_includes.js';\n\nvar _Set = /*#__PURE__*/function () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n };\n\n //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n };\n\n //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n return false;\n }\n }\n // these types can all utilise the native Set\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n }\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n return false;\n }\n return true;\n }\n /* falls through */\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n }\n // scan through all previously applied items\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n}\n\n// A simple Set type that honours R.equals semantics\nexport default _Set;","import _curry2 from './internal/_curry2.js';\nimport _Set from './internal/_Set.js';\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared in terms of\n * value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\nvar difference = /*#__PURE__*/_curry2(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _Set();\n\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n idx += 1;\n }\n return out;\n});\nexport default difference;","\n/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Packer message type\n */\nexport const enum PackerMessageType {\n STRING, /* String data */\n BINARY /* Packed data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message containing an unpacked string\n */\nexport interface PackerStringMessage {\n type: PackerMessageType.STRING /* Message type */\n data: string /* Message data */\n}\n\n/**\n * A message containing a packed string\n */\nexport interface PackerBinaryMessage {\n type: PackerMessageType.BINARY /* Message type */\n data: string /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message exchanged with the packer worker\n */\nexport type PackerMessage =\n | PackerStringMessage\n | PackerBinaryMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for packer binary messages\n *\n * @param message - Packer worker message\n *\n * @return Test result\n */\nexport function isPackerBinaryMessage(\n message: PackerMessage\n): message is PackerBinaryMessage {\n return message.type === PackerMessageType.BINARY\n}\n\n/**\n * Type guard for packer string messages\n *\n * @param message - Packer worker message\n *\n * @return Test result\n */\nexport function isPackerStringMessage(\n message: PackerMessage\n): message is PackerStringMessage {\n return message.type === PackerMessageType.STRING\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndexOptions, SearchResult } from \"modules\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search message type\n */\nexport const enum SearchMessageType {\n SETUP, /* Search index setup */\n DUMP, /* Search index dump */\n QUERY, /* Search query */\n RESULT /* Search results */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message containing the data necessary to setup the search index\n */\nexport interface SearchSetupMessage {\n type: SearchMessageType.SETUP /* Message type */\n data: SearchIndexOptions /* Message data */\n}\n\n/**\n * A message containing the a dump of the search index\n */\nexport interface SearchDumpMessage {\n type: SearchMessageType.DUMP /* Message type */\n data: string /* Message data */\n}\n\n/**\n * A message containing a search query\n */\nexport interface SearchQueryMessage {\n type: SearchMessageType.QUERY /* Message type */\n data: string /* Message data */\n}\n\n/**\n * A message containing results for a search query\n */\nexport interface SearchResultMessage {\n type: SearchMessageType.RESULT /* Message type */\n data: SearchResult[] /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message exchanged with the search worker\n */\nexport type SearchMessage =\n | SearchSetupMessage\n | SearchDumpMessage\n | SearchQueryMessage\n | SearchResultMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchSetupMessage(\n message: SearchMessage\n): message is SearchSetupMessage {\n return message.type === SearchMessageType.SETUP\n}\n\n/**\n * Type guard for search dump messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchDumpMessage(\n message: SearchMessage\n): message is SearchDumpMessage {\n return message.type === SearchMessageType.DUMP\n}\n\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchQueryMessage(\n message: SearchMessage\n): message is SearchQueryMessage {\n return message.type === SearchMessageType.QUERY\n}\n\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchResultMessage(\n message: SearchMessage\n): message is SearchResultMessage {\n return message.type === SearchMessageType.RESULT\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, combineLatest, pipe } from \"rxjs\"\nimport { map, shareReplay } from \"rxjs/operators\"\n\nimport { switchMapIf } from \"extensions\"\nimport { Agent, getElements } from \"utilities\"\n\nimport { HeaderState } from \"../../header\"\nimport {\n MainState,\n SidebarState,\n paintSidebar,\n watchSidebar\n} from \"../../main\"\nimport {\n AnchorList,\n paintAnchorList,\n watchAnchorList\n} from \"../anchor\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Table of contents state\n */\nexport interface TableOfContentsState {\n sidebar: SidebarState /* Sidebar state */\n anchors: AnchorList /* Anchor list */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n header$: Observable /* Header state observable */\n main$: Observable /* Main area state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch table of contents\n *\n * @param el - Table of contents element\n * @param agent - Agent\n * @param options - Options\n *\n * @return Table of contents state observable\n */\nexport function watchTableOfContents(\n el: HTMLElement, agent: Agent, { header$, main$ }: Options\n): Observable {\n\n /* Watch and paint sidebar */\n const sidebar$ = watchSidebar(el, agent, { main$ })\n .pipe(\n paintSidebar(el)\n )\n\n /* Watch and paint anchor list (scroll spy) */\n const els = getElements(\".md-nav__link\", el)\n const anchors$ = watchAnchorList(els, agent, { header$ })\n .pipe(\n paintAnchorList(els)\n )\n\n /* Combine into a single hot observable */\n return combineLatest([sidebar$, anchors$])\n .pipe(\n map(([sidebar, anchors]) => ({ sidebar, anchors }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount table of contents from source observable\n *\n * @param agent - Agent\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountTableOfContents(\n agent: Agent, options: Options\n): OperatorFunction {\n const { media } = agent\n return pipe(\n switchMapIf(media.tablet$, el => watchTableOfContents(el, agent, options)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { difference, reverse } from \"ramda\"\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n combineLatest,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilChanged,\n finalize,\n map,\n observeOn,\n scan,\n shareReplay,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport {\n resetAnchorActive,\n resetAnchorBlur,\n setAnchorActive,\n setAnchorBlur\n} from \"actions\"\nimport { Agent, getElement } from \"utilities\"\n\nimport { HeaderState } from \"../../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Anchor list\n */\nexport interface AnchorList {\n prev: HTMLAnchorElement[][] /* Anchors (previous) */\n next: HTMLAnchorElement[][] /* Anchors (next) */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n header$: Observable /* Header state observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch anchor list\n *\n * This is effectively a scroll-spy implementation which will account for the\n * fixed header and automatically re-calculate anchor offsets when the viewport\n * is resized. The returned observable will only emit if the anchor list needs\n * to be repainted.\n *\n * This implementation tracks an anchor element's entire path starting from its\n * level up to the top-most anchor element, e.g. `[h3, h2, h1]`. Although the\n * Material theme currently doesn't make use of this information, it enables\n * the styling of the entire hierarchy through customization.\n *\n * Note that the current anchor is the last item of the `prev` anchor list.\n *\n * @param els - Anchor elements\n * @param agent - Agent\n * @param options - Options\n *\n * @return Anchor list observable\n */\nexport function watchAnchorList(\n els: HTMLAnchorElement[], { viewport }: Agent, { header$ }: Options\n): Observable {\n const table = new Map()\n for (const el of els) {\n const id = decodeURIComponent(el.hash.substring(1))\n const target = getElement(`[id=\"${id}\"]`)\n if (typeof target !== \"undefined\")\n table.set(el, target)\n }\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n map(header => 18 + header.height)\n )\n\n /* Compute partition of previous and next anchors */\n const partition$ = viewport.size$\n .pipe(\n\n /* Build index to map anchor paths to vertical offsets */\n map(() => {\n let path: HTMLAnchorElement[] = []\n return [...table].reduce((index, [anchor, target]) => {\n while (path.length) {\n const last = table.get(path[path.length - 1])!\n if (last.tagName >= target.tagName) {\n path.pop()\n } else {\n break\n }\n }\n return index.set(\n reverse(path = [...path, anchor]),\n target.offsetTop\n )\n }, new Map())\n }),\n\n /* Re-compute partition when viewport offset changes */\n switchMap(index => combineLatest(viewport.offset$, adjust$)\n .pipe(\n scan(([prev, next], [{ y }, adjust]) => {\n\n /* Look forward */\n while (next.length) {\n const [, offset] = next[0]\n if (offset - adjust < y) {\n prev = [...prev, next.shift()!]\n } else {\n break\n }\n }\n\n /* Look backward */\n while (prev.length) {\n const [, offset] = prev[prev.length - 1]\n if (offset - adjust >= y) {\n next = [prev.pop()!, ...next]\n } else {\n break\n }\n }\n\n /* Return partition */\n return [prev, next]\n }, [[], [...index]]),\n distinctUntilChanged((a, b) => {\n return a[0] === b[0]\n && a[1] === b[1]\n })\n )\n )\n )\n\n /* Compute anchor list migrations */\n const migration$ = partition$\n .pipe(\n map(([prev, next]) => ({\n prev: prev.map(([path]) => path),\n next: next.map(([path]) => path)\n })),\n\n /* Extract anchor list migrations */\n scan((a, b) => {\n const begin = Math.max(0, Math.min(b.prev.length, a.prev.length) - 1)\n const end = Math.max(b.prev.length, a.prev.length)\n return {\n prev: b.prev.slice(begin, end + 1),\n next: difference(b.next, a.next)\n }\n }, { prev: [], next: [] })\n )\n\n /* Return anchor list migrations as hot observable */\n return migration$\n .pipe(\n shareReplay(1)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Paint anchor list from source observable\n *\n * @param els - Anchor elements\n *\n * @return Operator function\n */\nexport function paintAnchorList(\n els: HTMLAnchorElement[]\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ prev, next }) => {\n\n /* Look forward */\n for (const [el] of next) {\n resetAnchorActive(el)\n resetAnchorBlur(el)\n }\n\n /* Look backward */\n for (const [index, [el]] of prev.entries()) {\n setAnchorActive(el, index === prev.length - 1)\n setAnchorBlur(el, true)\n }\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n for (const el of els) {\n resetAnchorActive(el)\n resetAnchorBlur(el)\n }\n })\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"extensions\"\nimport { translate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n container: \"md-clipboard md-icon\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render clipboard\n *\n * @param id - Unique identifier\n *\n * @return HTML element\n */\nexport function renderClipboard(\n id: string\n): HTMLElement {\n return (\n \n )\n}\n","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","import _isArray from './_isArray.js';\nimport _isTransformer from './_isTransformer.js';\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\nexport default function _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n if (!_isArray(obj)) {\n var idx = 0;\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n idx += 1;\n }\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n return fn.apply(this, arguments);\n };\n}","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XFindLast = /*#__PURE__*/function () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFindLast.prototype['@@transducer/init'] = _xfBase.init;\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n return result;\n };\n\n return XFindLast;\n}();\n\nvar _xfindLast = /*#__PURE__*/_curry2(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\n});\nexport default _xfindLast;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xfindLast from './internal/_xfindLast.js';\n\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\nvar findLast = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindLast, function findLast(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n idx -= 1;\n }\n}));\nexport default findLast;","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) {\n startBufferEvery = null;\n }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = /*@__PURE__*/ (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=bufferCount.js.map\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { findLast } from \"ramda\"\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n fromEvent,\n merge,\n pipe\n} from \"rxjs\"\nimport {\n bufferCount,\n delay,\n map,\n observeOn,\n shareReplay,\n tap\n} from \"rxjs/operators\"\n\nimport {\n resetOverflowScrolling,\n setOverflowScrolling\n} from \"actions\"\nimport { getElement, getElements } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Active layer\n */\nexport interface ActiveLayer {\n prev?: HTMLElement /* Anchors (previous) */\n next: HTMLElement /* Anchors (next) */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch active layer\n *\n * On iOS we want to add `-webkit-overflow-scrolling: touch` for the menus\n * contained in the drawer, but as the navigational layers are nested, we can\n * only add it to the active layer because otherwise weird stuff will happen.\n * This implementation keeps track of the previous and currently active layer.\n *\n * @param el - Navigation element (top-level)\n *\n * @return Active layer observable\n */\nexport function watchActiveLayer(\n el: HTMLElement\n): Observable {\n const table = new Map()\n for (const nav of getElements(\"nav\", el)) {\n const label = getElement(\"label\", nav)\n if (typeof label !== \"undefined\") {\n const input = getElement(`#${label.htmlFor}`)!\n table.set(input, nav)\n }\n }\n\n /* Determine active layer */\n const active$ = merge(\n ...[...table.keys()].map(input => fromEvent(input, \"change\"))\n )\n .pipe(\n map(() => getElement(\".md-nav__list\", table.get(\n findLast(({ checked }) => checked, [...table.keys()])!\n ))!)\n )\n\n /* Return previous and next layer */\n return active$\n .pipe(\n // TODO: this doesnt emit correctly\n bufferCount(2, 1),\n map(([prev, next]) => ({ prev, next })),\n shareReplay(1)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Paint active layer from source observable\n *\n * @param els - Anchor elements\n *\n * @return Operator function\n */\nexport function paintActiveLayer(): MonoTypeOperatorFunction {\n return pipe(\n\n /* Unset overflow scrolling on previous layer */\n observeOn(animationFrameScheduler),\n tap(({ prev }) => {\n if (prev) resetOverflowScrolling(prev)\n }),\n\n /* Wait until transition has finished */\n delay(250),\n\n /* Set overflow scrolling on next layer */\n observeOn(animationFrameScheduler),\n tap(({ next }) => {\n setOverflowScrolling(next)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n// TODO: remove this after we finished refactoring\n// tslint:disable\n\nimport * as Clipboard from \"clipboard\"\nimport { identity, values } from \"ramda\"\nimport {\n EMPTY,\n Observable,\n Subject,\n forkJoin,\n merge,\n of,\n fromEvent,\n interval,\n NEVER\n} from \"rxjs\"\nimport { ajax } from \"rxjs/ajax\"\nimport {\n delay,\n filter,\n map,\n pluck,\n switchMap,\n switchMapTo,\n take,\n tap,\n withLatestFrom,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n} from \"rxjs/operators\"\n\nimport {\n Component,\n paintHeaderShadow,\n mountHero,\n mountMain,\n mountNavigation,\n mountSearchResult,\n mountTableOfContents,\n mountTabs,\n switchComponent,\n watchComponentMap,\n watchHeader,\n watchSearchQuery,\n watchSearchReset\n} from \"./components\"\nimport { SearchIndexOptions } from \"./modules\"\nimport {\n getElement,\n setupAgent,\n watchToggle,\n watchWorker,\n setToggle,\n getElements,\n watchMedia,\n translate,\n watchElementFocus\n} from \"./utilities\"\nimport {\n PackerMessage,\n PackerMessageType,\n SearchMessage,\n SearchMessageType,\n SearchSetupMessage,\n isSearchDumpMessage,\n isSearchResultMessage\n} from \"./workers\"\nimport { renderSource } from \"templates\"\nimport { switchMapIf, not, takeIf } from \"extensions\"\nimport { renderClipboard } from \"templates/clipboard\"\nimport { watchActiveLayer, paintActiveLayer } from \"components/navigation/layer\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Configuration\n */\nexport interface Config {\n base: string /* Base URL */\n worker: {\n search: string /* Search worker URL */\n packer: string /* Packer worker URL */\n }\n}\n\n/* ----------------------------------------------------------------------------\n * TODO: where do we put this stuff?\n * ------------------------------------------------------------------------- */\n\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\nconst names: Component[] = [\n \"container\", /* Container */\n \"header\", /* Header */\n \"header-title\", /* Header title */\n \"hero\", /* Hero */\n \"main\", /* Main area */\n \"navigation\", /* Navigation */\n \"search\", /* Search */\n \"search-query\", /* Search input */\n \"search-reset\", /* Search reset */\n \"search-result\", /* Search results */\n \"tabs\", /* Tabs */\n \"toc\" /* Table of contents */\n]\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Ensure that the given value is a valid configuration\n *\n * We could use `jsonschema` or any other schema validation framework, but that\n * would just add more bloat to the bundle, so we'll keep it plain and simple.\n *\n * @param config - Configuration\n *\n * @return Test result\n */\nfunction isConfig(config: any): config is Config {\n return typeof config === \"object\"\n && typeof config.base === \"string\"\n && typeof config.worker === \"object\"\n && typeof config.worker.search === \"string\"\n && typeof config.worker.packer === \"string\"\n}\n\n/**\n *\n * Rogue control characters must be filtered before handing the query to the\n * search index, as lunr will throw otherwise.\n */\nfunction prepare(value: string): string {\n const newvalue = value\n .replace(/(?:^|\\s+)[*+-:^~]+(?=\\s+|$)/g, \"\")\n .trim()\n\n return newvalue ? newvalue.replace(/\\s+|$/g, \"* \") : \"\"\n}\n\nfunction setupWorkers(config: Config) {\n // Remove trailing URL, or search might not work on the 404 page.\n config.base = config.base.replace(/\\/$/, \"\")\n\n const worker = new Worker(config.worker.search)\n const packer = new Worker(config.worker.packer)\n\n const packerMessage$ = new Subject()\n const packer$ = watchWorker(packer, { send$: packerMessage$ })\n\n // send a message, then switchMapTo worker!\n\n packer$.subscribe(message => {\n // console.log(\"PACKER.MSG\", message.data.length)\n // is always packed!\n if (message.type === PackerMessageType.BINARY && message.data[0] !== \"{\")\n localStorage.setItem(\"index\", message.data)\n })\n\n // storing = experimental feature\n\n const searchMessage$ = new Subject()\n\n const search$ = watchWorker(worker, { send$: searchMessage$ })\n\n /* Link search to packer */\n search$\n .pipe(\n filter(isSearchDumpMessage),\n map(message => ({\n type: PackerMessageType.STRING,\n data: message.data\n })),\n tap(message => packerMessage$.next(message)) // send message and wait!\n // switchMapTo(packer$)\n )\n .subscribe()\n\n const data$ = ajax({\n url: `${config.base}/search/search_index.json`,\n responseType: \"json\",\n withCredentials: true\n })\n .pipe(\n pluck(\"response\")\n // take(1)\n )\n\n const fromLocal = localStorage.getItem(\"index\")\n\n ;\n (fromLocal ? of({\n type: PackerMessageType.BINARY,\n data: localStorage.getItem(\"index\")!\n }) : EMPTY)\n .subscribe(x => {\n // console.log(\"send message to packer\")\n packerMessage$.next(x)\n })\n\n const index$ = fromLocal ? packer$.pipe(pluck(\"data\"), take(1)) : of(undefined) // of(localStorage.getItem(\"index\"))\n\n // index$.subscribe(xx => console.log(\"INDEX\", xx))\n\n forkJoin([data$, index$])\n .pipe(\n map(([data, index]) => ({\n type: SearchMessageType.SETUP,\n data: { ...data, index }\n }))\n )\n .subscribe(message => {\n searchMessage$.next(message) // TODO: this shall not complete\n })\n\n return [search$, searchMessage$] as const\n}\n\n/**\n * Yes, this is a super hacky implementation. Needs clean up.\n */\nfunction repository() {\n const el = getElement(\".md-source[href]\") // TODO: dont use classes\n console.log(el)\n if (!el)\n return EMPTY\n\n const data = sessionStorage.getItem(\"repository\")\n if (data) {\n const x = JSON.parse(data)\n return of(x)\n }\n\n // TODO: do correct rounding, see GitHub\n function format(value: number) {\n return value > 999\n ? `${(value / 1000).toFixed(1)}k`\n : `${(value)}`\n }\n\n // github repository...\n const [, user, repo] = el.href.match(/^.+github\\.com\\/([^\\/]+)\\/?([^\\/]+)?.*$/i)\n\n // Show repo stats\n if (user && repo) {\n return ajax({\n url: `https://api.github.com/repos/${user}/${repo}`,\n responseType: \"json\"\n })\n .pipe(\n map(({ status, response }) => {\n if (status === 200) {\n const { stargazers_count, forks_count } = response\n return [\n `${format(stargazers_count)} Stars`,\n `${format(forks_count)} Forks`\n ]\n }\n return []\n }),\n tap(data => sessionStorage.setItem(\"repository\", JSON.stringify(data)))\n )\n\n // Show user or organization stats\n } else if (user) {\n return ajax({\n url: `https://api.github.com/users/${user}`,\n responseType: \"json\"\n })\n .pipe(\n map(({ status, response }) => {\n if (status === 200) {\n const { public_repos } = response\n return [\n `${format(public_repos)} Repositories`\n ]\n }\n return []\n }),\n tap(data => sessionStorage.setItem(\"repository\", JSON.stringify(data)))\n )\n }\n return of([])\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Initialize Material for MkDocs\n *\n * @param config - Configuration\n */\nexport function initialize(config: unknown) {\n if (!isConfig(config))\n throw new SyntaxError(`Invalid configuration: ${JSON.stringify(config)}`)\n\n // pass config here!?\n const agent = setupAgent() // TODO: add a config parameter here to configure media queries\n\n const [\n searchWorkerRecv$,\n searchMessage$\n ] = setupWorkers(config)\n\n // TODO: WIP repo rendering\n repository().subscribe(facts => {\n if (facts.length) {\n const sources = getElements(\".md-source__repository\")\n sources.forEach(repo => {\n repo.dataset.mdState = \"done\"\n repo.appendChild(\n renderSource(facts)\n )\n })\n }\n })\n\n /* ----------------------------------------------------------------------- */\n\n /* Create component map observable */\n const components$ = watchComponentMap(names, { document$: agent.document.load$ })\n const component = (name: Component): Observable => {\n return components$\n .pipe(\n switchComponent(name)\n )\n }\n\n /* Create header observable */\n const header$ = component(\"header\") // TODO:!\n .pipe(\n switchMap(watchHeader)\n )\n\n /* Create header shadow toggle */\n component(\"header\")\n .pipe(\n switchMap(el => main$\n .pipe(\n paintHeaderShadow(el) // technically, this could be done in paintMain\n )\n )\n )\n .subscribe()\n\n // ----------------------------------------------------------------------------\n\n // watchSearchResult // emit, if at bottom...\n // receive results as a second observable!? filter stuff, paint\n\n const result$ = searchWorkerRecv$ // move worker initialization into mountSearch ?\n .pipe(\n // tap(m => console.log(\"message from worker\", m)),\n filter(isSearchResultMessage),\n pluck(\"data\"),\n // Prefix URLs with base URL\n tap(result => result.forEach(item => {\n item.article.location = `${config.base}/${item.article.location}`\n item.sections.forEach(section => {\n section.location = `${config.base}/${section.location}`\n })\n }))\n )\n\n // handleSearchResult <-- operator\n\n const query$ = component(\"search-query\")\n .pipe(\n switchMap(el => watchSearchQuery(el, { prepare }))\n )\n\n query$\n .pipe(\n map(query => ({ // put this into some function...\n type: SearchMessageType.QUERY,\n data: query.value\n })), // TODO. ugly...\n distinctUntilKeyChanged(\"data\")\n // distinctUntilKeyChanged(\"data\")\n )\n .subscribe(searchMessage$)\n\n // create the message subject internally... and link it to the worker...?\n // watchSearchWorker(worker, agent, { query$ }) // message internally...\n\n query$\n .pipe(\n tap(query => {\n if (query.focus)\n setToggle(search, true)\n })\n )\n .subscribe()\n\n /* ----------------------------------------------------------------------- */\n\n const main$ = component(\"main\")\n .pipe(\n mountMain(agent, { header$ })\n )\n\n const navigation$ = component(\"navigation\")\n .pipe(\n mountNavigation(agent, { main$ })\n )\n\n const toc$ = component(\"toc\")\n .pipe(\n mountTableOfContents(agent, { header$, main$ })\n )\n\n // TODO: naming?\n const resultComponent$ = component(\"search-result\")\n .pipe(\n mountSearchResult(agent, { result$, query$: query$.pipe(\n distinctUntilKeyChanged(\"value\"),\n pluck(\"value\")\n ) })\n ) // temporary fix\n\n const tabs$ = component(\"tabs\")\n .pipe(\n mountTabs(agent, { header$ })\n )\n\n const hero$ = component(\"hero\")\n .pipe(\n mountHero(agent, { header$ })\n )\n\n\n /* ----------------------------------------------------------------------- */\n\n const drawer = getElement(\"[data-md-toggle=drawer]\")!\n const search = getElement(\"[data-md-toggle=search]\")!\n\n const searchActive$ = watchToggle(search)\n .pipe(\n delay(400)\n )\n\n const reset$ = component(\"search-reset\")\n .pipe(\n switchMap(watchSearchReset)\n )\n\n const key$ = fromEvent(window, \"keydown\").pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey))\n )\n\n // filter arrow keys if search is active!\n searchActive$.subscribe(console.log)\n\n // shortcodes\n key$\n .pipe(\n takeIf(not(searchActive$))\n )\n .subscribe(ev => {\n if (\n document.activeElement && (\n [\"TEXTAREA\", \"SELECT\", \"INPUT\"].includes(\n document.activeElement.tagName\n ) ||\n document.activeElement instanceof HTMLElement &&\n document.activeElement.isContentEditable\n )\n ) {\n // do nothing...\n } else {\n if (ev.keyCode === 70 || ev.keyCode === 83) {\n setToggle(search, true)\n }\n }\n })\n // check which element is focused...\n // note that all links have tabindex=-1\n key$\n .pipe(\n takeIf(searchActive$),\n\n /* Abort if meta key (macOS) or ctrl key (Windows) is pressed */\n tap(ev => {\n if (ev.key === \"Enter\") {\n if (document.activeElement === getElement(\"[data-md-component=search-query]\")) {\n ev.preventDefault()\n // intercept hash change after search closed\n } else {\n setToggle(search, false)\n }\n }\n\n if (ev.key === \"ArrowUp\" || ev.key === \"ArrowDown\") {\n const active = getElements(\"[data-md-component=search-query], [data-md-component=search-result] [href]\")\n const i = Math.max(0, active.findIndex(el => el === document.activeElement))\n const x = Math.max(0, (i + active.length + (ev.keyCode === 38 ? -1 : +1)) % active.length)\n active[x].focus()\n\n /* Prevent scrolling of page */\n ev.preventDefault()\n ev.stopPropagation()\n\n } else if (ev.key === \"Escape\" || ev.key === \"Tab\") {\n setToggle(search, false)\n getElement(\"[data-md-component=search-query]\")!.blur()\n\n } else {\n if (search.checked && document.activeElement !== getElement(\"[data-md-component=search-query]\")) {\n getElement(\"[data-md-component=search-query]\")!.focus()\n }\n }\n })\n )\n .subscribe()\n\n // TODO: close search on hashchange\n // anchor jump -> always close drawer + search\n\n // focus search on reset, on toggle and on keypress if open\n merge(searchActive$.pipe(filter(identity)), reset$)\n .pipe(\n switchMapTo(component(\"search-query\")),\n tap(el => el.focus()) // TODO: only if element isnt focused! setFocus? setToggle?\n )\n .subscribe()\n\n /* ----------------------------------------------------------------------- */\n\n /* Open details before printing */\n merge(\n watchMedia(\"print\").pipe(filter(identity)), // Webkit\n fromEvent(window, \"beforeprint\") // IE, FF\n )\n .subscribe(() => {\n const details = getElements(\"details\")\n Array.prototype.forEach.call(details, detail => {\n detail.setAttribute(\"open\", \"\")\n })\n })\n\n // Close drawer and search on hash change\n agent.location.hash$.subscribe(() => {\n setToggle(drawer, false)\n setToggle(search, false) // we probably need to delay the anchor jump for search\n })\n\n /* ----------------------------------------------------------------------- */\n\n /* Clipboard integration */\n if (Clipboard.isSupported()) {\n const blocks = getElements(\".codehilite > pre, .highlight> pre, pre > code\")\n Array.prototype.forEach.call(blocks, (block, index) => {\n const id = `__code_${index}`\n\n /* Create button with message container */\n const button = renderClipboard(id)\n\n /* Link to block and insert button */\n const parent = block.parentNode\n parent.id = id\n parent.insertBefore(button, block)\n })\n\n /* Initialize Clipboard listener */\n const copy = new Clipboard(\".md-clipboard\")\n\n /* Success handler */\n copy.on(\"success\", action => {\n alert(\"Copied to clipboard\") // TODO: integrate snackbar\n // TODO: add a snackbar/notification\n\n })\n }\n\n /* ----------------------------------------------------------------------- */\n\n const navigationlayer$ = component(\"navigation\")\n .pipe(\n switchMapIf(not(agent.media.tablet$), el => watchActiveLayer(el)\n .pipe(\n paintActiveLayer()\n )\n )\n )\n .subscribe(console.log)\n\n /* ----------------------------------------------------------------------- */\n\n const state = {\n search: {\n query$,\n result$: resultComponent$,\n reset$,\n },\n main$,\n navigation$,\n toc$,\n tabs$,\n hero$\n }\n\n const { search: temp, ...rest } = state\n merge(...values(rest), ...values(temp))\n .subscribe() // potential memleak <-- use takeUntil\n\n return {\n agent,\n state\n }\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, Subject } from \"rxjs\"\n\nimport {\n ViewportOffset,\n ViewportSize,\n watchDocument,\n watchLocation,\n watchLocationHash,\n watchMedia,\n watchViewportOffset,\n watchViewportSize\n} from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Agent document\n */\nexport interface AgentDocument {\n load$: Observable /* Document observable */\n}\n\n/**\n * Agent location\n */\nexport interface AgentLocation {\n href$: Subject /* Location subject */\n hash$: Observable /* Location hash observable */\n}\n\n/**\n * Agent media\n */\nexport interface AgentMedia {\n tablet$: Observable /* Media observable for tablet */\n screen$: Observable /* Media observable for screen */\n}\n\n/**\n * Agent viewport\n */\nexport interface AgentViewport {\n offset$: Observable /* Viewport offset observable */\n size$: Observable /* Viewport size observable */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Agent\n */\nexport interface Agent {\n document: AgentDocument /* Document observables */\n location: AgentLocation /* Location observables */\n media: AgentMedia /* Media observables */\n viewport: AgentViewport /* Viewport observables */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create the agent\n *\n * This function returns a data structure that contains all observables that\n * are related to the browser and/or environment.\n *\n * @return Agent\n */\nexport function setupAgent(): Agent {\n return {\n document: {\n load$: watchDocument()\n },\n location: {\n href$: watchLocation(),\n hash$: watchLocationHash()\n },\n media: {\n tablet$: watchMedia(\"(min-width: 960px)\"),\n screen$: watchMedia(\"(min-width: 1220px)\")\n },\n viewport: {\n offset$: watchViewportOffset(),\n size$: watchViewportSize()\n }\n }\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { keys } from \"ramda\"\nimport { NEVER, Observable, OperatorFunction, of, pipe } from \"rxjs\"\nimport { map, scan, shareReplay, switchMap } from \"rxjs/operators\"\n\nimport { getElement } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component names\n */\nexport type Component =\n | \"container\" /* Container */\n | \"header\" /* Header */\n | \"header-title\" /* Header title */\n | \"hero\" /* Hero */\n | \"main\" /* Main area */\n | \"navigation\" /* Navigation */\n | \"search\" /* Search */\n | \"search-query\" /* Search input */\n | \"search-reset\" /* Search reset */\n | \"search-result\" /* Search results */\n | \"tabs\" /* Tabs */\n | \"toc\" /* Table of contents */\n\n/**\n * Component map\n */\nexport type ComponentMap = {\n [P in Component]?: HTMLElement\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Options\n */\ninterface Options {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch component mapping\n *\n * This function returns an observable that will maintain bindings to the given\n * components in-between document switches and update the document in-place.\n *\n * @param names - Component names\n * @param options - Options\n *\n * @return Component mapping observable\n */\nexport function watchComponentMap(\n names: Component[], { document$ }: Options\n): Observable {\n const components$ = document$\n .pipe(\n\n /* Build component map */\n map(document => names.reduce((components, name) => {\n const el = getElement(`[data-md-component=${name}]`, document)\n return {\n ...components,\n ...typeof el !== \"undefined\" ? { [name]: el } : {}\n }\n }, {})),\n\n /* Re-compute component map on document switch */\n scan((prev, next) => {\n for (const name of keys(prev)) {\n switch (name) {\n\n /* Top-level components: update */\n case \"header-title\":\n case \"container\":\n if (name in prev && typeof prev[name] !== \"undefined\") {\n prev[name]!.replaceWith(next[name]!)\n prev[name] = next[name]\n }\n break\n\n /* All other components: rebind */\n default:\n prev[name] = getElement(`[data-md-component=${name}]`)\n }\n }\n return prev\n })\n )\n\n /* Return component map as hot observable */\n return components$\n .pipe(\n shareReplay(1)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Switch to component\n *\n * @template T - Element type\n *\n * @param name - Component name\n *\n * @return Operator function\n */\nexport function switchComponent(\n name: Component\n): OperatorFunction {\n return pipe(\n switchMap(components => {\n return typeof components[name] !== \"undefined\"\n ? of(components[name] as T)\n : NEVER\n })\n )\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n animationFrameScheduler,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n finalize,\n observeOn,\n tap\n} from \"rxjs/operators\"\n\nimport { resetHeaderShadow, setHeaderShadow } from \"actions\"\n\nimport { MainState } from \"../../main\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Paint header shadow from source observable\n *\n * @param el - Header element\n *\n * @return Operator function\n */\nexport function paintHeaderShadow(\n el: HTMLElement\n): MonoTypeOperatorFunction {\n return pipe(\n distinctUntilKeyChanged(\"active\"),\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ active }) => {\n setHeaderShadow(el, active)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetHeaderShadow(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set header shadow\n *\n * @param el - Header element\n * @param value - Whether the shadow is shown\n */\nexport function setHeaderShadow(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"shadow\" : \"\")\n}\n\n/**\n * Reset header shadow\n *\n * @param el - Header element\n */\nexport function resetHeaderShadow(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2019 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set overflow scrolling\n *\n * @param el - Scrollable element\n */\nexport function setOverflowScrolling(\n el: HTMLElement\n): void {\n // el.style.backgroundColor = \"yellow\" // TODO: debugging\n el.style.webkitOverflowScrolling = \"touch\"\n}\n\n/**\n * Reset overflow scrolling\n *\n * @param el - Scrollable element\n */\nexport function resetOverflowScrolling(\n el: HTMLElement\n): void {\n // el.style.backgroundColor = \"\" // TODO: debugging\n el.style.webkitOverflowScrolling = \"\"\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/material/assets/stylesheets/app.css b/material/assets/stylesheets/app.css index 78533d4d1..d40d82f7f 100644 --- a/material/assets/stylesheets/app.css +++ b/material/assets/stylesheets/app.css @@ -1549,49 +1549,8 @@ hr { padding: 0 0.6rem; background-color: rgba(255, 235, 59, 0.5); } -.md-typeset .codehilite, .md-typeset .highlight { - position: relative; - margin: 1em 0; - padding: 0; - border-radius: 0.1rem; - background-color: rgba(236, 236, 236, 0.5); - color: #37474F; - line-height: 1.4; - -webkit-overflow-scrolling: touch; } - .md-typeset .codehilite pre, .md-typeset .highlight pre, - .md-typeset .codehilite code, - .md-typeset .highlight code { - display: block; - margin: 0; - padding: 0.525rem 0.6rem; - background-color: transparent; - overflow: auto; } - .md-typeset .codehilite pre::-webkit-scrollbar, .md-typeset .highlight pre::-webkit-scrollbar, - .md-typeset .codehilite code::-webkit-scrollbar, - .md-typeset .highlight code::-webkit-scrollbar { - width: 0.2rem; - height: 0.2rem; } - .md-typeset .codehilite pre::-webkit-scrollbar-thumb, .md-typeset .highlight pre::-webkit-scrollbar-thumb, - .md-typeset .codehilite code::-webkit-scrollbar-thumb, - .md-typeset .highlight code::-webkit-scrollbar-thumb { - background-color: rgba(0, 0, 0, 0.26); } - .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, .md-typeset .highlight pre::-webkit-scrollbar-thumb:hover, - .md-typeset .codehilite code::-webkit-scrollbar-thumb:hover, - .md-typeset .highlight code::-webkit-scrollbar-thumb:hover { - background-color: #536dfe; } - -.md-typeset pre.codehilite, .md-typeset pre.highlight { - overflow: visible; } - .md-typeset pre.codehilite code, .md-typeset pre.highlight code { - display: block; - padding: 0.525rem 0.6rem; - overflow: auto; } - .md-typeset .codehilitetable, .md-typeset .highlighttable { display: block; - margin: 1em 0; - border-radius: 0.2em; - font-size: 0.8rem; overflow: hidden; } .md-typeset .codehilitetable tbody, .md-typeset .highlighttable tbody, .md-typeset .codehilitetable td, @@ -1601,7 +1560,7 @@ hr { .md-typeset .codehilitetable tr, .md-typeset .highlighttable tr { display: -webkit-box; display: flex; } - .md-typeset .codehilitetable .codehilite, .md-typeset .highlighttable .codehilite, .md-typeset .codehilitetable .highlight, .md-typeset .highlighttable .highlight, + .md-typeset .codehilitetable pre, .md-typeset .highlighttable pre, .md-typeset .codehilitetable .linenodiv, .md-typeset .highlighttable .linenodiv { margin: 0; @@ -1618,8 +1577,6 @@ hr { -ms-user-select: none; user-select: none; } .md-typeset .codehilitetable .linenos pre, .md-typeset .highlighttable .linenos pre { - margin: 0; - padding: 0; background-color: transparent; color: inherit; text-align: right; } @@ -1629,7 +1586,8 @@ hr { overflow: hidden; } .md-typeset > .codehilitetable, .md-typeset > .highlighttable { - box-shadow: none; } + margin: 1em 0; + border-radius: 0.2em; } .md-typeset [id^="fnref:"] { display: inline-block; } @@ -1952,7 +1910,7 @@ hr { order: 99; width: 100%; background-color: white; } - .md-typeset .superfences-content > * { + .md-typeset .superfences-content pre { margin: 0; border-radius: 0; } @@ -2037,11 +1995,11 @@ hr { display: none; } } @media only screen and (max-width: 44.9375em) { - .md-typeset pre { - margin: 1em -0.8rem; - border-radius: 0; } - .md-typeset pre > code { - padding: 0.525rem 0.8rem; } + .md-typeset > pre { + margin: 1em -0.8rem; + border-radius: 0; } + .md-typeset > pre > code { + padding: 0.525rem 0.8rem; } .md-footer-nav__link--prev .md-footer-nav__title { display: none; } .md-search-result__teaser { @@ -2051,23 +2009,14 @@ hr { margin: 0 -0.8rem; padding: 0 0.8rem; } .md-typeset > .codehilite, .md-typeset > .highlight { + margin: 1em -0.8rem; } + .md-typeset > .codehilite code, .md-typeset > .highlight code { + padding: 0.525rem 0.8rem; } + .md-typeset > .codehilitetable, .md-typeset > .highlighttable { margin: 1em -0.8rem; border-radius: 0; } - .md-typeset > .codehilite pre, .md-typeset > .highlight pre, - .md-typeset > .codehilite code, - .md-typeset > .highlight code { - padding: 0.525rem 0.8rem; } - .md-typeset > .codehilitetable, .md-typeset > .highlighttable { - margin: 1em -0.8rem; - border-radius: 0; } - .md-typeset > .codehilitetable .codehilite > pre, .md-typeset > .highlighttable .codehilite > pre, .md-typeset > .codehilitetable .highlight > pre, .md-typeset > .highlighttable .highlight > pre, - .md-typeset > .codehilitetable .codehilite > code, - .md-typeset > .highlighttable .codehilite > code, - .md-typeset > .codehilitetable .highlight > code, - .md-typeset > .highlighttable .highlight > code, - .md-typeset > .codehilitetable .linenodiv, - .md-typeset > .highlighttable .linenodiv { - padding: 0.5rem 0.8rem; } + .md-typeset > .codehilitetable .linenodiv, .md-typeset > .highlighttable .linenodiv { + padding: 0.5rem 0.8rem; } .md-typeset > p > .MJXc-display { margin: 0.75em -0.8rem; padding: 0.25em 0.8rem; } @@ -2076,9 +2025,10 @@ hr { border: 0; border-top: 0.05rem solid rgba(0, 0, 0, 0.07); border-radius: 0; } - .md-typeset > .superfences-tabs pre, .md-typeset > .superfences-tabs code { - padding: 0.525rem 0.8rem; } } + padding: 0.525rem 0.8rem; } + .md-typeset > .superfences-tabs input:first-child + label { + margin-left: 0.2rem; } } @media only screen and (min-width: 100em) { html { diff --git a/material/assets/stylesheets/app.css.map b/material/assets/stylesheets/app.css.map index 488f1db6a..1e225f19b 100644 --- a/material/assets/stylesheets/app.css.map +++ b/material/assets/stylesheets/app.css.map @@ -1 +1 @@ -{"version":3,"sources":["app.css","../../../src/assets/stylesheets/base/_reset.scss","../../../src/assets/stylesheets/base/_icons.scss","../../../src/assets/stylesheets/_config.scss","../../../src/assets/stylesheets/base/_typeset.scss","../../../node_modules/modularscale-sass/stylesheets/modularscale/_function.scss","../../../src/assets/stylesheets/utilities/_px2em.scss","../../../node_modules/material-design-color/material-color.scss","../../../node_modules/material-shadows/material-shadows.scss","../../../src/assets/stylesheets/layout/_base.scss","../../../src/assets/stylesheets/layout/_announce.scss","../../../src/assets/stylesheets/layout/_clipboard.scss","../../../src/assets/stylesheets/layout/_content.scss","../../../src/assets/stylesheets/layout/_header.scss","../../../src/assets/stylesheets/layout/_hero.scss","../../../src/assets/stylesheets/layout/_footer.scss","../../../src/assets/stylesheets/layout/_nav.scss","../../../src/assets/stylesheets/layout/_search.scss","../../../src/assets/stylesheets/layout/_sidebar.scss","../../../src/assets/stylesheets/layout/_source.scss","../../../src/assets/stylesheets/layout/_tabs.scss","../../../src/assets/stylesheets/extensions/_admonition.scss","../../../src/assets/stylesheets/extensions/_codehilite.scss","../../../src/assets/stylesheets/extensions/_footnotes.scss","../../../src/assets/stylesheets/extensions/_permalinks.scss","../../../src/assets/stylesheets/extensions/pymdown/_arithmatex.scss","../../../src/assets/stylesheets/extensions/pymdown/_critic.scss","../../../src/assets/stylesheets/extensions/pymdown/_details.scss","../../../src/assets/stylesheets/extensions/pymdown/_emoji.scss","../../../src/assets/stylesheets/extensions/pymdown/_inlinehilite.scss","../../../src/assets/stylesheets/extensions/pymdown/_superfences.scss","../../../src/assets/stylesheets/extensions/pymdown/_tasklist.scss","../../../src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"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","file":"app.css"} \ No newline at end of file +{"version":3,"sources":["app.css","../../../src/assets/stylesheets/base/_reset.scss","../../../src/assets/stylesheets/base/_icons.scss","../../../src/assets/stylesheets/_config.scss","../../../src/assets/stylesheets/base/_typeset.scss","../../../node_modules/modularscale-sass/stylesheets/modularscale/_function.scss","../../../src/assets/stylesheets/utilities/_px2em.scss","../../../node_modules/material-design-color/material-color.scss","../../../node_modules/material-shadows/material-shadows.scss","../../../src/assets/stylesheets/layout/_base.scss","../../../src/assets/stylesheets/layout/_announce.scss","../../../src/assets/stylesheets/layout/_clipboard.scss","../../../src/assets/stylesheets/layout/_content.scss","../../../src/assets/stylesheets/layout/_header.scss","../../../src/assets/stylesheets/layout/_hero.scss","../../../src/assets/stylesheets/layout/_footer.scss","../../../src/assets/stylesheets/layout/_nav.scss","../../../src/assets/stylesheets/layout/_search.scss","../../../src/assets/stylesheets/layout/_sidebar.scss","../../../src/assets/stylesheets/layout/_source.scss","../../../src/assets/stylesheets/layout/_tabs.scss","../../../src/assets/stylesheets/extensions/_admonition.scss","../../../src/assets/stylesheets/extensions/_codehilite.scss","../../../src/assets/stylesheets/extensions/_footnotes.scss","../../../src/assets/stylesheets/extensions/_permalinks.scss","../../../src/assets/stylesheets/extensions/pymdown/_arithmatex.scss","../../../src/assets/stylesheets/extensions/pymdown/_critic.scss","../../../src/assets/stylesheets/extensions/pymdown/_details.scss","../../../src/assets/stylesheets/extensions/pymdown/_emoji.scss","../../../src/assets/stylesheets/extensions/pymdown/_inlinehilite.scss","../../../src/assets/stylesheets/extensions/pymdown/_superfences.scss","../../../src/assets/stylesheets/extensions/pymdown/_tasklist.scss","../../../src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"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aAAY;QACZ,0DAGe;QAHf,kDAGe;QACf,WAAU,EACX;EAKL;IA8CI,mBAAkB;IAClB,eX1HgC;IW2HhC,qBX3HgC;IW4HhC,kBAAsB;IACtB,aAAY;IACZ,+DAAsD;IAAtD,uDAAsD,EAiCzD;IjB43BC;MiBz5BI,sBAAqB;MACrB,oBXnI8B;MWoI9B,YAAW,EACZ;IA6BL;MAKI,sBXvKgC,EWyKnC;IAGD;MAoCI,YAAW;MACX,eXjNgC;MWkNhC,qBXlNgC;MWmNhC,sHAEuD;MAFvD,8GAEuD;MACvD,sBXtNgC;MWuNhC,sCdlNqD;McmNrD,eAAc;MACd,kBZxQgC,EY4SnC;MjBm1BG;QiBn3BE,sBX7N8B,EW8N/B;MAlDJ;QAsDK,eAAc,EACf;MAvDJ;QA2DK,gCd5NoD,Ec6NrD;MA5DJ;QA2DK,gCd5NoD,Ec6NrD;MA5DJ;QA2DK,gCd5NoD,Ec6NrD;MA5DJ;QA2DK,gCd5NoD,Ec6NrD;MA5DJ;QA2DK,gCd5NoD,Ec6NrD;MA5DJ;QAgEK,4Cd/NqD,EcgOtD;MjB22BD;QiBv2BE,iCAA0C;QAC1C,wBdxOkD;QcyOlD,2BdhPmD;QciPnD,oBAAmB,EAOpB;QjBk2BC;UiBp2BE,2BdrPiD,EcsPlD;QjBm2BD;UiBp2BE,2BdrPiD,EcsPlD;QjBm2BD;UiBp2BE,2BdrPiD,EcsPlD;QjBm2BD;UiBp2BE,2BdrPiD,EcsPlD;QjBm2BD;UiBp2BE,2BdrPiD,EcsPlD;IA0FP;MAeI,YXnWgC;MWoWhC,iCAAwB;MAAxB,yBAAwB;MACxB,WAAU,EASb;MjB4yBG;QQ5qCJ,kHAE4C;QS2XtC,WAAU,EACX;IAKL;MAwBI,cAAa,EAuBhB;MjBgxBG;QiBnyBE,iBAAgB,EACjB;MA7BJ;QAiCK,cXlZ8B;QWmZ9B,eXnZ8B,EWoZ/B;MAnCJ;QAuCK,sCdnZmD,EcyZpD;QA7CJ;UA2CO,0BV/PO,EUgQR;MAYP;QASI,qBXlbgC,EW0bnC;QjB4wBK;UiBhxBA,sBXtb8B;UWub9B,sBAAqB,EACtB;MA0CL;QAOI,qBXzegC,EWohBnC;QjB8sBK;UiBrvBA,sBX7e8B;UW8e9B,qBX9e8B,EW+e/B;MCncL;QAKI,eAAc;QACd,kCAA0C,EAwB7C;QlBovCK;UkBxwCA,mCAA2C;UAC3C,qBAAoB,EACrB;QAZJ;UAgBK,kCAAiC,EAClC,ENrFF;;AoBwLD;EpBlMJ;IAeI,qBNmBkC,EMiCrC;IZscG;MYtfE,sBNegC,EMdjC;IAIH;MAMI,qBNIgC;MMHhC,oBNGgC,EMYnC;MCFA;QA8CK,cAAa,EACd;IG3FP;MA0bI,oEAA2D;MAA3D,4DAA2D,EA+C9D;MA/HG;QAoFE,cAAa;QACb,iBAAgB,EAMjB;QAHC;UACE,cAAa,EACd;MAtEH;QA2EE,iBAAgB,EACjB;MAGD;QACE,cAAa,EACd;MAtXC;QA8XE,sBAAqB;QACrB,wCAA+B;gBAA/B,gCAA+B;QAC/B,qCAA4B;gBAA5B,6BAA4B;QAC5B,yBAAwB,EAOzB;QAHC;UACE,2CAA0B;UAA1B,mCAA0B;UAA1B,2BAA0B;UAA1B,mDAA0B,EAC3B;MAIH;QACE,mCAA0B;gBAA1B,2BAA0B,EAC3B;ECzXL;IA+DI,qBX1IgC,EW+JnC;IjBo4BC;MiBr5BI,oBX9I8B,EW+I/B;EjB45BL;IiB/4BM,eX5J8B,EW8JjC;IAmNH;MAmBI,eXpYgC,EWganC;MCpXD;QAsBI,qBZlEgC,EY0EnC;QlB4vCK;UkBhwCA,sBZtE8B;UYuE9B,qBAAoB,EACrB;IE1GP;MAkFM,aAAY;MACZ,mBAAkB,EACnB;IAGA;MAOK,eAAc;MACd,WAAU,EACX;IATJ;MAaK,cAAa,EACd;IAGD;MACE,eAAc,EACf;IAnBJ;MAuBK,aAAY;MACZ,mBAAkB,EAmBnB;MA3CJ;QA4BO,cAAa;QACb,kBdlF0B;QcmF1B,eAAc;QACd,oBAAmB,EAMpB;QArCN;UAmCS,cAAa,EACd;MApCR;QAyCO,eAAc,EACf;IA1CN;MAgDG,oBAAmB;MACnB,kBAAiB,EAWlB;MA5DF;QAqDK,gBAAe,EAChB;MAtDJ;QA0DK,cAAa,EACd,ER9HJ;;AoB8KD;MjB9KF;QAOI,WAAU,EAwCb;IAoDH;MAQI,eAAc;MACd,YAAW,EAYd;MfklBK;Qe1lBA,aAAY,EACb;IAUL;MAMI,kBAAuB;MACvB,aAAY,EAmCf;MfijBK;QehlBA,YAAW,EACZ,EAxFF;;AiBqJC;IhC0yBA;MiBr8BI,6BAAoB;cAApB,qBAAoB,EAYvB,EAAA;;AegGC;IhC41BF;MiBn8BI,6BAAoB;cAApB,qBAAoB,EAOvB,EAAA;;AegGC;IhC+1BF;MiBj8BI,6BAAoB;cAApB,qBAAoB,EAEvB,EAAA;;AegGC;EhCg6BJ;IiBh5BM,eXvJ8B,EW8JjC;IAmNH;MAcI,eX/XgC,EWganC;MAiID;QAoBI,mBXrjBgC;QWsjBhC,sBAAqB,EAExB,EA1ZE;;AA2ND;IARF;MASI,iCAAwB;cAAxB,yBAAwB,EAsC3B,EAAA","file":"app.css"} \ No newline at end of file diff --git a/material/assets/stylesheets/app.min.css b/material/assets/stylesheets/app.min.css index 486aeb800..60560aae1 100644 --- a/material/assets/stylesheets/app.min.css +++ b/material/assets/stylesheets/app.min.css @@ -1,2 +1,2 @@ -@charset "UTF-8";@-webkit-keyframes md-source__facts--done{0%{height:0}to{height:.65rem}}@keyframes md-source__facts--done{0%{height:0}to{height:.65rem}}@-webkit-keyframes md-source__fact--done{0%{-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}50%{opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes md-source__fact--done{0%{-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}50%{opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}html{box-sizing:border-box;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;min-height:100%;background-color:#fff;font-size:125%;overflow-x:hidden}*,::after,::before{box-sizing:inherit}body{margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,hr{padding:0;border:0}hr{overflow:visible;box-sizing:content-box;display:block;height:.05rem}a{-webkit-text-decoration-skip:objects;color:inherit;text-decoration:none}a,button,input,label{-webkit-tap-highlight-color:transparent}small,sub,sup{font-size:80%}sub,sup{position:relative;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}table{border-collapse:separate;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{margin:0;background:0 0;font-size:inherit}input{border:0;outline:0}.md-icon,.md-nav__button,.md-nav__link::after,.md-nav__title::before,.md-search-result__article--document::before,.md-source-file::before,.md-typeset .admonition>.admonition-title::before,.md-typeset .admonition>summary::before,.md-typeset .critic.comment::before,.md-typeset .footnote-backref,.md-typeset .task-list-control .task-list-indicator::before,.md-typeset details>.admonition-title::before,.md-typeset details>summary::before,.md-typeset summary::after{font-family:"Material Icons";font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr}.md-content__icon{display:inline-block;width:2rem;padding:.4rem;font-size:1.2rem;cursor:pointer}.md-footer-nav__button,.md-header-nav__button,.md-nav__button{margin:.2rem}.md-nav__title::before{width:2rem;margin:.2rem;padding:.4rem;font-size:1.2rem;cursor:pointer}.md-footer-nav__button,.md-header-nav__button,.md-nav__button,.md-search-result__article--document::before{display:inline-block;width:2rem;padding:.4rem;font-size:1.2rem;cursor:pointer}.md-icon--arrow-back::before{content:""}.md-icon--arrow-forward::before,[dir=rtl] .md-icon--arrow-back::before{content:""}.md-icon--menu::before{content:""}.md-icon--search::before{content:""}[dir=rtl] .md-icon--arrow-forward::before{content:""}body,code,input,kbd,pre{color:rgba(0,0,0,.87);font-feature-settings:"kern","liga";font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-feature-settings:"kern";font-family:"Courier New",Courier,monospace}.md-typeset{font-size:.8rem;line-height:1.6;-webkit-print-color-adjust:exact}.md-typeset blockquote,.md-typeset ol,.md-typeset p,.md-typeset ul{margin:1em 0}.md-typeset h1{margin:0 0 2rem;color:rgba(0,0,0,.54);font-size:1.5625rem;font-weight:300;letter-spacing:-.01em;line-height:1.3}.md-typeset h2,.md-typeset h3{margin:2rem 0 .8rem;font-size:1.25rem;font-weight:300;letter-spacing:-.01em;line-height:1.4}.md-typeset h3{margin:1.6rem 0 .8rem;font-size:1rem;font-weight:400;line-height:1.5}.md-typeset h2+h3{margin-top:.8rem}.md-typeset h4,.md-typeset h5,.md-typeset h6{margin:.8rem 0;font-size:.8rem;font-weight:700;letter-spacing:-.01em}.md-typeset h5,.md-typeset h6{color:rgba(0,0,0,.54);font-size:.64rem}.md-typeset h5{text-transform:uppercase}.md-typeset hr{margin:1.5em 0;border-bottom:.05rem dotted rgba(0,0,0,.26)}.md-typeset a{color:#3f51b5;word-break:break-word}.md-typeset a,.md-typeset a::before{-webkit-transition:color .125s;transition:color .125s}.md-typeset a:active,.md-typeset a:hover{color:#536dfe}.md-typeset code,.md-typeset pre{background-color:rgba(236,236,236,.5);color:#37474f;font-size:85%;direction:ltr}.md-typeset code{margin:0 .29412em;padding:.07353em 0;border-radius:.1rem;box-shadow:.29412em 0 0 rgba(236,236,236,.5),-.29412em 0 0 rgba(236,236,236,.5);word-break:break-word;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset h1 code,.md-typeset h2 code,.md-typeset h3 code,.md-typeset h4 code,.md-typeset h5 code,.md-typeset h6 code{margin:0;background-color:transparent;box-shadow:none}.md-typeset a>code{margin:inherit;padding:inherit;border-radius:initial;background-color:inherit;color:inherit;box-shadow:none}.md-typeset pre{position:relative;margin:1em 0;border-radius:.1rem;line-height:1.4;-webkit-overflow-scrolling:touch}.md-typeset pre>code{display:block;margin:0;padding:.525rem .6rem;background-color:transparent;font-size:inherit;box-shadow:none;-webkit-box-decoration-break:slice;box-decoration-break:slice;overflow:auto}.md-typeset pre>code::-webkit-scrollbar{width:.2rem;height:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:#536dfe}.md-typeset kbd{padding:0 .29412em;border:.05rem solid #c9c9c9;border-radius:.15rem;border-bottom-color:#bcbcbc;background-color:#fcfcfc;color:#555;font-size:85%;box-shadow:0 .05rem 0 #b0b0b0;word-break:break-word}.md-typeset mark{margin:0 .25em;padding:.0625em 0;border-radius:.1rem;background-color:rgba(255,235,59,.5);box-shadow:.25em 0 0 rgba(255,235,59,.5),-.25em 0 0 rgba(255,235,59,.5);word-break:break-word;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset abbr{border-bottom:.05rem dotted rgba(0,0,0,.54);text-decoration:none;cursor:help}.md-typeset small{opacity:.75}.md-typeset sub,.md-typeset sup{margin-left:.07812em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.07812em;margin-left:initial}.md-typeset blockquote{padding-left:.6rem;border-left:.2rem solid rgba(0,0,0,.26);color:rgba(0,0,0,.54)}[dir=rtl] .md-typeset blockquote{padding-right:.6rem;padding-left:initial;border-right:.2rem solid rgba(0,0,0,.26);border-left:initial}.md-typeset ul{list-style-type:disc}.md-typeset ol,.md-typeset ul{margin-left:.625em;padding:0}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{margin-right:.625em;margin-left:initial}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em;margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em;margin-left:initial}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin:.5em 0 .5em .625em}.md-typeset dd{margin:1em 0 1em 1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em;margin-left:initial}.md-typeset iframe,.md-typeset img,.md-typeset svg{max-width:100%}.md-typeset table:not([class]){box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);display:inline-block;max-width:100%;border-radius:.1rem;font-size:.64rem;overflow:auto;-webkit-overflow-scrolling:touch}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.md-typeset table:not([class]) th{min-width:5rem;padding:.6rem .8rem;background-color:rgba(0,0,0,.54);color:#fff;vertical-align:top}.md-typeset table:not([class]) td{padding:.6rem .8rem;border-top:.05rem solid rgba(0,0,0,.07);vertical-align:top}.md-typeset table:not([class]) tr{-webkit-transition:background-color .125s;transition:background-color .125s}.md-typeset table:not([class]) tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 #fff inset}.md-typeset table:not([class]) tr:first-child td{border-top:0}.md-typeset table:not([class]) a{word-break:normal}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.md-typeset .md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}.md-typeset .md-typeset__table table{display:table;width:100%;margin:0;overflow:hidden}body{position:relative;min-height:100%;font-size:.5rem}.md-grid{max-width:61rem;margin-right:auto;margin-left:auto}.md-container,.md-main{overflow:auto}.md-container{display:table;width:100%;height:100%;table-layout:fixed}.md-main{display:table-row;height:100%}.md-main__inner{height:100%;padding-top:1.5rem;padding-bottom:.05rem}.md-toggle{display:none}.md-overlay{position:fixed;top:0;width:0;height:0;-webkit-transition:width 0s .25s,height 0s .25s,opacity .25s;transition:width 0s .25s,height 0s .25s,opacity .25s;background-color:rgba(0,0,0,.54);opacity:0;z-index:3}.md-flex{display:table}.md-flex__cell{display:table-cell;position:relative;vertical-align:top}.md-flex__cell--shrink{width:0%}.md-flex__cell--stretch{display:table;width:100%;table-layout:fixed}.md-flex__ellipsis{display:table-cell;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-skip{position:fixed;width:.05rem;height:.05rem;margin:.5rem;padding:.3rem .5rem;-webkit-transform:translateY(.4rem);transform:translateY(.4rem);border-radius:.1rem;background-color:rgba(0,0,0,.87);color:#fff;font-size:.64rem;opacity:0;overflow:hidden}.md-skip:focus{width:auto;height:auto;clip:auto;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:opacity .175s .075s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .175s .075s;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .175s .075s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);opacity:1;z-index:10}@page{margin:25mm}.md-announcement{background-color:rgba(0,0,0,.87)}.md-announcement__inner{min-height:2.4rem;padding:0 .8rem;color:#fff;font-size:.7rem;line-height:2.4rem}.md-clipboard{position:absolute;top:.3rem;right:.3rem;width:1.4rem;height:1.4rem;-webkit-transition:color .25s;transition:color .25s;border-radius:.1rem;color:rgba(0,0,0,.07);font-size:.8rem;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;backface-visibility:hidden}.codehilite:hover .md-clipboard,.md-typeset .highlight:hover .md-clipboard,pre:hover .md-clipboard{color:rgba(0,0,0,.54)}.codehilite .md-clipboard:focus,.codehilite .md-clipboard:hover,.md-typeset .highlight .md-clipboard:focus,.md-typeset .highlight .md-clipboard:hover,pre .md-clipboard:focus,pre .md-clipboard:hover{color:#536dfe}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}.md-content__inner::before{display:block;height:.4rem;content:""}.md-content__inner>:last-child{margin-bottom:0}.md-content__icon{position:relative;margin:.4rem 0;padding:0;float:right}.md-typeset .md-content__icon{color:rgba(0,0,0,.26)}.md-header{position:-webkit-sticky;position:sticky;top:0;right:0;left:0;height:2.4rem;-webkit-transition:background-color .25s,color .25s;transition:background-color .25s,color .25s;background-color:#3f51b5;color:#fff;box-shadow:none;z-index:2;-webkit-backface-visibility:hidden;backface-visibility:hidden}.no-js .md-header{-webkit-transition:none;transition:none;box-shadow:none}.md-header[data-md-state=shadow]{-webkit-transition:background-color .25s,color .25s,box-shadow .25s;transition:background-color .25s,color .25s,box-shadow .25s;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.md-header-nav{padding:0 .2rem}.md-header-nav__button{position:relative;-webkit-transition:opacity .25s;transition:opacity .25s;z-index:1}.md-header-nav__button:hover{opacity:.7}.md-header-nav__button.md-logo *{display:block}.no-js .md-header-nav__button.md-icon--search{display:none}.md-header-nav__topic{display:block;position:absolute;width:calc(100% - 1rem);-webkit-transition:opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-header-nav__topic+.md-header-nav__topic{-webkit-transform:translateX(1.25rem);transform:translateX(1.25rem);-webkit-transition:opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);opacity:0;z-index:-1;pointer-events:none}[dir=rtl] .md-header-nav__topic+.md-header-nav__topic{-webkit-transform:translateX(-1.25rem);transform:translateX(-1.25rem)}.no-js .md-header-nav__topic{position:initial}.no-js .md-header-nav__topic+.md-header-nav__topic{display:none}.md-header-nav__title{padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-header-nav__title[data-md-state=active] .md-header-nav__topic{-webkit-transform:translateX(-1.25rem);transform:translateX(-1.25rem);-webkit-transition:opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);opacity:0;z-index:-1;pointer-events:none}[dir=rtl] .md-header-nav__title[data-md-state=active] .md-header-nav__topic{-webkit-transform:translateX(1.25rem);transform:translateX(1.25rem)}.md-header-nav__title[data-md-state=active] .md-header-nav__topic+.md-header-nav__topic{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);opacity:1;z-index:0;pointer-events:initial}.md-header-nav__source{display:none}.md-hero{-webkit-transition:background .25s;transition:background .25s;background-color:#3f51b5;color:#fff;font-size:1rem;overflow:hidden}.md-hero__inner{margin-top:1rem;padding:.8rem .8rem .4rem;-webkit-transition:opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);-webkit-transition-delay:.1s;transition-delay:.1s}[data-md-state=hidden] .md-hero__inner{pointer-events:none;-webkit-transform:translateY(.625rem);transform:translateY(.625rem);-webkit-transition:opacity .1s 0s,-webkit-transform 0s .4s;transition:transform 0s .4s,opacity .1s 0s;transition:transform 0s .4s,opacity .1s 0s,-webkit-transform 0s .4s;opacity:0}.md-hero--expand .md-hero__inner{margin-bottom:1.2rem}.md-footer-nav{background-color:rgba(0,0,0,.87);color:#fff}.md-footer-nav__inner{padding:.2rem;overflow:auto}.md-footer-nav__link{padding-top:1.4rem;padding-bottom:.4rem;-webkit-transition:opacity .25s;transition:opacity .25s}.md-footer-nav__link:hover{opacity:.7}.md-footer-nav__link--prev{width:25%;float:left}[dir=rtl] .md-footer-nav__link--prev{float:right}.md-footer-nav__link--next{width:75%;float:right;text-align:right}[dir=rtl] .md-footer-nav__link--next{float:left;text-align:left}.md-footer-nav__button{-webkit-transition:background .25s;transition:background .25s}.md-footer-nav__title{position:relative;padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-footer-nav__direction{position:absolute;right:0;left:0;margin-top:-1rem;padding:0 1rem;color:rgba(255,255,255,.7);font-size:.75rem}.md-footer-meta{background-color:rgba(0,0,0,.895)}.md-footer-meta__inner{padding:.2rem;overflow:auto}html .md-footer-meta.md-typeset a{color:rgba(255,255,255,.7)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:#fff}.md-footer-copyright{margin:0 .6rem;padding:.4rem 0;color:rgba(255,255,255,.3);font-size:.64rem}.md-footer-copyright__highlight{color:rgba(255,255,255,.7)}.md-footer-social{margin:0 .4rem;padding:.2rem 0 .6rem}.md-footer-social__link{display:inline-block;width:1.6rem;height:1.6rem;font-size:.8rem;text-align:center}.md-footer-social__link::before{line-height:1.9}.md-footer-social__link svg{width:.8rem;-webkit-transition:fill .25s;transition:fill .25s;vertical-align:-25%;fill:rgba(255,255,255,.7)}.md-footer-social__link:focus svg,.md-footer-social__link:hover svg{fill:#fff}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;padding:0 .6rem;font-weight:700;text-overflow:ellipsis;overflow:hidden}.md-nav__title::before{display:none;content:"\E5C4"}[dir=rtl] .md-nav__title::before{content:"\E5C8"}.md-nav__title .md-nav__button{display:none}.md-nav__list{margin:0;padding:0;list-style:none}.md-nav__item{padding:0 .6rem}.md-nav__item:last-child{padding-bottom:.6rem}.md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-right:.6rem;padding-left:0}.md-nav__item .md-nav__item:last-child{padding-bottom:0}.md-nav__button img{width:100%;height:auto}.md-nav__link{display:block;margin-top:.625em;-webkit-transition:color .125s;transition:color .125s;text-overflow:ellipsis;cursor:pointer;overflow:hidden}.md-nav__item--nested>.md-nav__link::after{content:"\E313"}html .md-nav__link[for=__toc],html .md-nav__link[for=__toc]+.md-nav__link::after,html .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link[data-md-state=blur],html body .md-typeset .md-source-file{color:rgba(0,0,0,.54)}.md-nav__link--active,.md-nav__link:active{color:#3f51b5}.md-nav__item--nested>.md-nav__link{color:inherit}.md-nav__link:focus,.md-nav__link:hover{color:#536dfe}.md-nav__source,.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}.md-search__form{position:relative}.md-search__input{position:relative;padding:0 2.2rem 0 3.6rem;text-overflow:ellipsis;z-index:2}[dir=rtl] .md-search__input{padding:0 3.6rem 0 2.2rem}.md-search__input::-webkit-input-placeholder{-webkit-transition:color .25s cubic-bezier(.1,.7,.1,1);transition:color .25s cubic-bezier(.1,.7,.1,1)}.md-search__input::-moz-placeholder{-moz-transition:color .25s cubic-bezier(.1,.7,.1,1);transition:color .25s cubic-bezier(.1,.7,.1,1)}.md-search__input:-ms-input-placeholder,.md-search__input::-ms-input-placeholder{-ms-transition:color .25s cubic-bezier(.1,.7,.1,1);transition:color .25s cubic-bezier(.1,.7,.1,1)}.md-search__input::placeholder{-webkit-transition:color .25s cubic-bezier(.1,.7,.1,1);transition:color .25s cubic-bezier(.1,.7,.1,1)}.md-search__input::-webkit-input-placeholder{color:rgba(0,0,0,.54)}.md-search__input::-moz-placeholder{color:rgba(0,0,0,.54)}.md-search__input:-ms-input-placeholder,.md-search__input::-ms-input-placeholder{color:rgba(0,0,0,.54)}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:rgba(0,0,0,.54)}.md-search__input::-ms-clear{display:none}.md-search__icon{position:absolute;-webkit-transition:color .25s cubic-bezier(.1,.7,.1,1),opacity .25s;transition:color .25s cubic-bezier(.1,.7,.1,1),opacity .25s;font-size:1.2rem;cursor:pointer;z-index:2}.md-search__icon:hover{opacity:.7}.md-search__icon[for=__search]{top:.3rem;left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem;left:initial}.md-search__icon[for=__search]::before{content:"\E8B6"}.md-search__icon[type=reset]{top:.3rem;right:.5rem;-webkit-transform:scale(.125);transform:scale(.125);-webkit-transition:opacity .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s;transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1);opacity:0}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.5rem}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__icon[type=reset]{-webkit-transform:scale(1);transform:scale(1);opacity:1}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__icon[type=reset]:hover{opacity:.7}.md-search__output{position:absolute;width:100%;border-radius:0 0 .1rem .1rem;overflow:hidden;z-index:1}.md-search__scrollwrap{height:100%;background-color:#fff;box-shadow:0 .05rem 0 rgba(0,0,0,.07) inset;overflow-y:auto;-webkit-overflow-scrolling:touch}.md-search-result{color:rgba(0,0,0,.87);word-break:break-word}.md-search-result__meta{padding:0 .8rem;background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.54);font-size:.64rem;line-height:1.8rem}.md-search-result__list{margin:0;padding:0;border-top:.05rem solid rgba(0,0,0,.07);list-style:none}.md-search-result__item{box-shadow:0 -.05rem 0 rgba(0,0,0,.07)}.md-search-result__link{display:block;-webkit-transition:background .25s;transition:background .25s;outline:0;overflow:hidden}.md-search-result__link:focus,.md-search-result__link:hover{background-color:rgba(83,109,254,.1)}.md-search-result__link:focus .md-search-result__article::before,.md-search-result__link:hover .md-search-result__article::before{opacity:.7}.md-search-result__link:last-child .md-search-result__teaser,html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}.md-search-result__article{position:relative;padding:0 .8rem;overflow:auto}.md-search-result__article--document::before{position:absolute;left:0;margin:.1rem;-webkit-transition:opacity .25s;transition:opacity .25s;color:rgba(0,0,0,.54);content:"\E880"}[dir=rtl] .md-search-result__article--document::before{right:0;left:initial}.md-search-result__article--document .md-search-result__title{margin:.55rem 0;font-size:.8rem;font-weight:400;line-height:1.4}.md-search-result__title{margin:.5em 0;font-size:.64rem;font-weight:700;line-height:1.4}.md-search-result__teaser{display:-webkit-box;max-height:1.65rem;margin:.5em 0;color:rgba(0,0,0,.54);font-size:.64rem;line-height:1.4;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.md-search-result em{font-style:normal;font-weight:700;text-decoration:underline}.md-sidebar{position:absolute;width:12.1rem;padding:1.2rem 0;overflow:hidden}.md-sidebar[data-md-state=lock]{position:fixed;top:2.4rem}.md-sidebar--secondary,.md-typeset .superfences-tabs>input{display:none}.md-sidebar__scrollwrap{max-height:100%;margin:0 .2rem;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden}.md-sidebar__scrollwrap::-webkit-scrollbar,.md-typeset .codehilite code::-webkit-scrollbar,.md-typeset .codehilite pre::-webkit-scrollbar,.md-typeset .highlight code::-webkit-scrollbar,.md-typeset .highlight pre::-webkit-scrollbar{width:.2rem;height:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb,.md-typeset .codehilite code::-webkit-scrollbar-thumb,.md-typeset .codehilite pre::-webkit-scrollbar-thumb,.md-typeset .highlight code::-webkit-scrollbar-thumb,.md-typeset .highlight pre::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover,.md-typeset .codehilite code::-webkit-scrollbar-thumb:hover,.md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,.md-typeset .highlight code::-webkit-scrollbar-thumb:hover,.md-typeset .highlight pre::-webkit-scrollbar-thumb:hover{background-color:#536dfe}.md-source{display:block;padding-right:.6rem;-webkit-transition:opacity .25s;transition:opacity .25s;font-size:.65rem;line-height:1.2;white-space:nowrap}[dir=rtl] .md-source{padding-right:initial;padding-left:.6rem}.md-source:hover{opacity:.7}.md-source::after{height:2.4rem;content:""}.md-source::after,.md-source__icon,.md-source__repository{display:inline-block;vertical-align:middle}.md-source__icon{width:2.4rem;height:2.4rem}.md-source__icon svg{width:1.2rem;height:1.2rem;margin-top:.6rem;margin-left:.6rem;fill:#fff}[dir=rtl] .md-source__icon svg{margin-right:.6rem;margin-left:initial}.md-source__icon+.md-source__repository{margin-left:-2rem;padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem;margin-left:initial;padding-right:2rem;padding-left:initial}.md-source__repository{max-width:100%;margin-left:.6rem;font-weight:700;text-overflow:ellipsis;overflow:hidden}.md-source__facts{margin:0;padding:0;font-size:.55rem;font-weight:700;list-style-type:none;opacity:.75;overflow:hidden}[data-md-state=done] .md-source__facts{-webkit-animation:md-source__facts--done .25s ease-in;animation:md-source__facts--done .25s ease-in}.md-source__fact{float:left}[dir=rtl] .md-source__fact{float:right}[data-md-state=done] .md-source__fact{-webkit-animation:md-source__fact--done .4s ease-out;animation:md-source__fact--done .4s ease-out}.md-source__fact::before{margin:0 .1rem;content:"\00B7"}.md-source__fact:first-child::before{display:none}.md-source-file{display:inline-block;margin:1em .5em 1em 0;padding-right:.25rem;border-radius:.1rem;background-color:rgba(0,0,0,.07);font-size:.64rem;list-style-type:none;cursor:pointer;overflow:hidden}.md-source-file::before{display:inline-block;margin-right:.25rem;padding:.25rem;background-color:rgba(0,0,0,.26);color:#fff;font-size:.8rem;content:"\E86F";vertical-align:middle}html .md-source-file{-webkit-transition:background .4s,color .4s,box-shadow .4s cubic-bezier(.4,0,.2,1);transition:background .4s,color .4s,box-shadow .4s cubic-bezier(.4,0,.2,1)}html .md-source-file::before{-webkit-transition:inherit;transition:inherit}.md-source-file:hover{box-shadow:0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36)}.md-source-file:hover::before{background-color:#536dfe}.md-tabs{width:100%;-webkit-transition:background .25s;transition:background .25s;background-color:#3f51b5;color:#fff;overflow:auto}.md-tabs__list{margin:0;margin-left:.2rem;padding:0;list-style:none;white-space:nowrap}.md-tabs__item{display:inline-block;height:2.4rem;padding-right:.6rem;padding-left:.6rem}.md-tabs__link{display:block;margin-top:.8rem;-webkit-transition:opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);font-size:.7rem;opacity:.7}.md-tabs__link--active,.md-tabs__link:hover{color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{-webkit-transition-delay:.02s;transition-delay:.02s}.md-tabs__item:nth-child(3) .md-tabs__link{-webkit-transition-delay:.04s;transition-delay:.04s}.md-tabs__item:nth-child(4) .md-tabs__link{-webkit-transition-delay:.06s;transition-delay:.06s}.md-tabs__item:nth-child(5) .md-tabs__link{-webkit-transition-delay:.08s;transition-delay:.08s}.md-tabs__item:nth-child(6) .md-tabs__link{-webkit-transition-delay:.1s;transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{-webkit-transition-delay:.12s;transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{-webkit-transition-delay:.14s;transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{-webkit-transition-delay:.16s;transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{-webkit-transition-delay:.18s;transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{-webkit-transition-delay:.2s;transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{-webkit-transition-delay:.22s;transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{-webkit-transition-delay:.24s;transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{-webkit-transition-delay:.26s;transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{-webkit-transition-delay:.28s;transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{-webkit-transition-delay:.3s;transition-delay:.3s}.md-tabs[data-md-state=hidden]{pointer-events:none}.md-tabs[data-md-state=hidden] .md-tabs__link{-webkit-transform:translateY(50%);transform:translateY(50%);-webkit-transition:color .25s,opacity .1s,-webkit-transform 0s .4s;transition:color .25s,transform 0s .4s,opacity .1s;transition:color .25s,transform 0s .4s,opacity .1s,-webkit-transform 0s .4s;opacity:0}.md-typeset .admonition,.md-typeset details{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);margin:1.5625em 0;padding:0 .6rem;border-left:.2rem solid #448aff;border-radius:.1rem;font-size:.64rem;overflow:auto}[dir=rtl] .md-typeset .admonition,[dir=rtl] .md-typeset details{border-right:.2rem solid #448aff;border-left:none}.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{margin:1em 0}.md-typeset .admonition>.admonition-title,.md-typeset .admonition>summary,.md-typeset details>.admonition-title,.md-typeset details>summary{margin:0 -.6rem;padding:.4rem .6rem .4rem 2rem;border-bottom:.05rem solid rgba(68,138,255,.1);background-color:rgba(68,138,255,.1);font-weight:700}[dir=rtl] .md-typeset .admonition>.admonition-title,[dir=rtl] .md-typeset .admonition>summary,[dir=rtl] .md-typeset details>.admonition-title,[dir=rtl] .md-typeset details>summary{padding:.4rem 2rem .4rem .6rem}.md-typeset .admonition>.admonition-title:last-child,.md-typeset .admonition>summary:last-child,.md-typeset details>.admonition-title:last-child,.md-typeset details>summary:last-child{margin-bottom:0}.md-typeset .admonition>.admonition-title::before,.md-typeset .admonition>summary::before,.md-typeset details>.admonition-title::before,.md-typeset details>summary::before{position:absolute;margin-left:-1.4rem;color:#448aff;font-size:1rem;content:"\E3C9"}[dir=rtl] .md-typeset .admonition>.admonition-title::before,[dir=rtl] .md-typeset .admonition>summary::before,[dir=rtl] .md-typeset details>.admonition-title::before,[dir=rtl] .md-typeset details>summary::before{margin-right:-1.4rem;margin-left:initial}.md-typeset .admonition.abstract,.md-typeset .admonition.summary,.md-typeset .admonition.tldr,.md-typeset details.abstract,.md-typeset details.summary,.md-typeset details.tldr{border-left-color:#00b0ff}[dir=rtl] .md-typeset .admonition.abstract,[dir=rtl] .md-typeset .admonition.summary,[dir=rtl] .md-typeset .admonition.tldr,[dir=rtl] .md-typeset details.abstract,[dir=rtl] .md-typeset details.summary,[dir=rtl] .md-typeset details.tldr{border-right-color:#00b0ff}.md-typeset .admonition.abstract>.admonition-title,.md-typeset .admonition.abstract>summary,.md-typeset .admonition.summary>.admonition-title,.md-typeset .admonition.summary>summary,.md-typeset .admonition.tldr>.admonition-title,.md-typeset .admonition.tldr>summary,.md-typeset details.abstract>.admonition-title,.md-typeset details.abstract>summary,.md-typeset details.summary>.admonition-title,.md-typeset details.summary>summary,.md-typeset details.tldr>.admonition-title,.md-typeset details.tldr>summary{border-bottom-color:rgba(0,176,255,.1);background-color:rgba(0,176,255,.1)}.md-typeset .admonition.abstract>.admonition-title::before,.md-typeset .admonition.abstract>summary::before,.md-typeset .admonition.summary>.admonition-title::before,.md-typeset .admonition.summary>summary::before,.md-typeset .admonition.tldr>.admonition-title::before,.md-typeset .admonition.tldr>summary::before,.md-typeset details.abstract>.admonition-title::before,.md-typeset details.abstract>summary::before,.md-typeset details.summary>.admonition-title::before,.md-typeset details.summary>summary::before,.md-typeset details.tldr>.admonition-title::before,.md-typeset details.tldr>summary::before{color:#00b0ff;content:""}.md-typeset .admonition.info,.md-typeset .admonition.todo,.md-typeset details.info,.md-typeset details.todo{border-left-color:#00b8d4}[dir=rtl] .md-typeset .admonition.info,[dir=rtl] .md-typeset .admonition.todo,[dir=rtl] .md-typeset details.info,[dir=rtl] .md-typeset details.todo{border-right-color:#00b8d4}.md-typeset .admonition.info>.admonition-title,.md-typeset .admonition.info>summary,.md-typeset .admonition.todo>.admonition-title,.md-typeset .admonition.todo>summary,.md-typeset details.info>.admonition-title,.md-typeset details.info>summary,.md-typeset details.todo>.admonition-title,.md-typeset details.todo>summary{border-bottom-color:rgba(0,184,212,.1);background-color:rgba(0,184,212,.1)}.md-typeset .admonition.info>.admonition-title::before,.md-typeset .admonition.info>summary::before,.md-typeset .admonition.todo>.admonition-title::before,.md-typeset .admonition.todo>summary::before,.md-typeset details.info>.admonition-title::before,.md-typeset details.info>summary::before,.md-typeset details.todo>.admonition-title::before,.md-typeset details.todo>summary::before{color:#00b8d4;content:""}.md-typeset .admonition.hint,.md-typeset .admonition.important,.md-typeset .admonition.tip,.md-typeset details.hint,.md-typeset details.important,.md-typeset details.tip{border-left-color:#00bfa5}[dir=rtl] .md-typeset .admonition.hint,[dir=rtl] .md-typeset .admonition.important,[dir=rtl] .md-typeset .admonition.tip,[dir=rtl] .md-typeset details.hint,[dir=rtl] .md-typeset details.important,[dir=rtl] .md-typeset details.tip{border-right-color:#00bfa5}.md-typeset .admonition.hint>.admonition-title,.md-typeset .admonition.hint>summary,.md-typeset .admonition.important>.admonition-title,.md-typeset .admonition.important>summary,.md-typeset .admonition.tip>.admonition-title,.md-typeset .admonition.tip>summary,.md-typeset details.hint>.admonition-title,.md-typeset details.hint>summary,.md-typeset details.important>.admonition-title,.md-typeset details.important>summary,.md-typeset details.tip>.admonition-title,.md-typeset details.tip>summary{border-bottom-color:rgba(0,191,165,.1);background-color:rgba(0,191,165,.1)}.md-typeset .admonition.hint>.admonition-title::before,.md-typeset .admonition.hint>summary::before,.md-typeset .admonition.important>.admonition-title::before,.md-typeset .admonition.important>summary::before,.md-typeset .admonition.tip>.admonition-title::before,.md-typeset .admonition.tip>summary::before,.md-typeset details.hint>.admonition-title::before,.md-typeset details.hint>summary::before,.md-typeset details.important>.admonition-title::before,.md-typeset details.important>summary::before,.md-typeset details.tip>.admonition-title::before,.md-typeset details.tip>summary::before{color:#00bfa5;content:""}.md-typeset .admonition.check,.md-typeset .admonition.done,.md-typeset .admonition.success,.md-typeset details.check,.md-typeset details.done,.md-typeset details.success{border-left-color:#00c853}[dir=rtl] .md-typeset .admonition.check,[dir=rtl] .md-typeset .admonition.done,[dir=rtl] .md-typeset .admonition.success,[dir=rtl] .md-typeset details.check,[dir=rtl] .md-typeset details.done,[dir=rtl] .md-typeset details.success{border-right-color:#00c853}.md-typeset .admonition.check>.admonition-title,.md-typeset .admonition.check>summary,.md-typeset .admonition.done>.admonition-title,.md-typeset .admonition.done>summary,.md-typeset .admonition.success>.admonition-title,.md-typeset .admonition.success>summary,.md-typeset details.check>.admonition-title,.md-typeset details.check>summary,.md-typeset details.done>.admonition-title,.md-typeset details.done>summary,.md-typeset details.success>.admonition-title,.md-typeset details.success>summary{border-bottom-color:rgba(0,200,83,.1);background-color:rgba(0,200,83,.1)}.md-typeset .admonition.check>.admonition-title::before,.md-typeset .admonition.check>summary::before,.md-typeset .admonition.done>.admonition-title::before,.md-typeset .admonition.done>summary::before,.md-typeset .admonition.success>.admonition-title::before,.md-typeset .admonition.success>summary::before,.md-typeset details.check>.admonition-title::before,.md-typeset details.check>summary::before,.md-typeset details.done>.admonition-title::before,.md-typeset details.done>summary::before,.md-typeset details.success>.admonition-title::before,.md-typeset details.success>summary::before{color:#00c853;content:""}.md-typeset .admonition.faq,.md-typeset .admonition.help,.md-typeset .admonition.question,.md-typeset details.faq,.md-typeset details.help,.md-typeset details.question{border-left-color:#64dd17}[dir=rtl] .md-typeset .admonition.faq,[dir=rtl] .md-typeset .admonition.help,[dir=rtl] .md-typeset .admonition.question,[dir=rtl] .md-typeset details.faq,[dir=rtl] .md-typeset details.help,[dir=rtl] .md-typeset details.question{border-right-color:#64dd17}.md-typeset .admonition.faq>.admonition-title,.md-typeset .admonition.faq>summary,.md-typeset .admonition.help>.admonition-title,.md-typeset .admonition.help>summary,.md-typeset .admonition.question>.admonition-title,.md-typeset .admonition.question>summary,.md-typeset details.faq>.admonition-title,.md-typeset details.faq>summary,.md-typeset details.help>.admonition-title,.md-typeset details.help>summary,.md-typeset details.question>.admonition-title,.md-typeset details.question>summary{border-bottom-color:rgba(100,221,23,.1);background-color:rgba(100,221,23,.1)}.md-typeset .admonition.faq>.admonition-title::before,.md-typeset .admonition.faq>summary::before,.md-typeset .admonition.help>.admonition-title::before,.md-typeset .admonition.help>summary::before,.md-typeset .admonition.question>.admonition-title::before,.md-typeset .admonition.question>summary::before,.md-typeset details.faq>.admonition-title::before,.md-typeset details.faq>summary::before,.md-typeset details.help>.admonition-title::before,.md-typeset details.help>summary::before,.md-typeset details.question>.admonition-title::before,.md-typeset details.question>summary::before{color:#64dd17;content:""}.md-typeset .admonition.attention,.md-typeset .admonition.caution,.md-typeset .admonition.warning,.md-typeset details.attention,.md-typeset details.caution,.md-typeset details.warning{border-left-color:#ff9100}[dir=rtl] .md-typeset .admonition.attention,[dir=rtl] .md-typeset .admonition.caution,[dir=rtl] .md-typeset .admonition.warning,[dir=rtl] .md-typeset details.attention,[dir=rtl] .md-typeset details.caution,[dir=rtl] .md-typeset details.warning{border-right-color:#ff9100}.md-typeset .admonition.attention>.admonition-title,.md-typeset .admonition.attention>summary,.md-typeset .admonition.caution>.admonition-title,.md-typeset .admonition.caution>summary,.md-typeset .admonition.warning>.admonition-title,.md-typeset .admonition.warning>summary,.md-typeset details.attention>.admonition-title,.md-typeset details.attention>summary,.md-typeset details.caution>.admonition-title,.md-typeset details.caution>summary,.md-typeset details.warning>.admonition-title,.md-typeset details.warning>summary{border-bottom-color:rgba(255,145,0,.1);background-color:rgba(255,145,0,.1)}.md-typeset .admonition.attention>.admonition-title::before,.md-typeset .admonition.attention>summary::before,.md-typeset .admonition.caution>.admonition-title::before,.md-typeset .admonition.caution>summary::before,.md-typeset .admonition.warning>.admonition-title::before,.md-typeset .admonition.warning>summary::before,.md-typeset details.attention>.admonition-title::before,.md-typeset details.attention>summary::before,.md-typeset details.caution>.admonition-title::before,.md-typeset details.caution>summary::before,.md-typeset details.warning>.admonition-title::before,.md-typeset details.warning>summary::before{color:#ff9100;content:""}.md-typeset .admonition.fail,.md-typeset .admonition.failure,.md-typeset .admonition.missing,.md-typeset details.fail,.md-typeset details.failure,.md-typeset details.missing{border-left-color:#ff5252}[dir=rtl] .md-typeset .admonition.fail,[dir=rtl] .md-typeset .admonition.failure,[dir=rtl] .md-typeset .admonition.missing,[dir=rtl] .md-typeset details.fail,[dir=rtl] .md-typeset details.failure,[dir=rtl] .md-typeset details.missing{border-right-color:#ff5252}.md-typeset .admonition.fail>.admonition-title,.md-typeset .admonition.fail>summary,.md-typeset .admonition.failure>.admonition-title,.md-typeset .admonition.failure>summary,.md-typeset .admonition.missing>.admonition-title,.md-typeset .admonition.missing>summary,.md-typeset details.fail>.admonition-title,.md-typeset details.fail>summary,.md-typeset details.failure>.admonition-title,.md-typeset details.failure>summary,.md-typeset details.missing>.admonition-title,.md-typeset details.missing>summary{border-bottom-color:rgba(255,82,82,.1);background-color:rgba(255,82,82,.1)}.md-typeset .admonition.fail>.admonition-title::before,.md-typeset .admonition.fail>summary::before,.md-typeset .admonition.failure>.admonition-title::before,.md-typeset .admonition.failure>summary::before,.md-typeset .admonition.missing>.admonition-title::before,.md-typeset .admonition.missing>summary::before,.md-typeset details.fail>.admonition-title::before,.md-typeset details.fail>summary::before,.md-typeset details.failure>.admonition-title::before,.md-typeset details.failure>summary::before,.md-typeset details.missing>.admonition-title::before,.md-typeset details.missing>summary::before{color:#ff5252;content:""}.md-typeset .admonition.danger,.md-typeset .admonition.error,.md-typeset details.danger,.md-typeset details.error{border-left-color:#ff1744}[dir=rtl] .md-typeset .admonition.danger,[dir=rtl] .md-typeset .admonition.error,[dir=rtl] .md-typeset details.danger,[dir=rtl] .md-typeset details.error{border-right-color:#ff1744}.md-typeset .admonition.danger>.admonition-title,.md-typeset .admonition.danger>summary,.md-typeset .admonition.error>.admonition-title,.md-typeset .admonition.error>summary,.md-typeset details.danger>.admonition-title,.md-typeset details.danger>summary,.md-typeset details.error>.admonition-title,.md-typeset details.error>summary{border-bottom-color:rgba(255,23,68,.1);background-color:rgba(255,23,68,.1)}.md-typeset .admonition.danger>.admonition-title::before,.md-typeset .admonition.danger>summary::before,.md-typeset .admonition.error>.admonition-title::before,.md-typeset .admonition.error>summary::before,.md-typeset details.danger>.admonition-title::before,.md-typeset details.danger>summary::before,.md-typeset details.error>.admonition-title::before,.md-typeset details.error>summary::before{color:#ff1744;content:""}.md-typeset .admonition.bug,.md-typeset details.bug{border-left-color:#f50057}[dir=rtl] .md-typeset .admonition.bug,[dir=rtl] .md-typeset details.bug{border-right-color:#f50057}.md-typeset .admonition.bug>.admonition-title,.md-typeset .admonition.bug>summary,.md-typeset details.bug>.admonition-title,.md-typeset details.bug>summary{border-bottom-color:rgba(245,0,87,.1);background-color:rgba(245,0,87,.1)}.md-typeset .admonition.bug>.admonition-title::before,.md-typeset .admonition.bug>summary::before,.md-typeset details.bug>.admonition-title::before,.md-typeset details.bug>summary::before{color:#f50057;content:""}.md-typeset .admonition.example,.md-typeset details.example{border-left-color:#651fff}[dir=rtl] .md-typeset .admonition.example,[dir=rtl] .md-typeset details.example{border-right-color:#651fff}.md-typeset .admonition.example>.admonition-title,.md-typeset .admonition.example>summary,.md-typeset details.example>.admonition-title,.md-typeset details.example>summary{border-bottom-color:rgba(101,31,255,.1);background-color:rgba(101,31,255,.1)}.md-typeset .admonition.example>.admonition-title::before,.md-typeset .admonition.example>summary::before,.md-typeset details.example>.admonition-title::before,.md-typeset details.example>summary::before{color:#651fff;content:""}.md-typeset .admonition.cite,.md-typeset .admonition.quote,.md-typeset details.cite,.md-typeset details.quote{border-left-color:#9e9e9e}[dir=rtl] .md-typeset .admonition.cite,[dir=rtl] .md-typeset .admonition.quote,[dir=rtl] .md-typeset details.cite,[dir=rtl] .md-typeset details.quote{border-right-color:#9e9e9e}.md-typeset .admonition.cite>.admonition-title,.md-typeset .admonition.cite>summary,.md-typeset .admonition.quote>.admonition-title,.md-typeset .admonition.quote>summary,.md-typeset details.cite>.admonition-title,.md-typeset details.cite>summary,.md-typeset details.quote>.admonition-title,.md-typeset details.quote>summary{border-bottom-color:rgba(158,158,158,.1);background-color:rgba(158,158,158,.1)}.md-typeset .admonition.cite>.admonition-title::before,.md-typeset .admonition.cite>summary::before,.md-typeset .admonition.quote>.admonition-title::before,.md-typeset .admonition.quote>summary::before,.md-typeset details.cite>.admonition-title::before,.md-typeset details.cite>summary::before,.md-typeset details.quote>.admonition-title::before,.md-typeset details.quote>summary::before{color:#9e9e9e;content:""}.codehilite .o,.codehilite .ow,.md-typeset .highlight .o,.md-typeset .highlight .ow{color:inherit}.codehilite .ge,.md-typeset .highlight .ge{color:#000}.codehilite .gr,.md-typeset .highlight .gr{color:#a00}.codehilite .gh,.md-typeset .highlight .gh{color:#999}.codehilite .go,.md-typeset .highlight .go{color:#888}.codehilite .gp,.md-typeset .highlight .gp{color:#555}.codehilite .gs,.md-typeset .highlight .gs{color:inherit}.codehilite .gu,.md-typeset .highlight .gu{color:#aaa}.codehilite .gt,.md-typeset .highlight .gt{color:#a00}.codehilite .gd,.md-typeset .highlight .gd{background-color:#fdd}.codehilite .gi,.md-typeset .highlight .gi{background-color:#dfd}.codehilite .k,.md-typeset .highlight .k{color:#3b78e7}.codehilite .kc,.md-typeset .highlight .kc{color:#a71d5d}.codehilite .kd,.codehilite .kn,.md-typeset .highlight .kd,.md-typeset .highlight .kn{color:#3b78e7}.codehilite .kp,.md-typeset .highlight .kp{color:#a71d5d}.codehilite .kr,.codehilite .kt,.md-typeset .highlight .kr,.md-typeset .highlight .kt{color:#3e61a2}.codehilite .c,.codehilite .cm,.md-typeset .highlight .c,.md-typeset .highlight .cm{color:#999}.codehilite .cp,.md-typeset .highlight .cp{color:#666}.codehilite .c1,.codehilite .ch,.codehilite .cs,.md-typeset .highlight .c1,.md-typeset .highlight .ch,.md-typeset .highlight .cs{color:#999}.codehilite .na,.codehilite .nb,.md-typeset .highlight .na,.md-typeset .highlight .nb{color:#c2185b}.codehilite .bp,.md-typeset .highlight .bp{color:#3e61a2}.codehilite .nc,.md-typeset .highlight .nc{color:#c2185b}.codehilite .no,.md-typeset .highlight .no{color:#3e61a2}.codehilite .nd,.codehilite .ni,.md-typeset .highlight .nd,.md-typeset .highlight .ni{color:#666}.codehilite .ne,.codehilite .nf,.md-typeset .highlight .ne,.md-typeset .highlight .nf{color:#c2185b}.codehilite .nl,.md-typeset .highlight .nl{color:#3b5179}.codehilite .nn,.md-typeset .highlight .nn{color:#ec407a}.codehilite .nt,.md-typeset .highlight .nt{color:#3b78e7}.codehilite .nv,.codehilite .vc,.codehilite .vg,.codehilite .vi,.md-typeset .highlight .nv,.md-typeset .highlight .vc,.md-typeset .highlight .vg,.md-typeset .highlight .vi{color:#3e61a2}.codehilite .nx,.md-typeset .highlight .nx{color:#ec407a}.codehilite .il,.codehilite .m,.codehilite .mf,.codehilite .mh,.codehilite .mi,.codehilite .mo,.md-typeset .highlight .il,.md-typeset .highlight .m,.md-typeset .highlight .mf,.md-typeset .highlight .mh,.md-typeset .highlight .mi,.md-typeset .highlight .mo{color:#e74c3c}.codehilite .s,.codehilite .sb,.codehilite .sc,.md-typeset .highlight .s,.md-typeset .highlight .sb,.md-typeset .highlight .sc{color:#0d904f}.codehilite .sd,.md-typeset .highlight .sd{color:#999}.codehilite .s2,.md-typeset .highlight .s2{color:#0d904f}.codehilite .se,.codehilite .sh,.codehilite .si,.codehilite .sx,.md-typeset .highlight .se,.md-typeset .highlight .sh,.md-typeset .highlight .si,.md-typeset .highlight .sx{color:#183691}.codehilite .sr,.md-typeset .highlight .sr{color:#009926}.codehilite .s1,.codehilite .ss,.md-typeset .highlight .s1,.md-typeset .highlight .ss{color:#0d904f}.codehilite .err,.md-typeset .highlight .err{color:#a61717}.codehilite .w,.md-typeset .highlight .w{color:transparent}.codehilite .hll,.md-typeset .highlight .hll{display:block;margin:0 -.6rem;padding:0 .6rem;background-color:rgba(255,235,59,.5)}.md-typeset .codehilite,.md-typeset .highlight{position:relative;margin:1em 0;padding:0;border-radius:.1rem;background-color:rgba(236,236,236,.5);color:#37474f;line-height:1.4;-webkit-overflow-scrolling:touch}.md-typeset .codehilite code,.md-typeset .codehilite pre,.md-typeset .highlight code,.md-typeset .highlight pre{display:block;margin:0;padding:.525rem .6rem;background-color:transparent;overflow:auto}.md-typeset pre.codehilite,.md-typeset pre.highlight{overflow:visible}.md-typeset pre.codehilite code,.md-typeset pre.highlight code{display:block;padding:.525rem .6rem;overflow:auto}.md-typeset .codehilitetable,.md-typeset .highlighttable{display:block;margin:1em 0;border-radius:.2em;font-size:.8rem;overflow:hidden}.md-typeset .codehilitetable tbody,.md-typeset .codehilitetable td,.md-typeset .highlighttable tbody,.md-typeset .highlighttable td{display:block;padding:0}.md-typeset .codehilitetable tr,.md-typeset .highlighttable tr{display:-webkit-box;display:flex}.md-typeset .codehilitetable .codehilite,.md-typeset .codehilitetable .highlight,.md-typeset .codehilitetable .linenodiv,.md-typeset .highlighttable .codehilite,.md-typeset .highlighttable .highlight,.md-typeset .highlighttable .linenodiv{margin:0;border-radius:0}.md-typeset .codehilitetable .linenodiv,.md-typeset .highlighttable .linenodiv{padding:.525rem .6rem}.md-typeset .codehilitetable .linenos,.md-typeset .highlighttable .linenos{background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.26);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-typeset .codehilitetable .linenos pre,.md-typeset .highlighttable .linenos pre{margin:0;padding:0;background-color:transparent;color:inherit;text-align:right}.md-typeset .codehilitetable .code,.md-typeset .highlighttable .code{-webkit-box-flex:1;flex:1;overflow:hidden}.md-typeset>.codehilitetable,.md-typeset>.highlighttable{box-shadow:none}.md-typeset [id^="fnref:"]{display:inline-block}.md-typeset [id^="fnref:"]:target{margin-top:-3.8rem;padding-top:3.8rem;pointer-events:none}.md-typeset [id^="fn:"]::before{display:none;height:0;content:""}.md-typeset [id^="fn:"]:target::before{display:block;margin-top:-3.5rem;padding-top:3.5rem;pointer-events:none}.md-typeset .footnote{color:rgba(0,0,0,.54);font-size:.64rem}.md-typeset .footnote ol{margin-left:0}.md-typeset .footnote li{-webkit-transition:color .25s;transition:color .25s}.md-typeset .footnote li:target{color:rgba(0,0,0,.87)}.md-typeset .footnote li :first-child{margin-top:0}.md-typeset .footnote li:hover .footnote-backref,.md-typeset .footnote li:target .footnote-backref{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}.md-typeset .footnote li:hover .footnote-backref:hover,.md-typeset .footnote li:target .footnote-backref{color:#536dfe}.md-typeset .footnote-ref{display:inline-block;pointer-events:initial}.md-typeset .footnote-ref::before{display:inline;margin:0 .2em;border-left:.05rem solid rgba(0,0,0,.26);font-size:1.25em;content:"";vertical-align:-.25rem}.md-typeset .footnote-backref{display:inline-block;-webkit-transform:translateX(.25rem);transform:translateX(.25rem);-webkit-transition:color .25s,opacity .125s .125s,-webkit-transform .25s .125s;transition:transform .25s .125s,color .25s,opacity .125s .125s;transition:transform .25s .125s,color .25s,opacity .125s .125s,-webkit-transform .25s .125s;color:rgba(0,0,0,.26);font-size:0;opacity:0;vertical-align:text-bottom}[dir=rtl] .md-typeset .footnote-backref{-webkit-transform:translateX(-.25rem);transform:translateX(-.25rem)}.md-typeset .footnote-backref::before{display:inline-block;font-size:.8rem;content:"\E31B"}[dir=rtl] .md-typeset .footnote-backref::before{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.md-typeset .headerlink{display:inline-block;margin-left:.5rem;-webkit-transform:translate(0,.25rem);transform:translate(0,.25rem);-webkit-transition:color .25s,opacity .125s .25s,-webkit-transform .25s .25s;transition:transform .25s .25s,color .25s,opacity .125s .25s;transition:transform .25s .25s,color .25s,opacity .125s .25s,-webkit-transform .25s .25s;opacity:0}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem;margin-left:initial}html body .md-typeset .headerlink{color:rgba(0,0,0,.26)}.md-typeset h1[id]::before,.md-typeset h2[id]::before,.md-typeset h3[id]::before{display:block;margin-top:-8px;padding-top:8px;content:""}.md-typeset h1[id]:target::before,.md-typeset h2[id]:target::before,.md-typeset h3[id]:target::before{margin-top:-3.4rem;padding-top:3.4rem}.md-typeset h1[id] .headerlink:focus,.md-typeset h1[id]:hover .headerlink,.md-typeset h1[id]:target .headerlink{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1}.md-typeset h1[id] .headerlink:focus,.md-typeset h1[id]:hover .headerlink:hover,.md-typeset h1[id]:target .headerlink{color:#536dfe}.md-typeset h2[id] .headerlink:focus,.md-typeset h2[id]:hover .headerlink,.md-typeset h2[id]:target .headerlink{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1}.md-typeset h2[id] .headerlink:focus,.md-typeset h2[id]:hover .headerlink:hover,.md-typeset h2[id]:target .headerlink{color:#536dfe}.md-typeset h3[id] .headerlink:focus,.md-typeset h3[id]:hover .headerlink,.md-typeset h3[id]:target .headerlink{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1}.md-typeset h3[id] .headerlink:focus,.md-typeset h3[id]:hover .headerlink:hover,.md-typeset h3[id]:target .headerlink{color:#536dfe}.md-typeset h4[id]::before{display:block;margin-top:-9px;padding-top:9px;content:""}.md-typeset h4[id]:target::before{margin-top:-3.45rem;padding-top:3.45rem}.md-typeset h4[id] .headerlink:focus,.md-typeset h4[id]:hover .headerlink,.md-typeset h4[id]:target .headerlink{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1}.md-typeset h4[id] .headerlink:focus,.md-typeset h4[id]:hover .headerlink:hover,.md-typeset h4[id]:target .headerlink{color:#536dfe}.md-typeset h5[id]::before,.md-typeset h6[id]::before{display:block;margin-top:-11px;padding-top:11px;content:""}.md-typeset h5[id]:target::before,.md-typeset h6[id]:target::before{margin-top:-3.55rem;padding-top:3.55rem}.md-typeset h5[id] .headerlink:focus,.md-typeset h5[id]:hover .headerlink,.md-typeset h5[id]:target .headerlink{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1}.md-typeset h5[id] .headerlink:focus,.md-typeset h5[id]:hover .headerlink:hover,.md-typeset h5[id]:target .headerlink{color:#536dfe}.md-typeset h6[id] .headerlink:focus,.md-typeset h6[id]:hover .headerlink,.md-typeset h6[id]:target .headerlink{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1}.md-typeset h6[id] .headerlink:focus,.md-typeset h6[id]:hover .headerlink:hover,.md-typeset h6[id]:target .headerlink{color:#536dfe}.md-typeset .MJXc-display{margin:.75em 0;padding:.75em 0;overflow:auto;-webkit-overflow-scrolling:touch}.md-typeset .MathJax_CHTML{outline:0}.md-typeset .critic.comment,.md-typeset del.critic,.md-typeset ins.critic{margin:0 .25em;padding:.0625em 0;border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset del.critic{background-color:#fdd;box-shadow:.25em 0 0 #fdd,-.25em 0 0 #fdd}.md-typeset ins.critic{background-color:#dfd;box-shadow:.25em 0 0 #dfd,-.25em 0 0 #dfd}.md-typeset .critic.comment{background-color:rgba(236,236,236,.5);color:#37474f;box-shadow:.25em 0 0 rgba(236,236,236,.5),-.25em 0 0 rgba(236,236,236,.5)}.md-typeset .critic.comment::before{padding-right:.125em;color:rgba(0,0,0,.26);content:"\E0B7";vertical-align:-.125em}.md-typeset .critic.block{display:block;margin:1em 0;padding-right:.8rem;padding-left:.8rem;box-shadow:none}.md-typeset .critic.block :first-child{margin-top:.5em}.md-typeset .critic.block :last-child{margin-bottom:.5em}.md-typeset details{display:block;padding-top:0}.md-typeset details[open]>summary::after{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.md-typeset details:not([open]){padding-bottom:0}.md-typeset details:not([open])>summary{border-bottom:none}.md-typeset details summary{position:relative;padding-right:2rem}[dir=rtl] .md-typeset details summary{padding-left:2rem}.no-details .md-typeset details:not([open])>*{display:none}.no-details .md-typeset details:not([open]) summary{display:block}.md-typeset summary{display:block;outline:0;cursor:pointer}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset summary::after{position:absolute;top:.4rem;right:.6rem;color:rgba(0,0,0,.26);font-size:1rem;content:"\E313"}[dir=rtl] .md-typeset summary::after{right:initial;left:.6rem}.md-typeset .emojione,.md-typeset .gemoji,.md-typeset .twemoji{width:1rem;vertical-align:text-top}.md-typeset code.codehilite,.md-typeset code.highlight{margin:0 .29412em;padding:.07353em 0}.md-typeset .superfences-content{display:none;-webkit-box-ordinal-group:100;order:99;width:100%;background-color:#fff}.md-typeset .superfences-content>*{margin:0;border-radius:0}.md-typeset .superfences-tabs{display:-webkit-box;display:flex;position:relative;flex-wrap:wrap;margin:1em 0;border:.05rem solid rgba(0,0,0,.07);border-radius:.2em}.md-typeset .superfences-tabs>input:checked+label{font-weight:700}.md-typeset .superfences-tabs>input:checked+label+.superfences-content{display:block}.md-typeset .superfences-tabs>label{width:auto;padding:.6rem;-webkit-transition:color .125s;transition:color .125s;font-size:.64rem;cursor:pointer}html .md-typeset .superfences-tabs>label:hover{color:#536dfe}.md-typeset .task-list-item{position:relative;list-style-type:none}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em;left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em;left:initial}.md-typeset .task-list-control .task-list-indicator::before{position:absolute;top:.15em;left:-1.25em;color:rgba(0,0,0,.26);font-size:1.25em;content:"\E835";vertical-align:-.25em}[dir=rtl] .md-typeset .task-list-control .task-list-indicator::before{right:-1.25em;left:initial}.md-typeset .task-list-control [type=checkbox]:checked+.task-list-indicator::before{content:"\E834"}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}@media print{.md-typeset a::after{color:rgba(0,0,0,.54);content:" [" attr(href) "]"}.md-typeset code,.md-typeset pre{white-space:pre-wrap}.md-typeset code{box-shadow:none;-webkit-box-decoration-break:initial;box-decoration-break:initial}.md-clipboard,.md-content__icon,.md-footer,.md-header,.md-sidebar,.md-tabs,.md-typeset .headerlink{display:none}}@media only screen and (max-width:44.9375em){.md-typeset pre{margin:1em -.8rem;border-radius:0}.md-typeset pre>code,.md-typeset>.codehilite code,.md-typeset>.codehilite pre,.md-typeset>.highlight code,.md-typeset>.highlight pre,.md-typeset>.superfences-tabs code,.md-typeset>.superfences-tabs pre{padding:.525rem .8rem}.md-footer-nav__link--prev .md-footer-nav__title{display:none}.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}.codehilite .hll,.md-typeset .highlight .hll{margin:0 -.8rem;padding:0 .8rem}.md-typeset>.codehilite,.md-typeset>.codehilitetable,.md-typeset>.highlight,.md-typeset>.highlighttable,.md-typeset>.superfences-tabs{margin:1em -.8rem;border-radius:0}.md-typeset>.codehilitetable .codehilite>code,.md-typeset>.codehilitetable .codehilite>pre,.md-typeset>.codehilitetable .highlight>code,.md-typeset>.codehilitetable .highlight>pre,.md-typeset>.codehilitetable .linenodiv,.md-typeset>.highlighttable .codehilite>code,.md-typeset>.highlighttable .codehilite>pre,.md-typeset>.highlighttable .highlight>code,.md-typeset>.highlighttable .highlight>pre,.md-typeset>.highlighttable .linenodiv{padding:.5rem .8rem}.md-typeset>p>.MJXc-display{margin:.75em -.8rem;padding:.25em .8rem}.md-typeset>.superfences-tabs{border:0;border-top:.05rem solid rgba(0,0,0,.07)}}@media only screen and (min-width:100em){html{font-size:137.5%}}@media only screen and (min-width:125em){html{font-size:150%}}@media only screen and (max-width:59.9375em){body[data-md-state=lock]{overflow:hidden}.ios body[data-md-state=lock] .md-container,.md-search-result__article--document::before,html .md-nav__link[for=__toc]+.md-nav__link{display:none}html .md-nav__link[for=__toc]{display:block;padding-right:2.4rem}html .md-nav__link[for=__toc]::after{color:inherit;content:"\E8DE"}html .md-nav__link[for=__toc]~.md-nav{display:-webkit-box;display:flex}html [dir=rtl] .md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav__source{display:block;padding:0 .2rem;background-color:rgba(50,64,144,.9675);color:#fff}.md-search__overlay{position:absolute;top:.2rem;left:.2rem;width:1.8rem;height:1.8rem;-webkit-transform-origin:center;transform-origin:center;-webkit-transition:opacity .2s .2s,-webkit-transform .3s .1s;transition:transform .3s .1s,opacity .2s .2s;transition:transform .3s .1s,opacity .2s .2s,-webkit-transform .3s .1s;border-radius:1rem;background-color:#fff;overflow:hidden;pointer-events:none}[dir=rtl] .md-search__overlay{right:.2rem;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transition:opacity .1s,-webkit-transform .4s;transition:transform .4s,opacity .1s;transition:transform .4s,opacity .1s,-webkit-transform .4s;opacity:1}.md-search__inner{position:fixed;top:0;left:100%;width:100%;height:100%;-webkit-transform:translateX(5%);transform:translateX(5%);-webkit-transition:right 0s .3s,left 0s .3s,opacity .15s .15s,-webkit-transform .15s .15s cubic-bezier(.4,0,.2,1);transition:right 0s .3s,left 0s .3s,transform .15s .15s cubic-bezier(.4,0,.2,1),opacity .15s .15s;transition:right 0s .3s,left 0s .3s,transform .15s .15s cubic-bezier(.4,0,.2,1),opacity .15s .15s,-webkit-transform .15s .15s cubic-bezier(.4,0,.2,1);opacity:0;z-index:2}[data-md-toggle=search]:checked~.md-header .md-search__inner{left:0;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:right 0s 0s,left 0s 0s,opacity .15s .15s,-webkit-transform .15s .15s cubic-bezier(.1,.7,.1,1);transition:right 0s 0s,left 0s 0s,transform .15s .15s cubic-bezier(.1,.7,.1,1),opacity .15s .15s;transition:right 0s 0s,left 0s 0s,transform .15s .15s cubic-bezier(.1,.7,.1,1),opacity .15s .15s,-webkit-transform .15s .15s cubic-bezier(.1,.7,.1,1);opacity:1}[dir=rtl] [data-md-toggle=search]:checked~.md-header .md-search__inner{right:0;left:initial}html [dir=rtl] .md-search__inner{right:100%;left:initial;-webkit-transform:translateX(-5%);transform:translateX(-5%)}.md-search__input{width:100%;height:2.4rem;font-size:.9rem}.md-search__icon[for=__search]{top:.6rem;left:.8rem}.md-search__icon[for=__search][for=__search]::before{content:"\E5C4"}[dir=rtl] .md-search__icon[for=__search][for=__search]::before{content:"\E5C8"}.md-search__icon[type=reset]{top:.6rem;right:.8rem}.md-search__output{top:2.4rem;bottom:0}}@media only screen and (max-width:76.1875em){[data-md-toggle=drawer]:checked~.md-overlay{width:100%;height:100%;-webkit-transition:width 0s,height 0s,opacity .25s;transition:width 0s,height 0s,opacity .25s;opacity:1}.md-header-nav__button.md-icon--home,.md-header-nav__button.md-logo{display:none}.md-hero__inner{margin-top:2.4rem;margin-bottom:1.2rem}.md-nav{background-color:#fff}.md-nav--primary,.md-nav--primary .md-nav{display:-webkit-box;display:flex;position:absolute;top:0;right:0;left:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;height:100%;z-index:1}.md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{font-size:.8rem;line-height:1.5}html .md-nav--primary .md-nav__title{position:relative;height:5.6rem;padding:3rem .8rem .2rem;background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.54);font-weight:400;line-height:2.4rem;white-space:nowrap;cursor:pointer}html .md-nav--primary .md-nav__title::before{display:block;position:absolute;top:.2rem;left:.2rem;width:2rem;height:2rem;color:rgba(0,0,0,.54)}html .md-nav--primary .md-nav__title~.md-nav__list{background-color:#fff;box-shadow:0 .05rem 0 rgba(0,0,0,.07) inset}html .md-nav--primary .md-nav__title~.md-nav__list>.md-nav__item:first-child{border-top:0}html .md-nav--primary .md-nav__title--site{position:relative;background-color:#3f51b5;color:#fff}html .md-nav--primary .md-nav__title--site .md-nav__button{display:block;position:absolute;top:.2rem;left:.2rem;width:3.2rem;height:3.2rem;font-size:2.4rem}html .md-nav--primary .md-nav__title--site::before{display:none}html [dir=rtl] .md-nav--primary .md-nav__title--site .md-nav__button,html [dir=rtl] .md-nav--primary .md-nav__title::before{right:.2rem;left:initial}.md-nav--primary .md-nav__list{-webkit-box-flex:1;flex:1;overflow-y:auto}.md-nav--primary .md-nav__item{padding:0;border-top:.05rem solid rgba(0,0,0,.07)}[dir=rtl] .md-nav--primary .md-nav__item{padding:0}.md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:2.4rem}[dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav--primary .md-nav__item--nested>.md-nav__link::after{content:"\E315"}[dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link::after{content:"\E314"}.md-nav--primary .md-nav__link{position:relative;margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link::after{position:absolute;top:50%;right:.6rem;margin-top:-.6rem;color:inherit;font-size:1.2rem}[dir=rtl] .md-nav--primary .md-nav__link::after{right:initial;left:.6rem}.md-nav--primary .md-nav--secondary .md-nav__link{position:static}.md-nav--primary .md-nav--secondary .md-nav{position:static;background-color:transparent}.md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem;padding-left:initial}.md-nav__toggle~.md-nav{display:-webkit-box;display:flex;-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transition:opacity .125s .05s,-webkit-transform .25s cubic-bezier(.8,0,.6,1);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity .125s .05s;transition:transform .25s cubic-bezier(.8,0,.6,1),opacity .125s .05s,-webkit-transform .25s cubic-bezier(.8,0,.6,1);opacity:0}[dir=rtl] .md-nav__toggle~.md-nav{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.no-csstransforms3d .md-nav__toggle~.md-nav{display:none}.md-nav__toggle:checked~.md-nav{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:opacity .125s .125s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .125s .125s;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .125s .125s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);opacity:1}.no-csstransforms3d .md-nav__toggle:checked~.md-nav{display:-webkit-box;display:flex}.md-sidebar--primary{position:fixed;top:0;left:-12.1rem;width:12.1rem;height:100%;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:box-shadow .25s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);background-color:#fff;z-index:3}[dir=rtl] .md-sidebar--primary{right:-12.1rem;left:initial}.md-tabs,.no-csstransforms3d .md-sidebar--primary{display:none}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4);-webkit-transform:translateX(12.1rem);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{-webkit-transform:translateX(-12.1rem);transform:translateX(-12.1rem)}.no-csstransforms3d [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{display:block}.md-sidebar--primary .md-sidebar__scrollwrap{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;margin:0}}@media only screen and (min-width:60em){.md-content{margin-right:12.1rem}[dir=rtl] .md-content{margin-right:initial;margin-left:12.1rem}.md-header-nav__button.md-icon--search{display:none}.md-header-nav__source{display:block;width:11.7rem;max-width:11.7rem;padding-right:.6rem}[dir=rtl] .md-header-nav__source{padding-right:initial;padding-left:.6rem}.md-search{padding:.2rem}.md-search__overlay{position:fixed;top:0;left:0;width:0;height:0;-webkit-transition:width 0s .25s,height 0s .25s,opacity .25s;transition:width 0s .25s,height 0s .25s,opacity .25s;background-color:rgba(0,0,0,.54);cursor:pointer}[dir=rtl] .md-search__overlay{right:0;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{width:100%;height:100%;-webkit-transition:width 0s,height 0s,opacity .25s;transition:width 0s,height 0s,opacity .25s;opacity:1}.md-search__inner{position:relative;width:11.5rem;margin-right:.8rem;padding:.1rem 0;float:right;-webkit-transition:width .25s cubic-bezier(.1,.7,.1,1);transition:width .25s cubic-bezier(.1,.7,.1,1)}[dir=rtl] .md-search__inner{margin-right:initial;margin-left:.8rem;float:left}.md-search__form,.md-search__input{border-radius:.1rem}.md-search__input{width:100%;height:1.8rem;padding-left:2.2rem;-webkit-transition:background-color .25s cubic-bezier(.1,.7,.1,1),color .25s cubic-bezier(.1,.7,.1,1);transition:background-color .25s cubic-bezier(.1,.7,.1,1),color .25s cubic-bezier(.1,.7,.1,1);background-color:rgba(0,0,0,.26);color:inherit;font-size:.8rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input+.md-search__icon{color:inherit}.md-search__input::-webkit-input-placeholder{color:rgba(255,255,255,.7)}.md-search__input::-moz-placeholder{color:rgba(255,255,255,.7)}.md-search__input:-ms-input-placeholder,.md-search__input::-ms-input-placeholder{color:rgba(255,255,255,.7)}.md-search__input::placeholder{color:rgba(255,255,255,.7)}.md-search__input:hover{background-color:rgba(255,255,255,.12)}[data-md-toggle=search]:checked~.md-header .md-search__input{border-radius:.1rem .1rem 0 0;background-color:#fff;color:rgba(0,0,0,.87);text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input::-webkit-input-placeholder{color:rgba(0,0,0,.54)}[data-md-toggle=search]:checked~.md-header .md-search__input::-moz-placeholder{color:rgba(0,0,0,.54)}[data-md-toggle=search]:checked~.md-header .md-search__input:-ms-input-placeholder,[data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{color:rgba(0,0,0,.54)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:rgba(0,0,0,.54)}.md-search__output{top:1.9rem;-webkit-transition:opacity .4s;transition:opacity .4s;opacity:0}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4);opacity:1}.md-search__scrollwrap{max-height:0}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#536dfe}.md-search-result__article,.md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem;padding-left:initial}[dir=rtl] .md-search-result__article{padding-right:2.2rem;padding-left:.8rem}.md-sidebar--secondary{display:block;margin-left:calc(100% - 12.1rem)}[dir=rtl] .md-sidebar--secondary{margin-right:calc(100% - 12.1rem);margin-left:initial}.md-sidebar--secondary .md-sidebar__scrollwrap{-webkit-overflow-scrolling:touch}}@media only screen and (min-width:76.25em){.md-content{margin-left:12.1rem}[dir=rtl] .md-content{margin-right:12.1rem}.md-content__inner{margin-right:1.2rem;margin-left:1.2rem}.md-header-nav__button.md-icon--menu,.no-js .md-nav__toggle~.md-nav{display:none}.md-nav{-webkit-transition:max-height .25s cubic-bezier(.86,0,.07,1);transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav__toggle~.md-nav{max-height:0;overflow:hidden}.md-nav__toggle:checked~.md-nav{max-height:100%}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--nested>.md-nav__link::after{display:inline-block;-webkit-transform-origin:.45em .45em;transform-origin:.45em .45em;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;vertical-align:-.125em}.js .md-nav__item--nested>.md-nav__link::after{-webkit-transition:-webkit-transform .4s;transition:transform .4s;transition:transform .4s,-webkit-transform .4s}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link::after{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.md-search__inner{margin-right:1.2rem}[dir=rtl] .md-search__inner{margin-left:1.2rem}[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}.md-search__scrollwrap{width:34.4rem}.md-sidebar--secondary{margin-left:48.9rem}[dir=rtl] .md-sidebar--secondary{margin-right:48.9rem;margin-left:initial}.md-tabs~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{font-size:0;visibility:hidden}.md-tabs--active~.md-main .md-nav--primary .md-nav__title{display:block;padding:0}.md-tabs--active~.md-main .md-nav--primary .md-nav__title--site,.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested>.md-nav__link{display:none}.no-js .md-tabs--active~.md-main .md-nav--primary .md-nav{display:block}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item{font-size:0;visibility:hidden}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{display:none;font-size:.7rem;overflow:auto;visibility:visible}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active{display:block}.md-tabs--active~.md-main .md-nav[data-md-level="1"]{max-height:initial;overflow:visible}.md-tabs--active~.md-main .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-left:0}.md-tabs--active~.md-main .md-nav[data-md-level="1"] .md-nav .md-nav__title{display:none}}@media only screen and (min-width:45em){.md-footer-nav__link{width:50%}.md-footer-copyright{max-width:75%;float:left}[dir=rtl] .md-footer-copyright{float:right}.md-footer-social{padding:.6rem 0;float:right}[dir=rtl] .md-footer-social{float:left}}@media only screen and (max-width:29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transform:scale(45);transform:scale(45)}}@media only screen and (min-width:30em) and (max-width:44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transform:scale(60);transform:scale(60)}}@media only screen and (min-width:45em) and (max-width:59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transform:scale(75);transform:scale(75)}}@media only screen and (min-width:60em) and (max-width:76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}.md-search__scrollwrap{width:23.4rem}.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{-webkit-transform:translateZ(0);transform:translateZ(0)}} +@charset "UTF-8";@-webkit-keyframes md-source__facts--done{0%{height:0}to{height:.65rem}}@keyframes md-source__facts--done{0%{height:0}to{height:.65rem}}@-webkit-keyframes md-source__fact--done{0%{-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}50%{opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes md-source__fact--done{0%{-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}50%{opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}html{box-sizing:border-box;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;min-height:100%;background-color:#fff;font-size:125%;overflow-x:hidden}*,::after,::before{box-sizing:inherit}body{margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,hr{padding:0;border:0}hr{overflow:visible;box-sizing:content-box;display:block;height:.05rem}a{-webkit-text-decoration-skip:objects;color:inherit;text-decoration:none}a,button,input,label{-webkit-tap-highlight-color:transparent}small,sub,sup{font-size:80%}sub,sup{position:relative;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}table{border-collapse:separate;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{margin:0;background:0 0;font-size:inherit}input{border:0;outline:0}.md-icon,.md-nav__button,.md-nav__link::after,.md-nav__title::before,.md-search-result__article--document::before,.md-source-file::before,.md-typeset .admonition>.admonition-title::before,.md-typeset .admonition>summary::before,.md-typeset .critic.comment::before,.md-typeset .footnote-backref,.md-typeset .task-list-control .task-list-indicator::before,.md-typeset details>.admonition-title::before,.md-typeset details>summary::before,.md-typeset summary::after{font-family:"Material Icons";font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr}.md-content__icon{display:inline-block;width:2rem;padding:.4rem;font-size:1.2rem;cursor:pointer}.md-footer-nav__button,.md-header-nav__button,.md-nav__button{margin:.2rem}.md-nav__title::before{width:2rem;margin:.2rem;padding:.4rem;font-size:1.2rem;cursor:pointer}.md-footer-nav__button,.md-header-nav__button,.md-nav__button,.md-search-result__article--document::before{display:inline-block;width:2rem;padding:.4rem;font-size:1.2rem;cursor:pointer}.md-icon--arrow-back::before{content:""}.md-icon--arrow-forward::before,[dir=rtl] .md-icon--arrow-back::before{content:""}.md-icon--menu::before{content:""}.md-icon--search::before{content:""}[dir=rtl] .md-icon--arrow-forward::before{content:""}body,code,input,kbd,pre{color:rgba(0,0,0,.87);font-feature-settings:"kern","liga";font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-feature-settings:"kern";font-family:"Courier New",Courier,monospace}.md-typeset{font-size:.8rem;line-height:1.6;-webkit-print-color-adjust:exact}.md-typeset blockquote,.md-typeset ol,.md-typeset p,.md-typeset ul{margin:1em 0}.md-typeset h1{margin:0 0 2rem;color:rgba(0,0,0,.54);font-size:1.5625rem;font-weight:300;letter-spacing:-.01em;line-height:1.3}.md-typeset h2,.md-typeset h3{margin:2rem 0 .8rem;font-size:1.25rem;font-weight:300;letter-spacing:-.01em;line-height:1.4}.md-typeset h3{margin:1.6rem 0 .8rem;font-size:1rem;font-weight:400;line-height:1.5}.md-typeset h2+h3{margin-top:.8rem}.md-typeset h4,.md-typeset h5,.md-typeset h6{margin:.8rem 0;font-size:.8rem;font-weight:700;letter-spacing:-.01em}.md-typeset h5,.md-typeset h6{color:rgba(0,0,0,.54);font-size:.64rem}.md-typeset h5{text-transform:uppercase}.md-typeset hr{margin:1.5em 0;border-bottom:.05rem dotted rgba(0,0,0,.26)}.md-typeset a{color:#3f51b5;word-break:break-word}.md-typeset a,.md-typeset a::before{-webkit-transition:color .125s;transition:color .125s}.md-typeset a:active,.md-typeset a:hover{color:#536dfe}.md-typeset code,.md-typeset pre{background-color:rgba(236,236,236,.5);color:#37474f;font-size:85%;direction:ltr}.md-typeset code{margin:0 .29412em;padding:.07353em 0;border-radius:.1rem;box-shadow:.29412em 0 0 rgba(236,236,236,.5),-.29412em 0 0 rgba(236,236,236,.5);word-break:break-word;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset h1 code,.md-typeset h2 code,.md-typeset h3 code,.md-typeset h4 code,.md-typeset h5 code,.md-typeset h6 code{margin:0;background-color:transparent;box-shadow:none}.md-typeset a>code{margin:inherit;padding:inherit;border-radius:initial;background-color:inherit;color:inherit;box-shadow:none}.md-typeset pre{position:relative;margin:1em 0;border-radius:.1rem;line-height:1.4;-webkit-overflow-scrolling:touch}.md-typeset pre>code{display:block;margin:0;padding:.525rem .6rem;background-color:transparent;font-size:inherit;box-shadow:none;-webkit-box-decoration-break:slice;box-decoration-break:slice;overflow:auto}.md-typeset pre>code::-webkit-scrollbar{width:.2rem;height:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:#536dfe}.md-typeset kbd{padding:0 .29412em;border:.05rem solid #c9c9c9;border-radius:.15rem;border-bottom-color:#bcbcbc;background-color:#fcfcfc;color:#555;font-size:85%;box-shadow:0 .05rem 0 #b0b0b0;word-break:break-word}.md-typeset mark{margin:0 .25em;padding:.0625em 0;border-radius:.1rem;background-color:rgba(255,235,59,.5);box-shadow:.25em 0 0 rgba(255,235,59,.5),-.25em 0 0 rgba(255,235,59,.5);word-break:break-word;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset abbr{border-bottom:.05rem dotted rgba(0,0,0,.54);text-decoration:none;cursor:help}.md-typeset small{opacity:.75}.md-typeset sub,.md-typeset sup{margin-left:.07812em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.07812em;margin-left:initial}.md-typeset blockquote{padding-left:.6rem;border-left:.2rem solid rgba(0,0,0,.26);color:rgba(0,0,0,.54)}[dir=rtl] .md-typeset blockquote{padding-right:.6rem;padding-left:initial;border-right:.2rem solid rgba(0,0,0,.26);border-left:initial}.md-typeset ul{list-style-type:disc}.md-typeset ol,.md-typeset ul{margin-left:.625em;padding:0}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{margin-right:.625em;margin-left:initial}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em;margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em;margin-left:initial}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin:.5em 0 .5em .625em}.md-typeset dd{margin:1em 0 1em 1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em;margin-left:initial}.md-typeset iframe,.md-typeset img,.md-typeset svg{max-width:100%}.md-typeset table:not([class]){box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);display:inline-block;max-width:100%;border-radius:.1rem;font-size:.64rem;overflow:auto;-webkit-overflow-scrolling:touch}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.md-typeset table:not([class]) th{min-width:5rem;padding:.6rem .8rem;background-color:rgba(0,0,0,.54);color:#fff;vertical-align:top}.md-typeset table:not([class]) td{padding:.6rem .8rem;border-top:.05rem solid rgba(0,0,0,.07);vertical-align:top}.md-typeset table:not([class]) tr{-webkit-transition:background-color .125s;transition:background-color .125s}.md-typeset table:not([class]) tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 #fff inset}.md-typeset table:not([class]) tr:first-child td{border-top:0}.md-typeset table:not([class]) a{word-break:normal}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.md-typeset .md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}.md-typeset .md-typeset__table table{display:table;width:100%;margin:0;overflow:hidden}body{position:relative;min-height:100%;font-size:.5rem}.md-grid{max-width:61rem;margin-right:auto;margin-left:auto}.md-container,.md-main{overflow:auto}.md-container{display:table;width:100%;height:100%;table-layout:fixed}.md-main{display:table-row;height:100%}.md-main__inner{height:100%;padding-top:1.5rem;padding-bottom:.05rem}.md-toggle{display:none}.md-overlay{position:fixed;top:0;width:0;height:0;-webkit-transition:width 0s .25s,height 0s .25s,opacity .25s;transition:width 0s .25s,height 0s .25s,opacity .25s;background-color:rgba(0,0,0,.54);opacity:0;z-index:3}.md-flex{display:table}.md-flex__cell{display:table-cell;position:relative;vertical-align:top}.md-flex__cell--shrink{width:0%}.md-flex__cell--stretch{display:table;width:100%;table-layout:fixed}.md-flex__ellipsis{display:table-cell;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-skip{position:fixed;width:.05rem;height:.05rem;margin:.5rem;padding:.3rem .5rem;-webkit-transform:translateY(.4rem);transform:translateY(.4rem);border-radius:.1rem;background-color:rgba(0,0,0,.87);color:#fff;font-size:.64rem;opacity:0;overflow:hidden}.md-skip:focus{width:auto;height:auto;clip:auto;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:opacity .175s .075s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .175s .075s;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .175s .075s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);opacity:1;z-index:10}@page{margin:25mm}.md-announcement{background-color:rgba(0,0,0,.87)}.md-announcement__inner{min-height:2.4rem;padding:0 .8rem;color:#fff;font-size:.7rem;line-height:2.4rem}.md-clipboard{position:absolute;top:.3rem;right:.3rem;width:1.4rem;height:1.4rem;-webkit-transition:color .25s;transition:color .25s;border-radius:.1rem;color:rgba(0,0,0,.07);font-size:.8rem;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;backface-visibility:hidden}.codehilite:hover .md-clipboard,.md-typeset .highlight:hover .md-clipboard,pre:hover .md-clipboard{color:rgba(0,0,0,.54)}.codehilite .md-clipboard:focus,.codehilite .md-clipboard:hover,.md-typeset .highlight .md-clipboard:focus,.md-typeset .highlight .md-clipboard:hover,pre .md-clipboard:focus,pre .md-clipboard:hover{color:#536dfe}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}.md-content__inner::before{display:block;height:.4rem;content:""}.md-content__inner>:last-child{margin-bottom:0}.md-content__icon{position:relative;margin:.4rem 0;padding:0;float:right}.md-typeset .md-content__icon{color:rgba(0,0,0,.26)}.md-header{position:-webkit-sticky;position:sticky;top:0;right:0;left:0;height:2.4rem;-webkit-transition:background-color .25s,color .25s;transition:background-color .25s,color .25s;background-color:#3f51b5;color:#fff;box-shadow:none;z-index:2;-webkit-backface-visibility:hidden;backface-visibility:hidden}.no-js .md-header{-webkit-transition:none;transition:none;box-shadow:none}.md-header[data-md-state=shadow]{-webkit-transition:background-color .25s,color .25s,box-shadow .25s;transition:background-color .25s,color .25s,box-shadow .25s;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.md-header-nav{padding:0 .2rem}.md-header-nav__button{position:relative;-webkit-transition:opacity .25s;transition:opacity .25s;z-index:1}.md-header-nav__button:hover{opacity:.7}.md-header-nav__button.md-logo *{display:block}.no-js .md-header-nav__button.md-icon--search{display:none}.md-header-nav__topic{display:block;position:absolute;width:calc(100% - 1rem);-webkit-transition:opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-header-nav__topic+.md-header-nav__topic{-webkit-transform:translateX(1.25rem);transform:translateX(1.25rem);-webkit-transition:opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);opacity:0;z-index:-1;pointer-events:none}[dir=rtl] .md-header-nav__topic+.md-header-nav__topic{-webkit-transform:translateX(-1.25rem);transform:translateX(-1.25rem)}.no-js .md-header-nav__topic{position:initial}.no-js .md-header-nav__topic+.md-header-nav__topic{display:none}.md-header-nav__title{padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-header-nav__title[data-md-state=active] .md-header-nav__topic{-webkit-transform:translateX(-1.25rem);transform:translateX(-1.25rem);-webkit-transition:opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);opacity:0;z-index:-1;pointer-events:none}[dir=rtl] .md-header-nav__title[data-md-state=active] .md-header-nav__topic{-webkit-transform:translateX(1.25rem);transform:translateX(1.25rem)}.md-header-nav__title[data-md-state=active] .md-header-nav__topic+.md-header-nav__topic{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);opacity:1;z-index:0;pointer-events:initial}.md-header-nav__source{display:none}.md-hero{-webkit-transition:background .25s;transition:background .25s;background-color:#3f51b5;color:#fff;font-size:1rem;overflow:hidden}.md-hero__inner{margin-top:1rem;padding:.8rem .8rem .4rem;-webkit-transition:opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);-webkit-transition-delay:.1s;transition-delay:.1s}[data-md-state=hidden] .md-hero__inner{pointer-events:none;-webkit-transform:translateY(.625rem);transform:translateY(.625rem);-webkit-transition:opacity .1s 0s,-webkit-transform 0s .4s;transition:transform 0s .4s,opacity .1s 0s;transition:transform 0s .4s,opacity .1s 0s,-webkit-transform 0s .4s;opacity:0}.md-hero--expand .md-hero__inner{margin-bottom:1.2rem}.md-footer-nav{background-color:rgba(0,0,0,.87);color:#fff}.md-footer-nav__inner{padding:.2rem;overflow:auto}.md-footer-nav__link{padding-top:1.4rem;padding-bottom:.4rem;-webkit-transition:opacity .25s;transition:opacity .25s}.md-footer-nav__link:hover{opacity:.7}.md-footer-nav__link--prev{width:25%;float:left}[dir=rtl] .md-footer-nav__link--prev{float:right}.md-footer-nav__link--next{width:75%;float:right;text-align:right}[dir=rtl] .md-footer-nav__link--next{float:left;text-align:left}.md-footer-nav__button{-webkit-transition:background .25s;transition:background .25s}.md-footer-nav__title{position:relative;padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-footer-nav__direction{position:absolute;right:0;left:0;margin-top:-1rem;padding:0 1rem;color:rgba(255,255,255,.7);font-size:.75rem}.md-footer-meta{background-color:rgba(0,0,0,.895)}.md-footer-meta__inner{padding:.2rem;overflow:auto}html .md-footer-meta.md-typeset a{color:rgba(255,255,255,.7)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:#fff}.md-footer-copyright{margin:0 .6rem;padding:.4rem 0;color:rgba(255,255,255,.3);font-size:.64rem}.md-footer-copyright__highlight{color:rgba(255,255,255,.7)}.md-footer-social{margin:0 .4rem;padding:.2rem 0 .6rem}.md-footer-social__link{display:inline-block;width:1.6rem;height:1.6rem;font-size:.8rem;text-align:center}.md-footer-social__link::before{line-height:1.9}.md-footer-social__link svg{width:.8rem;-webkit-transition:fill .25s;transition:fill .25s;vertical-align:-25%;fill:rgba(255,255,255,.7)}.md-footer-social__link:focus svg,.md-footer-social__link:hover svg{fill:#fff}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;padding:0 .6rem;font-weight:700;text-overflow:ellipsis;overflow:hidden}.md-nav__title::before{display:none;content:"\E5C4"}[dir=rtl] .md-nav__title::before{content:"\E5C8"}.md-nav__title .md-nav__button{display:none}.md-nav__list{margin:0;padding:0;list-style:none}.md-nav__item{padding:0 .6rem}.md-nav__item:last-child{padding-bottom:.6rem}.md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-right:.6rem;padding-left:0}.md-nav__item .md-nav__item:last-child{padding-bottom:0}.md-nav__button img{width:100%;height:auto}.md-nav__link{display:block;margin-top:.625em;-webkit-transition:color .125s;transition:color .125s;text-overflow:ellipsis;cursor:pointer;overflow:hidden}.md-nav__item--nested>.md-nav__link::after{content:"\E313"}html .md-nav__link[for=__toc],html .md-nav__link[for=__toc]+.md-nav__link::after,html .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link[data-md-state=blur],html body .md-typeset .md-source-file{color:rgba(0,0,0,.54)}.md-nav__link--active,.md-nav__link:active{color:#3f51b5}.md-nav__item--nested>.md-nav__link{color:inherit}.md-nav__link:focus,.md-nav__link:hover{color:#536dfe}.md-nav__source,.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}.md-search__form{position:relative}.md-search__input{position:relative;padding:0 2.2rem 0 3.6rem;text-overflow:ellipsis;z-index:2}[dir=rtl] .md-search__input{padding:0 3.6rem 0 2.2rem}.md-search__input::-webkit-input-placeholder{-webkit-transition:color .25s cubic-bezier(.1,.7,.1,1);transition:color .25s cubic-bezier(.1,.7,.1,1)}.md-search__input::-moz-placeholder{-moz-transition:color .25s cubic-bezier(.1,.7,.1,1);transition:color .25s cubic-bezier(.1,.7,.1,1)}.md-search__input:-ms-input-placeholder,.md-search__input::-ms-input-placeholder{-ms-transition:color .25s cubic-bezier(.1,.7,.1,1);transition:color .25s cubic-bezier(.1,.7,.1,1)}.md-search__input::placeholder{-webkit-transition:color .25s cubic-bezier(.1,.7,.1,1);transition:color .25s cubic-bezier(.1,.7,.1,1)}.md-search__input::-webkit-input-placeholder{color:rgba(0,0,0,.54)}.md-search__input::-moz-placeholder{color:rgba(0,0,0,.54)}.md-search__input:-ms-input-placeholder,.md-search__input::-ms-input-placeholder{color:rgba(0,0,0,.54)}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:rgba(0,0,0,.54)}.md-search__input::-ms-clear{display:none}.md-search__icon{position:absolute;-webkit-transition:color .25s cubic-bezier(.1,.7,.1,1),opacity .25s;transition:color .25s cubic-bezier(.1,.7,.1,1),opacity .25s;font-size:1.2rem;cursor:pointer;z-index:2}.md-search__icon:hover{opacity:.7}.md-search__icon[for=__search]{top:.3rem;left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem;left:initial}.md-search__icon[for=__search]::before{content:"\E8B6"}.md-search__icon[type=reset]{top:.3rem;right:.5rem;-webkit-transform:scale(.125);transform:scale(.125);-webkit-transition:opacity .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s;transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1);opacity:0}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.5rem}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__icon[type=reset]{-webkit-transform:scale(1);transform:scale(1);opacity:1}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__icon[type=reset]:hover{opacity:.7}.md-search__output{position:absolute;width:100%;border-radius:0 0 .1rem .1rem;overflow:hidden;z-index:1}.md-search__scrollwrap{height:100%;background-color:#fff;box-shadow:0 .05rem 0 rgba(0,0,0,.07) inset;overflow-y:auto;-webkit-overflow-scrolling:touch}.md-search-result{color:rgba(0,0,0,.87);word-break:break-word}.md-search-result__meta{padding:0 .8rem;background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.54);font-size:.64rem;line-height:1.8rem}.md-search-result__list{margin:0;padding:0;border-top:.05rem solid rgba(0,0,0,.07);list-style:none}.md-search-result__item{box-shadow:0 -.05rem 0 rgba(0,0,0,.07)}.md-search-result__link{display:block;-webkit-transition:background .25s;transition:background .25s;outline:0;overflow:hidden}.md-search-result__link:focus,.md-search-result__link:hover{background-color:rgba(83,109,254,.1)}.md-search-result__link:focus .md-search-result__article::before,.md-search-result__link:hover .md-search-result__article::before{opacity:.7}.md-search-result__link:last-child .md-search-result__teaser,html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}.md-search-result__article{position:relative;padding:0 .8rem;overflow:auto}.md-search-result__article--document::before{position:absolute;left:0;margin:.1rem;-webkit-transition:opacity .25s;transition:opacity .25s;color:rgba(0,0,0,.54);content:"\E880"}[dir=rtl] .md-search-result__article--document::before{right:0;left:initial}.md-search-result__article--document .md-search-result__title{margin:.55rem 0;font-size:.8rem;font-weight:400;line-height:1.4}.md-search-result__title{margin:.5em 0;font-size:.64rem;font-weight:700;line-height:1.4}.md-search-result__teaser{display:-webkit-box;max-height:1.65rem;margin:.5em 0;color:rgba(0,0,0,.54);font-size:.64rem;line-height:1.4;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.md-search-result em{font-style:normal;font-weight:700;text-decoration:underline}.md-sidebar{position:absolute;width:12.1rem;padding:1.2rem 0;overflow:hidden}.md-sidebar[data-md-state=lock]{position:fixed;top:2.4rem}.md-sidebar--secondary,.md-typeset .superfences-tabs>input{display:none}.md-sidebar__scrollwrap{max-height:100%;margin:0 .2rem;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden}.md-sidebar__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#536dfe}.md-source{display:block;padding-right:.6rem;-webkit-transition:opacity .25s;transition:opacity .25s;font-size:.65rem;line-height:1.2;white-space:nowrap}[dir=rtl] .md-source{padding-right:initial;padding-left:.6rem}.md-source:hover{opacity:.7}.md-source::after{height:2.4rem;content:""}.md-source::after,.md-source__icon,.md-source__repository{display:inline-block;vertical-align:middle}.md-source__icon{width:2.4rem;height:2.4rem}.md-source__icon svg{width:1.2rem;height:1.2rem;margin-top:.6rem;margin-left:.6rem;fill:#fff}[dir=rtl] .md-source__icon svg{margin-right:.6rem;margin-left:initial}.md-source__icon+.md-source__repository{margin-left:-2rem;padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem;margin-left:initial;padding-right:2rem;padding-left:initial}.md-source__repository{max-width:100%;margin-left:.6rem;font-weight:700;text-overflow:ellipsis;overflow:hidden}.md-source__facts{margin:0;padding:0;font-size:.55rem;font-weight:700;list-style-type:none;opacity:.75;overflow:hidden}[data-md-state=done] .md-source__facts{-webkit-animation:md-source__facts--done .25s ease-in;animation:md-source__facts--done .25s ease-in}.md-source__fact{float:left}[dir=rtl] .md-source__fact{float:right}[data-md-state=done] .md-source__fact{-webkit-animation:md-source__fact--done .4s ease-out;animation:md-source__fact--done .4s ease-out}.md-source__fact::before{margin:0 .1rem;content:"\00B7"}.md-source__fact:first-child::before{display:none}.md-source-file{display:inline-block;margin:1em .5em 1em 0;padding-right:.25rem;border-radius:.1rem;background-color:rgba(0,0,0,.07);font-size:.64rem;list-style-type:none;cursor:pointer;overflow:hidden}.md-source-file::before{display:inline-block;margin-right:.25rem;padding:.25rem;background-color:rgba(0,0,0,.26);color:#fff;font-size:.8rem;content:"\E86F";vertical-align:middle}html .md-source-file{-webkit-transition:background .4s,color .4s,box-shadow .4s cubic-bezier(.4,0,.2,1);transition:background .4s,color .4s,box-shadow .4s cubic-bezier(.4,0,.2,1)}html .md-source-file::before{-webkit-transition:inherit;transition:inherit}.md-source-file:hover{box-shadow:0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36)}.md-source-file:hover::before{background-color:#536dfe}.md-tabs{width:100%;-webkit-transition:background .25s;transition:background .25s;background-color:#3f51b5;color:#fff;overflow:auto}.md-tabs__list{margin:0;margin-left:.2rem;padding:0;list-style:none;white-space:nowrap}.md-tabs__item{display:inline-block;height:2.4rem;padding-right:.6rem;padding-left:.6rem}.md-tabs__link{display:block;margin-top:.8rem;-webkit-transition:opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);font-size:.7rem;opacity:.7}.md-tabs__link--active,.md-tabs__link:hover{color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{-webkit-transition-delay:.02s;transition-delay:.02s}.md-tabs__item:nth-child(3) .md-tabs__link{-webkit-transition-delay:.04s;transition-delay:.04s}.md-tabs__item:nth-child(4) .md-tabs__link{-webkit-transition-delay:.06s;transition-delay:.06s}.md-tabs__item:nth-child(5) .md-tabs__link{-webkit-transition-delay:.08s;transition-delay:.08s}.md-tabs__item:nth-child(6) .md-tabs__link{-webkit-transition-delay:.1s;transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{-webkit-transition-delay:.12s;transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{-webkit-transition-delay:.14s;transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{-webkit-transition-delay:.16s;transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{-webkit-transition-delay:.18s;transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{-webkit-transition-delay:.2s;transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{-webkit-transition-delay:.22s;transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{-webkit-transition-delay:.24s;transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{-webkit-transition-delay:.26s;transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{-webkit-transition-delay:.28s;transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{-webkit-transition-delay:.3s;transition-delay:.3s}.md-tabs[data-md-state=hidden]{pointer-events:none}.md-tabs[data-md-state=hidden] .md-tabs__link{-webkit-transform:translateY(50%);transform:translateY(50%);-webkit-transition:color .25s,opacity .1s,-webkit-transform 0s .4s;transition:color .25s,transform 0s .4s,opacity .1s;transition:color .25s,transform 0s .4s,opacity .1s,-webkit-transform 0s .4s;opacity:0}.md-typeset .admonition,.md-typeset details{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);margin:1.5625em 0;padding:0 .6rem;border-left:.2rem solid #448aff;border-radius:.1rem;font-size:.64rem;overflow:auto}[dir=rtl] .md-typeset .admonition,[dir=rtl] .md-typeset details{border-right:.2rem solid #448aff;border-left:none}.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{margin:1em 0}.md-typeset .admonition>.admonition-title,.md-typeset .admonition>summary,.md-typeset details>.admonition-title,.md-typeset details>summary{margin:0 -.6rem;padding:.4rem .6rem .4rem 2rem;border-bottom:.05rem solid rgba(68,138,255,.1);background-color:rgba(68,138,255,.1);font-weight:700}[dir=rtl] .md-typeset .admonition>.admonition-title,[dir=rtl] .md-typeset .admonition>summary,[dir=rtl] .md-typeset details>.admonition-title,[dir=rtl] .md-typeset details>summary{padding:.4rem 2rem .4rem .6rem}.md-typeset .admonition>.admonition-title:last-child,.md-typeset .admonition>summary:last-child,.md-typeset details>.admonition-title:last-child,.md-typeset details>summary:last-child{margin-bottom:0}.md-typeset .admonition>.admonition-title::before,.md-typeset .admonition>summary::before,.md-typeset details>.admonition-title::before,.md-typeset details>summary::before{position:absolute;margin-left:-1.4rem;color:#448aff;font-size:1rem;content:"\E3C9"}[dir=rtl] .md-typeset .admonition>.admonition-title::before,[dir=rtl] .md-typeset .admonition>summary::before,[dir=rtl] .md-typeset details>.admonition-title::before,[dir=rtl] .md-typeset details>summary::before{margin-right:-1.4rem;margin-left:initial}.md-typeset .admonition.abstract,.md-typeset .admonition.summary,.md-typeset .admonition.tldr,.md-typeset details.abstract,.md-typeset details.summary,.md-typeset details.tldr{border-left-color:#00b0ff}[dir=rtl] .md-typeset .admonition.abstract,[dir=rtl] .md-typeset .admonition.summary,[dir=rtl] .md-typeset .admonition.tldr,[dir=rtl] .md-typeset details.abstract,[dir=rtl] .md-typeset details.summary,[dir=rtl] .md-typeset details.tldr{border-right-color:#00b0ff}.md-typeset .admonition.abstract>.admonition-title,.md-typeset .admonition.abstract>summary,.md-typeset .admonition.summary>.admonition-title,.md-typeset .admonition.summary>summary,.md-typeset .admonition.tldr>.admonition-title,.md-typeset .admonition.tldr>summary,.md-typeset details.abstract>.admonition-title,.md-typeset details.abstract>summary,.md-typeset details.summary>.admonition-title,.md-typeset details.summary>summary,.md-typeset details.tldr>.admonition-title,.md-typeset details.tldr>summary{border-bottom-color:rgba(0,176,255,.1);background-color:rgba(0,176,255,.1)}.md-typeset .admonition.abstract>.admonition-title::before,.md-typeset .admonition.abstract>summary::before,.md-typeset .admonition.summary>.admonition-title::before,.md-typeset .admonition.summary>summary::before,.md-typeset .admonition.tldr>.admonition-title::before,.md-typeset .admonition.tldr>summary::before,.md-typeset details.abstract>.admonition-title::before,.md-typeset details.abstract>summary::before,.md-typeset details.summary>.admonition-title::before,.md-typeset details.summary>summary::before,.md-typeset details.tldr>.admonition-title::before,.md-typeset details.tldr>summary::before{color:#00b0ff;content:""}.md-typeset .admonition.info,.md-typeset .admonition.todo,.md-typeset details.info,.md-typeset details.todo{border-left-color:#00b8d4}[dir=rtl] .md-typeset .admonition.info,[dir=rtl] .md-typeset .admonition.todo,[dir=rtl] .md-typeset details.info,[dir=rtl] .md-typeset details.todo{border-right-color:#00b8d4}.md-typeset .admonition.info>.admonition-title,.md-typeset .admonition.info>summary,.md-typeset .admonition.todo>.admonition-title,.md-typeset .admonition.todo>summary,.md-typeset details.info>.admonition-title,.md-typeset details.info>summary,.md-typeset details.todo>.admonition-title,.md-typeset details.todo>summary{border-bottom-color:rgba(0,184,212,.1);background-color:rgba(0,184,212,.1)}.md-typeset .admonition.info>.admonition-title::before,.md-typeset .admonition.info>summary::before,.md-typeset .admonition.todo>.admonition-title::before,.md-typeset .admonition.todo>summary::before,.md-typeset details.info>.admonition-title::before,.md-typeset details.info>summary::before,.md-typeset details.todo>.admonition-title::before,.md-typeset details.todo>summary::before{color:#00b8d4;content:""}.md-typeset .admonition.hint,.md-typeset .admonition.important,.md-typeset .admonition.tip,.md-typeset details.hint,.md-typeset details.important,.md-typeset details.tip{border-left-color:#00bfa5}[dir=rtl] .md-typeset .admonition.hint,[dir=rtl] .md-typeset .admonition.important,[dir=rtl] .md-typeset .admonition.tip,[dir=rtl] .md-typeset details.hint,[dir=rtl] .md-typeset details.important,[dir=rtl] .md-typeset details.tip{border-right-color:#00bfa5}.md-typeset .admonition.hint>.admonition-title,.md-typeset .admonition.hint>summary,.md-typeset .admonition.important>.admonition-title,.md-typeset .admonition.important>summary,.md-typeset .admonition.tip>.admonition-title,.md-typeset .admonition.tip>summary,.md-typeset details.hint>.admonition-title,.md-typeset details.hint>summary,.md-typeset details.important>.admonition-title,.md-typeset details.important>summary,.md-typeset details.tip>.admonition-title,.md-typeset details.tip>summary{border-bottom-color:rgba(0,191,165,.1);background-color:rgba(0,191,165,.1)}.md-typeset .admonition.hint>.admonition-title::before,.md-typeset .admonition.hint>summary::before,.md-typeset .admonition.important>.admonition-title::before,.md-typeset .admonition.important>summary::before,.md-typeset .admonition.tip>.admonition-title::before,.md-typeset .admonition.tip>summary::before,.md-typeset details.hint>.admonition-title::before,.md-typeset details.hint>summary::before,.md-typeset details.important>.admonition-title::before,.md-typeset details.important>summary::before,.md-typeset details.tip>.admonition-title::before,.md-typeset details.tip>summary::before{color:#00bfa5;content:""}.md-typeset .admonition.check,.md-typeset .admonition.done,.md-typeset .admonition.success,.md-typeset details.check,.md-typeset details.done,.md-typeset details.success{border-left-color:#00c853}[dir=rtl] .md-typeset .admonition.check,[dir=rtl] .md-typeset .admonition.done,[dir=rtl] .md-typeset .admonition.success,[dir=rtl] .md-typeset details.check,[dir=rtl] .md-typeset details.done,[dir=rtl] .md-typeset details.success{border-right-color:#00c853}.md-typeset .admonition.check>.admonition-title,.md-typeset .admonition.check>summary,.md-typeset .admonition.done>.admonition-title,.md-typeset .admonition.done>summary,.md-typeset .admonition.success>.admonition-title,.md-typeset .admonition.success>summary,.md-typeset details.check>.admonition-title,.md-typeset details.check>summary,.md-typeset details.done>.admonition-title,.md-typeset details.done>summary,.md-typeset details.success>.admonition-title,.md-typeset details.success>summary{border-bottom-color:rgba(0,200,83,.1);background-color:rgba(0,200,83,.1)}.md-typeset .admonition.check>.admonition-title::before,.md-typeset .admonition.check>summary::before,.md-typeset .admonition.done>.admonition-title::before,.md-typeset .admonition.done>summary::before,.md-typeset .admonition.success>.admonition-title::before,.md-typeset .admonition.success>summary::before,.md-typeset details.check>.admonition-title::before,.md-typeset details.check>summary::before,.md-typeset details.done>.admonition-title::before,.md-typeset details.done>summary::before,.md-typeset details.success>.admonition-title::before,.md-typeset details.success>summary::before{color:#00c853;content:""}.md-typeset .admonition.faq,.md-typeset .admonition.help,.md-typeset .admonition.question,.md-typeset details.faq,.md-typeset details.help,.md-typeset details.question{border-left-color:#64dd17}[dir=rtl] .md-typeset .admonition.faq,[dir=rtl] .md-typeset .admonition.help,[dir=rtl] .md-typeset .admonition.question,[dir=rtl] .md-typeset details.faq,[dir=rtl] .md-typeset details.help,[dir=rtl] .md-typeset details.question{border-right-color:#64dd17}.md-typeset .admonition.faq>.admonition-title,.md-typeset .admonition.faq>summary,.md-typeset .admonition.help>.admonition-title,.md-typeset .admonition.help>summary,.md-typeset .admonition.question>.admonition-title,.md-typeset .admonition.question>summary,.md-typeset details.faq>.admonition-title,.md-typeset details.faq>summary,.md-typeset details.help>.admonition-title,.md-typeset details.help>summary,.md-typeset details.question>.admonition-title,.md-typeset details.question>summary{border-bottom-color:rgba(100,221,23,.1);background-color:rgba(100,221,23,.1)}.md-typeset .admonition.faq>.admonition-title::before,.md-typeset .admonition.faq>summary::before,.md-typeset .admonition.help>.admonition-title::before,.md-typeset .admonition.help>summary::before,.md-typeset .admonition.question>.admonition-title::before,.md-typeset .admonition.question>summary::before,.md-typeset details.faq>.admonition-title::before,.md-typeset details.faq>summary::before,.md-typeset details.help>.admonition-title::before,.md-typeset details.help>summary::before,.md-typeset details.question>.admonition-title::before,.md-typeset details.question>summary::before{color:#64dd17;content:""}.md-typeset .admonition.attention,.md-typeset .admonition.caution,.md-typeset .admonition.warning,.md-typeset details.attention,.md-typeset details.caution,.md-typeset details.warning{border-left-color:#ff9100}[dir=rtl] .md-typeset .admonition.attention,[dir=rtl] .md-typeset .admonition.caution,[dir=rtl] .md-typeset .admonition.warning,[dir=rtl] .md-typeset details.attention,[dir=rtl] .md-typeset details.caution,[dir=rtl] .md-typeset details.warning{border-right-color:#ff9100}.md-typeset .admonition.attention>.admonition-title,.md-typeset .admonition.attention>summary,.md-typeset .admonition.caution>.admonition-title,.md-typeset .admonition.caution>summary,.md-typeset .admonition.warning>.admonition-title,.md-typeset .admonition.warning>summary,.md-typeset details.attention>.admonition-title,.md-typeset details.attention>summary,.md-typeset details.caution>.admonition-title,.md-typeset details.caution>summary,.md-typeset details.warning>.admonition-title,.md-typeset details.warning>summary{border-bottom-color:rgba(255,145,0,.1);background-color:rgba(255,145,0,.1)}.md-typeset .admonition.attention>.admonition-title::before,.md-typeset .admonition.attention>summary::before,.md-typeset .admonition.caution>.admonition-title::before,.md-typeset .admonition.caution>summary::before,.md-typeset .admonition.warning>.admonition-title::before,.md-typeset .admonition.warning>summary::before,.md-typeset details.attention>.admonition-title::before,.md-typeset details.attention>summary::before,.md-typeset details.caution>.admonition-title::before,.md-typeset details.caution>summary::before,.md-typeset details.warning>.admonition-title::before,.md-typeset details.warning>summary::before{color:#ff9100;content:""}.md-typeset .admonition.fail,.md-typeset .admonition.failure,.md-typeset .admonition.missing,.md-typeset details.fail,.md-typeset details.failure,.md-typeset details.missing{border-left-color:#ff5252}[dir=rtl] .md-typeset .admonition.fail,[dir=rtl] .md-typeset .admonition.failure,[dir=rtl] .md-typeset .admonition.missing,[dir=rtl] .md-typeset details.fail,[dir=rtl] .md-typeset details.failure,[dir=rtl] .md-typeset details.missing{border-right-color:#ff5252}.md-typeset .admonition.fail>.admonition-title,.md-typeset .admonition.fail>summary,.md-typeset .admonition.failure>.admonition-title,.md-typeset .admonition.failure>summary,.md-typeset .admonition.missing>.admonition-title,.md-typeset .admonition.missing>summary,.md-typeset details.fail>.admonition-title,.md-typeset details.fail>summary,.md-typeset details.failure>.admonition-title,.md-typeset details.failure>summary,.md-typeset details.missing>.admonition-title,.md-typeset details.missing>summary{border-bottom-color:rgba(255,82,82,.1);background-color:rgba(255,82,82,.1)}.md-typeset .admonition.fail>.admonition-title::before,.md-typeset .admonition.fail>summary::before,.md-typeset .admonition.failure>.admonition-title::before,.md-typeset .admonition.failure>summary::before,.md-typeset .admonition.missing>.admonition-title::before,.md-typeset .admonition.missing>summary::before,.md-typeset details.fail>.admonition-title::before,.md-typeset details.fail>summary::before,.md-typeset details.failure>.admonition-title::before,.md-typeset details.failure>summary::before,.md-typeset details.missing>.admonition-title::before,.md-typeset details.missing>summary::before{color:#ff5252;content:""}.md-typeset .admonition.danger,.md-typeset .admonition.error,.md-typeset details.danger,.md-typeset details.error{border-left-color:#ff1744}[dir=rtl] .md-typeset .admonition.danger,[dir=rtl] .md-typeset .admonition.error,[dir=rtl] .md-typeset details.danger,[dir=rtl] .md-typeset details.error{border-right-color:#ff1744}.md-typeset .admonition.danger>.admonition-title,.md-typeset .admonition.danger>summary,.md-typeset .admonition.error>.admonition-title,.md-typeset .admonition.error>summary,.md-typeset details.danger>.admonition-title,.md-typeset details.danger>summary,.md-typeset details.error>.admonition-title,.md-typeset details.error>summary{border-bottom-color:rgba(255,23,68,.1);background-color:rgba(255,23,68,.1)}.md-typeset .admonition.danger>.admonition-title::before,.md-typeset .admonition.danger>summary::before,.md-typeset .admonition.error>.admonition-title::before,.md-typeset .admonition.error>summary::before,.md-typeset details.danger>.admonition-title::before,.md-typeset details.danger>summary::before,.md-typeset details.error>.admonition-title::before,.md-typeset details.error>summary::before{color:#ff1744;content:""}.md-typeset .admonition.bug,.md-typeset details.bug{border-left-color:#f50057}[dir=rtl] .md-typeset .admonition.bug,[dir=rtl] .md-typeset details.bug{border-right-color:#f50057}.md-typeset .admonition.bug>.admonition-title,.md-typeset .admonition.bug>summary,.md-typeset details.bug>.admonition-title,.md-typeset details.bug>summary{border-bottom-color:rgba(245,0,87,.1);background-color:rgba(245,0,87,.1)}.md-typeset .admonition.bug>.admonition-title::before,.md-typeset .admonition.bug>summary::before,.md-typeset details.bug>.admonition-title::before,.md-typeset details.bug>summary::before{color:#f50057;content:""}.md-typeset .admonition.example,.md-typeset details.example{border-left-color:#651fff}[dir=rtl] .md-typeset .admonition.example,[dir=rtl] .md-typeset details.example{border-right-color:#651fff}.md-typeset .admonition.example>.admonition-title,.md-typeset .admonition.example>summary,.md-typeset details.example>.admonition-title,.md-typeset details.example>summary{border-bottom-color:rgba(101,31,255,.1);background-color:rgba(101,31,255,.1)}.md-typeset .admonition.example>.admonition-title::before,.md-typeset .admonition.example>summary::before,.md-typeset details.example>.admonition-title::before,.md-typeset details.example>summary::before{color:#651fff;content:""}.md-typeset .admonition.cite,.md-typeset .admonition.quote,.md-typeset details.cite,.md-typeset details.quote{border-left-color:#9e9e9e}[dir=rtl] .md-typeset .admonition.cite,[dir=rtl] .md-typeset .admonition.quote,[dir=rtl] .md-typeset details.cite,[dir=rtl] .md-typeset details.quote{border-right-color:#9e9e9e}.md-typeset .admonition.cite>.admonition-title,.md-typeset .admonition.cite>summary,.md-typeset .admonition.quote>.admonition-title,.md-typeset .admonition.quote>summary,.md-typeset details.cite>.admonition-title,.md-typeset details.cite>summary,.md-typeset details.quote>.admonition-title,.md-typeset details.quote>summary{border-bottom-color:rgba(158,158,158,.1);background-color:rgba(158,158,158,.1)}.md-typeset .admonition.cite>.admonition-title::before,.md-typeset .admonition.cite>summary::before,.md-typeset .admonition.quote>.admonition-title::before,.md-typeset .admonition.quote>summary::before,.md-typeset details.cite>.admonition-title::before,.md-typeset details.cite>summary::before,.md-typeset details.quote>.admonition-title::before,.md-typeset details.quote>summary::before{color:#9e9e9e;content:""}.codehilite .o,.codehilite .ow,.md-typeset .highlight .o,.md-typeset .highlight .ow{color:inherit}.codehilite .ge,.md-typeset .highlight .ge{color:#000}.codehilite .gr,.md-typeset .highlight .gr{color:#a00}.codehilite .gh,.md-typeset .highlight .gh{color:#999}.codehilite .go,.md-typeset .highlight .go{color:#888}.codehilite .gp,.md-typeset .highlight .gp{color:#555}.codehilite .gs,.md-typeset .highlight .gs{color:inherit}.codehilite .gu,.md-typeset .highlight .gu{color:#aaa}.codehilite .gt,.md-typeset .highlight .gt{color:#a00}.codehilite .gd,.md-typeset .highlight .gd{background-color:#fdd}.codehilite .gi,.md-typeset .highlight .gi{background-color:#dfd}.codehilite .k,.md-typeset .highlight .k{color:#3b78e7}.codehilite .kc,.md-typeset .highlight .kc{color:#a71d5d}.codehilite .kd,.codehilite .kn,.md-typeset .highlight .kd,.md-typeset .highlight .kn{color:#3b78e7}.codehilite .kp,.md-typeset .highlight .kp{color:#a71d5d}.codehilite .kr,.codehilite .kt,.md-typeset .highlight .kr,.md-typeset .highlight .kt{color:#3e61a2}.codehilite .c,.codehilite .cm,.md-typeset .highlight .c,.md-typeset .highlight .cm{color:#999}.codehilite .cp,.md-typeset .highlight .cp{color:#666}.codehilite .c1,.codehilite .ch,.codehilite .cs,.md-typeset .highlight .c1,.md-typeset .highlight .ch,.md-typeset .highlight .cs{color:#999}.codehilite .na,.codehilite .nb,.md-typeset .highlight .na,.md-typeset .highlight .nb{color:#c2185b}.codehilite .bp,.md-typeset .highlight .bp{color:#3e61a2}.codehilite .nc,.md-typeset .highlight .nc{color:#c2185b}.codehilite .no,.md-typeset .highlight .no{color:#3e61a2}.codehilite .nd,.codehilite .ni,.md-typeset .highlight .nd,.md-typeset .highlight .ni{color:#666}.codehilite .ne,.codehilite .nf,.md-typeset .highlight .ne,.md-typeset .highlight .nf{color:#c2185b}.codehilite .nl,.md-typeset .highlight .nl{color:#3b5179}.codehilite .nn,.md-typeset .highlight .nn{color:#ec407a}.codehilite .nt,.md-typeset .highlight .nt{color:#3b78e7}.codehilite .nv,.codehilite .vc,.codehilite .vg,.codehilite .vi,.md-typeset .highlight .nv,.md-typeset .highlight .vc,.md-typeset .highlight .vg,.md-typeset .highlight .vi{color:#3e61a2}.codehilite .nx,.md-typeset .highlight .nx{color:#ec407a}.codehilite .il,.codehilite .m,.codehilite .mf,.codehilite .mh,.codehilite .mi,.codehilite .mo,.md-typeset .highlight .il,.md-typeset .highlight .m,.md-typeset .highlight .mf,.md-typeset .highlight .mh,.md-typeset .highlight .mi,.md-typeset .highlight .mo{color:#e74c3c}.codehilite .s,.codehilite .sb,.codehilite .sc,.md-typeset .highlight .s,.md-typeset .highlight .sb,.md-typeset .highlight .sc{color:#0d904f}.codehilite .sd,.md-typeset .highlight .sd{color:#999}.codehilite .s2,.md-typeset .highlight .s2{color:#0d904f}.codehilite .se,.codehilite .sh,.codehilite .si,.codehilite .sx,.md-typeset .highlight .se,.md-typeset .highlight .sh,.md-typeset .highlight .si,.md-typeset .highlight .sx{color:#183691}.codehilite .sr,.md-typeset .highlight .sr{color:#009926}.codehilite .s1,.codehilite .ss,.md-typeset .highlight .s1,.md-typeset .highlight .ss{color:#0d904f}.codehilite .err,.md-typeset .highlight .err{color:#a61717}.codehilite .w,.md-typeset .highlight .w{color:transparent}.codehilite .hll,.md-typeset .highlight .hll{display:block;margin:0 -.6rem;padding:0 .6rem;background-color:rgba(255,235,59,.5)}.md-typeset .codehilitetable,.md-typeset .highlighttable{display:block;overflow:hidden}.md-typeset .codehilitetable tbody,.md-typeset .codehilitetable td,.md-typeset .highlighttable tbody,.md-typeset .highlighttable td{display:block;padding:0}.md-typeset .codehilitetable tr,.md-typeset .highlighttable tr{display:-webkit-box;display:flex}.md-typeset .codehilitetable .linenodiv,.md-typeset .codehilitetable pre,.md-typeset .highlighttable .linenodiv,.md-typeset .highlighttable pre,.md-typeset .superfences-content pre{margin:0;border-radius:0}.md-typeset .codehilitetable .linenodiv,.md-typeset .highlighttable .linenodiv{padding:.525rem .6rem}.md-typeset .codehilitetable .linenos,.md-typeset .highlighttable .linenos{background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.26);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-typeset .codehilitetable .linenos pre,.md-typeset .highlighttable .linenos pre{background-color:transparent;color:inherit;text-align:right}.md-typeset .codehilitetable .code,.md-typeset .highlighttable .code{-webkit-box-flex:1;flex:1;overflow:hidden}.md-typeset>.codehilitetable,.md-typeset>.highlighttable{margin:1em 0;border-radius:.2em}.md-typeset [id^="fnref:"]{display:inline-block}.md-typeset [id^="fnref:"]:target{margin-top:-3.8rem;padding-top:3.8rem;pointer-events:none}.md-typeset [id^="fn:"]::before{display:none;height:0;content:""}.md-typeset [id^="fn:"]:target::before{display:block;margin-top:-3.5rem;padding-top:3.5rem;pointer-events:none}.md-typeset .footnote{color:rgba(0,0,0,.54);font-size:.64rem}.md-typeset .footnote ol{margin-left:0}.md-typeset .footnote li{-webkit-transition:color .25s;transition:color .25s}.md-typeset .footnote li:target{color:rgba(0,0,0,.87)}.md-typeset .footnote li :first-child{margin-top:0}.md-typeset .footnote li:hover .footnote-backref,.md-typeset .footnote li:target .footnote-backref{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}.md-typeset .footnote li:hover .footnote-backref:hover,.md-typeset .footnote li:target .footnote-backref{color:#536dfe}.md-typeset .footnote-ref{display:inline-block;pointer-events:initial}.md-typeset .footnote-ref::before{display:inline;margin:0 .2em;border-left:.05rem solid rgba(0,0,0,.26);font-size:1.25em;content:"";vertical-align:-.25rem}.md-typeset .footnote-backref{display:inline-block;-webkit-transform:translateX(.25rem);transform:translateX(.25rem);-webkit-transition:color .25s,opacity .125s .125s,-webkit-transform .25s .125s;transition:transform .25s .125s,color .25s,opacity .125s .125s;transition:transform .25s .125s,color .25s,opacity .125s .125s,-webkit-transform .25s .125s;color:rgba(0,0,0,.26);font-size:0;opacity:0;vertical-align:text-bottom}[dir=rtl] .md-typeset .footnote-backref{-webkit-transform:translateX(-.25rem);transform:translateX(-.25rem)}.md-typeset .footnote-backref::before{display:inline-block;font-size:.8rem;content:"\E31B"}[dir=rtl] .md-typeset .footnote-backref::before{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.md-typeset .headerlink{display:inline-block;margin-left:.5rem;-webkit-transform:translate(0,.25rem);transform:translate(0,.25rem);-webkit-transition:color .25s,opacity .125s .25s,-webkit-transform .25s .25s;transition:transform .25s .25s,color .25s,opacity .125s .25s;transition:transform .25s .25s,color .25s,opacity .125s .25s,-webkit-transform .25s .25s;opacity:0}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem;margin-left:initial}html body .md-typeset .headerlink{color:rgba(0,0,0,.26)}.md-typeset h1[id]::before,.md-typeset h2[id]::before,.md-typeset h3[id]::before{display:block;margin-top:-8px;padding-top:8px;content:""}.md-typeset h1[id]:target::before,.md-typeset h2[id]:target::before,.md-typeset h3[id]:target::before{margin-top:-3.4rem;padding-top:3.4rem}.md-typeset h1[id] .headerlink:focus,.md-typeset h1[id]:hover .headerlink,.md-typeset h1[id]:target .headerlink{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1}.md-typeset h1[id] .headerlink:focus,.md-typeset h1[id]:hover .headerlink:hover,.md-typeset h1[id]:target .headerlink{color:#536dfe}.md-typeset h2[id] .headerlink:focus,.md-typeset h2[id]:hover .headerlink,.md-typeset h2[id]:target .headerlink{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1}.md-typeset h2[id] .headerlink:focus,.md-typeset h2[id]:hover .headerlink:hover,.md-typeset h2[id]:target .headerlink{color:#536dfe}.md-typeset h3[id] .headerlink:focus,.md-typeset h3[id]:hover .headerlink,.md-typeset h3[id]:target .headerlink{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1}.md-typeset h3[id] .headerlink:focus,.md-typeset h3[id]:hover .headerlink:hover,.md-typeset h3[id]:target .headerlink{color:#536dfe}.md-typeset h4[id]::before{display:block;margin-top:-9px;padding-top:9px;content:""}.md-typeset h4[id]:target::before{margin-top:-3.45rem;padding-top:3.45rem}.md-typeset h4[id] .headerlink:focus,.md-typeset h4[id]:hover .headerlink,.md-typeset h4[id]:target .headerlink{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1}.md-typeset h4[id] .headerlink:focus,.md-typeset h4[id]:hover .headerlink:hover,.md-typeset h4[id]:target .headerlink{color:#536dfe}.md-typeset h5[id]::before,.md-typeset h6[id]::before{display:block;margin-top:-11px;padding-top:11px;content:""}.md-typeset h5[id]:target::before,.md-typeset h6[id]:target::before{margin-top:-3.55rem;padding-top:3.55rem}.md-typeset h5[id] .headerlink:focus,.md-typeset h5[id]:hover .headerlink,.md-typeset h5[id]:target .headerlink{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1}.md-typeset h5[id] .headerlink:focus,.md-typeset h5[id]:hover .headerlink:hover,.md-typeset h5[id]:target .headerlink{color:#536dfe}.md-typeset h6[id] .headerlink:focus,.md-typeset h6[id]:hover .headerlink,.md-typeset h6[id]:target .headerlink{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1}.md-typeset h6[id] .headerlink:focus,.md-typeset h6[id]:hover .headerlink:hover,.md-typeset h6[id]:target .headerlink{color:#536dfe}.md-typeset .MJXc-display{margin:.75em 0;padding:.75em 0;overflow:auto;-webkit-overflow-scrolling:touch}.md-typeset .MathJax_CHTML{outline:0}.md-typeset .critic.comment,.md-typeset del.critic,.md-typeset ins.critic{margin:0 .25em;padding:.0625em 0;border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset del.critic{background-color:#fdd;box-shadow:.25em 0 0 #fdd,-.25em 0 0 #fdd}.md-typeset ins.critic{background-color:#dfd;box-shadow:.25em 0 0 #dfd,-.25em 0 0 #dfd}.md-typeset .critic.comment{background-color:rgba(236,236,236,.5);color:#37474f;box-shadow:.25em 0 0 rgba(236,236,236,.5),-.25em 0 0 rgba(236,236,236,.5)}.md-typeset .critic.comment::before{padding-right:.125em;color:rgba(0,0,0,.26);content:"\E0B7";vertical-align:-.125em}.md-typeset .critic.block{display:block;margin:1em 0;padding-right:.8rem;padding-left:.8rem;box-shadow:none}.md-typeset .critic.block :first-child{margin-top:.5em}.md-typeset .critic.block :last-child{margin-bottom:.5em}.md-typeset details{display:block;padding-top:0}.md-typeset details[open]>summary::after{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.md-typeset details:not([open]){padding-bottom:0}.md-typeset details:not([open])>summary{border-bottom:none}.md-typeset details summary{position:relative;padding-right:2rem}[dir=rtl] .md-typeset details summary{padding-left:2rem}.no-details .md-typeset details:not([open])>*{display:none}.no-details .md-typeset details:not([open]) summary{display:block}.md-typeset summary{display:block;outline:0;cursor:pointer}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset summary::after{position:absolute;top:.4rem;right:.6rem;color:rgba(0,0,0,.26);font-size:1rem;content:"\E313"}[dir=rtl] .md-typeset summary::after{right:initial;left:.6rem}.md-typeset .emojione,.md-typeset .gemoji,.md-typeset .twemoji{width:1rem;vertical-align:text-top}.md-typeset code.codehilite,.md-typeset code.highlight{margin:0 .29412em;padding:.07353em 0}.md-typeset .superfences-content{display:none;-webkit-box-ordinal-group:100;order:99;width:100%;background-color:#fff}.md-typeset .superfences-tabs{display:-webkit-box;display:flex;position:relative;flex-wrap:wrap;margin:1em 0;border:.05rem solid rgba(0,0,0,.07);border-radius:.2em}.md-typeset .superfences-tabs>input:checked+label{font-weight:700}.md-typeset .superfences-tabs>input:checked+label+.superfences-content{display:block}.md-typeset .superfences-tabs>label{width:auto;padding:.6rem;-webkit-transition:color .125s;transition:color .125s;font-size:.64rem;cursor:pointer}html .md-typeset .superfences-tabs>label:hover{color:#536dfe}.md-typeset .task-list-item{position:relative;list-style-type:none}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em;left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em;left:initial}.md-typeset .task-list-control .task-list-indicator::before{position:absolute;top:.15em;left:-1.25em;color:rgba(0,0,0,.26);font-size:1.25em;content:"\E835";vertical-align:-.25em}[dir=rtl] .md-typeset .task-list-control .task-list-indicator::before{right:-1.25em;left:initial}.md-typeset .task-list-control [type=checkbox]:checked+.task-list-indicator::before{content:"\E834"}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}@media print{.md-typeset a::after{color:rgba(0,0,0,.54);content:" [" attr(href) "]"}.md-typeset code,.md-typeset pre{white-space:pre-wrap}.md-typeset code{box-shadow:none;-webkit-box-decoration-break:initial;box-decoration-break:initial}.md-clipboard,.md-content__icon,.md-footer,.md-header,.md-sidebar,.md-tabs,.md-typeset .headerlink{display:none}}@media only screen and (max-width:44.9375em){.md-typeset>pre{margin:1em -.8rem;border-radius:0}.md-typeset>.codehilite code,.md-typeset>.highlight code,.md-typeset>.superfences-tabs code,.md-typeset>pre>code{padding:.525rem .8rem}.md-footer-nav__link--prev .md-footer-nav__title{display:none}.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}.codehilite .hll,.md-typeset .highlight .hll{margin:0 -.8rem;padding:0 .8rem}.md-typeset>.codehilite,.md-typeset>.highlight{margin:1em -.8rem}.md-typeset>.codehilitetable,.md-typeset>.highlighttable,.md-typeset>.superfences-tabs{margin:1em -.8rem;border-radius:0}.md-typeset>.codehilitetable .linenodiv,.md-typeset>.highlighttable .linenodiv{padding:.5rem .8rem}.md-typeset>p>.MJXc-display{margin:.75em -.8rem;padding:.25em .8rem}.md-typeset>.superfences-tabs{border:0;border-top:.05rem solid rgba(0,0,0,.07)}.md-typeset>.superfences-tabs input:first-child+label{margin-left:.2rem}}@media only screen and (min-width:100em){html{font-size:137.5%}}@media only screen and (min-width:125em){html{font-size:150%}}@media only screen and (max-width:59.9375em){body[data-md-state=lock]{overflow:hidden}.ios body[data-md-state=lock] .md-container,.md-search-result__article--document::before,html .md-nav__link[for=__toc]+.md-nav__link{display:none}html .md-nav__link[for=__toc]{display:block;padding-right:2.4rem}html .md-nav__link[for=__toc]::after{color:inherit;content:"\E8DE"}html .md-nav__link[for=__toc]~.md-nav{display:-webkit-box;display:flex}html [dir=rtl] .md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav__source{display:block;padding:0 .2rem;background-color:rgba(50,64,144,.9675);color:#fff}.md-search__overlay{position:absolute;top:.2rem;left:.2rem;width:1.8rem;height:1.8rem;-webkit-transform-origin:center;transform-origin:center;-webkit-transition:opacity .2s .2s,-webkit-transform .3s .1s;transition:transform .3s .1s,opacity .2s .2s;transition:transform .3s .1s,opacity .2s .2s,-webkit-transform .3s .1s;border-radius:1rem;background-color:#fff;overflow:hidden;pointer-events:none}[dir=rtl] .md-search__overlay{right:.2rem;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transition:opacity .1s,-webkit-transform .4s;transition:transform .4s,opacity .1s;transition:transform .4s,opacity .1s,-webkit-transform .4s;opacity:1}.md-search__inner{position:fixed;top:0;left:100%;width:100%;height:100%;-webkit-transform:translateX(5%);transform:translateX(5%);-webkit-transition:right 0s .3s,left 0s .3s,opacity .15s .15s,-webkit-transform .15s .15s cubic-bezier(.4,0,.2,1);transition:right 0s .3s,left 0s .3s,transform .15s .15s cubic-bezier(.4,0,.2,1),opacity .15s .15s;transition:right 0s .3s,left 0s .3s,transform .15s .15s cubic-bezier(.4,0,.2,1),opacity .15s .15s,-webkit-transform .15s .15s cubic-bezier(.4,0,.2,1);opacity:0;z-index:2}[data-md-toggle=search]:checked~.md-header .md-search__inner{left:0;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:right 0s 0s,left 0s 0s,opacity .15s .15s,-webkit-transform .15s .15s cubic-bezier(.1,.7,.1,1);transition:right 0s 0s,left 0s 0s,transform .15s .15s cubic-bezier(.1,.7,.1,1),opacity .15s .15s;transition:right 0s 0s,left 0s 0s,transform .15s .15s cubic-bezier(.1,.7,.1,1),opacity .15s .15s,-webkit-transform .15s .15s cubic-bezier(.1,.7,.1,1);opacity:1}[dir=rtl] [data-md-toggle=search]:checked~.md-header .md-search__inner{right:0;left:initial}html [dir=rtl] .md-search__inner{right:100%;left:initial;-webkit-transform:translateX(-5%);transform:translateX(-5%)}.md-search__input{width:100%;height:2.4rem;font-size:.9rem}.md-search__icon[for=__search]{top:.6rem;left:.8rem}.md-search__icon[for=__search][for=__search]::before{content:"\E5C4"}[dir=rtl] .md-search__icon[for=__search][for=__search]::before{content:"\E5C8"}.md-search__icon[type=reset]{top:.6rem;right:.8rem}.md-search__output{top:2.4rem;bottom:0}}@media only screen and (max-width:76.1875em){[data-md-toggle=drawer]:checked~.md-overlay{width:100%;height:100%;-webkit-transition:width 0s,height 0s,opacity .25s;transition:width 0s,height 0s,opacity .25s;opacity:1}.md-header-nav__button.md-icon--home,.md-header-nav__button.md-logo{display:none}.md-hero__inner{margin-top:2.4rem;margin-bottom:1.2rem}.md-nav{background-color:#fff}.md-nav--primary,.md-nav--primary .md-nav{display:-webkit-box;display:flex;position:absolute;top:0;right:0;left:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;height:100%;z-index:1}.md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{font-size:.8rem;line-height:1.5}html .md-nav--primary .md-nav__title{position:relative;height:5.6rem;padding:3rem .8rem .2rem;background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.54);font-weight:400;line-height:2.4rem;white-space:nowrap;cursor:pointer}html .md-nav--primary .md-nav__title::before{display:block;position:absolute;top:.2rem;left:.2rem;width:2rem;height:2rem;color:rgba(0,0,0,.54)}html .md-nav--primary .md-nav__title~.md-nav__list{background-color:#fff;box-shadow:0 .05rem 0 rgba(0,0,0,.07) inset}html .md-nav--primary .md-nav__title~.md-nav__list>.md-nav__item:first-child{border-top:0}html .md-nav--primary .md-nav__title--site{position:relative;background-color:#3f51b5;color:#fff}html .md-nav--primary .md-nav__title--site .md-nav__button{display:block;position:absolute;top:.2rem;left:.2rem;width:3.2rem;height:3.2rem;font-size:2.4rem}html .md-nav--primary .md-nav__title--site::before{display:none}html [dir=rtl] .md-nav--primary .md-nav__title--site .md-nav__button,html [dir=rtl] .md-nav--primary .md-nav__title::before{right:.2rem;left:initial}.md-nav--primary .md-nav__list{-webkit-box-flex:1;flex:1;overflow-y:auto}.md-nav--primary .md-nav__item{padding:0;border-top:.05rem solid rgba(0,0,0,.07)}[dir=rtl] .md-nav--primary .md-nav__item{padding:0}.md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:2.4rem}[dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav--primary .md-nav__item--nested>.md-nav__link::after{content:"\E315"}[dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link::after{content:"\E314"}.md-nav--primary .md-nav__link{position:relative;margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link::after{position:absolute;top:50%;right:.6rem;margin-top:-.6rem;color:inherit;font-size:1.2rem}[dir=rtl] .md-nav--primary .md-nav__link::after{right:initial;left:.6rem}.md-nav--primary .md-nav--secondary .md-nav__link{position:static}.md-nav--primary .md-nav--secondary .md-nav{position:static;background-color:transparent}.md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem;padding-left:initial}.md-nav__toggle~.md-nav{display:-webkit-box;display:flex;-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transition:opacity .125s .05s,-webkit-transform .25s cubic-bezier(.8,0,.6,1);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity .125s .05s;transition:transform .25s cubic-bezier(.8,0,.6,1),opacity .125s .05s,-webkit-transform .25s cubic-bezier(.8,0,.6,1);opacity:0}[dir=rtl] .md-nav__toggle~.md-nav{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.no-csstransforms3d .md-nav__toggle~.md-nav{display:none}.md-nav__toggle:checked~.md-nav{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:opacity .125s .125s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .125s .125s;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .125s .125s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);opacity:1}.no-csstransforms3d .md-nav__toggle:checked~.md-nav{display:-webkit-box;display:flex}.md-sidebar--primary{position:fixed;top:0;left:-12.1rem;width:12.1rem;height:100%;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:box-shadow .25s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);background-color:#fff;z-index:3}[dir=rtl] .md-sidebar--primary{right:-12.1rem;left:initial}.md-tabs,.no-csstransforms3d .md-sidebar--primary{display:none}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4);-webkit-transform:translateX(12.1rem);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{-webkit-transform:translateX(-12.1rem);transform:translateX(-12.1rem)}.no-csstransforms3d [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{display:block}.md-sidebar--primary .md-sidebar__scrollwrap{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;margin:0}}@media only screen and (min-width:60em){.md-content{margin-right:12.1rem}[dir=rtl] .md-content{margin-right:initial;margin-left:12.1rem}.md-header-nav__button.md-icon--search{display:none}.md-header-nav__source{display:block;width:11.7rem;max-width:11.7rem;padding-right:.6rem}[dir=rtl] .md-header-nav__source{padding-right:initial;padding-left:.6rem}.md-search{padding:.2rem}.md-search__overlay{position:fixed;top:0;left:0;width:0;height:0;-webkit-transition:width 0s .25s,height 0s .25s,opacity .25s;transition:width 0s .25s,height 0s .25s,opacity .25s;background-color:rgba(0,0,0,.54);cursor:pointer}[dir=rtl] .md-search__overlay{right:0;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{width:100%;height:100%;-webkit-transition:width 0s,height 0s,opacity .25s;transition:width 0s,height 0s,opacity .25s;opacity:1}.md-search__inner{position:relative;width:11.5rem;margin-right:.8rem;padding:.1rem 0;float:right;-webkit-transition:width .25s cubic-bezier(.1,.7,.1,1);transition:width .25s cubic-bezier(.1,.7,.1,1)}[dir=rtl] .md-search__inner{margin-right:initial;margin-left:.8rem;float:left}.md-search__form,.md-search__input{border-radius:.1rem}.md-search__input{width:100%;height:1.8rem;padding-left:2.2rem;-webkit-transition:background-color .25s cubic-bezier(.1,.7,.1,1),color .25s cubic-bezier(.1,.7,.1,1);transition:background-color .25s cubic-bezier(.1,.7,.1,1),color .25s cubic-bezier(.1,.7,.1,1);background-color:rgba(0,0,0,.26);color:inherit;font-size:.8rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input+.md-search__icon{color:inherit}.md-search__input::-webkit-input-placeholder{color:rgba(255,255,255,.7)}.md-search__input::-moz-placeholder{color:rgba(255,255,255,.7)}.md-search__input:-ms-input-placeholder,.md-search__input::-ms-input-placeholder{color:rgba(255,255,255,.7)}.md-search__input::placeholder{color:rgba(255,255,255,.7)}.md-search__input:hover{background-color:rgba(255,255,255,.12)}[data-md-toggle=search]:checked~.md-header .md-search__input{border-radius:.1rem .1rem 0 0;background-color:#fff;color:rgba(0,0,0,.87);text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input::-webkit-input-placeholder{color:rgba(0,0,0,.54)}[data-md-toggle=search]:checked~.md-header .md-search__input::-moz-placeholder{color:rgba(0,0,0,.54)}[data-md-toggle=search]:checked~.md-header .md-search__input:-ms-input-placeholder,[data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{color:rgba(0,0,0,.54)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:rgba(0,0,0,.54)}.md-search__output{top:1.9rem;-webkit-transition:opacity .4s;transition:opacity .4s;opacity:0}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4);opacity:1}.md-search__scrollwrap{max-height:0}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#536dfe}.md-search-result__article,.md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem;padding-left:initial}[dir=rtl] .md-search-result__article{padding-right:2.2rem;padding-left:.8rem}.md-sidebar--secondary{display:block;margin-left:calc(100% - 12.1rem)}[dir=rtl] .md-sidebar--secondary{margin-right:calc(100% - 12.1rem);margin-left:initial}.md-sidebar--secondary .md-sidebar__scrollwrap{-webkit-overflow-scrolling:touch}}@media only screen and (min-width:76.25em){.md-content{margin-left:12.1rem}[dir=rtl] .md-content{margin-right:12.1rem}.md-content__inner{margin-right:1.2rem;margin-left:1.2rem}.md-header-nav__button.md-icon--menu,.no-js .md-nav__toggle~.md-nav{display:none}.md-nav{-webkit-transition:max-height .25s cubic-bezier(.86,0,.07,1);transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav__toggle~.md-nav{max-height:0;overflow:hidden}.md-nav__toggle:checked~.md-nav{max-height:100%}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--nested>.md-nav__link::after{display:inline-block;-webkit-transform-origin:.45em .45em;transform-origin:.45em .45em;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;vertical-align:-.125em}.js .md-nav__item--nested>.md-nav__link::after{-webkit-transition:-webkit-transform .4s;transition:transform .4s;transition:transform .4s,-webkit-transform .4s}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link::after{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.md-search__inner{margin-right:1.2rem}[dir=rtl] .md-search__inner{margin-left:1.2rem}[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}.md-search__scrollwrap{width:34.4rem}.md-sidebar--secondary{margin-left:48.9rem}[dir=rtl] .md-sidebar--secondary{margin-right:48.9rem;margin-left:initial}.md-tabs~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{font-size:0;visibility:hidden}.md-tabs--active~.md-main .md-nav--primary .md-nav__title{display:block;padding:0}.md-tabs--active~.md-main .md-nav--primary .md-nav__title--site,.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested>.md-nav__link{display:none}.no-js .md-tabs--active~.md-main .md-nav--primary .md-nav{display:block}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item{font-size:0;visibility:hidden}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{display:none;font-size:.7rem;overflow:auto;visibility:visible}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active{display:block}.md-tabs--active~.md-main .md-nav[data-md-level="1"]{max-height:initial;overflow:visible}.md-tabs--active~.md-main .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-left:0}.md-tabs--active~.md-main .md-nav[data-md-level="1"] .md-nav .md-nav__title{display:none}}@media only screen and (min-width:45em){.md-footer-nav__link{width:50%}.md-footer-copyright{max-width:75%;float:left}[dir=rtl] .md-footer-copyright{float:right}.md-footer-social{padding:.6rem 0;float:right}[dir=rtl] .md-footer-social{float:left}}@media only screen and (max-width:29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transform:scale(45);transform:scale(45)}}@media only screen and (min-width:30em) and (max-width:44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transform:scale(60);transform:scale(60)}}@media only screen and (min-width:45em) and (max-width:59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transform:scale(75);transform:scale(75)}}@media only screen and (min-width:60em) and (max-width:76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}.md-search__scrollwrap{width:23.4rem}.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{-webkit-transform:translateZ(0);transform:translateZ(0)}} /*# sourceMappingURL=app.min.css.map */ \ No newline at end of file diff --git a/material/assets/stylesheets/app.min.css.map b/material/assets/stylesheets/app.min.css.map index 3dcbe44dd..afd4a876a 100644 --- a/material/assets/stylesheets/app.min.css.map +++ b/material/assets/stylesheets/app.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["app.css","../../../src/assets/stylesheets/layout/_source.scss","../../../src/assets/stylesheets/base/_reset.scss","../../../src/assets/stylesheets/layout/_base.scss","material/assets/stylesheets/app.css","../../../src/assets/stylesheets/base/_typeset.scss","../../../src/assets/stylesheets/base/_icons.scss","../../../node_modules/material-shadows/material-shadows.scss","../../../src/assets/stylesheets/layout/_announce.scss","../../../src/assets/stylesheets/layout/_clipboard.scss","../../../src/assets/stylesheets/layout/_content.scss","../../../src/assets/stylesheets/layout/_header.scss","../../../src/assets/stylesheets/layout/_hero.scss","../../../src/assets/stylesheets/layout/_footer.scss","../../../src/assets/stylesheets/layout/_nav.scss","../../../src/assets/stylesheets/layout/_search.scss","../../../src/assets/stylesheets/extensions/_admonition.scss","../../../src/assets/stylesheets/layout/_sidebar.scss","../../../src/assets/stylesheets/extensions/pymdown/_superfences.scss","../../../src/assets/stylesheets/extensions/_codehilite.scss","../../../src/assets/stylesheets/layout/_tabs.scss","../../../src/assets/stylesheets/extensions/_footnotes.scss","../../../src/assets/stylesheets/extensions/_permalinks.scss","../../../src/assets/stylesheets/extensions/pymdown/_arithmatex.scss","../../../src/assets/stylesheets/extensions/pymdown/_critic.scss","../../../src/assets/stylesheets/extensions/pymdown/_details.scss","../../../src/assets/stylesheets/extensions/pymdown/_emoji.scss","../../../src/assets/stylesheets/extensions/pymdown/_inlinehilite.scss","../../../src/assets/stylesheets/extensions/pymdown/_tasklist.scss","../../../src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"AAAA,iBC2BA,A,0CACE,E,CACE,Q,CAGF,E,CACE,eANJ,A,kCACE,E,CACE,Q,CAGF,E,CACE,eAKJ,A,yCACE,E,CACE,kC,CAAA,0B,CACA,S,CAGF,G,CACE,S,CAGF,E,CACE,+B,CAAA,uB,CACA,WAZJ,A,iCACE,E,CACE,kC,CAAA,0B,CACA,S,CAGF,G,CACE,S,CAGF,E,CACE,+B,CAAA,uB,CACA,WCrBJ,I,CACE,qB,CAYA,6B,CAAA,0B,CAAA,yB,CAAA,qB,CCLA,e,CACA,qB,CAOA,c,CAKA,iB,CDhBF,C,CE5BA,O,CADA,Q,CFgCE,kB,CASF,I,CACE,Q,CGnBA,kC,CACA,iC,CHyFF,M,CAnEA,E,CAqEE,S,CACA,Q,CAtEF,E,CACE,gB,CACA,sB,CCmCA,a,CACA,a,CDhCF,C,CACE,oC,CAaA,a,CACA,oB,CAfF,C,CE/BA,M,CAEA,K,CADA,K,CFuCE,uC,CAUF,K,CAKA,G,CE1CA,G,CFsCE,a,CAIF,G,CE1CA,G,CF4CE,iB,CAEA,a,CACA,uB,CAIF,G,CACE,a,CAIF,G,CACE,S,CAIF,G,CACE,iB,CAIF,K,CACE,wB,CACA,gB,CAIF,E,CEpDA,E,CFsDE,e,CACA,kB,CAIF,M,CACE,Q,CAGA,c,CACA,iB,CAIF,K,CACE,Q,CACA,S,CIpGF,Q,CAAA,e,CAAA,oB,CAAA,sB,CAAA,4C,CAAA,uB,CAAA,iD,CAAA,uC,CAAA,mC,CAAA,6B,CAAA,2D,CAAA,6C,CAAA,mC,CAAA,0B,CACE,4B,CACA,iB,CACA,mB,CACA,e,CACA,a,CACA,mB,CACA,kB,CACA,gB,CACA,a,CAGA,iB,CACE,oB,CACA,U,CAEA,a,CACA,gB,CACA,c,CANF,sB,CAAA,sB,CAAA,e,CAGE,Y,CAHF,sB,CAEE,U,CACA,Y,CACA,a,CACA,gB,CACA,c,CANF,sB,CAAA,sB,CAAA,e,CAAA,4C,CACE,oB,CACA,U,CAEA,a,CACA,gB,CACA,c,CAeA,4B,CACE,W,CADF,+B,CNuCJ,sC,CMtCM,W,CADF,sB,CACE,W,CADF,wB,CACE,W,CNyCN,yC,CM5BQ,W,CD3CR,I,CDwFA,I,CANA,K,CAOA,G,CCjFA,G,CANE,qB,CACA,mC,CACA,uD,CDoFF,I,CACA,G,CCjFA,G,CAIE,4B,CACA,2C,CAWF,W,CACE,e,CACA,e,CAGA,gC,CDwEA,sB,CADA,c,CC5EF,a,CD2EE,c,CC/DE,Y,CAZJ,c,CAiBI,e,CACA,qB,CACA,mB,CACA,e,CACA,qB,CACA,e,CAtBJ,c,CAAA,c,CA2BI,mB,CACA,iB,CACA,e,CACA,qB,CACA,e,CA/BJ,c,CAoCI,qB,CACA,c,CACA,e,CAEA,e,CAxCJ,iB,CA6CI,gB,CA7CJ,c,CAAA,c,CD0GE,c,CCxDE,c,CACA,e,CACA,e,CACA,qB,CArDJ,c,CD0GE,c,CC9CE,qB,CACA,gB,CA7DJ,c,CAoEI,wB,CApEJ,c,CAyEI,c,CACA,2C,CA1EJ,a,CA+EI,a,CACA,qB,CAhFJ,a,CAAA,qB,CAqFM,8B,CAAA,sB,CArFN,oB,CAAA,mB,CA2FM,a,CA3FN,gB,CD8HE,e,CClBE,qC,CACA,a,CACA,a,CACA,a,CA/GJ,gB,CA2HI,iB,CACA,kB,CACA,mB,CACA,+E,CAGA,qB,CACA,kC,CAAA,0B,CAlIJ,mB,CD4IE,mB,CACA,mB,CACA,mB,CACA,mB,CACA,mB,CCEE,Q,CACA,4B,CACA,e,CApJJ,kB,CAyJI,c,CACA,e,CACA,qB,CACA,wB,CACA,a,CACA,e,CA9JJ,e,CAmKI,iB,CACA,Y,CACA,mB,CACA,e,CACA,gC,CAvKJ,oB,CAiLM,a,CACA,Q,CACA,qB,CACA,4B,CACA,iB,CACA,e,CACA,kC,CAAA,0B,CACA,a,CAxLN,uC,CAiMQ,W,CACA,Y,CAlMR,6C,CAuMQ,gC,CAvMR,mD,CA2MU,wB,CA3MV,e,CAqNI,kB,CACA,2B,CACA,oB,CACA,2B,CACA,wB,CACA,U,CACA,a,CACA,6B,CACA,qB,CA7NJ,gB,CAkOI,c,CACA,iB,CACA,mB,CACA,oC,CACA,uE,CAGA,qB,CACA,kC,CAAA,0B,CA1OJ,gB,CA+OI,2C,CACA,oB,CACA,W,CAjPJ,iB,CAsPI,W,CD1CF,e,CC5MF,e,CA4PI,oB,CLlCA,yB,CAAA,yB,CKsCE,qB,CACA,mB,CAjQN,sB,CAuQI,kB,CACA,uC,CACA,qB,CLvCA,gC,CK2CE,mB,CACA,oB,CACA,wC,CACA,mB,CAhRN,c,CAsRI,oB,CDxDF,c,CC9NF,c,CA4RI,kB,CACA,S,CLhDA,wB,CIqB0B,8B,CADA,8B,CJpB1B,wB,CA+BI,8B,CAAA,8B,CKqBF,mB,CACA,mB,CD5DF,iB,CCtOJ,iB,CAuSM,2B,CD9DA,oB,CCzON,oB,CA2SQ,2B,CD/DJ,iB,CC5OJ,iB,CAiTM,kB,CACA,kB,CLvDA,2B,CAAA,2B,CK2DE,mB,CACA,mB,CDjEF,4B,CADA,mB,CADA,4B,CCpPN,mB,CA6TQ,a,CDpEF,4B,CCzPN,4B,CAkUQ,e,CDpEF,oB,CADA,oB,CADA,oB,CC5PN,oB,CAwUQ,yB,CAxUR,c,CAqVI,wB,CLjEA,wB,CKqEE,oB,CACA,mB,CA1VN,kB,CD4QE,e,CACA,e,CCqFE,c,CAlWJ,sBAAA,Q,CEhCE,gG,CFyYE,oB,CACA,c,CACA,mB,CACA,gB,CACA,a,CACA,gC,CA9WJ,sBAAA,U,CAoXM,gB,CD1FF,sBAAsB,O,SAAgB,Q,CC1R1C,sBAAA,O,SAAA,Q,CA0XM,e,CLlFA,gCIXsB,O,SAAgB,Q,CJWtC,gCAAA,O,SAAA,Q,CKsFE,gB,CA9XR,sBAAA,W,CAoYM,c,CACA,mB,CACA,gC,CACA,U,CACA,kB,CAxYN,sBAAA,W,CA6YM,mB,CACA,uC,CACA,kB,CA/YN,sBAAA,W,CAoZM,yC,CAAA,iC,CApZN,sBAAA,iB,CAwZQ,iC,CACA,gC,CAzZR,sBAAA,0B,CA8ZQ,Y,CA9ZR,sBAAA,U,CAqaM,iB,CAKJ,uB,CACE,iB,CACA,e,CACA,gC,CA7aJ,8B,CAkbI,oB,CACA,kB,CACA,e,CApbJ,oC,CAwbM,a,CACA,U,CACA,Q,CACA,e,CHtcN,I,CCmBE,iB,CACA,e,CAGA,e,CA0BF,Q,CACE,e,CACA,iB,CACA,gB,CAIF,a,CC2SA,Q,CDzSE,a,CAKF,a,CACE,a,CACA,U,CACA,W,CACA,kB,CAIF,Q,CACE,iB,CACA,W,CAGA,e,CACE,W,CACA,kB,CAIA,qB,CASJ,U,CACE,Y,CAIF,W,CACE,c,CACA,K,CACA,O,CACA,Q,CACA,4D,CAAA,oD,CAIA,gC,CACA,S,CACA,S,CAuBF,Q,CACE,a,CAGA,c,CACE,kB,CACA,iB,CACA,kB,CAGA,sB,CACE,Q,CAIF,uB,CACE,a,CACA,U,CACA,kB,CAKJ,kB,CACE,kB,CACA,sB,CACA,kB,CACA,e,CASJ,Q,CACE,c,CACA,Y,CACA,a,CACA,Y,CACA,mB,CACA,mC,CAAA,2B,CACA,mB,CACA,gC,CACA,U,CACA,gB,CACA,S,CACA,e,CAZF,c,CAgBI,U,CACA,W,CACA,S,CACA,+B,CAAA,uB,CACA,qF,CAAA,qE,CAAA,oH,CAGA,S,CACA,U,CASJ,MACE,YK3NF,gB,CACE,gC,CAGA,uB,CACE,iB,CACA,e,CACA,U,CACA,e,CACA,kB,CCTJ,a,CACE,iB,CACA,S,CACA,W,CACA,Y,CACA,a,CACA,6B,CAAA,qB,CACA,mB,CACA,qB,CACA,e,CACA,c,CACA,S,CAEA,kC,CAAA,0B,CLidA,+B,CACA,0C,CK1cA,uB,CAEE,qB,CL4cF,+B,CAEA,+B,CADA,0C,CAEA,0C,CK3cA,uB,CLucA,uB,CKncE,a,CCPF,kB,CACE,qB,CACA,iB,CAFD,0B,CAaG,a,CACA,Y,CACA,U,CAfH,8B,CAoBG,e,CAKJ,iB,CAGE,iB,CACA,c,CACA,S,CACA,W,CAGA,6B,CACE,qB,CC3DN,U,CACE,uB,CAAA,e,CACA,K,CACA,O,CACA,M,CACA,a,CACA,mD,CAAA,2C,CAGA,wB,CACA,U,CACA,e,CACA,S,CAEA,kC,CAAA,0B,CAGA,iB,CACE,uB,CAAA,e,CACA,e,CAnBJ,gC,CAwBI,mE,CAAA,2D,CAIA,gE,CAYJ,c,CACE,e,CAGA,sB,CAGE,iB,CACA,+B,CAAA,uB,CACA,S,CALD,4B,CASG,U,CATH,gC,CAcG,a,CAIF,6C,CACE,Y,CAiCJ,qB,CACE,a,CACA,iB,CACA,uB,CACA,8E,CAAA,8D,CAAA,6G,CAGA,sB,CACA,kB,CACA,e,CATD,2C,CAaG,qC,CAAA,6B,CACA,8E,CAAA,8D,CAAA,6G,CAGA,S,CACA,U,CACA,mB,CX4eA,qD,CWxeE,sC,CAAA,8B,CAKJ,4B,CACE,gB,CAIF,kD,CACE,Y,CAKJ,qB,CACE,c,CACA,e,CACA,kB,CAHD,iE,CAOG,sC,CAAA,8B,CACA,8E,CAAA,8D,CAAA,6G,CAGA,S,CACA,U,CACA,mB,CX2dA,2E,CWvdE,qC,CAAA,6B,CAjBL,uF,CAsBK,+B,CAAA,uB,CACA,8E,CAAA,8D,CAAA,6G,CAGA,S,CACA,S,CACA,sB,CAMN,sB,CACE,Y,CC1KJ,Q,CACE,kC,CAAA,0B,CACA,wB,CACA,U,CACA,c,CACA,e,CAGA,e,CACE,e,CACA,yB,CACA,8E,CAAA,8D,CAAA,6G,CAGA,4B,CAAA,oB,CZooBA,sC,CY1nBE,mB,CACA,qC,CAAA,6B,CACA,0D,CAAA,0C,CAAA,mE,CAGA,S,CAIF,gC,CACE,oB,CCzBN,c,CACE,gC,CACA,U,CAGA,qB,CACE,a,CACA,a,CAIF,oB,CACE,kB,CACA,oB,CACA,+B,CAAA,uB,CAHD,0B,CAYG,U,CAIF,0B,CACE,S,CACA,U,Cb0oBA,oC,CatoBE,W,CAcJ,0B,CACE,S,CACA,W,CACA,gB,Cb8nBA,oC,Ca1nBE,U,CACA,e,CAMN,sB,CAGE,kC,CAAA,0B,CAIF,qB,CACE,iB,CACA,c,CACA,e,CACA,kB,CAIF,yB,CACE,iB,CACA,O,CACA,M,CACA,gB,CACA,c,CACA,0B,CACA,gB,CAKJ,e,CACE,iC,CAGA,sB,CACE,a,CACA,a,CAIF,iC,CACE,0B,CADF,uC,CAAA,uC,CAMI,U,CAMN,oB,CACE,c,CACA,e,CACA,0B,CACA,gB,CAcA,+B,CACE,0B,CAKJ,iB,CACE,c,CACA,qB,CAcA,uB,CACE,oB,CACA,Y,CACA,a,CACA,e,CACA,iB,CALD,+B,CASG,e,CATH,2B,CAcG,W,CACA,4B,CAAA,oB,CACA,mB,CACA,yB,CAjBH,iC,CTqiBC,iC,CS9gBE,S,CCtLN,O,CACE,e,CACA,e,CAGA,c,CACE,a,CACA,e,CACA,e,CACA,sB,CACA,e,CALD,sB,CAWG,Y,CACA,e,CdyvBA,gC,CcrvBE,e,CAhBL,8B,CAsBG,Y,CAKJ,a,CACE,Q,CACA,S,CACA,e,CAIF,a,CACE,e,CADD,wB,CAKG,oB,CALH,2B,CAUG,e,CduuBA,qC,CcnuBE,mB,CACA,c,CAfL,sC,CAoBK,gB,CAML,mB,CAKG,U,CACA,W,CAKJ,a,CACE,a,CACA,iB,CACA,8B,CAAA,sB,CACA,sB,CACA,c,CACA,e,CAOE,0C,CACE,e,CAMJ,6B,CAAA,kD,CAAA,qC,CACE,Y,CArBH,iC,CbqHD,qC,CajFI,qB,CApCH,qB,CAAA,oB,CA0CG,a,CAIF,mC,CACE,a,CA/CH,mB,CAAA,mB,CAqDG,a,CAKJ,e,CC3HA,iB,CD4HE,Y,CClHF,mB,CACE,S,CACA,S,CA6KF,gB,CACE,iB,CASF,iB,CACE,iB,CACA,yB,CACA,sB,CACA,S,Cf04BF,2B,Cet4BI,yB,CARH,4C,CAaG,sD,CAAA,8C,CAbH,mC,CAaG,mD,CAAA,8C,CAbH,uC,CAAA,wC,CAaG,kD,CAAA,8C,CAbH,8B,CAaG,sD,CAAA,8C,CAbH,4C,CAmBG,qB,CAnBH,mC,CAmBG,qB,CAnBH,uC,CAAA,wC,CAmBG,qB,CAnBH,8B,CAAA,kC,CAmBG,qB,CAnBH,4B,CAwBG,Y,CA4DJ,gB,CACE,iB,CACA,mE,CAAA,2D,CAGA,gB,CACA,c,CACA,S,CAPD,sB,CAWG,U,CAXH,8B,CAgBG,S,CACA,U,Cf21BF,wC,Cev1BI,W,CACA,Y,CAtBL,sC,CA4BK,e,CA5BL,4B,CAkDG,S,CACA,W,CACA,6B,CAAA,qB,CACA,+E,CAAA,+D,CAAA,+G,CAGA,S,Cfu0BF,sC,Cen0BI,a,CACA,U,Cfy0BJ,+F,Ce9zBI,0B,CAAA,kB,CACA,S,Cfg0BF,qG,Ce5zBI,U,CAOR,kB,CACE,iB,CACA,U,CACA,6B,CACA,e,CACA,S,CAwBF,sB,CACE,W,CACA,qB,CACA,2C,CACA,e,CACA,gC,CA8CJ,iB,CACE,qB,CACA,qB,CAGA,uB,CACE,e,CACA,gC,CACA,qB,CACA,gB,CACA,kB,CAeF,uB,CACE,Q,CACA,S,CACA,uC,CACA,e,CAIF,uB,CACE,sC,CAIF,uB,CACE,a,CACA,kC,CAAA,0B,CACA,S,CACA,e,CAJD,6B,CAAA,6B,CASG,oC,CATH,gE,CAAA,gE,CAaK,U,CAbL,4D,CCxdC,wC,CAAA,oC,CD2eE,mB,CAKJ,0B,CACE,iB,CACA,e,CACA,a,CAcC,4C,CAMG,iB,CACA,M,CACA,Y,CACA,+B,CAAA,uB,CACA,qB,CACA,e,Cf+uBF,sD,Ce3uBI,O,CACA,Y,CAhBL,6D,CA2BG,e,CACA,e,CACA,e,CACA,e,CAMN,wB,CACE,a,CACA,gB,CACA,e,CACA,e,CAMF,yB,CACE,mB,CACA,kB,CACA,a,CACA,qB,CACA,gB,CACA,e,CACA,sB,CACA,e,CACA,2B,CACA,oB,CAvIJ,oB,CA0JI,iB,CACA,e,CACA,yB,CE1lBJ,W,CACE,iB,CACA,a,CACA,gB,CACA,e,CAJF,+B,CAaI,c,CACA,U,CAwDF,sB,CC9EF,mC,CD+EI,Y,CAgCF,uB,CACE,e,CACA,c,CACA,e,CAGA,kC,CAAA,0B,CAND,0C,Cbu5CC,+C,Ce50CJ,8C,Cf60CI,8C,Ce70CJ,6C,CFnDM,W,CACA,Y,CAzBH,gD,Cb45CC,qD,Cej1CJ,oD,Cfk1CI,oD,Cel1CJ,mD,CF7CM,gC,CA9BH,sD,Cbg6CG,2D,Cer1CN,0D,Cfs1CM,0D,Cet1CN,yD,CFzCQ,wB,ChBjHR,U,CACE,a,CACA,mB,CACA,+B,CAAA,uB,CACA,gB,CACA,e,CACA,kB,CDk3CA,oB,CC92CE,qB,CACA,kB,CAXJ,gB,CAgBI,U,CAhBJ,iB,CAsBI,a,CACA,U,CAvBJ,iB,CA4BE,gB,CAsCA,sB,CACE,oB,CAMA,qB,CA7CF,gB,CAEE,Y,CACA,a,CAHD,oB,CASG,Y,CACA,a,CACA,gB,CACA,iB,CACA,S,CDo2CA,8B,CCh2CE,kB,CACA,mB,CAlBL,uC,CAwBG,iB,CACA,iB,CD81CA,iD,CC11CE,kB,CACA,mB,CACA,kB,CACA,oB,CAMN,sB,CAEE,c,CACA,iB,CACA,e,CACA,sB,CACA,e,CAKF,iB,CACE,Q,CACA,S,CACA,gB,CACA,e,CACA,oB,CACA,W,CACA,e,CDo1CA,sC,CCh1CE,qD,CAAA,6C,CAKJ,gB,CACE,U,CD80CA,0B,CC10CE,W,CD40CF,qC,CCv0CE,oD,CAAA,4C,CAVH,wB,CAeG,c,CACA,e,CAhBH,oC,CAqBG,Y,CAMN,e,CACE,oB,CACA,qB,CACA,oB,CACA,mB,CACA,gC,CACA,gB,CACA,oB,CACA,c,CACA,e,CATF,uB,CAeI,oB,CACA,mB,CACA,c,CACA,gC,CACA,U,CACA,e,CACA,e,CACA,qB,CAKF,oB,CACE,kF,CAAA,0E,CADF,4B,CAQI,0B,CAAA,kB,CAnCN,qB,CM9JE,6D,CN8JF,6B,CAmDM,wB,CmB3MN,Q,CACE,U,CACA,kC,CAAA,0B,CACA,wB,CACA,U,CACA,a,CAaA,c,CACE,Q,CACA,iB,CACA,S,CACA,e,CACA,kB,CAIF,c,CACE,oB,CACA,a,CACA,mB,CACA,kB,CAKF,c,CACE,a,CACA,gB,CACA,8E,CAAA,8D,CAAA,6G,CAGA,e,CACA,U,CAGA,sB,CAAA,oB,CAEE,a,CACA,S,CAKA,0C,CACE,6B,CAAA,qB,CADF,0C,CACE,6B,CAAA,qB,CADF,0C,CACE,6B,CAAA,qB,CADF,0C,CACE,6B,CAAA,qB,CADF,0C,CACE,4B,CAAA,oB,CADF,0C,CACE,6B,CAAA,qB,CADF,0C,CACE,6B,CAAA,qB,CADF,0C,CACE,6B,CAAA,qB,CADF,2C,CACE,6B,CAAA,qB,CADF,2C,CACE,4B,CAAA,oB,CADF,2C,CACE,6B,CAAA,qB,CADF,2C,CACE,6B,CAAA,qB,CADF,2C,CACE,6B,CAAA,qB,CADF,2C,CACE,6B,CAAA,qB,CADF,2C,CACE,4B,CAAA,oB,CAvDR,8B,CA8DI,mB,CA9DJ,6C,CAmEM,iC,CAAA,yB,CACA,kE,CAAA,kD,CAAA,2E,CAIA,S,CJxEN,uB,CAAA,mB,CTFE,gG,CSQE,iB,CACA,e,CACA,+B,CACA,mB,CACA,gB,CACA,a,ChBolDF,iC,CAAA,6B,CgBhlDI,gC,CACA,gB,CAhBN,mC,CAAA,+B,CAAA,+B,CAAA,2B,CA0BM,Y,CA1BN,yC,CAAA,+B,CAAA,qC,CAAA,2B,CA+BM,e,CACA,8B,CACA,8C,CACA,oC,CACA,e,ChBykDF,mD,CAAA,yC,CAAA,+C,CAAA,qC,CgBrkDI,8B,CAvCR,oD,CAAA,0C,CAAA,gD,CAAA,sC,CA4CQ,e,CA5CR,iD,CAAA,uC,CAAA,6C,CAAA,mC,CAmDQ,iB,CACA,mB,CACA,a,CACA,c,CACA,e,ChB+jDF,2D,CAAA,iD,CAAA,uD,CAAA,6C,CgB3jDI,oB,CACA,mB,CA5DV,gC,CAAA,+B,CAAA,4B,CAAA,4B,CAAA,2B,CAAA,wB,CAqFQ,yB,ChBsiDJ,0C,CAAA,yC,CAAA,sC,CAAA,sC,CAAA,qC,CAAA,kC,CgBliDM,0B,CAzFV,kD,CAAA,wC,CAAA,iD,CAAA,uC,CAAA,8C,CAAA,oC,CAAA,8C,CAAA,oC,CAAA,6C,CAAA,mC,CAAA,0C,CAAA,gC,CA8FU,sC,CACA,mC,CA/FV,0D,CAAA,gD,CAAA,yD,CAAA,+C,CAAA,sD,CAAA,4C,CAAA,sD,CAAA,4C,CAAA,qD,CAAA,2C,CAAA,kD,CAAA,wC,CAmGY,a,CACA,W,CApGZ,4B,CAAA,4B,CAAA,wB,CAAA,wB,CAqFQ,yB,ChBgjDJ,sC,CAAA,sC,CAAA,kC,CAAA,kC,CgB5iDM,0B,CAzFV,8C,CAAA,oC,CAAA,8C,CAAA,oC,CAAA,0C,CAAA,gC,CAAA,0C,CAAA,gC,CA8FU,sC,CACA,mC,CA/FV,sD,CAAA,4C,CAAA,sD,CAAA,4C,CAAA,kD,CAAA,wC,CAAA,kD,CAAA,wC,CAmGY,a,CACA,W,CApGZ,4B,CAAA,iC,CAAA,2B,CAAA,wB,CAAA,6B,CAAA,uB,CAqFQ,yB,ChB0jDJ,sC,CAAA,2C,CAAA,qC,CAAA,kC,CAAA,uC,CAAA,iC,CgBtjDM,0B,CAzFV,8C,CAAA,oC,CAAA,mD,CAAA,yC,CAAA,6C,CAAA,mC,CAAA,0C,CAAA,gC,CAAA,+C,CAAA,qC,CAAA,yC,CAAA,+B,CA8FU,sC,CACA,mC,CA/FV,sD,CAAA,4C,CAAA,2D,CAAA,iD,CAAA,qD,CAAA,2C,CAAA,kD,CAAA,wC,CAAA,uD,CAAA,6C,CAAA,iD,CAAA,uC,CAmGY,a,CACA,W,CApGZ,6B,CAAA,4B,CAAA,+B,CAAA,yB,CAAA,wB,CAAA,2B,CAqFQ,yB,ChBokDJ,uC,CAAA,sC,CAAA,yC,CAAA,mC,CAAA,kC,CAAA,qC,CgBhkDM,0B,CAzFV,+C,CAAA,qC,CAAA,8C,CAAA,oC,CAAA,iD,CAAA,uC,CAAA,2C,CAAA,iC,CAAA,0C,CAAA,gC,CAAA,6C,CAAA,mC,CA8FU,qC,CACA,kC,CA/FV,uD,CAAA,6C,CAAA,sD,CAAA,4C,CAAA,yD,CAAA,+C,CAAA,mD,CAAA,yC,CAAA,kD,CAAA,wC,CAAA,qD,CAAA,2C,CAmGY,a,CACA,W,CApGZ,2B,CAAA,4B,CAAA,gC,CAAA,uB,CAAA,wB,CAAA,4B,CAqFQ,yB,ChB8kDJ,qC,CAAA,sC,CAAA,0C,CAAA,iC,CAAA,kC,CAAA,sC,CgB1kDM,0B,CAzFV,6C,CAAA,mC,CAAA,8C,CAAA,oC,CAAA,kD,CAAA,wC,CAAA,yC,CAAA,+B,CAAA,0C,CAAA,gC,CAAA,8C,CAAA,oC,CA8FU,uC,CACA,oC,CA/FV,qD,CAAA,2C,CAAA,sD,CAAA,4C,CAAA,0D,CAAA,gD,CAAA,iD,CAAA,uC,CAAA,kD,CAAA,wC,CAAA,sD,CAAA,4C,CAmGY,a,CACA,W,CApGZ,iC,CAAA,+B,CAAA,+B,CAAA,6B,CAAA,2B,CAAA,2B,CAqFQ,yB,ChBwlDJ,2C,CAAA,yC,CAAA,yC,CAAA,uC,CAAA,qC,CAAA,qC,CgBplDM,0B,CAzFV,mD,CAAA,yC,CAAA,iD,CAAA,uC,CAAA,iD,CAAA,uC,CAAA,+C,CAAA,qC,CAAA,6C,CAAA,mC,CAAA,6C,CAAA,mC,CA8FU,sC,CACA,mC,CA/FV,2D,CAAA,iD,CAAA,yD,CAAA,+C,CAAA,yD,CAAA,+C,CAAA,uD,CAAA,6C,CAAA,qD,CAAA,2C,CAAA,qD,CAAA,2C,CAmGY,a,CACA,W,CApGZ,4B,CAAA,+B,CAAA,+B,CAAA,wB,CAAA,2B,CAAA,2B,CAqFQ,yB,ChBkmDJ,sC,CAAA,yC,CAAA,yC,CAAA,kC,CAAA,qC,CAAA,qC,CgB9lDM,0B,CAzFV,8C,CAAA,oC,CAAA,iD,CAAA,uC,CAAA,iD,CAAA,uC,CAAA,0C,CAAA,gC,CAAA,6C,CAAA,mC,CAAA,6C,CAAA,mC,CA8FU,sC,CACA,mC,CA/FV,sD,CAAA,4C,CAAA,yD,CAAA,+C,CAAA,yD,CAAA,+C,CAAA,kD,CAAA,wC,CAAA,qD,CAAA,2C,CAAA,qD,CAAA,2C,CAmGY,a,CACA,W,CApGZ,8B,CAAA,6B,CAAA,0B,CAAA,yB,CAqFQ,yB,ChB4mDJ,wC,CAAA,uC,CAAA,oC,CAAA,mC,CgBxmDM,0B,CAzFV,gD,CAAA,sC,CAAA,+C,CAAA,qC,CAAA,4C,CAAA,kC,CAAA,2C,CAAA,iC,CA8FU,sC,CACA,mC,CA/FV,wD,CAAA,8C,CAAA,uD,CAAA,6C,CAAA,oD,CAAA,0C,CAAA,mD,CAAA,yC,CAmGY,a,CACA,W,CApGZ,2B,CAAA,uB,CAqFQ,yB,ChBsnDJ,qC,CAAA,iC,CgBlnDM,0B,CAzFV,6C,CAAA,mC,CAAA,yC,CAAA,+B,CA8FU,qC,CACA,kC,CA/FV,qD,CAAA,2C,CAAA,iD,CAAA,uC,CAmGY,a,CACA,W,CApGZ,+B,CAAA,2B,CAqFQ,yB,ChBgoDJ,yC,CAAA,qC,CgB5nDM,0B,CAzFV,iD,CAAA,uC,CAAA,6C,CAAA,mC,CA8FU,uC,CACA,oC,CA/FV,yD,CAAA,+C,CAAA,qD,CAAA,2C,CAmGY,a,CACA,W,CApGZ,4B,CAAA,6B,CAAA,wB,CAAA,yB,CAqFQ,yB,ChB0oDJ,sC,CAAA,uC,CAAA,kC,CAAA,mC,CgBtoDM,0B,CAzFV,8C,CAAA,oC,CAAA,+C,CAAA,qC,CAAA,0C,CAAA,gC,CAAA,2C,CAAA,iC,CA8FU,wC,CACA,qC,CA/FV,sD,CAAA,4C,CAAA,uD,CAAA,6C,CAAA,kD,CAAA,wC,CAAA,mD,CAAA,yC,CAmGY,a,CACA,W,CGhBZ,c,CAAA,e,CAAA,yB,CAAA,0B,CAGQ,a,CAHR,e,CAAA,0B,CAOQ,U,CAPR,e,CAAA,0B,CAQQ,U,CARR,e,CAAA,0B,CASQ,U,CATR,e,CAAA,0B,CAUQ,U,CAVR,e,CAAA,0B,CAWQ,U,CAXR,e,CAAA,0B,CAYQ,a,CAZR,e,CAAA,0B,CAaQ,U,CAbR,e,CAAA,0B,CAcQ,U,CAdR,e,CAAA,0B,CAiBQ,qB,CAjBR,e,CAAA,0B,CAkBQ,qB,CAlBR,c,CAAA,yB,CAqBQ,a,CArBR,e,CAAA,0B,CAsBQ,a,CAtBR,e,CAAA,e,CAAA,0B,CAAA,0B,CAuBQ,a,CAvBR,e,CAAA,0B,CAyBQ,a,CAzBR,e,CAAA,e,CAAA,0B,CAAA,0B,CA0BQ,a,CA1BR,c,CAAA,e,CAAA,yB,CAAA,0B,CA8BQ,U,CA9BR,e,CAAA,0B,CAgCQ,U,CAhCR,e,CAAA,e,CAAA,e,CAAA,0B,CAAA,0B,CAAA,0B,CAiCQ,U,CAjCR,e,CAAA,e,CAAA,0B,CAAA,0B,CAsCQ,a,CAtCR,e,CAAA,0B,CAwCQ,a,CAxCR,e,CAAA,0B,CAyCQ,a,CAzCR,e,CAAA,0B,CA0CQ,a,CA1CR,e,CAAA,e,CAAA,0B,CAAA,0B,CA2CQ,U,CA3CR,e,CAAA,e,CAAA,0B,CAAA,0B,CA6CQ,a,CA7CR,e,CAAA,0B,CA+CQ,a,CA/CR,e,CAAA,0B,CAgDQ,a,CAhDR,e,CAAA,0B,CAiDQ,a,CAjDR,e,CAAA,e,CAAA,e,CAAA,e,CAAA,0B,CAAA,0B,CAAA,0B,CAAA,0B,CAkDQ,a,CAlDR,e,CAAA,0B,CAsDQ,a,CAtDR,e,CAAA,c,CAAA,e,CAAA,e,CAAA,e,CAAA,e,CAAA,0B,CAAA,yB,CAAA,0B,CAAA,0B,CAAA,0B,CAAA,0B,CAyDQ,a,CAzDR,c,CAAA,e,CAAA,e,CAAA,yB,CAAA,0B,CAAA,0B,CAiEQ,a,CAjER,e,CAAA,0B,CAoEQ,U,CApER,e,CAAA,0B,CAqEQ,a,CArER,e,CAAA,e,CAAA,e,CAAA,e,CAAA,0B,CAAA,0B,CAAA,0B,CAAA,0B,CAsEQ,a,CAtER,e,CAAA,0B,CA0EQ,a,CA1ER,e,CAAA,e,CAAA,0B,CAAA,0B,CA2EQ,a,CA3ER,gB,CAAA,2B,CA+ES,a,CA/ET,c,CAAA,yB,CAgFO,iB,CAhFP,gB,CAAA,2B,CAoFI,a,CACA,e,CACA,e,CACA,oC,CAeJ,uB,CAAA,sB,CAKI,iB,CACA,Y,CACA,S,CACA,mB,CACA,qC,CACA,a,CACA,e,CACA,gC,CfwzCF,4B,Cep0CF,2B,Cfq0CE,2B,Cer0CF,0B,CAiBM,a,CACA,Q,CACA,qB,CACA,4B,CACA,a,CArBN,0B,CAAA,yB,CA2CI,gB,CA3CJ,+B,CAAA,8B,CA+CM,a,CACA,qB,CACA,a,CAjDN,4B,CAAA,2B,CAuDI,a,CACA,Y,CACA,kB,CACA,e,CACA,e,CA3DJ,kC,Cfu2CE,+B,Cev2CF,iC,Cfw2CE,8B,CevyCI,a,CACA,S,CAlEN,+B,CAAA,8B,CAwEM,mB,CAAA,Y,CAxEN,wC,CAAA,uC,Cf+2CE,uC,Ce/2CF,uC,CAAA,sC,Cfg3CE,sC,CejyCI,Q,CACA,e,CAhFN,uC,Cfq3CE,sC,CehyCI,qB,CArFN,qC,CAAA,oC,CA2FM,gC,CACA,qB,CACA,wB,CAAA,qB,CAAA,oB,CAAA,gB,CA7FN,yC,CAAA,wC,CAiGQ,Q,CACA,S,CACA,4B,CACA,a,CACA,gB,CArGR,kC,CAAA,iC,CA4GM,kB,CAAA,M,CACA,e,CA7GN,4B,CAAA,2B,CAmII,e,CE7TJ,0B,CAII,oB,CAJJ,iC,CAQM,kB,CACA,kB,CACA,mB,CAVN,+B,CAmBM,Y,CACA,Q,CACA,U,CArBN,sC,CA0BM,a,CACA,kB,CACA,kB,CACA,mB,CA7BN,qB,CAmCI,qB,CACA,gB,CApCJ,wB,CAwCM,a,CAxCN,wB,CA6CM,6B,CAAA,qB,CA7CN,+B,CAiDQ,qB,CAjDR,qC,CAsDQ,Y,CAtDR,gD,CjBqmDI,iD,CiBziDI,+B,CAAA,uB,CACA,S,CA7DR,sD,CjB0mDI,iD,CiBviDI,a,CAnER,yB,CA0EI,oB,CACA,sB,CA3EJ,iC,CA+EM,c,CACA,a,CACA,wC,CACA,gB,CACA,U,CACA,sB,CApFN,6B,CA4FI,oB,CACA,oC,CAAA,4B,CACA,8E,CAAA,8D,CAAA,2F,CAIA,qB,CAEA,W,CACA,S,CACA,0B,CrBg+DF,uC,CqB59DI,qC,CAAA,6B,CA1GN,qC,CA+GM,oB,CACA,e,CACA,e,CrB29DF,+C,CqBv9DI,4B,CAAA,oB,CCrHR,uB,CAII,oB,CACA,iB,CACA,qC,CAAA,6B,CACA,4E,CAAA,4D,CAAA,wF,CAIA,S,CtB0kEF,iC,CsBtkEI,kB,CACA,mB,CAIF,iC,CACE,qB,CArBN,0B,CAAA,0B,CAAA,0B,CA2CQ,a,CACA,e,CACA,e,CACA,U,CA9CR,iC,CAAA,iC,CAAA,iC,CAmDQ,kB,CACA,kB,ClBunDR,oC,CkB3qDA,oC,ClB0qDA,qC,CkB/mDQ,gC,CAAA,wB,CACA,S,ClBsnDR,oC,CkBlrDA,0C,ClBirDA,qC,CkB9mDQ,a,ClB8nDR,oC,CkBjsDA,oC,ClBgsDA,qC,CkBroDQ,gC,CAAA,wB,CACA,S,ClB4oDR,oC,CkBxsDA,0C,ClBusDA,qC,CkBpoDQ,a,ClBopDR,oC,CkBvtDA,oC,ClBstDA,qC,CkB3pDQ,gC,CAAA,wB,CACA,S,ClBkqDR,oC,CkB9tDA,0C,ClB6tDA,qC,CkB1pDQ,a,CAnER,0B,CA2CQ,a,CACA,e,CACA,e,CACA,U,CA9CR,iC,CAmDQ,mB,CACA,mB,ClByrDR,oC,CkB7uDA,oC,ClB4uDA,qC,CkBjrDQ,gC,CAAA,wB,CACA,S,ClBwrDR,oC,CkBpvDA,0C,ClBmvDA,qC,CkBhrDQ,a,CAnER,0B,CAAA,0B,CA2CQ,a,CACA,gB,CACA,gB,CACA,U,CA9CR,iC,CAAA,iC,CAmDQ,mB,CACA,mB,ClB+sDR,oC,CkBnwDA,oC,ClBkwDA,qC,CkBvsDQ,gC,CAAA,wB,CACA,S,ClB8sDR,oC,CkB1wDA,0C,ClBywDA,qC,CkBtsDQ,a,ClBstDR,oC,CkBzxDA,oC,ClBwxDA,qC,CkB7tDQ,gC,CAAA,wB,CACA,S,ClBouDR,oC,CkBhyDA,0C,ClB+xDA,qC,CkB5tDQ,a,CCjER,yB,CAII,c,CACA,e,CACA,a,CACA,gC,CAPJ,0B,CAsBI,S,CnBsxDJ,2B,CoB9yDA,sB,CpB6yDA,sB,CoBvyDI,c,CACA,iB,CACA,mB,CACA,kC,CAAA,0B,CATJ,sB,CAcI,qB,CACA,yC,CAfJ,sB,CAsBI,qB,CACA,yC,CAvBJ,2B,CA8BI,qC,CACA,a,CACA,yE,CAhCJ,mC,CAwCM,oB,CACA,qB,CACA,e,CACA,sB,CA3CN,yB,CAiDI,a,CACA,Y,CACA,mB,CACA,kB,CACA,e,CArDJ,sC,CAyDM,e,CAzDN,qC,CA8DM,kB,CC9DN,mB,CAMI,a,CACA,a,CAPJ,wC,CAWM,gC,CAAA,wB,CAXN,wBAAA,O,CAgBM,gB,CAhBN,wBAAA,e,CAoBQ,kB,CApBR,2B,CA0BM,iB,CACA,kB,CzBgwEF,qC,CyB5vEI,iB,CAKJ,oCAAA,S,CAII,Y,CAJJ,oCAAA,e,CASI,a,CA7CR,mB,CAuDI,a,CACA,S,CACA,c,CAzDJ,2C,CA6DM,Y,CA7DN,0B,CAoEM,iB,CACA,S,CACA,W,CACA,qB,CACA,c,CACA,e,CzBsuEF,oC,CyBluEI,a,CACA,U,CC9ER,qB,CtBy3DA,mB,CADA,oB,CsBl3DI,U,CACA,uB,CCPJ,2B,CAAA,0B,CAMI,iB,CACA,kB,CTPJ,gC,CAII,Y,CACA,6B,CAAA,Q,CACA,U,CACA,qB,CAPJ,kC,CAWM,Q,CACA,e,CAZN,6B,CAkBI,mB,CAAA,Y,CACA,iB,CACA,c,CACA,Y,CACA,mC,CACA,kB,CAvBJ,iD,CA+BQ,e,CA/BR,sE,CAmCU,a,CAnCV,mC,CA0CM,U,CACA,a,CACA,8B,CAAA,sB,CACA,gB,CACA,c,CAGA,8C,CACE,a,CUlDR,2B,CAII,iB,CACA,oB,CALJ,2C,CAUM,iB,CACA,S,CACA,S,C5Bi2EF,qD,C4B71EI,U,CACA,Y,CAjBR,2D,CA6BM,iB,CACA,S,CACA,Y,CACA,qB,CACA,gB,CACA,e,CACA,qB,C5Bs1EJ,qE,C4Bl1EM,a,CACA,Y,CAxCR,mF,CA8CM,e,CA9CN,8C,CAmDM,S,CACA,U,CvByEF,aA/FJ,oB,CAmGQ,qB,CACA,2B,CApGR,gB,CDw6DM,e,CCrzDA,oB,CAnHN,gB,CAsIM,e,CACA,oC,CAAA,4B,CIrKN,a,CCiDE,iB,CGjDF,U,CFAA,U,CMQA,W,CGRA,Q,CEAA,uB,CbiBI,coBuMA,A,6CxB1LJ,e,CA2KM,iB,CACA,e,CA5KN,oB,CD+8DI,4B,CenzDJ,2B,CfozDI,2B,CepzDJ,0B,Cf00DI,kC,CcpgEJ,iC,Cb0NQ,qB,CQtLH,gD,CAcK,Y,CEihBR,yB,CAcI,iB,CACA,oB,CI9fN,gB,CAAA,2B,CA2FM,e,CACA,e,CAUN,uB,CAAA,4B,CAAA,sB,CAAA,2B,CD1LA,6B,CCgTM,iB,CACA,e,CfmsDA,6C,Ce1zDN,4C,Cf4zDM,4C,Ce5zDN,2C,Cf8zDM,uC,CAHA,4C,Ce3zDN,2C,Cf6zDM,2C,Ce7zDN,0C,Cf+zDM,sC,CejrDE,mB,CItUR,2B,CAeM,mB,CACA,mB,CLlBN,6B,CA6DM,Q,CACA,yCWoIF,A,yC3BhMJ,I,CCyBI,kB0BuKA,A,yC3BhMJ,I,CC8BI,gB0BwLA,A,6C1BnLJ,wB,CAYM,e,CAGA,2C,CYieD,4C,CDpID,2C,CX5VI,Y,CW2CJ,6B,CAkTE,a,CACA,oB,CAFF,oC,CAMI,a,CACA,e,CAxTJ,qC,CAkUI,mB,CAAA,Y,CAKJ,4B,CACE,mB,CACA,mB,CAnSJ,e,CAwSI,a,CACA,e,CACA,sC,CACA,U,CC5ZJ,mB,CAMI,iB,CACA,S,CACA,U,CACA,Y,CACA,a,CACA,+B,CAAA,uB,CACA,4D,CAAA,4C,CAAA,sE,CAGA,kB,CACA,qB,CACA,e,CACA,mB,Cfq9BA,6B,Cej9BE,W,CACA,Y,Cfm9BF,8D,Ce98BE,oD,CAAA,oC,CAAA,0D,CAGA,S,CAyDN,iB,CAII,c,CACA,K,CACA,S,CACA,U,CACA,W,CACA,gC,CAAA,wB,CACA,iH,CAAA,iG,CAAA,qJ,CAKA,S,CACA,S,Cf46BF,4D,Cex6BI,M,CACA,+B,CAAA,uB,CACA,gH,CAAA,gG,CAAA,qJ,CAKA,S,Cfs6BF,sE,Cel6BI,O,CACA,Y,CAKJ,gC,CACE,U,CACA,Y,CACA,iC,CAAA,yB,CAyDN,iB,CA6BI,U,CACA,a,CACA,e,CAqDH,8B,CAiCK,S,CACA,U,CAlCL,oD,CAsCO,e,Cfi1BA,8D,Ce70BE,e,CA1CT,4B,CAkEK,S,CACA,W,CAiBN,kB,CASI,U,CACA,UcxKF,A,6C7BkNA,2C,CGrSE,U,CACA,W,CACA,kD,CAAA,0C,CAIA,S,CQ/FH,oC,CAAA,8B,CAqCK,Y,CCzEN,e,CAUI,iB,CACA,oB,CEnBN,O,CA4II,qB,CAGA,gB,CVm/DE,wB,CUj/DA,mB,CAAA,Y,CACA,iB,CACA,K,CACA,O,CACA,M,CACA,2B,CAAA,4B,CAAA,qB,CACA,W,CACA,S,CVu/DA,8B,CUn/DD,+B,CAKG,e,CACA,e,CAKF,oC,CACE,iB,CACA,a,CACA,wB,CACA,gC,CACA,qB,CACA,e,CACA,kB,CACA,kB,CACA,c,CATF,4C,CAaI,a,CACA,iB,CACA,S,CACA,U,CACA,U,CACA,W,CACA,qB,CAnBJ,kD,CAwBI,qB,CACA,2C,CAzBJ,4E,CA6BM,Y,CA7BN,0C,CAmCI,iB,CACA,wB,CACA,U,CArCJ,0D,CAyCM,a,CACA,iB,CACA,S,CACA,U,CACA,Y,CACA,a,CACA,gB,CA/CN,kD,CAoDM,Y,CAMN,oE,CAAA,sD,CAII,W,CACA,Y,CA1EL,8B,CAsFG,kB,CAAA,M,CACA,e,CAvFH,8B,CA4FG,S,CACA,uC,CdkoBA,wC,Cc9nBE,S,CAjGL,oD,CAsGK,oB,Cd6nBA,8D,CcznBE,mB,CACA,mB,CA3GP,2D,CAgHO,e,CdwnBA,qE,CcpnBE,e,CApHT,8B,CA4HG,iB,CACA,Y,CACA,mB,CA9HH,qC,CAkIK,iB,CACA,O,CACA,W,CACA,iB,CACA,a,CACA,gB,Cd8mBA,+C,Cc1mBE,a,CACA,U,CA5IP,iD,CAsJK,e,CAtJL,2C,CA2JK,e,CACA,4B,CA5JL,yD,CAgKO,mB,Cd+lBF,mE,Cc3lBI,oB,CACA,oB,CArKT,iE,CA2KO,iB,CdylBF,2E,CcrlBI,kB,CACA,oB,CAhLT,yE,CAsLO,mB,CdmlBF,mF,Cc/kBI,oB,CACA,oB,CA3LT,iF,CAiMO,mB,Cd6kBF,2F,CczkBI,oB,CACA,oB,CAQV,uB,CACE,mB,CAAA,Y,CACA,kC,CAAA,0B,CACA,oF,CAAA,oE,CAAA,mH,CAGA,S,CdkkBE,iC,Cc9jBA,mC,CAAA,2B,CAIF,2C,CACE,Y,CAKJ,+B,CACE,+B,CAAA,uB,CACA,qF,CAAA,qE,CAAA,oH,CAGA,S,CAGA,mD,CACE,mB,CAAA,Y,CG1WJ,oB,CACE,c,CACA,K,CACA,a,CACA,a,CACA,W,CACA,+B,CAAA,uB,CACA,iF,CAAA,iE,CAAA,gH,CAGA,qB,CACA,S,CjBqyCA,8B,CiBjyCE,c,CACA,Y,CG7CR,Q,CHiDM,wC,CACE,Y,CjBgyCF,kE,CO5zCJ,sG,CUmCM,qC,CAAA,6B,CjB4xCA,4E,CiBxxCE,sC,CAAA,8B,CAIF,sF,CACE,a,CArCL,4C,CA2CG,e,CAoDA,iB,CACA,K,CACA,O,CACA,Q,CACA,M,CACA,UYiEJ,A,wCnBlMJ,W,CAII,oB,CV+fA,qB,CU3fE,oB,CACA,mB,CCmCH,sC,CA2BK,Y,CAkGN,sB,CAKI,a,CACA,a,CACA,iB,CACA,mB,CX8cE,gC,CW1cA,qB,CACA,kB,CI9KR,U,CASI,a,CAIF,mB,CAwDI,c,CACA,K,CACA,M,CACA,O,CACA,Q,CACA,4D,CAAA,oD,CAIA,gC,CACA,c,Cf87BA,6B,Ce17BE,O,CACA,Y,Cf47BF,8D,Cev7BE,U,CACA,W,CACA,kD,CAAA,0C,CAIA,S,CAMN,iB,CA8CI,iB,CACA,a,CACA,kB,CACA,e,CACA,W,CACA,sD,CAAA,8C,Cf85BF,2B,Ce15BI,oB,CACA,iB,CACA,U,CA8BN,gB,CAUA,iB,CALI,mB,CAKJ,iB,CAoCI,U,CACA,a,CACA,mB,CACA,qG,CAAA,6F,CAIA,gC,CACA,a,CACA,e,Cfw3BA,2B,Cep3BE,oB,CAjDL,kC,CAsDK,a,CAtDL,4C,CA2DK,0B,CA3DL,mC,CA2DK,0B,CA3DL,uC,CAAA,wC,CA2DK,0B,CA3DL,8B,CA2DK,0B,CA3DL,uB,CAgEK,sC,Cf62BF,4D,Cex2BE,6B,CACA,qB,CACA,qB,CACA,kB,Cf02BA,uF,Cer2BE,qB,Cfq2BF,8E,Cer2BE,qB,Cfq2BF,kF,CAAA,mF,Cer2BE,qB,Cfq2BF,6E,CAAA,yE,Cer2BE,qB,CA2FR,kB,CAeI,U,CACA,8B,CAAA,sB,CACA,S,CfszBA,6D,CO7qCJ,kG,CQ6XM,S,CAMN,sB,CAwBI,Y,CfwyBA,iE,CepyBE,e,CA5BL,yC,CAiCK,W,CACA,Y,CAlCL,+C,CAuCK,gC,CAvCL,qD,CA2CO,wB,CAsER,0B,CAzDA,uB,CASI,mB,CfqxBE,iC,CejxBA,oB,CACA,oB,Cf4yBA,oC,CetvBA,oB,CACA,kB,CElcN,sB,CAKI,a,CACA,gC,CjB6wCE,gC,CiBzwCA,iC,CACA,mB,CAXL,8C,CAgBK,kCYoGJ,A,2CnBlMJ,W,CAeI,mB,CV2fA,qB,CUvfE,oB,CAKJ,kB,CAMI,mB,CACA,kB,CCaH,oC,CGsZG,8B,CHxWE,Y,CG1FR,O,CA0bI,4D,CAAA,oD,CAhFA,uB,CAoFE,Y,CACA,e,CAjEF,+B,CA2EE,e,CAIF,4C,CACE,Y,CArXA,0C,CA8XE,oB,CACA,oC,CAAA,4B,CACA,mC,CAAA,2B,CACA,sB,CAIA,8C,CACE,wC,CAAA,wB,CAAA,8C,CAKJ,kE,CACE,iC,CAAA,yB,CCxXN,iB,CA+DI,mB,Cf05BF,2B,Cet5BI,kB,Cf85BN,4D,Ceh5BM,a,CAqNN,sB,CAmBI,a,CExVJ,sB,CAsBI,mB,CjBqwCE,gC,CiBjwCA,oB,CACA,mB,CGzGR,sE,CAkFM,W,CACA,iB,CAID,yD,CAOK,a,CACA,S,CARL,+D,CAAA,4F,CAaK,Y,CAIF,yD,CACE,a,CAlBL,sE,CAuBK,W,CACA,iB,CAxBL,8E,CA4BO,Y,CACA,e,CACA,a,CACA,kB,CA/BP,8E,CAyCO,a,CAzCP,oD,CAgDG,kB,CACA,gB,CAjDH,gF,CAqDK,c,CArDL,2E,CA0DK,cSiDN,A,wChB9KF,oB,CAOI,S,CA4FN,oB,CAQI,a,CACA,U,Cb+lBE,8B,Ca3lBA,W,CAWN,iB,CAMI,e,CACA,W,CbqlBE,2B,CajlBA,YgB8DF,A,6C7B2yBA,8D,Cet8BI,2B,CAAA,qBc4GF,A,kE7B61BF,8D,Cep8BI,2B,CAAA,qBcuGF,A,kE7Bg2BF,8D,Cel8BI,2B,CAAA,qBckGF,A,kE7Bi6BJ,4D,Cej5BM,a,CA0NN,sB,CAcI,a,CAkKJ,yB,CAoBI,iB,CACA,sBA7LF,A,iEARF,sB,CASI,+B,CAAA,yB","file":"material/assets/stylesheets/app.css","sourcesContent":[null,null,null,null,"@charset \"UTF-8\";\nhtml {\n box-sizing: border-box; }\n\n*,\n*::before,\n*::after {\n box-sizing: inherit; }\n\nhtml {\n -webkit-text-size-adjust: none;\n -moz-text-size-adjust: none;\n -ms-text-size-adjust: none;\n text-size-adjust: none; }\n\nbody {\n margin: 0; }\n\nhr {\n overflow: visible;\n box-sizing: content-box; }\n\na {\n -webkit-text-decoration-skip: objects; }\n\na,\nbutton,\nlabel,\ninput {\n -webkit-tap-highlight-color: transparent; }\n\na {\n color: inherit;\n text-decoration: none; }\n\nsmall {\n font-size: 80%; }\n\nsub,\nsup {\n position: relative;\n font-size: 80%;\n line-height: 0;\n vertical-align: baseline; }\n\nsub {\n bottom: -0.25em; }\n\nsup {\n top: -0.5em; }\n\nimg {\n border-style: none; }\n\ntable {\n border-collapse: separate;\n border-spacing: 0; }\n\ntd,\nth {\n font-weight: normal;\n vertical-align: top; }\n\nbutton {\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n font-size: inherit; }\n\ninput {\n border: 0;\n outline: 0; }\n\n.md-icon, .md-nav__title::before, .md-nav__button, .md-nav__link::after, .md-search-result__article--document::before, .md-source-file::before, .md-typeset .admonition > .admonition-title::before, .md-typeset details > .admonition-title::before, .md-typeset .admonition > summary::before, .md-typeset details > summary::before, .md-typeset .footnote-backref, .md-typeset .critic.comment::before, .md-typeset summary::after, .md-typeset .task-list-control .task-list-indicator::before {\n font-family: \"Material Icons\";\n font-style: normal;\n font-variant: normal;\n font-weight: normal;\n line-height: 1;\n text-transform: none;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr; }\n .md-content__icon, .md-header-nav__button, .md-footer-nav__button, .md-nav__title::before, .md-nav__button, .md-search-result__article--document::before {\n display: inline-block;\n width: 2rem;\n margin: 0.2rem;\n padding: 0.4rem;\n font-size: 1.2rem;\n cursor: pointer; }\n\n.md-icon--arrow-back::before {\n content: \"\"; }\n\n.md-icon--arrow-forward::before {\n content: \"\"; }\n\n.md-icon--menu::before {\n content: \"\"; }\n\n.md-icon--search::before {\n content: \"\"; }\n\n[dir=\"rtl\"] .md-icon--arrow-back::before {\n content: \"\"; }\n\n[dir=\"rtl\"] .md-icon--arrow-forward::before {\n content: \"\"; }\n\nbody {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\nbody,\ninput {\n color: rgba(0, 0, 0, 0.87);\n font-feature-settings: \"kern\", \"liga\";\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; }\n\npre,\ncode,\nkbd {\n color: rgba(0, 0, 0, 0.87);\n font-feature-settings: \"kern\";\n font-family: \"Courier New\", Courier, monospace; }\n\n.md-typeset {\n font-size: 0.8rem;\n line-height: 1.6;\n -webkit-print-color-adjust: exact; }\n .md-typeset p,\n .md-typeset ul,\n .md-typeset ol,\n .md-typeset blockquote {\n margin: 1em 0; }\n .md-typeset h1 {\n margin: 0 0 2rem;\n color: rgba(0, 0, 0, 0.54);\n font-size: 1.5625rem;\n font-weight: 300;\n letter-spacing: -0.01em;\n line-height: 1.3; }\n .md-typeset h2 {\n margin: 2rem 0 0.8rem;\n font-size: 1.25rem;\n font-weight: 300;\n letter-spacing: -0.01em;\n line-height: 1.4; }\n .md-typeset h3 {\n margin: 1.6rem 0 0.8rem;\n font-size: 1rem;\n font-weight: 400;\n letter-spacing: -0.01em;\n line-height: 1.5; }\n .md-typeset h2 + h3 {\n margin-top: 0.8rem; }\n .md-typeset h4 {\n margin: 0.8rem 0;\n font-size: 0.8rem;\n font-weight: 700;\n letter-spacing: -0.01em; }\n .md-typeset h5,\n .md-typeset h6 {\n margin: 0.8rem 0;\n color: rgba(0, 0, 0, 0.54);\n font-size: 0.64rem;\n font-weight: 700;\n letter-spacing: -0.01em; }\n .md-typeset h5 {\n text-transform: uppercase; }\n .md-typeset hr {\n margin: 1.5em 0;\n border-bottom: 0.05rem dotted rgba(0, 0, 0, 0.26); }\n .md-typeset a {\n color: #3f51b5;\n word-break: break-word; }\n .md-typeset a, .md-typeset a::before {\n -webkit-transition: color 0.125s;\n transition: color 0.125s; }\n .md-typeset a:hover, .md-typeset a:active {\n color: #536dfe; }\n .md-typeset code,\n .md-typeset pre {\n background-color: rgba(236, 236, 236, 0.5);\n color: #37474F;\n font-size: 85%;\n direction: ltr; }\n .md-typeset code {\n margin: 0 0.29412em;\n padding: 0.07353em 0;\n border-radius: 0.1rem;\n box-shadow: 0.29412em 0 0 rgba(236, 236, 236, 0.5), -0.29412em 0 0 rgba(236, 236, 236, 0.5);\n word-break: break-word;\n -webkit-box-decoration-break: clone;\n box-decoration-break: clone; }\n .md-typeset h1 code,\n .md-typeset h2 code,\n .md-typeset h3 code,\n .md-typeset h4 code,\n .md-typeset h5 code,\n .md-typeset h6 code {\n margin: 0;\n background-color: transparent;\n box-shadow: none; }\n .md-typeset a > code {\n margin: inherit;\n padding: inherit;\n border-radius: initial;\n background-color: inherit;\n color: inherit;\n box-shadow: none; }\n .md-typeset pre {\n position: relative;\n margin: 1em 0;\n border-radius: 0.1rem;\n line-height: 1.4;\n -webkit-overflow-scrolling: touch; }\n .md-typeset pre > code {\n display: block;\n margin: 0;\n padding: 0.525rem 0.6rem;\n background-color: transparent;\n font-size: inherit;\n box-shadow: none;\n -webkit-box-decoration-break: slice;\n box-decoration-break: slice;\n overflow: auto; }\n .md-typeset pre > code::-webkit-scrollbar {\n width: 0.2rem;\n height: 0.2rem; }\n .md-typeset pre > code::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.26); }\n .md-typeset pre > code::-webkit-scrollbar-thumb:hover {\n background-color: #536dfe; }\n .md-typeset kbd {\n padding: 0 0.29412em;\n border: 0.05rem solid #c9c9c9;\n border-radius: 0.15rem;\n border-bottom-color: #bcbcbc;\n background-color: #FCFCFC;\n color: #555555;\n font-size: 85%;\n box-shadow: 0 0.05rem 0 #b0b0b0;\n word-break: break-word; }\n .md-typeset mark {\n margin: 0 0.25em;\n padding: 0.0625em 0;\n border-radius: 0.1rem;\n background-color: rgba(255, 235, 59, 0.5);\n box-shadow: 0.25em 0 0 rgba(255, 235, 59, 0.5), -0.25em 0 0 rgba(255, 235, 59, 0.5);\n word-break: break-word;\n -webkit-box-decoration-break: clone;\n box-decoration-break: clone; }\n .md-typeset abbr {\n border-bottom: 0.05rem dotted rgba(0, 0, 0, 0.54);\n text-decoration: none;\n cursor: help; }\n .md-typeset small {\n opacity: 0.75; }\n .md-typeset sup,\n .md-typeset sub {\n margin-left: 0.07812em; }\n [dir=\"rtl\"] .md-typeset sup, [dir=\"rtl\"]\n .md-typeset sub {\n margin-right: 0.07812em;\n margin-left: initial; }\n .md-typeset blockquote {\n padding-left: 0.6rem;\n border-left: 0.2rem solid rgba(0, 0, 0, 0.26);\n color: rgba(0, 0, 0, 0.54); }\n [dir=\"rtl\"] .md-typeset blockquote {\n padding-right: 0.6rem;\n padding-left: initial;\n border-right: 0.2rem solid rgba(0, 0, 0, 0.26);\n border-left: initial; }\n .md-typeset ul {\n list-style-type: disc; }\n .md-typeset ul,\n .md-typeset ol {\n margin-left: 0.625em;\n padding: 0; }\n [dir=\"rtl\"] .md-typeset ul, [dir=\"rtl\"]\n .md-typeset ol {\n margin-right: 0.625em;\n margin-left: initial; }\n .md-typeset ul ol,\n .md-typeset ol ol {\n list-style-type: lower-alpha; }\n .md-typeset ul ol ol,\n .md-typeset ol ol ol {\n list-style-type: lower-roman; }\n .md-typeset ul li,\n .md-typeset ol li {\n margin-bottom: 0.5em;\n margin-left: 1.25em; }\n [dir=\"rtl\"] .md-typeset ul li, [dir=\"rtl\"]\n .md-typeset ol li {\n margin-right: 1.25em;\n margin-left: initial; }\n .md-typeset ul li p,\n .md-typeset ul li blockquote,\n .md-typeset ol li p,\n .md-typeset ol li blockquote {\n margin: 0.5em 0; }\n .md-typeset ul li:last-child,\n .md-typeset ol li:last-child {\n margin-bottom: 0; }\n .md-typeset ul li ul,\n .md-typeset ul li ol,\n .md-typeset ol li ul,\n .md-typeset ol li ol {\n margin: 0.5em 0 0.5em 0.625em; }\n [dir=\"rtl\"] .md-typeset ul li ul, [dir=\"rtl\"]\n .md-typeset ul li ol, [dir=\"rtl\"]\n .md-typeset ol li ul, [dir=\"rtl\"]\n .md-typeset ol li ol {\n margin-right: 0.625em;\n margin-left: initial; }\n .md-typeset dd {\n margin: 1em 0 1em 1.875em; }\n [dir=\"rtl\"] .md-typeset dd {\n margin-right: 1.875em;\n margin-left: initial; }\n .md-typeset iframe,\n .md-typeset img,\n .md-typeset svg {\n max-width: 100%; }\n .md-typeset table:not([class]) {\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);\n display: inline-block;\n max-width: 100%;\n border-radius: 0.1rem;\n font-size: 0.64rem;\n overflow: auto;\n -webkit-overflow-scrolling: touch; }\n .md-typeset table:not([class]) + * {\n margin-top: 1.5em; }\n .md-typeset table:not([class]) th:not([align]),\n .md-typeset table:not([class]) td:not([align]) {\n text-align: left; }\n [dir=\"rtl\"] .md-typeset table:not([class]) th:not([align]), [dir=\"rtl\"]\n .md-typeset table:not([class]) td:not([align]) {\n text-align: right; }\n .md-typeset table:not([class]) th {\n min-width: 5rem;\n padding: 0.6rem 0.8rem;\n background-color: rgba(0, 0, 0, 0.54);\n color: white;\n vertical-align: top; }\n .md-typeset table:not([class]) td {\n padding: 0.6rem 0.8rem;\n border-top: 0.05rem solid rgba(0, 0, 0, 0.07);\n vertical-align: top; }\n .md-typeset table:not([class]) tr {\n -webkit-transition: background-color 0.125s;\n transition: background-color 0.125s; }\n .md-typeset table:not([class]) tr:hover {\n background-color: rgba(0, 0, 0, 0.035);\n box-shadow: 0 0.05rem 0 white inset; }\n .md-typeset table:not([class]) tr:first-child td {\n border-top: 0; }\n .md-typeset table:not([class]) a {\n word-break: normal; }\n .md-typeset__scrollwrap {\n margin: 1em -0.8rem;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .md-typeset .md-typeset__table {\n display: inline-block;\n margin-bottom: 0.5em;\n padding: 0 0.8rem; }\n .md-typeset .md-typeset__table table {\n display: table;\n width: 100%;\n margin: 0;\n overflow: hidden; }\n\nhtml {\n min-height: 100%;\n background-color: white;\n font-size: 125%;\n overflow-x: hidden; }\n\nbody {\n position: relative;\n min-height: 100%;\n font-size: 0.5rem; }\n\nhr {\n display: block;\n height: 0.05rem;\n padding: 0;\n border: 0; }\n\n.md-grid {\n max-width: 61rem;\n margin-right: auto;\n margin-left: auto; }\n\n.md-container,\n.md-main {\n overflow: auto; }\n\n.md-container {\n display: table;\n width: 100%;\n height: 100%;\n table-layout: fixed; }\n\n.md-main {\n display: table-row;\n height: 100%; }\n .md-main__inner {\n height: 100%;\n padding-top: 1.5rem;\n padding-bottom: 0.05rem; }\n\n.md-toggle {\n display: none; }\n\n.md-overlay {\n position: fixed;\n top: 0;\n width: 0;\n height: 0;\n -webkit-transition: width 0s 0.25s, height 0s 0.25s, opacity 0.25s;\n transition: width 0s 0.25s, height 0s 0.25s, opacity 0.25s;\n background-color: rgba(0, 0, 0, 0.54);\n opacity: 0;\n z-index: 3; }\n\n.md-flex {\n display: table; }\n .md-flex__cell {\n display: table-cell;\n position: relative;\n vertical-align: top; }\n .md-flex__cell--shrink {\n width: 0%; }\n .md-flex__cell--stretch {\n display: table;\n width: 100%;\n table-layout: fixed; }\n .md-flex__ellipsis {\n display: table-cell;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden; }\n\n.md-skip {\n position: fixed;\n width: 0.05rem;\n height: 0.05rem;\n margin: 0.5rem;\n padding: 0.3rem 0.5rem;\n -webkit-transform: translateY(0.4rem);\n transform: translateY(0.4rem);\n border-radius: 0.1rem;\n background-color: rgba(0, 0, 0, 0.87);\n color: white;\n font-size: 0.64rem;\n opacity: 0;\n overflow: hidden; }\n .md-skip:focus {\n width: auto;\n height: auto;\n clip: auto;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n -webkit-transition: opacity 0.175s 0.075s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n transition: opacity 0.175s 0.075s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.175s 0.075s;\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.175s 0.075s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 1;\n z-index: 10; }\n\n@page {\n margin: 25mm; }\n\n.md-announcement {\n background-color: rgba(0, 0, 0, 0.87); }\n .md-announcement__inner {\n min-height: 2.4rem;\n padding: 0 0.8rem;\n color: white;\n font-size: 0.7rem;\n line-height: 2.4rem; }\n\n.md-clipboard {\n position: absolute;\n top: 0.3rem;\n right: 0.3rem;\n width: 1.4rem;\n height: 1.4rem;\n -webkit-transition: color 0.25s;\n transition: color 0.25s;\n border-radius: 0.1rem;\n color: rgba(0, 0, 0, 0.07);\n font-size: 0.8rem;\n cursor: pointer;\n z-index: 1;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden; }\n pre:hover .md-clipboard,\n .codehilite:hover .md-clipboard,\n .md-typeset .highlight:hover .md-clipboard {\n color: rgba(0, 0, 0, 0.54); }\n pre .md-clipboard:focus,\n pre .md-clipboard:hover,\n .codehilite .md-clipboard:focus,\n .md-typeset .highlight .md-clipboard:focus,\n .codehilite .md-clipboard:hover,\n .md-typeset .highlight .md-clipboard:hover {\n color: #536dfe; }\n\n.md-content__inner {\n margin: 0 0.8rem 1.2rem;\n padding-top: 0.6rem; }\n .md-content__inner::before {\n display: block;\n height: 0.4rem;\n content: \"\"; }\n .md-content__inner > :last-child {\n margin-bottom: 0; }\n\n.md-content__icon {\n position: relative;\n margin: 0.4rem 0;\n padding: 0;\n float: right; }\n .md-typeset .md-content__icon {\n color: rgba(0, 0, 0, 0.26); }\n\n.md-header {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n right: 0;\n left: 0;\n height: 2.4rem;\n -webkit-transition: background-color 0.25s, color 0.25s;\n transition: background-color 0.25s, color 0.25s;\n background-color: #3f51b5;\n color: white;\n box-shadow: none;\n z-index: 2;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden; }\n .no-js .md-header {\n -webkit-transition: none;\n transition: none;\n box-shadow: none; }\n .md-header[data-md-state=\"shadow\"] {\n -webkit-transition: background-color 0.25s, color 0.25s, box-shadow 0.25s;\n transition: background-color 0.25s, color 0.25s, box-shadow 0.25s;\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2); }\n\n.md-header-nav {\n padding: 0 0.2rem; }\n .md-header-nav__button {\n position: relative;\n -webkit-transition: opacity 0.25s;\n transition: opacity 0.25s;\n z-index: 1; }\n .md-header-nav__button:hover {\n opacity: 0.7; }\n .md-header-nav__button.md-logo * {\n display: block; }\n .no-js .md-header-nav__button.md-icon--search {\n display: none; }\n .md-header-nav__topic {\n display: block;\n position: absolute;\n width: calc(100% - 1rem);\n -webkit-transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s;\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden; }\n .md-header-nav__topic + .md-header-nav__topic {\n -webkit-transform: translateX(1.25rem);\n transform: translateX(1.25rem);\n -webkit-transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1);\n transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1);\n transition: transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1), opacity 0.15s;\n transition: transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1), opacity 0.15s, -webkit-transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1);\n opacity: 0;\n z-index: -1;\n pointer-events: none; }\n [dir=\"rtl\"] .md-header-nav__topic + .md-header-nav__topic {\n -webkit-transform: translateX(-1.25rem);\n transform: translateX(-1.25rem); }\n .no-js .md-header-nav__topic {\n position: initial; }\n .no-js .md-header-nav__topic + .md-header-nav__topic {\n display: none; }\n .md-header-nav__title {\n padding: 0 1rem;\n font-size: 0.9rem;\n line-height: 2.4rem; }\n .md-header-nav__title[data-md-state=\"active\"] .md-header-nav__topic {\n -webkit-transform: translateX(-1.25rem);\n transform: translateX(-1.25rem);\n -webkit-transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1);\n transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1);\n transition: transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1), opacity 0.15s;\n transition: transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1), opacity 0.15s, -webkit-transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1);\n opacity: 0;\n z-index: -1;\n pointer-events: none; }\n [dir=\"rtl\"] .md-header-nav__title[data-md-state=\"active\"] .md-header-nav__topic {\n -webkit-transform: translateX(1.25rem);\n transform: translateX(1.25rem); }\n .md-header-nav__title[data-md-state=\"active\"] .md-header-nav__topic + .md-header-nav__topic {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n -webkit-transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s;\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n opacity: 1;\n z-index: 0;\n pointer-events: initial; }\n .md-header-nav__source {\n display: none; }\n\n.md-hero {\n -webkit-transition: background 0.25s;\n transition: background 0.25s;\n background-color: #3f51b5;\n color: white;\n font-size: 1rem;\n overflow: hidden; }\n .md-hero__inner {\n margin-top: 1rem;\n padding: 0.8rem 0.8rem 0.4rem;\n -webkit-transition: opacity 0.25s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: opacity 0.25s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s;\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n -webkit-transition-delay: 0.1s;\n transition-delay: 0.1s; }\n [data-md-state=\"hidden\"] .md-hero__inner {\n pointer-events: none;\n -webkit-transform: translateY(0.625rem);\n transform: translateY(0.625rem);\n -webkit-transition: opacity 0.1s 0s, -webkit-transform 0s 0.4s;\n transition: opacity 0.1s 0s, -webkit-transform 0s 0.4s;\n transition: transform 0s 0.4s, opacity 0.1s 0s;\n transition: transform 0s 0.4s, opacity 0.1s 0s, -webkit-transform 0s 0.4s;\n opacity: 0; }\n .md-hero--expand .md-hero__inner {\n margin-bottom: 1.2rem; }\n\n.md-footer-nav {\n background-color: rgba(0, 0, 0, 0.87);\n color: white; }\n .md-footer-nav__inner {\n padding: 0.2rem;\n overflow: auto; }\n .md-footer-nav__link {\n padding-top: 1.4rem;\n padding-bottom: 0.4rem;\n -webkit-transition: opacity 0.25s;\n transition: opacity 0.25s; }\n .md-footer-nav__link:hover {\n opacity: 0.7; }\n .md-footer-nav__link--prev {\n width: 25%;\n float: left; }\n [dir=\"rtl\"] .md-footer-nav__link--prev {\n float: right; }\n .md-footer-nav__link--next {\n width: 75%;\n float: right;\n text-align: right; }\n [dir=\"rtl\"] .md-footer-nav__link--next {\n float: left;\n text-align: left; }\n .md-footer-nav__button {\n -webkit-transition: background 0.25s;\n transition: background 0.25s; }\n .md-footer-nav__title {\n position: relative;\n padding: 0 1rem;\n font-size: 0.9rem;\n line-height: 2.4rem; }\n .md-footer-nav__direction {\n position: absolute;\n right: 0;\n left: 0;\n margin-top: -1rem;\n padding: 0 1rem;\n color: rgba(255, 255, 255, 0.7);\n font-size: 0.75rem; }\n\n.md-footer-meta {\n background-color: rgba(0, 0, 0, 0.895); }\n .md-footer-meta__inner {\n padding: 0.2rem;\n overflow: auto; }\n html .md-footer-meta.md-typeset a {\n color: rgba(255, 255, 255, 0.7); }\n html .md-footer-meta.md-typeset a:focus, html .md-footer-meta.md-typeset a:hover {\n color: white; }\n\n.md-footer-copyright {\n margin: 0 0.6rem;\n padding: 0.4rem 0;\n color: rgba(255, 255, 255, 0.3);\n font-size: 0.64rem; }\n .md-footer-copyright__highlight {\n color: rgba(255, 255, 255, 0.7); }\n\n.md-footer-social {\n margin: 0 0.4rem;\n padding: 0.2rem 0 0.6rem; }\n .md-footer-social__link {\n display: inline-block;\n width: 1.6rem;\n height: 1.6rem;\n font-size: 0.8rem;\n text-align: center; }\n .md-footer-social__link::before {\n line-height: 1.9; }\n .md-footer-social__link svg {\n width: 0.8rem;\n -webkit-transition: fill 0.25s;\n transition: fill 0.25s;\n vertical-align: -25%;\n fill: rgba(255, 255, 255, 0.7); }\n .md-footer-social__link:focus svg,\n .md-footer-social__link:hover svg {\n fill: white; }\n\n.md-nav {\n font-size: 0.7rem;\n line-height: 1.3; }\n .md-nav__title {\n display: block;\n padding: 0 0.6rem;\n font-weight: 700;\n text-overflow: ellipsis;\n overflow: hidden; }\n .md-nav__title::before {\n display: none;\n content: \"\\E5C4\"; }\n [dir=\"rtl\"] .md-nav__title::before {\n content: \"\\E5C8\"; }\n .md-nav__title .md-nav__button {\n display: none; }\n .md-nav__list {\n margin: 0;\n padding: 0;\n list-style: none; }\n .md-nav__item {\n padding: 0 0.6rem; }\n .md-nav__item:last-child {\n padding-bottom: 0.6rem; }\n .md-nav__item .md-nav__item {\n padding-right: 0; }\n [dir=\"rtl\"] .md-nav__item .md-nav__item {\n padding-right: 0.6rem;\n padding-left: 0; }\n .md-nav__item .md-nav__item:last-child {\n padding-bottom: 0; }\n .md-nav__button img {\n width: 100%;\n height: auto; }\n .md-nav__link {\n display: block;\n margin-top: 0.625em;\n -webkit-transition: color 0.125s;\n transition: color 0.125s;\n text-overflow: ellipsis;\n cursor: pointer;\n overflow: hidden; }\n .md-nav__item--nested > .md-nav__link::after {\n content: \"\\E313\"; }\n html .md-nav__link[for=\"__toc\"] {\n display: none; }\n html .md-nav__link[for=\"__toc\"] ~ .md-nav {\n display: none; }\n html .md-nav__link[for=\"__toc\"] + .md-nav__link::after {\n display: none; }\n .md-nav__link[data-md-state=\"blur\"] {\n color: rgba(0, 0, 0, 0.54); }\n .md-nav__link:active, .md-nav__link--active {\n color: #3f51b5; }\n .md-nav__item--nested > .md-nav__link {\n color: inherit; }\n .md-nav__link:focus, .md-nav__link:hover {\n color: #536dfe; }\n .md-nav__source {\n display: none; }\n\n.no-js .md-search {\n display: none; }\n\n.md-search__overlay {\n opacity: 0;\n z-index: 1; }\n\n.md-search__form {\n position: relative; }\n\n.md-search__input {\n position: relative;\n padding: 0 2.2rem 0 3.6rem;\n text-overflow: ellipsis;\n z-index: 2; }\n [dir=\"rtl\"] .md-search__input {\n padding: 0 3.6rem 0 2.2rem; }\n .md-search__input::-webkit-input-placeholder {\n -webkit-transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1); }\n .md-search__input::-moz-placeholder {\n -moz-transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1); }\n .md-search__input:-ms-input-placeholder {\n -ms-transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1); }\n .md-search__input::-ms-input-placeholder {\n -ms-transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1); }\n .md-search__input::placeholder {\n -webkit-transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1); }\n .md-search__input::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n .md-search__input::-moz-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n .md-search__input:-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n .md-search__input::-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n .md-search__input ~ .md-search__icon, .md-search__input::placeholder {\n color: rgba(0, 0, 0, 0.54); }\n .md-search__input::-ms-clear {\n display: none; }\n\n.md-search__icon {\n position: absolute;\n -webkit-transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s;\n transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s;\n font-size: 1.2rem;\n cursor: pointer;\n z-index: 2; }\n .md-search__icon:hover {\n opacity: 0.7; }\n .md-search__icon[for=\"__search\"] {\n top: 0.3rem;\n left: 0.5rem; }\n [dir=\"rtl\"] .md-search__icon[for=\"__search\"] {\n right: 0.5rem;\n left: initial; }\n .md-search__icon[for=\"__search\"]::before {\n content: \"\\E8B6\"; }\n .md-search__icon[type=\"reset\"] {\n top: 0.3rem;\n right: 0.5rem;\n -webkit-transform: scale(0.125);\n transform: scale(0.125);\n -webkit-transition: opacity 0.15s, -webkit-transform 0.15s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: opacity 0.15s, -webkit-transform 0.15s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: transform 0.15s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s;\n transition: transform 0.15s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s, -webkit-transform 0.15s cubic-bezier(0.1, 0.7, 0.1, 1);\n opacity: 0; }\n [dir=\"rtl\"] .md-search__icon[type=\"reset\"] {\n right: initial;\n left: 0.5rem; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input:valid ~ .md-search__icon[type=\"reset\"] {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input:valid ~ .md-search__icon[type=\"reset\"]:hover {\n opacity: 0.7; }\n\n.md-search__output {\n position: absolute;\n width: 100%;\n border-radius: 0 0 0.1rem 0.1rem;\n overflow: hidden;\n z-index: 1; }\n\n.md-search__scrollwrap {\n height: 100%;\n background-color: white;\n box-shadow: 0 0.05rem 0 rgba(0, 0, 0, 0.07) inset;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch; }\n\n.md-search-result {\n color: rgba(0, 0, 0, 0.87);\n word-break: break-word; }\n .md-search-result__meta {\n padding: 0 0.8rem;\n background-color: rgba(0, 0, 0, 0.07);\n color: rgba(0, 0, 0, 0.54);\n font-size: 0.64rem;\n line-height: 1.8rem; }\n .md-search-result__list {\n margin: 0;\n padding: 0;\n border-top: 0.05rem solid rgba(0, 0, 0, 0.07);\n list-style: none; }\n .md-search-result__item {\n box-shadow: 0 -0.05rem 0 rgba(0, 0, 0, 0.07); }\n .md-search-result__link {\n display: block;\n -webkit-transition: background 0.25s;\n transition: background 0.25s;\n outline: 0;\n overflow: hidden; }\n .md-search-result__link:focus, .md-search-result__link:hover {\n background-color: rgba(83, 109, 254, 0.1); }\n .md-search-result__link:focus .md-search-result__article::before, .md-search-result__link:hover .md-search-result__article::before {\n opacity: 0.7; }\n .md-search-result__link:last-child .md-search-result__teaser {\n margin-bottom: 0.6rem; }\n .md-search-result__article {\n position: relative;\n padding: 0 0.8rem;\n overflow: auto; }\n .md-search-result__article--document::before {\n position: absolute;\n left: 0;\n margin: 0.1rem;\n -webkit-transition: opacity 0.25s;\n transition: opacity 0.25s;\n color: rgba(0, 0, 0, 0.54);\n content: \"\\E880\"; }\n [dir=\"rtl\"] .md-search-result__article--document::before {\n right: 0;\n left: initial; }\n .md-search-result__article--document .md-search-result__title {\n margin: 0.55rem 0;\n font-size: 0.8rem;\n font-weight: 400;\n line-height: 1.4; }\n .md-search-result__title {\n margin: 0.5em 0;\n font-size: 0.64rem;\n font-weight: 700;\n line-height: 1.4; }\n .md-search-result__teaser {\n display: -webkit-box;\n max-height: 1.65rem;\n margin: 0.5em 0;\n color: rgba(0, 0, 0, 0.54);\n font-size: 0.64rem;\n line-height: 1.4;\n text-overflow: ellipsis;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2; }\n .md-search-result em {\n font-style: normal;\n font-weight: 700;\n text-decoration: underline; }\n\n.md-sidebar {\n position: absolute;\n width: 12.1rem;\n padding: 1.2rem 0;\n overflow: hidden; }\n .md-sidebar[data-md-state=\"lock\"] {\n position: fixed;\n top: 2.4rem; }\n .md-sidebar--secondary {\n display: none; }\n .md-sidebar__scrollwrap {\n max-height: 100%;\n margin: 0 0.2rem;\n overflow-y: auto;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden; }\n .md-sidebar__scrollwrap::-webkit-scrollbar {\n width: 0.2rem;\n height: 0.2rem; }\n .md-sidebar__scrollwrap::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.26); }\n .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover {\n background-color: #536dfe; }\n\n@-webkit-keyframes md-source__facts--done {\n 0% {\n height: 0; }\n 100% {\n height: 0.65rem; } }\n\n@keyframes md-source__facts--done {\n 0% {\n height: 0; }\n 100% {\n height: 0.65rem; } }\n\n@-webkit-keyframes md-source__fact--done {\n 0% {\n -webkit-transform: translateY(100%);\n transform: translateY(100%);\n opacity: 0; }\n 50% {\n opacity: 0; }\n 100% {\n -webkit-transform: translateY(0%);\n transform: translateY(0%);\n opacity: 1; } }\n\n@keyframes md-source__fact--done {\n 0% {\n -webkit-transform: translateY(100%);\n transform: translateY(100%);\n opacity: 0; }\n 50% {\n opacity: 0; }\n 100% {\n -webkit-transform: translateY(0%);\n transform: translateY(0%);\n opacity: 1; } }\n\n.md-source {\n display: block;\n padding-right: 0.6rem;\n -webkit-transition: opacity 0.25s;\n transition: opacity 0.25s;\n font-size: 0.65rem;\n line-height: 1.2;\n white-space: nowrap; }\n [dir=\"rtl\"] .md-source {\n padding-right: initial;\n padding-left: 0.6rem; }\n .md-source:hover {\n opacity: 0.7; }\n .md-source::after {\n display: inline-block;\n height: 2.4rem;\n content: \"\";\n vertical-align: middle; }\n .md-source__icon {\n display: inline-block;\n width: 2.4rem;\n height: 2.4rem;\n vertical-align: middle; }\n .md-source__icon svg {\n width: 1.2rem;\n height: 1.2rem;\n margin-top: 0.6rem;\n margin-left: 0.6rem;\n fill: white; }\n [dir=\"rtl\"] .md-source__icon svg {\n margin-right: 0.6rem;\n margin-left: initial; }\n .md-source__icon + .md-source__repository {\n margin-left: -2rem;\n padding-left: 2rem; }\n [dir=\"rtl\"] .md-source__icon + .md-source__repository {\n margin-right: -2rem;\n margin-left: initial;\n padding-right: 2rem;\n padding-left: initial; }\n .md-source__repository {\n display: inline-block;\n max-width: 100%;\n margin-left: 0.6rem;\n font-weight: 700;\n text-overflow: ellipsis;\n overflow: hidden;\n vertical-align: middle; }\n .md-source__facts {\n margin: 0;\n padding: 0;\n font-size: 0.55rem;\n font-weight: 700;\n list-style-type: none;\n opacity: 0.75;\n overflow: hidden; }\n [data-md-state=\"done\"] .md-source__facts {\n -webkit-animation: md-source__facts--done 0.25s ease-in;\n animation: md-source__facts--done 0.25s ease-in; }\n .md-source__fact {\n float: left; }\n [dir=\"rtl\"] .md-source__fact {\n float: right; }\n [data-md-state=\"done\"] .md-source__fact {\n -webkit-animation: md-source__fact--done 0.4s ease-out;\n animation: md-source__fact--done 0.4s ease-out; }\n .md-source__fact::before {\n margin: 0 0.1rem;\n content: \"\\00B7\"; }\n .md-source__fact:first-child::before {\n display: none; }\n\n.md-source-file {\n display: inline-block;\n margin: 1em 0.5em 1em 0;\n padding-right: 0.25rem;\n border-radius: 0.1rem;\n background-color: rgba(0, 0, 0, 0.07);\n font-size: 0.64rem;\n list-style-type: none;\n cursor: pointer;\n overflow: hidden; }\n .md-source-file::before {\n display: inline-block;\n margin-right: 0.25rem;\n padding: 0.25rem;\n background-color: rgba(0, 0, 0, 0.26);\n color: white;\n font-size: 0.8rem;\n content: \"\\E86F\";\n vertical-align: middle; }\n html .md-source-file {\n -webkit-transition: background 0.4s, color 0.4s, box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n transition: background 0.4s, color 0.4s, box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1); }\n html .md-source-file::before {\n -webkit-transition: inherit;\n transition: inherit; }\n html body .md-typeset .md-source-file {\n color: rgba(0, 0, 0, 0.54); }\n .md-source-file:hover {\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36); }\n .md-source-file:hover::before {\n background-color: #536dfe; }\n\n.md-tabs {\n width: 100%;\n -webkit-transition: background 0.25s;\n transition: background 0.25s;\n background-color: #3f51b5;\n color: white;\n overflow: auto; }\n .md-tabs__list {\n margin: 0;\n margin-left: 0.2rem;\n padding: 0;\n list-style: none;\n white-space: nowrap; }\n .md-tabs__item {\n display: inline-block;\n height: 2.4rem;\n padding-right: 0.6rem;\n padding-left: 0.6rem; }\n .md-tabs__link {\n display: block;\n margin-top: 0.8rem;\n -webkit-transition: opacity 0.25s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: opacity 0.25s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s;\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n font-size: 0.7rem;\n opacity: 0.7; }\n .md-tabs__link--active, .md-tabs__link:hover {\n color: inherit;\n opacity: 1; }\n .md-tabs__item:nth-child(2) .md-tabs__link {\n -webkit-transition-delay: 0.02s;\n transition-delay: 0.02s; }\n .md-tabs__item:nth-child(3) .md-tabs__link {\n -webkit-transition-delay: 0.04s;\n transition-delay: 0.04s; }\n .md-tabs__item:nth-child(4) .md-tabs__link {\n -webkit-transition-delay: 0.06s;\n transition-delay: 0.06s; }\n .md-tabs__item:nth-child(5) .md-tabs__link {\n -webkit-transition-delay: 0.08s;\n transition-delay: 0.08s; }\n .md-tabs__item:nth-child(6) .md-tabs__link {\n -webkit-transition-delay: 0.1s;\n transition-delay: 0.1s; }\n .md-tabs__item:nth-child(7) .md-tabs__link {\n -webkit-transition-delay: 0.12s;\n transition-delay: 0.12s; }\n .md-tabs__item:nth-child(8) .md-tabs__link {\n -webkit-transition-delay: 0.14s;\n transition-delay: 0.14s; }\n .md-tabs__item:nth-child(9) .md-tabs__link {\n -webkit-transition-delay: 0.16s;\n transition-delay: 0.16s; }\n .md-tabs__item:nth-child(10) .md-tabs__link {\n -webkit-transition-delay: 0.18s;\n transition-delay: 0.18s; }\n .md-tabs__item:nth-child(11) .md-tabs__link {\n -webkit-transition-delay: 0.2s;\n transition-delay: 0.2s; }\n .md-tabs__item:nth-child(12) .md-tabs__link {\n -webkit-transition-delay: 0.22s;\n transition-delay: 0.22s; }\n .md-tabs__item:nth-child(13) .md-tabs__link {\n -webkit-transition-delay: 0.24s;\n transition-delay: 0.24s; }\n .md-tabs__item:nth-child(14) .md-tabs__link {\n -webkit-transition-delay: 0.26s;\n transition-delay: 0.26s; }\n .md-tabs__item:nth-child(15) .md-tabs__link {\n -webkit-transition-delay: 0.28s;\n transition-delay: 0.28s; }\n .md-tabs__item:nth-child(16) .md-tabs__link {\n -webkit-transition-delay: 0.3s;\n transition-delay: 0.3s; }\n .md-tabs[data-md-state=\"hidden\"] {\n pointer-events: none; }\n .md-tabs[data-md-state=\"hidden\"] .md-tabs__link {\n -webkit-transform: translateY(50%);\n transform: translateY(50%);\n -webkit-transition: color 0.25s, opacity 0.1s, -webkit-transform 0s 0.4s;\n transition: color 0.25s, opacity 0.1s, -webkit-transform 0s 0.4s;\n transition: color 0.25s, transform 0s 0.4s, opacity 0.1s;\n transition: color 0.25s, transform 0s 0.4s, opacity 0.1s, -webkit-transform 0s 0.4s;\n opacity: 0; }\n\n.md-typeset .admonition, .md-typeset details {\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);\n margin: 1.5625em 0;\n padding: 0 0.6rem;\n border-left: 0.2rem solid #448aff;\n border-radius: 0.1rem;\n font-size: 0.64rem;\n overflow: auto; }\n [dir=\"rtl\"] .md-typeset .admonition, [dir=\"rtl\"] .md-typeset details {\n border-right: 0.2rem solid #448aff;\n border-left: none; }\n html .md-typeset .admonition > :last-child, html .md-typeset details > :last-child {\n margin-bottom: 0.6rem; }\n .md-typeset .admonition .admonition, .md-typeset details .admonition, .md-typeset .admonition details, .md-typeset details details {\n margin: 1em 0; }\n .md-typeset .admonition > .admonition-title, .md-typeset details > .admonition-title, .md-typeset .admonition > summary, .md-typeset details > summary {\n margin: 0 -0.6rem;\n padding: 0.4rem 0.6rem 0.4rem 2rem;\n border-bottom: 0.05rem solid rgba(68, 138, 255, 0.1);\n background-color: rgba(68, 138, 255, 0.1);\n font-weight: 700; }\n [dir=\"rtl\"] .md-typeset .admonition > .admonition-title, [dir=\"rtl\"] .md-typeset details > .admonition-title, [dir=\"rtl\"] .md-typeset .admonition > summary, [dir=\"rtl\"] .md-typeset details > summary {\n padding: 0.4rem 2rem 0.4rem 0.6rem; }\n .md-typeset .admonition > .admonition-title:last-child, .md-typeset details > .admonition-title:last-child, .md-typeset .admonition > summary:last-child, .md-typeset details > summary:last-child {\n margin-bottom: 0; }\n .md-typeset .admonition > .admonition-title::before, .md-typeset details > .admonition-title::before, .md-typeset .admonition > summary::before, .md-typeset details > summary::before {\n position: absolute;\n margin-left: -1.4rem;\n color: #448aff;\n font-size: 1rem;\n content: \"\\E3C9\"; }\n [dir=\"rtl\"] .md-typeset .admonition > .admonition-title::before, [dir=\"rtl\"] .md-typeset details > .admonition-title::before, [dir=\"rtl\"] .md-typeset .admonition > summary::before, [dir=\"rtl\"] .md-typeset details > summary::before {\n margin-right: -1.4rem;\n margin-left: initial; }\n .md-typeset .admonition.summary, .md-typeset details.summary, .md-typeset .admonition.tldr, .md-typeset details.tldr, .md-typeset .admonition.abstract, .md-typeset details.abstract {\n border-left-color: #00b0ff; }\n [dir=\"rtl\"] .md-typeset .admonition.summary, [dir=\"rtl\"] .md-typeset details.summary, [dir=\"rtl\"] .md-typeset .admonition.tldr, [dir=\"rtl\"] .md-typeset details.tldr, [dir=\"rtl\"] .md-typeset .admonition.abstract, [dir=\"rtl\"] .md-typeset details.abstract {\n border-right-color: #00b0ff; }\n .md-typeset .admonition.summary > .admonition-title, .md-typeset details.summary > .admonition-title, .md-typeset .admonition.tldr > .admonition-title, .md-typeset details.tldr > .admonition-title, .md-typeset .admonition.summary > summary, .md-typeset details.summary > summary, .md-typeset .admonition.tldr > summary, .md-typeset details.tldr > summary, .md-typeset .admonition.abstract > .admonition-title, .md-typeset details.abstract > .admonition-title, .md-typeset .admonition.abstract > summary, .md-typeset details.abstract > summary {\n border-bottom-color: rgba(0, 176, 255, 0.1);\n background-color: rgba(0, 176, 255, 0.1); }\n .md-typeset .admonition.summary > .admonition-title::before, .md-typeset details.summary > .admonition-title::before, .md-typeset .admonition.tldr > .admonition-title::before, .md-typeset details.tldr > .admonition-title::before, .md-typeset .admonition.summary > summary::before, .md-typeset details.summary > summary::before, .md-typeset .admonition.tldr > summary::before, .md-typeset details.tldr > summary::before, .md-typeset .admonition.abstract > .admonition-title::before, .md-typeset details.abstract > .admonition-title::before, .md-typeset .admonition.abstract > summary::before, .md-typeset details.abstract > summary::before {\n color: #00b0ff;\n content: \"\"; }\n .md-typeset .admonition.todo, .md-typeset details.todo, .md-typeset .admonition.info, .md-typeset details.info {\n border-left-color: #00b8d4; }\n [dir=\"rtl\"] .md-typeset .admonition.todo, [dir=\"rtl\"] .md-typeset details.todo, [dir=\"rtl\"] .md-typeset .admonition.info, [dir=\"rtl\"] .md-typeset details.info {\n border-right-color: #00b8d4; }\n .md-typeset .admonition.todo > .admonition-title, .md-typeset details.todo > .admonition-title, .md-typeset .admonition.todo > summary, .md-typeset details.todo > summary, .md-typeset .admonition.info > .admonition-title, .md-typeset details.info > .admonition-title, .md-typeset .admonition.info > summary, .md-typeset details.info > summary {\n border-bottom-color: rgba(0, 184, 212, 0.1);\n background-color: rgba(0, 184, 212, 0.1); }\n .md-typeset .admonition.todo > .admonition-title::before, .md-typeset details.todo > .admonition-title::before, .md-typeset .admonition.todo > summary::before, .md-typeset details.todo > summary::before, .md-typeset .admonition.info > .admonition-title::before, .md-typeset details.info > .admonition-title::before, .md-typeset .admonition.info > summary::before, .md-typeset details.info > summary::before {\n color: #00b8d4;\n content: \"\"; }\n .md-typeset .admonition.hint, .md-typeset details.hint, .md-typeset .admonition.important, .md-typeset details.important, .md-typeset .admonition.tip, .md-typeset details.tip {\n border-left-color: #00bfa5; }\n [dir=\"rtl\"] .md-typeset .admonition.hint, [dir=\"rtl\"] .md-typeset details.hint, [dir=\"rtl\"] .md-typeset .admonition.important, [dir=\"rtl\"] .md-typeset details.important, [dir=\"rtl\"] .md-typeset .admonition.tip, [dir=\"rtl\"] .md-typeset details.tip {\n border-right-color: #00bfa5; }\n .md-typeset .admonition.hint > .admonition-title, .md-typeset details.hint > .admonition-title, .md-typeset .admonition.important > .admonition-title, .md-typeset details.important > .admonition-title, .md-typeset .admonition.hint > summary, .md-typeset details.hint > summary, .md-typeset .admonition.important > summary, .md-typeset details.important > summary, .md-typeset .admonition.tip > .admonition-title, .md-typeset details.tip > .admonition-title, .md-typeset .admonition.tip > summary, .md-typeset details.tip > summary {\n border-bottom-color: rgba(0, 191, 165, 0.1);\n background-color: rgba(0, 191, 165, 0.1); }\n .md-typeset .admonition.hint > .admonition-title::before, .md-typeset details.hint > .admonition-title::before, .md-typeset .admonition.important > .admonition-title::before, .md-typeset details.important > .admonition-title::before, .md-typeset .admonition.hint > summary::before, .md-typeset details.hint > summary::before, .md-typeset .admonition.important > summary::before, .md-typeset details.important > summary::before, .md-typeset .admonition.tip > .admonition-title::before, .md-typeset details.tip > .admonition-title::before, .md-typeset .admonition.tip > summary::before, .md-typeset details.tip > summary::before {\n color: #00bfa5;\n content: \"\"; }\n .md-typeset .admonition.check, .md-typeset details.check, .md-typeset .admonition.done, .md-typeset details.done, .md-typeset .admonition.success, .md-typeset details.success {\n border-left-color: #00c853; }\n [dir=\"rtl\"] .md-typeset .admonition.check, [dir=\"rtl\"] .md-typeset details.check, [dir=\"rtl\"] .md-typeset .admonition.done, [dir=\"rtl\"] .md-typeset details.done, [dir=\"rtl\"] .md-typeset .admonition.success, [dir=\"rtl\"] .md-typeset details.success {\n border-right-color: #00c853; }\n .md-typeset .admonition.check > .admonition-title, .md-typeset details.check > .admonition-title, .md-typeset .admonition.done > .admonition-title, .md-typeset details.done > .admonition-title, .md-typeset .admonition.check > summary, .md-typeset details.check > summary, .md-typeset .admonition.done > summary, .md-typeset details.done > summary, .md-typeset .admonition.success > .admonition-title, .md-typeset details.success > .admonition-title, .md-typeset .admonition.success > summary, .md-typeset details.success > summary {\n border-bottom-color: rgba(0, 200, 83, 0.1);\n background-color: rgba(0, 200, 83, 0.1); }\n .md-typeset .admonition.check > .admonition-title::before, .md-typeset details.check > .admonition-title::before, .md-typeset .admonition.done > .admonition-title::before, .md-typeset details.done > .admonition-title::before, .md-typeset .admonition.check > summary::before, .md-typeset details.check > summary::before, .md-typeset .admonition.done > summary::before, .md-typeset details.done > summary::before, .md-typeset .admonition.success > .admonition-title::before, .md-typeset details.success > .admonition-title::before, .md-typeset .admonition.success > summary::before, .md-typeset details.success > summary::before {\n color: #00c853;\n content: \"\"; }\n .md-typeset .admonition.help, .md-typeset details.help, .md-typeset .admonition.faq, .md-typeset details.faq, .md-typeset .admonition.question, .md-typeset details.question {\n border-left-color: #64dd17; }\n [dir=\"rtl\"] .md-typeset .admonition.help, [dir=\"rtl\"] .md-typeset details.help, [dir=\"rtl\"] .md-typeset .admonition.faq, [dir=\"rtl\"] .md-typeset details.faq, [dir=\"rtl\"] .md-typeset .admonition.question, [dir=\"rtl\"] .md-typeset details.question {\n border-right-color: #64dd17; }\n .md-typeset .admonition.help > .admonition-title, .md-typeset details.help > .admonition-title, .md-typeset .admonition.faq > .admonition-title, .md-typeset details.faq > .admonition-title, .md-typeset .admonition.help > summary, .md-typeset details.help > summary, .md-typeset .admonition.faq > summary, .md-typeset details.faq > summary, .md-typeset .admonition.question > .admonition-title, .md-typeset details.question > .admonition-title, .md-typeset .admonition.question > summary, .md-typeset details.question > summary {\n border-bottom-color: rgba(100, 221, 23, 0.1);\n background-color: rgba(100, 221, 23, 0.1); }\n .md-typeset .admonition.help > .admonition-title::before, .md-typeset details.help > .admonition-title::before, .md-typeset .admonition.faq > .admonition-title::before, .md-typeset details.faq > .admonition-title::before, .md-typeset .admonition.help > summary::before, .md-typeset details.help > summary::before, .md-typeset .admonition.faq > summary::before, .md-typeset details.faq > summary::before, .md-typeset .admonition.question > .admonition-title::before, .md-typeset details.question > .admonition-title::before, .md-typeset .admonition.question > summary::before, .md-typeset details.question > summary::before {\n color: #64dd17;\n content: \"\"; }\n .md-typeset .admonition.caution, .md-typeset details.caution, .md-typeset .admonition.attention, .md-typeset details.attention, .md-typeset .admonition.warning, .md-typeset details.warning {\n border-left-color: #ff9100; }\n [dir=\"rtl\"] .md-typeset .admonition.caution, [dir=\"rtl\"] .md-typeset details.caution, [dir=\"rtl\"] .md-typeset .admonition.attention, [dir=\"rtl\"] .md-typeset details.attention, [dir=\"rtl\"] .md-typeset .admonition.warning, [dir=\"rtl\"] .md-typeset details.warning {\n border-right-color: #ff9100; }\n .md-typeset .admonition.caution > .admonition-title, .md-typeset details.caution > .admonition-title, .md-typeset .admonition.attention > .admonition-title, .md-typeset details.attention > .admonition-title, .md-typeset .admonition.caution > summary, .md-typeset details.caution > summary, .md-typeset .admonition.attention > summary, .md-typeset details.attention > summary, .md-typeset .admonition.warning > .admonition-title, .md-typeset details.warning > .admonition-title, .md-typeset .admonition.warning > summary, .md-typeset details.warning > summary {\n border-bottom-color: rgba(255, 145, 0, 0.1);\n background-color: rgba(255, 145, 0, 0.1); }\n .md-typeset .admonition.caution > .admonition-title::before, .md-typeset details.caution > .admonition-title::before, .md-typeset .admonition.attention > .admonition-title::before, .md-typeset details.attention > .admonition-title::before, .md-typeset .admonition.caution > summary::before, .md-typeset details.caution > summary::before, .md-typeset .admonition.attention > summary::before, .md-typeset details.attention > summary::before, .md-typeset .admonition.warning > .admonition-title::before, .md-typeset details.warning > .admonition-title::before, .md-typeset .admonition.warning > summary::before, .md-typeset details.warning > summary::before {\n color: #ff9100;\n content: \"\"; }\n .md-typeset .admonition.fail, .md-typeset details.fail, .md-typeset .admonition.missing, .md-typeset details.missing, .md-typeset .admonition.failure, .md-typeset details.failure {\n border-left-color: #ff5252; }\n [dir=\"rtl\"] .md-typeset .admonition.fail, [dir=\"rtl\"] .md-typeset details.fail, [dir=\"rtl\"] .md-typeset .admonition.missing, [dir=\"rtl\"] .md-typeset details.missing, [dir=\"rtl\"] .md-typeset .admonition.failure, [dir=\"rtl\"] .md-typeset details.failure {\n border-right-color: #ff5252; }\n .md-typeset .admonition.fail > .admonition-title, .md-typeset details.fail > .admonition-title, .md-typeset .admonition.missing > .admonition-title, .md-typeset details.missing > .admonition-title, .md-typeset .admonition.fail > summary, .md-typeset details.fail > summary, .md-typeset .admonition.missing > summary, .md-typeset details.missing > summary, .md-typeset .admonition.failure > .admonition-title, .md-typeset details.failure > .admonition-title, .md-typeset .admonition.failure > summary, .md-typeset details.failure > summary {\n border-bottom-color: rgba(255, 82, 82, 0.1);\n background-color: rgba(255, 82, 82, 0.1); }\n .md-typeset .admonition.fail > .admonition-title::before, .md-typeset details.fail > .admonition-title::before, .md-typeset .admonition.missing > .admonition-title::before, .md-typeset details.missing > .admonition-title::before, .md-typeset .admonition.fail > summary::before, .md-typeset details.fail > summary::before, .md-typeset .admonition.missing > summary::before, .md-typeset details.missing > summary::before, .md-typeset .admonition.failure > .admonition-title::before, .md-typeset details.failure > .admonition-title::before, .md-typeset .admonition.failure > summary::before, .md-typeset details.failure > summary::before {\n color: #ff5252;\n content: \"\"; }\n .md-typeset .admonition.error, .md-typeset details.error, .md-typeset .admonition.danger, .md-typeset details.danger {\n border-left-color: #ff1744; }\n [dir=\"rtl\"] .md-typeset .admonition.error, [dir=\"rtl\"] .md-typeset details.error, [dir=\"rtl\"] .md-typeset .admonition.danger, [dir=\"rtl\"] .md-typeset details.danger {\n border-right-color: #ff1744; }\n .md-typeset .admonition.error > .admonition-title, .md-typeset details.error > .admonition-title, .md-typeset .admonition.error > summary, .md-typeset details.error > summary, .md-typeset .admonition.danger > .admonition-title, .md-typeset details.danger > .admonition-title, .md-typeset .admonition.danger > summary, .md-typeset details.danger > summary {\n border-bottom-color: rgba(255, 23, 68, 0.1);\n background-color: rgba(255, 23, 68, 0.1); }\n .md-typeset .admonition.error > .admonition-title::before, .md-typeset details.error > .admonition-title::before, .md-typeset .admonition.error > summary::before, .md-typeset details.error > summary::before, .md-typeset .admonition.danger > .admonition-title::before, .md-typeset details.danger > .admonition-title::before, .md-typeset .admonition.danger > summary::before, .md-typeset details.danger > summary::before {\n color: #ff1744;\n content: \"\"; }\n .md-typeset .admonition.bug, .md-typeset details.bug {\n border-left-color: #f50057; }\n [dir=\"rtl\"] .md-typeset .admonition.bug, [dir=\"rtl\"] .md-typeset details.bug {\n border-right-color: #f50057; }\n .md-typeset .admonition.bug > .admonition-title, .md-typeset details.bug > .admonition-title, .md-typeset .admonition.bug > summary, .md-typeset details.bug > summary {\n border-bottom-color: rgba(245, 0, 87, 0.1);\n background-color: rgba(245, 0, 87, 0.1); }\n .md-typeset .admonition.bug > .admonition-title::before, .md-typeset details.bug > .admonition-title::before, .md-typeset .admonition.bug > summary::before, .md-typeset details.bug > summary::before {\n color: #f50057;\n content: \"\"; }\n .md-typeset .admonition.example, .md-typeset details.example {\n border-left-color: #651fff; }\n [dir=\"rtl\"] .md-typeset .admonition.example, [dir=\"rtl\"] .md-typeset details.example {\n border-right-color: #651fff; }\n .md-typeset .admonition.example > .admonition-title, .md-typeset details.example > .admonition-title, .md-typeset .admonition.example > summary, .md-typeset details.example > summary {\n border-bottom-color: rgba(101, 31, 255, 0.1);\n background-color: rgba(101, 31, 255, 0.1); }\n .md-typeset .admonition.example > .admonition-title::before, .md-typeset details.example > .admonition-title::before, .md-typeset .admonition.example > summary::before, .md-typeset details.example > summary::before {\n color: #651fff;\n content: \"\"; }\n .md-typeset .admonition.cite, .md-typeset details.cite, .md-typeset .admonition.quote, .md-typeset details.quote {\n border-left-color: #9e9e9e; }\n [dir=\"rtl\"] .md-typeset .admonition.cite, [dir=\"rtl\"] .md-typeset details.cite, [dir=\"rtl\"] .md-typeset .admonition.quote, [dir=\"rtl\"] .md-typeset details.quote {\n border-right-color: #9e9e9e; }\n .md-typeset .admonition.cite > .admonition-title, .md-typeset details.cite > .admonition-title, .md-typeset .admonition.cite > summary, .md-typeset details.cite > summary, .md-typeset .admonition.quote > .admonition-title, .md-typeset details.quote > .admonition-title, .md-typeset .admonition.quote > summary, .md-typeset details.quote > summary {\n border-bottom-color: rgba(158, 158, 158, 0.1);\n background-color: rgba(158, 158, 158, 0.1); }\n .md-typeset .admonition.cite > .admonition-title::before, .md-typeset details.cite > .admonition-title::before, .md-typeset .admonition.cite > summary::before, .md-typeset details.cite > summary::before, .md-typeset .admonition.quote > .admonition-title::before, .md-typeset details.quote > .admonition-title::before, .md-typeset .admonition.quote > summary::before, .md-typeset details.quote > summary::before {\n color: #9e9e9e;\n content: \"\"; }\n\n.codehilite .o, .md-typeset .highlight .o {\n color: inherit; }\n\n.codehilite .ow, .md-typeset .highlight .ow {\n color: inherit; }\n\n.codehilite .ge, .md-typeset .highlight .ge {\n color: #000000; }\n\n.codehilite .gr, .md-typeset .highlight .gr {\n color: #AA0000; }\n\n.codehilite .gh, .md-typeset .highlight .gh {\n color: #999999; }\n\n.codehilite .go, .md-typeset .highlight .go {\n color: #888888; }\n\n.codehilite .gp, .md-typeset .highlight .gp {\n color: #555555; }\n\n.codehilite .gs, .md-typeset .highlight .gs {\n color: inherit; }\n\n.codehilite .gu, .md-typeset .highlight .gu {\n color: #AAAAAA; }\n\n.codehilite .gt, .md-typeset .highlight .gt {\n color: #AA0000; }\n\n.codehilite .gd, .md-typeset .highlight .gd {\n background-color: #FFDDDD; }\n\n.codehilite .gi, .md-typeset .highlight .gi {\n background-color: #DDFFDD; }\n\n.codehilite .k, .md-typeset .highlight .k {\n color: #3B78E7; }\n\n.codehilite .kc, .md-typeset .highlight .kc {\n color: #A71D5D; }\n\n.codehilite .kd, .md-typeset .highlight .kd {\n color: #3B78E7; }\n\n.codehilite .kn, .md-typeset .highlight .kn {\n color: #3B78E7; }\n\n.codehilite .kp, .md-typeset .highlight .kp {\n color: #A71D5D; }\n\n.codehilite .kr, .md-typeset .highlight .kr {\n color: #3E61A2; }\n\n.codehilite .kt, .md-typeset .highlight .kt {\n color: #3E61A2; }\n\n.codehilite .c, .md-typeset .highlight .c {\n color: #999999; }\n\n.codehilite .cm, .md-typeset .highlight .cm {\n color: #999999; }\n\n.codehilite .cp, .md-typeset .highlight .cp {\n color: #666666; }\n\n.codehilite .c1, .md-typeset .highlight .c1 {\n color: #999999; }\n\n.codehilite .ch, .md-typeset .highlight .ch {\n color: #999999; }\n\n.codehilite .cs, .md-typeset .highlight .cs {\n color: #999999; }\n\n.codehilite .na, .md-typeset .highlight .na {\n color: #C2185B; }\n\n.codehilite .nb, .md-typeset .highlight .nb {\n color: #C2185B; }\n\n.codehilite .bp, .md-typeset .highlight .bp {\n color: #3E61A2; }\n\n.codehilite .nc, .md-typeset .highlight .nc {\n color: #C2185B; }\n\n.codehilite .no, .md-typeset .highlight .no {\n color: #3E61A2; }\n\n.codehilite .nd, .md-typeset .highlight .nd {\n color: #666666; }\n\n.codehilite .ni, .md-typeset .highlight .ni {\n color: #666666; }\n\n.codehilite .ne, .md-typeset .highlight .ne {\n color: #C2185B; }\n\n.codehilite .nf, .md-typeset .highlight .nf {\n color: #C2185B; }\n\n.codehilite .nl, .md-typeset .highlight .nl {\n color: #3B5179; }\n\n.codehilite .nn, .md-typeset .highlight .nn {\n color: #EC407A; }\n\n.codehilite .nt, .md-typeset .highlight .nt {\n color: #3B78E7; }\n\n.codehilite .nv, .md-typeset .highlight .nv {\n color: #3E61A2; }\n\n.codehilite .vc, .md-typeset .highlight .vc {\n color: #3E61A2; }\n\n.codehilite .vg, .md-typeset .highlight .vg {\n color: #3E61A2; }\n\n.codehilite .vi, .md-typeset .highlight .vi {\n color: #3E61A2; }\n\n.codehilite .nx, .md-typeset .highlight .nx {\n color: #EC407A; }\n\n.codehilite .m, .md-typeset .highlight .m {\n color: #E74C3C; }\n\n.codehilite .mf, .md-typeset .highlight .mf {\n color: #E74C3C; }\n\n.codehilite .mh, .md-typeset .highlight .mh {\n color: #E74C3C; }\n\n.codehilite .mi, .md-typeset .highlight .mi {\n color: #E74C3C; }\n\n.codehilite .il, .md-typeset .highlight .il {\n color: #E74C3C; }\n\n.codehilite .mo, .md-typeset .highlight .mo {\n color: #E74C3C; }\n\n.codehilite .s, .md-typeset .highlight .s {\n color: #0D904F; }\n\n.codehilite .sb, .md-typeset .highlight .sb {\n color: #0D904F; }\n\n.codehilite .sc, .md-typeset .highlight .sc {\n color: #0D904F; }\n\n.codehilite .sd, .md-typeset .highlight .sd {\n color: #999999; }\n\n.codehilite .s2, .md-typeset .highlight .s2 {\n color: #0D904F; }\n\n.codehilite .se, .md-typeset .highlight .se {\n color: #183691; }\n\n.codehilite .sh, .md-typeset .highlight .sh {\n color: #183691; }\n\n.codehilite .si, .md-typeset .highlight .si {\n color: #183691; }\n\n.codehilite .sx, .md-typeset .highlight .sx {\n color: #183691; }\n\n.codehilite .sr, .md-typeset .highlight .sr {\n color: #009926; }\n\n.codehilite .s1, .md-typeset .highlight .s1 {\n color: #0D904F; }\n\n.codehilite .ss, .md-typeset .highlight .ss {\n color: #0D904F; }\n\n.codehilite .err, .md-typeset .highlight .err {\n color: #A61717; }\n\n.codehilite .w, .md-typeset .highlight .w {\n color: transparent; }\n\n.codehilite .hll, .md-typeset .highlight .hll {\n display: block;\n margin: 0 -0.6rem;\n padding: 0 0.6rem;\n background-color: rgba(255, 235, 59, 0.5); }\n\n.md-typeset .codehilite, .md-typeset .highlight {\n position: relative;\n margin: 1em 0;\n padding: 0;\n border-radius: 0.1rem;\n background-color: rgba(236, 236, 236, 0.5);\n color: #37474F;\n line-height: 1.4;\n -webkit-overflow-scrolling: touch; }\n .md-typeset .codehilite pre, .md-typeset .highlight pre,\n .md-typeset .codehilite code,\n .md-typeset .highlight code {\n display: block;\n margin: 0;\n padding: 0.525rem 0.6rem;\n background-color: transparent;\n overflow: auto; }\n .md-typeset .codehilite pre::-webkit-scrollbar, .md-typeset .highlight pre::-webkit-scrollbar,\n .md-typeset .codehilite code::-webkit-scrollbar,\n .md-typeset .highlight code::-webkit-scrollbar {\n width: 0.2rem;\n height: 0.2rem; }\n .md-typeset .codehilite pre::-webkit-scrollbar-thumb, .md-typeset .highlight pre::-webkit-scrollbar-thumb,\n .md-typeset .codehilite code::-webkit-scrollbar-thumb,\n .md-typeset .highlight code::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.26); }\n .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover, .md-typeset .highlight pre::-webkit-scrollbar-thumb:hover,\n .md-typeset .codehilite code::-webkit-scrollbar-thumb:hover,\n .md-typeset .highlight code::-webkit-scrollbar-thumb:hover {\n background-color: #536dfe; }\n\n.md-typeset pre.codehilite, .md-typeset pre.highlight {\n overflow: visible; }\n .md-typeset pre.codehilite code, .md-typeset pre.highlight code {\n display: block;\n padding: 0.525rem 0.6rem;\n overflow: auto; }\n\n.md-typeset .codehilitetable, .md-typeset .highlighttable {\n display: block;\n margin: 1em 0;\n border-radius: 0.2em;\n font-size: 0.8rem;\n overflow: hidden; }\n .md-typeset .codehilitetable tbody, .md-typeset .highlighttable tbody,\n .md-typeset .codehilitetable td,\n .md-typeset .highlighttable td {\n display: block;\n padding: 0; }\n .md-typeset .codehilitetable tr, .md-typeset .highlighttable tr {\n display: -webkit-box;\n display: flex; }\n .md-typeset .codehilitetable .codehilite, .md-typeset .highlighttable .codehilite, .md-typeset .codehilitetable .highlight, .md-typeset .highlighttable .highlight,\n .md-typeset .codehilitetable .linenodiv,\n .md-typeset .highlighttable .linenodiv {\n margin: 0;\n border-radius: 0; }\n \n .md-typeset .codehilitetable .linenodiv,\n .md-typeset .highlighttable .linenodiv {\n padding: 0.525rem 0.6rem; }\n .md-typeset .codehilitetable .linenos, .md-typeset .highlighttable .linenos {\n background-color: rgba(0, 0, 0, 0.07);\n color: rgba(0, 0, 0, 0.26);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .md-typeset .codehilitetable .linenos pre, .md-typeset .highlighttable .linenos pre {\n margin: 0;\n padding: 0;\n background-color: transparent;\n color: inherit;\n text-align: right; }\n .md-typeset .codehilitetable .code, .md-typeset .highlighttable .code {\n -webkit-box-flex: 1;\n flex: 1;\n overflow: hidden; }\n\n.md-typeset > .codehilitetable, .md-typeset > .highlighttable {\n box-shadow: none; }\n\n.md-typeset [id^=\"fnref:\"] {\n display: inline-block; }\n .md-typeset [id^=\"fnref:\"]:target {\n margin-top: -3.8rem;\n padding-top: 3.8rem;\n pointer-events: none; }\n\n.md-typeset [id^=\"fn:\"]::before {\n display: none;\n height: 0;\n content: \"\"; }\n\n.md-typeset [id^=\"fn:\"]:target::before {\n display: block;\n margin-top: -3.5rem;\n padding-top: 3.5rem;\n pointer-events: none; }\n\n.md-typeset .footnote {\n color: rgba(0, 0, 0, 0.54);\n font-size: 0.64rem; }\n .md-typeset .footnote ol {\n margin-left: 0; }\n .md-typeset .footnote li {\n -webkit-transition: color 0.25s;\n transition: color 0.25s; }\n .md-typeset .footnote li:target {\n color: rgba(0, 0, 0, 0.87); }\n .md-typeset .footnote li :first-child {\n margin-top: 0; }\n .md-typeset .footnote li:hover .footnote-backref,\n .md-typeset .footnote li:target .footnote-backref {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1; }\n .md-typeset .footnote li:hover .footnote-backref:hover,\n .md-typeset .footnote li:target .footnote-backref {\n color: #536dfe; }\n\n.md-typeset .footnote-ref {\n display: inline-block;\n pointer-events: initial; }\n .md-typeset .footnote-ref::before {\n display: inline;\n margin: 0 0.2em;\n border-left: 0.05rem solid rgba(0, 0, 0, 0.26);\n font-size: 1.25em;\n content: \"\";\n vertical-align: -0.25rem; }\n\n.md-typeset .footnote-backref {\n display: inline-block;\n -webkit-transform: translateX(0.25rem);\n transform: translateX(0.25rem);\n -webkit-transition: color 0.25s, opacity 0.125s 0.125s, -webkit-transform 0.25s 0.125s;\n transition: color 0.25s, opacity 0.125s 0.125s, -webkit-transform 0.25s 0.125s;\n transition: transform 0.25s 0.125s, color 0.25s, opacity 0.125s 0.125s;\n transition: transform 0.25s 0.125s, color 0.25s, opacity 0.125s 0.125s, -webkit-transform 0.25s 0.125s;\n color: rgba(0, 0, 0, 0.26);\n font-size: 0;\n opacity: 0;\n vertical-align: text-bottom; }\n [dir=\"rtl\"] .md-typeset .footnote-backref {\n -webkit-transform: translateX(-0.25rem);\n transform: translateX(-0.25rem); }\n .md-typeset .footnote-backref::before {\n display: inline-block;\n font-size: 0.8rem;\n content: \"\\E31B\"; }\n [dir=\"rtl\"] .md-typeset .footnote-backref::before {\n -webkit-transform: scaleX(-1);\n transform: scaleX(-1); }\n\n.md-typeset .headerlink {\n display: inline-block;\n margin-left: 0.5rem;\n -webkit-transform: translate(0, 0.25rem);\n transform: translate(0, 0.25rem);\n -webkit-transition: color 0.25s, opacity 0.125s 0.25s, -webkit-transform 0.25s 0.25s;\n transition: color 0.25s, opacity 0.125s 0.25s, -webkit-transform 0.25s 0.25s;\n transition: transform 0.25s 0.25s, color 0.25s, opacity 0.125s 0.25s;\n transition: transform 0.25s 0.25s, color 0.25s, opacity 0.125s 0.25s, -webkit-transform 0.25s 0.25s;\n opacity: 0; }\n [dir=\"rtl\"] .md-typeset .headerlink {\n margin-right: 0.5rem;\n margin-left: initial; }\n html body .md-typeset .headerlink {\n color: rgba(0, 0, 0, 0.26); }\n\n.md-typeset h1[id]::before {\n display: block;\n margin-top: -8px;\n padding-top: 8px;\n content: \"\"; }\n\n.md-typeset h1[id]:target::before {\n margin-top: -3.4rem;\n padding-top: 3.4rem; }\n\n.md-typeset h1[id]:hover .headerlink,\n.md-typeset h1[id]:target .headerlink,\n.md-typeset h1[id] .headerlink:focus {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n opacity: 1; }\n\n.md-typeset h1[id]:hover .headerlink:hover,\n.md-typeset h1[id]:target .headerlink,\n.md-typeset h1[id] .headerlink:focus {\n color: #536dfe; }\n\n.md-typeset h2[id]::before {\n display: block;\n margin-top: -8px;\n padding-top: 8px;\n content: \"\"; }\n\n.md-typeset h2[id]:target::before {\n margin-top: -3.4rem;\n padding-top: 3.4rem; }\n\n.md-typeset h2[id]:hover .headerlink,\n.md-typeset h2[id]:target .headerlink,\n.md-typeset h2[id] .headerlink:focus {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n opacity: 1; }\n\n.md-typeset h2[id]:hover .headerlink:hover,\n.md-typeset h2[id]:target .headerlink,\n.md-typeset h2[id] .headerlink:focus {\n color: #536dfe; }\n\n.md-typeset h3[id]::before {\n display: block;\n margin-top: -8px;\n padding-top: 8px;\n content: \"\"; }\n\n.md-typeset h3[id]:target::before {\n margin-top: -3.4rem;\n padding-top: 3.4rem; }\n\n.md-typeset h3[id]:hover .headerlink,\n.md-typeset h3[id]:target .headerlink,\n.md-typeset h3[id] .headerlink:focus {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n opacity: 1; }\n\n.md-typeset h3[id]:hover .headerlink:hover,\n.md-typeset h3[id]:target .headerlink,\n.md-typeset h3[id] .headerlink:focus {\n color: #536dfe; }\n\n.md-typeset h4[id]::before {\n display: block;\n margin-top: -9px;\n padding-top: 9px;\n content: \"\"; }\n\n.md-typeset h4[id]:target::before {\n margin-top: -3.45rem;\n padding-top: 3.45rem; }\n\n.md-typeset h4[id]:hover .headerlink,\n.md-typeset h4[id]:target .headerlink,\n.md-typeset h4[id] .headerlink:focus {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n opacity: 1; }\n\n.md-typeset h4[id]:hover .headerlink:hover,\n.md-typeset h4[id]:target .headerlink,\n.md-typeset h4[id] .headerlink:focus {\n color: #536dfe; }\n\n.md-typeset h5[id]::before {\n display: block;\n margin-top: -11px;\n padding-top: 11px;\n content: \"\"; }\n\n.md-typeset h5[id]:target::before {\n margin-top: -3.55rem;\n padding-top: 3.55rem; }\n\n.md-typeset h5[id]:hover .headerlink,\n.md-typeset h5[id]:target .headerlink,\n.md-typeset h5[id] .headerlink:focus {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n opacity: 1; }\n\n.md-typeset h5[id]:hover .headerlink:hover,\n.md-typeset h5[id]:target .headerlink,\n.md-typeset h5[id] .headerlink:focus {\n color: #536dfe; }\n\n.md-typeset h6[id]::before {\n display: block;\n margin-top: -11px;\n padding-top: 11px;\n content: \"\"; }\n\n.md-typeset h6[id]:target::before {\n margin-top: -3.55rem;\n padding-top: 3.55rem; }\n\n.md-typeset h6[id]:hover .headerlink,\n.md-typeset h6[id]:target .headerlink,\n.md-typeset h6[id] .headerlink:focus {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n opacity: 1; }\n\n.md-typeset h6[id]:hover .headerlink:hover,\n.md-typeset h6[id]:target .headerlink,\n.md-typeset h6[id] .headerlink:focus {\n color: #536dfe; }\n\n.md-typeset .MJXc-display {\n margin: 0.75em 0;\n padding: 0.75em 0;\n overflow: auto;\n -webkit-overflow-scrolling: touch; }\n\n.md-typeset .MathJax_CHTML {\n outline: 0; }\n\n.md-typeset del.critic,\n.md-typeset ins.critic,\n.md-typeset .critic.comment {\n margin: 0 0.25em;\n padding: 0.0625em 0;\n border-radius: 0.1rem;\n -webkit-box-decoration-break: clone;\n box-decoration-break: clone; }\n\n.md-typeset del.critic {\n background-color: #FFDDDD;\n box-shadow: 0.25em 0 0 #FFDDDD, -0.25em 0 0 #FFDDDD; }\n\n.md-typeset ins.critic {\n background-color: #DDFFDD;\n box-shadow: 0.25em 0 0 #DDFFDD, -0.25em 0 0 #DDFFDD; }\n\n.md-typeset .critic.comment {\n background-color: rgba(236, 236, 236, 0.5);\n color: #37474F;\n box-shadow: 0.25em 0 0 rgba(236, 236, 236, 0.5), -0.25em 0 0 rgba(236, 236, 236, 0.5); }\n .md-typeset .critic.comment::before {\n padding-right: 0.125em;\n color: rgba(0, 0, 0, 0.26);\n content: \"\\E0B7\";\n vertical-align: -0.125em; }\n\n.md-typeset .critic.block {\n display: block;\n margin: 1em 0;\n padding-right: 0.8rem;\n padding-left: 0.8rem;\n box-shadow: none; }\n .md-typeset .critic.block :first-child {\n margin-top: 0.5em; }\n .md-typeset .critic.block :last-child {\n margin-bottom: 0.5em; }\n\n.md-typeset details {\n display: block;\n padding-top: 0; }\n .md-typeset details[open] > summary::after {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n .md-typeset details:not([open]) {\n padding-bottom: 0; }\n .md-typeset details:not([open]) > summary {\n border-bottom: none; }\n .md-typeset details summary {\n position: relative;\n padding-right: 2rem; }\n [dir=\"rtl\"] .md-typeset details summary {\n padding-left: 2rem; }\n .no-details .md-typeset details:not([open]) > * {\n display: none; }\n .no-details .md-typeset details:not([open]) summary {\n display: block; }\n\n.md-typeset summary {\n display: block;\n outline: none;\n cursor: pointer; }\n .md-typeset summary::-webkit-details-marker {\n display: none; }\n .md-typeset summary::after {\n position: absolute;\n top: 0.4rem;\n right: 0.6rem;\n color: rgba(0, 0, 0, 0.26);\n font-size: 1rem;\n content: \"\\E313\"; }\n [dir=\"rtl\"] .md-typeset summary::after {\n right: initial;\n left: 0.6rem; }\n\n.md-typeset .emojione,\n.md-typeset .twemoji,\n.md-typeset .gemoji {\n width: 1rem;\n vertical-align: text-top; }\n\n.md-typeset code.codehilite, .md-typeset code.highlight {\n margin: 0 0.29412em;\n padding: 0.07353em 0; }\n\n.md-typeset .superfences-content {\n display: none;\n -webkit-box-ordinal-group: 100;\n order: 99;\n width: 100%;\n background-color: white; }\n .md-typeset .superfences-content > * {\n margin: 0;\n border-radius: 0; }\n\n.md-typeset .superfences-tabs {\n display: -webkit-box;\n display: flex;\n position: relative;\n flex-wrap: wrap;\n margin: 1em 0;\n border: 0.05rem solid rgba(0, 0, 0, 0.07);\n border-radius: 0.2em; }\n .md-typeset .superfences-tabs > input {\n display: none; }\n .md-typeset .superfences-tabs > input:checked + label {\n font-weight: 700; }\n .md-typeset .superfences-tabs > input:checked + label + .superfences-content {\n display: block; }\n .md-typeset .superfences-tabs > label {\n width: auto;\n padding: 0.6rem;\n -webkit-transition: color 0.125s;\n transition: color 0.125s;\n font-size: 0.64rem;\n cursor: pointer; }\n html .md-typeset .superfences-tabs > label:hover {\n color: #536dfe; }\n\n.md-typeset .task-list-item {\n position: relative;\n list-style-type: none; }\n .md-typeset .task-list-item [type=\"checkbox\"] {\n position: absolute;\n top: 0.45em;\n left: -2em; }\n [dir=\"rtl\"] .md-typeset .task-list-item [type=\"checkbox\"] {\n right: -2em;\n left: initial; }\n\n.md-typeset .task-list-control .task-list-indicator::before {\n position: absolute;\n top: 0.15em;\n left: -1.25em;\n color: rgba(0, 0, 0, 0.26);\n font-size: 1.25em;\n content: \"\\E835\";\n vertical-align: -0.25em; }\n [dir=\"rtl\"] .md-typeset .task-list-control .task-list-indicator::before {\n right: -1.25em;\n left: initial; }\n\n.md-typeset .task-list-control [type=\"checkbox\"]:checked + .task-list-indicator::before {\n content: \"\\E834\"; }\n\n.md-typeset .task-list-control [type=\"checkbox\"] {\n opacity: 0;\n z-index: -1; }\n\n@media print {\n .md-typeset a::after {\n color: rgba(0, 0, 0, 0.54);\n content: \" [\" attr(href) \"]\"; }\n .md-typeset code,\n .md-typeset pre {\n white-space: pre-wrap; }\n .md-typeset code {\n box-shadow: none;\n -webkit-box-decoration-break: initial;\n box-decoration-break: initial; }\n .md-clipboard {\n display: none; }\n .md-content__icon {\n display: none; }\n .md-header {\n display: none; }\n .md-footer {\n display: none; }\n .md-sidebar {\n display: none; }\n .md-tabs {\n display: none; }\n .md-typeset .headerlink {\n display: none; } }\n\n@media only screen and (max-width: 44.9375em) {\n .md-typeset pre {\n margin: 1em -0.8rem;\n border-radius: 0; }\n .md-typeset pre > code {\n padding: 0.525rem 0.8rem; }\n .md-footer-nav__link--prev .md-footer-nav__title {\n display: none; }\n .md-search-result__teaser {\n max-height: 2.5rem;\n -webkit-line-clamp: 3; }\n .codehilite .hll, .md-typeset .highlight .hll {\n margin: 0 -0.8rem;\n padding: 0 0.8rem; }\n .md-typeset > .codehilite, .md-typeset > .highlight {\n margin: 1em -0.8rem;\n border-radius: 0; }\n .md-typeset > .codehilite pre, .md-typeset > .highlight pre,\n .md-typeset > .codehilite code,\n .md-typeset > .highlight code {\n padding: 0.525rem 0.8rem; }\n .md-typeset > .codehilitetable, .md-typeset > .highlighttable {\n margin: 1em -0.8rem;\n border-radius: 0; }\n .md-typeset > .codehilitetable .codehilite > pre, .md-typeset > .highlighttable .codehilite > pre, .md-typeset > .codehilitetable .highlight > pre, .md-typeset > .highlighttable .highlight > pre,\n .md-typeset > .codehilitetable .codehilite > code,\n .md-typeset > .highlighttable .codehilite > code,\n .md-typeset > .codehilitetable .highlight > code,\n .md-typeset > .highlighttable .highlight > code,\n .md-typeset > .codehilitetable .linenodiv,\n .md-typeset > .highlighttable .linenodiv {\n padding: 0.5rem 0.8rem; }\n .md-typeset > p > .MJXc-display {\n margin: 0.75em -0.8rem;\n padding: 0.25em 0.8rem; }\n .md-typeset > .superfences-tabs {\n margin: 1em -0.8rem;\n border: 0;\n border-top: 0.05rem solid rgba(0, 0, 0, 0.07);\n border-radius: 0; }\n .md-typeset > .superfences-tabs pre,\n .md-typeset > .superfences-tabs code {\n padding: 0.525rem 0.8rem; } }\n\n@media only screen and (min-width: 100em) {\n html {\n font-size: 137.50%; } }\n\n@media only screen and (min-width: 125em) {\n html {\n font-size: 150%; } }\n\n@media only screen and (max-width: 59.9375em) {\n body[data-md-state=\"lock\"] {\n overflow: hidden; }\n .ios body[data-md-state=\"lock\"] .md-container {\n display: none; }\n html .md-nav__link[for=\"__toc\"] {\n display: block;\n padding-right: 2.4rem; }\n html .md-nav__link[for=\"__toc\"]::after {\n color: inherit;\n content: \"\\E8DE\"; }\n html .md-nav__link[for=\"__toc\"] + .md-nav__link {\n display: none; }\n html .md-nav__link[for=\"__toc\"] ~ .md-nav {\n display: -webkit-box;\n display: flex; }\n html [dir=\"rtl\"] .md-nav__link {\n padding-right: 0.8rem;\n padding-left: 2.4rem; }\n .md-nav__source {\n display: block;\n padding: 0 0.2rem;\n background-color: rgba(50, 64, 144, 0.9675);\n color: white; }\n .md-search__overlay {\n position: absolute;\n top: 0.2rem;\n left: 0.2rem;\n width: 1.8rem;\n height: 1.8rem;\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transition: opacity 0.2s 0.2s, -webkit-transform 0.3s 0.1s;\n transition: opacity 0.2s 0.2s, -webkit-transform 0.3s 0.1s;\n transition: transform 0.3s 0.1s, opacity 0.2s 0.2s;\n transition: transform 0.3s 0.1s, opacity 0.2s 0.2s, -webkit-transform 0.3s 0.1s;\n border-radius: 1rem;\n background-color: white;\n overflow: hidden;\n pointer-events: none; }\n [dir=\"rtl\"] .md-search__overlay {\n right: 0.2rem;\n left: initial; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__overlay {\n -webkit-transition: opacity 0.1s, -webkit-transform 0.4s;\n transition: opacity 0.1s, -webkit-transform 0.4s;\n transition: transform 0.4s, opacity 0.1s;\n transition: transform 0.4s, opacity 0.1s, -webkit-transform 0.4s;\n opacity: 1; }\n .md-search__inner {\n position: fixed;\n top: 0;\n left: 100%;\n width: 100%;\n height: 100%;\n -webkit-transform: translateX(5%);\n transform: translateX(5%);\n -webkit-transition: right 0s 0.3s, left 0s 0.3s, opacity 0.15s 0.15s, -webkit-transform 0.15s 0.15s cubic-bezier(0.4, 0, 0.2, 1);\n transition: right 0s 0.3s, left 0s 0.3s, opacity 0.15s 0.15s, -webkit-transform 0.15s 0.15s cubic-bezier(0.4, 0, 0.2, 1);\n transition: right 0s 0.3s, left 0s 0.3s, transform 0.15s 0.15s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.15s 0.15s;\n transition: right 0s 0.3s, left 0s 0.3s, transform 0.15s 0.15s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.15s 0.15s, -webkit-transform 0.15s 0.15s cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n z-index: 2; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__inner {\n left: 0;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n -webkit-transition: right 0s 0s, left 0s 0s, opacity 0.15s 0.15s, -webkit-transform 0.15s 0.15s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: right 0s 0s, left 0s 0s, opacity 0.15s 0.15s, -webkit-transform 0.15s 0.15s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: right 0s 0s, left 0s 0s, transform 0.15s 0.15s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s 0.15s;\n transition: right 0s 0s, left 0s 0s, transform 0.15s 0.15s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s 0.15s, -webkit-transform 0.15s 0.15s cubic-bezier(0.1, 0.7, 0.1, 1);\n opacity: 1; }\n [dir=\"rtl\"] [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__inner {\n right: 0;\n left: initial; }\n html [dir=\"rtl\"] .md-search__inner {\n right: 100%;\n left: initial;\n -webkit-transform: translateX(-5%);\n transform: translateX(-5%); }\n .md-search__input {\n width: 100%;\n height: 2.4rem;\n font-size: 0.9rem; }\n .md-search__icon[for=\"__search\"] {\n top: 0.6rem;\n left: 0.8rem; }\n .md-search__icon[for=\"__search\"][for=\"__search\"]::before {\n content: \"\\E5C4\"; }\n [dir=\"rtl\"] .md-search__icon[for=\"__search\"][for=\"__search\"]::before {\n content: \"\\E5C8\"; }\n .md-search__icon[type=\"reset\"] {\n top: 0.6rem;\n right: 0.8rem; }\n .md-search__output {\n top: 2.4rem;\n bottom: 0; }\n .md-search-result__article--document::before {\n display: none; } }\n\n@media only screen and (max-width: 76.1875em) {\n [data-md-toggle=\"drawer\"]:checked ~ .md-overlay {\n width: 100%;\n height: 100%;\n -webkit-transition: width 0s, height 0s, opacity 0.25s;\n transition: width 0s, height 0s, opacity 0.25s;\n opacity: 1; }\n .md-header-nav__button.md-icon--home, .md-header-nav__button.md-logo {\n display: none; }\n .md-hero__inner {\n margin-top: 2.4rem;\n margin-bottom: 1.2rem; }\n .md-nav {\n background-color: white; }\n .md-nav--primary,\n .md-nav--primary .md-nav {\n display: -webkit-box;\n display: flex;\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n flex-direction: column;\n height: 100%;\n z-index: 1; }\n .md-nav--primary .md-nav__title,\n .md-nav--primary .md-nav__item {\n font-size: 0.8rem;\n line-height: 1.5; }\n html .md-nav--primary .md-nav__title {\n position: relative;\n height: 5.6rem;\n padding: 3rem 0.8rem 0.2rem;\n background-color: rgba(0, 0, 0, 0.07);\n color: rgba(0, 0, 0, 0.54);\n font-weight: 400;\n line-height: 2.4rem;\n white-space: nowrap;\n cursor: pointer; }\n html .md-nav--primary .md-nav__title::before {\n display: block;\n position: absolute;\n top: 0.2rem;\n left: 0.2rem;\n width: 2rem;\n height: 2rem;\n color: rgba(0, 0, 0, 0.54); }\n html .md-nav--primary .md-nav__title ~ .md-nav__list {\n background-color: white;\n box-shadow: 0 0.05rem 0 rgba(0, 0, 0, 0.07) inset; }\n html .md-nav--primary .md-nav__title ~ .md-nav__list > .md-nav__item:first-child {\n border-top: 0; }\n html .md-nav--primary .md-nav__title--site {\n position: relative;\n background-color: #3f51b5;\n color: white; }\n html .md-nav--primary .md-nav__title--site .md-nav__button {\n display: block;\n position: absolute;\n top: 0.2rem;\n left: 0.2rem;\n width: 3.2rem;\n height: 3.2rem;\n font-size: 2.4rem; }\n html .md-nav--primary .md-nav__title--site::before {\n display: none; }\n html [dir=\"rtl\"] .md-nav--primary .md-nav__title::before {\n right: 0.2rem;\n left: initial; }\n html [dir=\"rtl\"] .md-nav--primary .md-nav__title--site .md-nav__button {\n right: 0.2rem;\n left: initial; }\n .md-nav--primary .md-nav__list {\n -webkit-box-flex: 1;\n flex: 1;\n overflow-y: auto; }\n .md-nav--primary .md-nav__item {\n padding: 0;\n border-top: 0.05rem solid rgba(0, 0, 0, 0.07); }\n [dir=\"rtl\"] .md-nav--primary .md-nav__item {\n padding: 0; }\n .md-nav--primary .md-nav__item--nested > .md-nav__link {\n padding-right: 2.4rem; }\n [dir=\"rtl\"] .md-nav--primary .md-nav__item--nested > .md-nav__link {\n padding-right: 0.8rem;\n padding-left: 2.4rem; }\n .md-nav--primary .md-nav__item--nested > .md-nav__link::after {\n content: \"\\E315\"; }\n [dir=\"rtl\"] .md-nav--primary .md-nav__item--nested > .md-nav__link::after {\n content: \"\\E314\"; }\n .md-nav--primary .md-nav__link {\n position: relative;\n margin-top: 0;\n padding: 0.6rem 0.8rem; }\n .md-nav--primary .md-nav__link::after {\n position: absolute;\n top: 50%;\n right: 0.6rem;\n margin-top: -0.6rem;\n color: inherit;\n font-size: 1.2rem; }\n [dir=\"rtl\"] .md-nav--primary .md-nav__link::after {\n right: initial;\n left: 0.6rem; }\n .md-nav--primary .md-nav--secondary .md-nav__link {\n position: static; }\n .md-nav--primary .md-nav--secondary .md-nav {\n position: static;\n background-color: transparent; }\n .md-nav--primary .md-nav--secondary .md-nav .md-nav__link {\n padding-left: 1.4rem; }\n [dir=\"rtl\"] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link {\n padding-right: 1.4rem;\n padding-left: initial; }\n .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link {\n padding-left: 2rem; }\n [dir=\"rtl\"] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link {\n padding-right: 2rem;\n padding-left: initial; }\n .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link {\n padding-left: 2.6rem; }\n [dir=\"rtl\"] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link {\n padding-right: 2.6rem;\n padding-left: initial; }\n .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link {\n padding-left: 3.2rem; }\n [dir=\"rtl\"] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link {\n padding-right: 3.2rem;\n padding-left: initial; }\n .md-nav__toggle ~ .md-nav {\n display: -webkit-box;\n display: flex;\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n -webkit-transition: opacity 0.125s 0.05s, -webkit-transform 0.25s cubic-bezier(0.8, 0, 0.6, 1);\n transition: opacity 0.125s 0.05s, -webkit-transform 0.25s cubic-bezier(0.8, 0, 0.6, 1);\n transition: transform 0.25s cubic-bezier(0.8, 0, 0.6, 1), opacity 0.125s 0.05s;\n transition: transform 0.25s cubic-bezier(0.8, 0, 0.6, 1), opacity 0.125s 0.05s, -webkit-transform 0.25s cubic-bezier(0.8, 0, 0.6, 1);\n opacity: 0; }\n [dir=\"rtl\"] .md-nav__toggle ~ .md-nav {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%); }\n .no-csstransforms3d .md-nav__toggle ~ .md-nav {\n display: none; }\n .md-nav__toggle:checked ~ .md-nav {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n -webkit-transition: opacity 0.125s 0.125s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n transition: opacity 0.125s 0.125s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.125s 0.125s;\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.125s 0.125s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 1; }\n .no-csstransforms3d .md-nav__toggle:checked ~ .md-nav {\n display: -webkit-box;\n display: flex; }\n .md-sidebar--primary {\n position: fixed;\n top: 0;\n left: -12.1rem;\n width: 12.1rem;\n height: 100%;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n -webkit-transition: box-shadow 0.25s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n transition: box-shadow 0.25s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s;\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n background-color: white;\n z-index: 3; }\n [dir=\"rtl\"] .md-sidebar--primary {\n right: -12.1rem;\n left: initial; }\n .no-csstransforms3d .md-sidebar--primary {\n display: none; }\n [data-md-toggle=\"drawer\"]:checked ~ .md-container .md-sidebar--primary {\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.4);\n -webkit-transform: translateX(12.1rem);\n transform: translateX(12.1rem); }\n [dir=\"rtl\"] [data-md-toggle=\"drawer\"]:checked ~ .md-container .md-sidebar--primary {\n -webkit-transform: translateX(-12.1rem);\n transform: translateX(-12.1rem); }\n .no-csstransforms3d [data-md-toggle=\"drawer\"]:checked ~ .md-container .md-sidebar--primary {\n display: block; }\n .md-sidebar--primary .md-sidebar__scrollwrap {\n overflow: hidden; }\n .md-sidebar--primary .md-sidebar__scrollwrap {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: 0; }\n .md-tabs {\n display: none; } }\n\n@media only screen and (min-width: 60em) {\n .md-content {\n margin-right: 12.1rem; }\n [dir=\"rtl\"] .md-content {\n margin-right: initial;\n margin-left: 12.1rem; }\n .md-header-nav__button.md-icon--search {\n display: none; }\n .md-header-nav__source {\n display: block;\n width: 11.7rem;\n max-width: 11.7rem;\n padding-right: 0.6rem; }\n [dir=\"rtl\"] .md-header-nav__source {\n padding-right: initial;\n padding-left: 0.6rem; }\n .md-search {\n padding: 0.2rem; }\n .md-search__overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n -webkit-transition: width 0s 0.25s, height 0s 0.25s, opacity 0.25s;\n transition: width 0s 0.25s, height 0s 0.25s, opacity 0.25s;\n background-color: rgba(0, 0, 0, 0.54);\n cursor: pointer; }\n [dir=\"rtl\"] .md-search__overlay {\n right: 0;\n left: initial; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__overlay {\n width: 100%;\n height: 100%;\n -webkit-transition: width 0s, height 0s, opacity 0.25s;\n transition: width 0s, height 0s, opacity 0.25s;\n opacity: 1; }\n .md-search__inner {\n position: relative;\n width: 11.5rem;\n margin-right: 0.8rem;\n padding: 0.1rem 0;\n float: right;\n -webkit-transition: width 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: width 0.25s cubic-bezier(0.1, 0.7, 0.1, 1); }\n [dir=\"rtl\"] .md-search__inner {\n margin-right: initial;\n margin-left: 0.8rem;\n float: left; }\n .md-search__form {\n border-radius: 0.1rem; }\n .md-search__input {\n width: 100%;\n height: 1.8rem;\n padding-left: 2.2rem;\n -webkit-transition: background-color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1), color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: background-color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1), color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n border-radius: 0.1rem;\n background-color: rgba(0, 0, 0, 0.26);\n color: inherit;\n font-size: 0.8rem; }\n [dir=\"rtl\"] .md-search__input {\n padding-right: 2.2rem; }\n .md-search__input + .md-search__icon {\n color: inherit; }\n .md-search__input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.7); }\n .md-search__input::-moz-placeholder {\n color: rgba(255, 255, 255, 0.7); }\n .md-search__input:-ms-input-placeholder {\n color: rgba(255, 255, 255, 0.7); }\n .md-search__input::-ms-input-placeholder {\n color: rgba(255, 255, 255, 0.7); }\n .md-search__input::placeholder {\n color: rgba(255, 255, 255, 0.7); }\n .md-search__input:hover {\n background-color: rgba(255, 255, 255, 0.12); }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input {\n border-radius: 0.1rem 0.1rem 0 0;\n background-color: white;\n color: rgba(0, 0, 0, 0.87);\n text-overflow: clip; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input::-moz-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input:-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input::-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input + .md-search__icon, [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input::placeholder {\n color: rgba(0, 0, 0, 0.54); }\n .md-search__output {\n top: 1.9rem;\n -webkit-transition: opacity 0.4s;\n transition: opacity 0.4s;\n opacity: 0; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__output {\n box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.4);\n opacity: 1; }\n .md-search__scrollwrap {\n max-height: 0; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__scrollwrap {\n max-height: 75vh; }\n .md-search__scrollwrap::-webkit-scrollbar {\n width: 0.2rem;\n height: 0.2rem; }\n .md-search__scrollwrap::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.26); }\n .md-search__scrollwrap::-webkit-scrollbar-thumb:hover {\n background-color: #536dfe; }\n .md-search-result__meta {\n padding-left: 2.2rem; }\n [dir=\"rtl\"] .md-search-result__meta {\n padding-right: 2.2rem;\n padding-left: initial; }\n .md-search-result__article {\n padding-left: 2.2rem; }\n [dir=\"rtl\"] .md-search-result__article {\n padding-right: 2.2rem;\n padding-left: 0.8rem; }\n .md-sidebar--secondary {\n display: block;\n margin-left: calc(100% - 12.1rem); }\n [dir=\"rtl\"] .md-sidebar--secondary {\n margin-right: calc(100% - 12.1rem);\n margin-left: initial; }\n .md-sidebar--secondary .md-sidebar__scrollwrap {\n -webkit-overflow-scrolling: touch; } }\n\n@media only screen and (min-width: 76.25em) {\n .md-content {\n margin-left: 12.1rem; }\n [dir=\"rtl\"] .md-content {\n margin-right: 12.1rem; }\n .md-content__inner {\n margin-right: 1.2rem;\n margin-left: 1.2rem; }\n .md-header-nav__button.md-icon--menu {\n display: none; }\n .md-nav {\n -webkit-transition: max-height 0.25s cubic-bezier(0.86, 0, 0.07, 1);\n transition: max-height 0.25s cubic-bezier(0.86, 0, 0.07, 1); }\n .md-nav__toggle ~ .md-nav {\n max-height: 0;\n overflow: hidden; }\n .no-js .md-nav__toggle ~ .md-nav {\n display: none; }\n .md-nav__toggle:checked ~ .md-nav {\n max-height: 100%; }\n .md-nav__item--nested > .md-nav > .md-nav__title {\n display: none; }\n .md-nav__item--nested > .md-nav__link::after {\n display: inline-block;\n -webkit-transform-origin: 0.45em 0.45em;\n transform-origin: 0.45em 0.45em;\n -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d;\n vertical-align: -0.125em; }\n .js .md-nav__item--nested > .md-nav__link::after {\n -webkit-transition: -webkit-transform 0.4s;\n transition: -webkit-transform 0.4s;\n transition: transform 0.4s;\n transition: transform 0.4s, -webkit-transform 0.4s; }\n .md-nav__item--nested .md-nav__toggle:checked ~ .md-nav__link::after {\n -webkit-transform: rotateX(180deg);\n transform: rotateX(180deg); }\n .md-search__inner {\n margin-right: 1.2rem; }\n [dir=\"rtl\"] .md-search__inner {\n margin-left: 1.2rem; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__inner {\n width: 34.4rem; }\n .md-search__scrollwrap {\n width: 34.4rem; }\n .md-sidebar--secondary {\n margin-left: 48.9rem; }\n [dir=\"rtl\"] .md-sidebar--secondary {\n margin-right: 48.9rem;\n margin-left: initial; }\n .md-tabs ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--nested {\n font-size: 0;\n visibility: hidden; }\n .md-tabs--active ~ .md-main .md-nav--primary .md-nav__title {\n display: block;\n padding: 0; }\n .md-tabs--active ~ .md-main .md-nav--primary .md-nav__title--site {\n display: none; }\n .no-js .md-tabs--active ~ .md-main .md-nav--primary .md-nav {\n display: block; }\n .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item {\n font-size: 0;\n visibility: hidden; }\n .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--nested {\n display: none;\n font-size: 0.7rem;\n overflow: auto;\n visibility: visible; }\n .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--nested > .md-nav__link {\n display: none; }\n .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--active {\n display: block; }\n .md-tabs--active ~ .md-main .md-nav[data-md-level=\"1\"] {\n max-height: initial;\n overflow: visible; }\n .md-tabs--active ~ .md-main .md-nav[data-md-level=\"1\"] > .md-nav__list > .md-nav__item {\n padding-left: 0; }\n .md-tabs--active ~ .md-main .md-nav[data-md-level=\"1\"] .md-nav .md-nav__title {\n display: none; } }\n\n@media only screen and (min-width: 45em) {\n .md-footer-nav__link {\n width: 50%; }\n .md-footer-copyright {\n max-width: 75%;\n float: left; }\n [dir=\"rtl\"] .md-footer-copyright {\n float: right; }\n .md-footer-social {\n padding: 0.6rem 0;\n float: right; }\n [dir=\"rtl\"] .md-footer-social {\n float: left; } }\n\n@media only screen and (max-width: 29.9375em) {\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__overlay {\n -webkit-transform: scale(45);\n transform: scale(45); } }\n\n@media only screen and (min-width: 30em) and (max-width: 44.9375em) {\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__overlay {\n -webkit-transform: scale(60);\n transform: scale(60); } }\n\n@media only screen and (min-width: 45em) and (max-width: 59.9375em) {\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__overlay {\n -webkit-transform: scale(75);\n transform: scale(75); } }\n\n@media only screen and (min-width: 60em) and (max-width: 76.1875em) {\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__inner {\n width: 23.4rem; }\n .md-search__scrollwrap {\n width: 23.4rem; }\n .md-search-result__teaser {\n max-height: 2.5rem;\n -webkit-line-clamp: 3; } }\n\n@media (-webkit-max-device-pixel-ratio: 1), (max-resolution: 1dppx) {\n .md-search__scrollwrap {\n -webkit-transform: translateZ(0);\n transform: translateZ(0); } }\n/*# sourceMappingURL=app.css.map */",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]} \ No newline at end of file +{"version":3,"sources":["app.css","../../../src/assets/stylesheets/layout/_source.scss","../../../src/assets/stylesheets/base/_reset.scss","../../../src/assets/stylesheets/layout/_base.scss","material/assets/stylesheets/app.css","../../../src/assets/stylesheets/base/_typeset.scss","../../../src/assets/stylesheets/base/_icons.scss","../../../node_modules/material-shadows/material-shadows.scss","../../../src/assets/stylesheets/layout/_announce.scss","../../../src/assets/stylesheets/layout/_clipboard.scss","../../../src/assets/stylesheets/layout/_content.scss","../../../src/assets/stylesheets/layout/_header.scss","../../../src/assets/stylesheets/layout/_hero.scss","../../../src/assets/stylesheets/layout/_footer.scss","../../../src/assets/stylesheets/layout/_nav.scss","../../../src/assets/stylesheets/layout/_search.scss","../../../src/assets/stylesheets/extensions/_admonition.scss","../../../src/assets/stylesheets/layout/_sidebar.scss","../../../src/assets/stylesheets/extensions/pymdown/_superfences.scss","../../../src/assets/stylesheets/layout/_tabs.scss","../../../src/assets/stylesheets/extensions/_codehilite.scss","../../../src/assets/stylesheets/extensions/_footnotes.scss","../../../src/assets/stylesheets/extensions/_permalinks.scss","../../../src/assets/stylesheets/extensions/pymdown/_arithmatex.scss","../../../src/assets/stylesheets/extensions/pymdown/_critic.scss","../../../src/assets/stylesheets/extensions/pymdown/_details.scss","../../../src/assets/stylesheets/extensions/pymdown/_emoji.scss","../../../src/assets/stylesheets/extensions/pymdown/_inlinehilite.scss","../../../src/assets/stylesheets/extensions/pymdown/_tasklist.scss","../../../src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"AAAA,iBC2BA,A,0CACE,E,CACE,Q,CAGF,E,CACE,eANJ,A,kCACE,E,CACE,Q,CAGF,E,CACE,eAKJ,A,yCACE,E,CACE,kC,CAAA,0B,CACA,S,CAGF,G,CACE,S,CAGF,E,CACE,+B,CAAA,uB,CACA,WAZJ,A,iCACE,E,CACE,kC,CAAA,0B,CACA,S,CAGF,G,CACE,S,CAGF,E,CACE,+B,CAAA,uB,CACA,WCrBJ,I,CACE,qB,CAYA,6B,CAAA,0B,CAAA,yB,CAAA,qB,CCLA,e,CACA,qB,CAOA,c,CAKA,iB,CDhBF,C,CE5BA,O,CADA,Q,CFgCE,kB,CASF,I,CACE,Q,CGnBA,kC,CACA,iC,CHyFF,M,CAnEA,E,CAqEE,S,CACA,Q,CAtEF,E,CACE,gB,CACA,sB,CCmCA,a,CACA,a,CDhCF,C,CACE,oC,CAaA,a,CACA,oB,CAfF,C,CE/BA,M,CAEA,K,CADA,K,CFuCE,uC,CAUF,K,CAKA,G,CE1CA,G,CFsCE,a,CAIF,G,CE1CA,G,CF4CE,iB,CAEA,a,CACA,uB,CAIF,G,CACE,a,CAIF,G,CACE,S,CAIF,G,CACE,iB,CAIF,K,CACE,wB,CACA,gB,CAIF,E,CEpDA,E,CFsDE,e,CACA,kB,CAIF,M,CACE,Q,CAGA,c,CACA,iB,CAIF,K,CACE,Q,CACA,S,CIpGF,Q,CAAA,e,CAAA,oB,CAAA,sB,CAAA,4C,CAAA,uB,CAAA,iD,CAAA,uC,CAAA,mC,CAAA,6B,CAAA,2D,CAAA,6C,CAAA,mC,CAAA,0B,CACE,4B,CACA,iB,CACA,mB,CACA,e,CACA,a,CACA,mB,CACA,kB,CACA,gB,CACA,a,CAGA,iB,CACE,oB,CACA,U,CAEA,a,CACA,gB,CACA,c,CANF,sB,CAAA,sB,CAAA,e,CAGE,Y,CAHF,sB,CAEE,U,CACA,Y,CACA,a,CACA,gB,CACA,c,CANF,sB,CAAA,sB,CAAA,e,CAAA,4C,CACE,oB,CACA,U,CAEA,a,CACA,gB,CACA,c,CAeA,4B,CACE,W,CADF,+B,CNuCJ,sC,CMtCM,W,CADF,sB,CACE,W,CADF,wB,CACE,W,CNyCN,yC,CM5BQ,W,CD3CR,I,CDwFA,I,CANA,K,CAOA,G,CCjFA,G,CANE,qB,CACA,mC,CACA,uD,CDoFF,I,CACA,G,CCjFA,G,CAIE,4B,CACA,2C,CAWF,W,CACE,e,CACA,e,CAGA,gC,CDwEA,sB,CADA,c,CC5EF,a,CD2EE,c,CC/DE,Y,CAZJ,c,CAiBI,e,CACA,qB,CACA,mB,CACA,e,CACA,qB,CACA,e,CAtBJ,c,CAAA,c,CA2BI,mB,CACA,iB,CACA,e,CACA,qB,CACA,e,CA/BJ,c,CAoCI,qB,CACA,c,CACA,e,CAEA,e,CAxCJ,iB,CA6CI,gB,CA7CJ,c,CAAA,c,CD0GE,c,CCxDE,c,CACA,e,CACA,e,CACA,qB,CArDJ,c,CD0GE,c,CC9CE,qB,CACA,gB,CA7DJ,c,CAoEI,wB,CApEJ,c,CAyEI,c,CACA,2C,CA1EJ,a,CA+EI,a,CACA,qB,CAhFJ,a,CAAA,qB,CAqFM,8B,CAAA,sB,CArFN,oB,CAAA,mB,CA2FM,a,CA3FN,gB,CD8HE,e,CClBE,qC,CACA,a,CACA,a,CACA,a,CA/GJ,gB,CA2HI,iB,CACA,kB,CACA,mB,CACA,+E,CAGA,qB,CACA,kC,CAAA,0B,CAlIJ,mB,CD4IE,mB,CACA,mB,CACA,mB,CACA,mB,CACA,mB,CCEE,Q,CACA,4B,CACA,e,CApJJ,kB,CAyJI,c,CACA,e,CACA,qB,CACA,wB,CACA,a,CACA,e,CA9JJ,e,CAmKI,iB,CACA,Y,CACA,mB,CACA,e,CACA,gC,CAvKJ,oB,CA2KM,a,CACA,Q,CACA,qB,CACA,4B,CACA,iB,CACA,e,CACA,kC,CAAA,0B,CACA,a,CAlLN,uC,CAsLQ,W,CACA,Y,CAvLR,6C,CA4LQ,gC,CA5LR,mD,CAgMU,wB,CAhMV,e,CAyNI,kB,CACA,2B,CACA,oB,CACA,2B,CACA,wB,CACA,U,CACA,a,CACA,6B,CACA,qB,CAjOJ,gB,CAsOI,c,CACA,iB,CACA,mB,CACA,oC,CACA,uE,CAGA,qB,CACA,kC,CAAA,0B,CA9OJ,gB,CAmPI,2C,CACA,oB,CACA,W,CArPJ,iB,CA0PI,W,CD9CF,e,CC5MF,e,CAgQI,oB,CLvCA,yB,CAAA,yB,CK2CE,qB,CACA,mB,CArQN,sB,CA2QI,kB,CACA,uC,CACA,qB,CL5CA,gC,CKgDE,mB,CACA,oB,CACA,wC,CACA,mB,CApRN,c,CA0RI,oB,CD5DF,c,CC9NF,c,CAgSI,kB,CACA,S,CLrDA,wB,CIsB0B,8B,CADA,8B,CJrB1B,wB,CA+BI,8B,CAAA,8B,CK0BF,mB,CACA,mB,CDhEF,iB,CCtOJ,iB,CA2SM,2B,CDlEA,oB,CCzON,oB,CA+SQ,2B,CDnEJ,iB,CC5OJ,iB,CAqTM,kB,CACA,kB,CL5DA,2B,CAAA,2B,CKgEE,mB,CACA,mB,CDrEF,4B,CADA,mB,CADA,4B,CCpPN,mB,CAiUQ,a,CDxEF,4B,CCzPN,4B,CAsUQ,e,CDxEF,oB,CADA,oB,CADA,oB,CC5PN,oB,CA4UQ,yB,CA5UR,c,CAyVI,wB,CLtEA,wB,CK0EE,oB,CACA,mB,CA9VN,kB,CD4QE,e,CACA,e,CCyFE,c,CAtWJ,sBAAA,Q,CEhCE,gG,CF6YE,oB,CACA,c,CACA,mB,CACA,gB,CACA,a,CACA,gC,CAlXJ,sBAAA,U,CAwXM,gB,CD9FF,sBAAsB,O,SAAgB,Q,CC1R1C,sBAAA,O,SAAA,Q,CA8XM,e,CLvFA,gCIVsB,O,SAAgB,Q,CJUtC,gCAAA,O,SAAA,Q,CK2FE,gB,CAlYR,sBAAA,W,CAwYM,c,CACA,mB,CACA,gC,CACA,U,CACA,kB,CA5YN,sBAAA,W,CAiZM,mB,CACA,uC,CACA,kB,CAnZN,sBAAA,W,CAwZM,yC,CAAA,iC,CAxZN,sBAAA,iB,CA4ZQ,iC,CACA,gC,CA7ZR,sBAAA,0B,CAkaQ,Y,CAlaR,sBAAA,U,CAyaM,iB,CAKJ,uB,CACE,iB,CACA,e,CACA,gC,CAjbJ,8B,CAsbI,oB,CACA,kB,CACA,e,CAxbJ,oC,CA4bM,a,CACA,U,CACA,Q,CACA,e,CH1cN,I,CCmBE,iB,CACA,e,CAGA,e,CA0BF,Q,CACE,e,CACA,iB,CACA,gB,CAIF,a,CC2SA,Q,CDzSE,a,CAKF,a,CACE,a,CACA,U,CACA,W,CACA,kB,CAIF,Q,CACE,iB,CACA,W,CAGA,e,CACE,W,CACA,kB,CAIA,qB,CASJ,U,CACE,Y,CAIF,W,CACE,c,CACA,K,CACA,O,CACA,Q,CACA,4D,CAAA,oD,CAIA,gC,CACA,S,CACA,S,CAuBF,Q,CACE,a,CAGA,c,CACE,kB,CACA,iB,CACA,kB,CAGA,sB,CACE,Q,CAIF,uB,CACE,a,CACA,U,CACA,kB,CAKJ,kB,CACE,kB,CACA,sB,CACA,kB,CACA,e,CASJ,Q,CACE,c,CACA,Y,CACA,a,CACA,Y,CACA,mB,CACA,mC,CAAA,2B,CACA,mB,CACA,gC,CACA,U,CACA,gB,CACA,S,CACA,e,CAZF,c,CAgBI,U,CACA,W,CACA,S,CACA,+B,CAAA,uB,CACA,qF,CAAA,qE,CAAA,oH,CAGA,S,CACA,U,CASJ,MACE,YK3NF,gB,CACE,gC,CAGA,uB,CACE,iB,CACA,e,CACA,U,CACA,e,CACA,kB,CCTJ,a,CACE,iB,CACA,S,CACA,W,CACA,Y,CACA,a,CACA,6B,CAAA,qB,CACA,mB,CACA,qB,CACA,e,CACA,c,CACA,S,CAEA,kC,CAAA,0B,CLidA,+B,CACA,0C,CK1cA,uB,CAEE,qB,CL4cF,+B,CAEA,+B,CADA,0C,CAEA,0C,CK3cA,uB,CLucA,uB,CKncE,a,CCPF,kB,CACE,qB,CACA,iB,CAFD,0B,CAaG,a,CACA,Y,CACA,U,CAfH,8B,CAoBG,e,CAKJ,iB,CAGE,iB,CACA,c,CACA,S,CACA,W,CAGA,6B,CACE,qB,CC3DN,U,CACE,uB,CAAA,e,CACA,K,CACA,O,CACA,M,CACA,a,CACA,mD,CAAA,2C,CAGA,wB,CACA,U,CACA,e,CACA,S,CAEA,kC,CAAA,0B,CAGA,iB,CACE,uB,CAAA,e,CACA,e,CAnBJ,gC,CAwBI,mE,CAAA,2D,CAIA,gE,CAYJ,c,CACE,e,CAGA,sB,CAGE,iB,CACA,+B,CAAA,uB,CACA,S,CALD,4B,CASG,U,CATH,gC,CAcG,a,CAIF,6C,CACE,Y,CAiCJ,qB,CACE,a,CACA,iB,CACA,uB,CACA,8E,CAAA,8D,CAAA,6G,CAGA,sB,CACA,kB,CACA,e,CATD,2C,CAaG,qC,CAAA,6B,CACA,8E,CAAA,8D,CAAA,6G,CAGA,S,CACA,U,CACA,mB,CX2eA,qD,CWveE,sC,CAAA,8B,CAKJ,4B,CACE,gB,CAIF,kD,CACE,Y,CAKJ,qB,CACE,c,CACA,e,CACA,kB,CAHD,iE,CAOG,sC,CAAA,8B,CACA,8E,CAAA,8D,CAAA,6G,CAGA,S,CACA,U,CACA,mB,CX0dA,2E,CWtdE,qC,CAAA,6B,CAjBL,uF,CAsBK,+B,CAAA,uB,CACA,8E,CAAA,8D,CAAA,6G,CAGA,S,CACA,S,CACA,sB,CAMN,sB,CACE,Y,CC1KJ,Q,CACE,kC,CAAA,0B,CACA,wB,CACA,U,CACA,c,CACA,e,CAGA,e,CACE,e,CACA,yB,CACA,8E,CAAA,8D,CAAA,6G,CAGA,4B,CAAA,oB,CZmoBA,sC,CYznBE,mB,CACA,qC,CAAA,6B,CACA,0D,CAAA,0C,CAAA,mE,CAGA,S,CAIF,gC,CACE,oB,CCzBN,c,CACE,gC,CACA,U,CAGA,qB,CACE,a,CACA,a,CAIF,oB,CACE,kB,CACA,oB,CACA,+B,CAAA,uB,CAHD,0B,CAYG,U,CAIF,0B,CACE,S,CACA,U,CbyoBA,oC,CaroBE,W,CAcJ,0B,CACE,S,CACA,W,CACA,gB,Cb6nBA,oC,CaznBE,U,CACA,e,CAMN,sB,CAGE,kC,CAAA,0B,CAIF,qB,CACE,iB,CACA,c,CACA,e,CACA,kB,CAIF,yB,CACE,iB,CACA,O,CACA,M,CACA,gB,CACA,c,CACA,0B,CACA,gB,CAKJ,e,CACE,iC,CAGA,sB,CACE,a,CACA,a,CAIF,iC,CACE,0B,CADF,uC,CAAA,uC,CAMI,U,CAMN,oB,CACE,c,CACA,e,CACA,0B,CACA,gB,CAcA,+B,CACE,0B,CAKJ,iB,CACE,c,CACA,qB,CAcA,uB,CACE,oB,CACA,Y,CACA,a,CACA,e,CACA,iB,CALD,+B,CASG,e,CATH,2B,CAcG,W,CACA,4B,CAAA,oB,CACA,mB,CACA,yB,CAjBH,iC,CTqiBC,iC,CS9gBE,S,CCtLN,O,CACE,e,CACA,e,CAGA,c,CACE,a,CACA,e,CACA,e,CACA,sB,CACA,e,CALD,sB,CAWG,Y,CACA,e,CdwvBA,gC,CcpvBE,e,CAhBL,8B,CAsBG,Y,CAKJ,a,CACE,Q,CACA,S,CACA,e,CAIF,a,CACE,e,CADD,wB,CAKG,oB,CALH,2B,CAUG,e,CdsuBA,qC,CcluBE,mB,CACA,c,CAfL,sC,CAoBK,gB,CAML,mB,CAKG,U,CACA,W,CAKJ,a,CACE,a,CACA,iB,CACA,8B,CAAA,sB,CACA,sB,CACA,c,CACA,e,CAOE,0C,CACE,e,CAMJ,6B,CAAA,kD,CAAA,qC,CACE,Y,CArBH,iC,CbqHD,qC,CajFI,qB,CApCH,qB,CAAA,oB,CA0CG,a,CAIF,mC,CACE,a,CA/CH,mB,CAAA,mB,CAqDG,a,CAKJ,e,CC3HA,iB,CD4HE,Y,CClHF,mB,CACE,S,CACA,S,CA6KF,gB,CACE,iB,CASF,iB,CACE,iB,CACA,yB,CACA,sB,CACA,S,Cfy4BF,2B,Cer4BI,yB,CARH,4C,CAaG,sD,CAAA,8C,CAbH,mC,CAaG,mD,CAAA,8C,CAbH,uC,CAAA,wC,CAaG,kD,CAAA,8C,CAbH,8B,CAaG,sD,CAAA,8C,CAbH,4C,CAmBG,qB,CAnBH,mC,CAmBG,qB,CAnBH,uC,CAAA,wC,CAmBG,qB,CAnBH,8B,CAAA,kC,CAmBG,qB,CAnBH,4B,CAwBG,Y,CA4DJ,gB,CACE,iB,CACA,mE,CAAA,2D,CAGA,gB,CACA,c,CACA,S,CAPD,sB,CAWG,U,CAXH,8B,CAgBG,S,CACA,U,Cf01BF,wC,Cet1BI,W,CACA,Y,CAtBL,sC,CA4BK,e,CA5BL,4B,CAkDG,S,CACA,W,CACA,6B,CAAA,qB,CACA,+E,CAAA,+D,CAAA,+G,CAGA,S,Cfs0BF,sC,Cel0BI,a,CACA,U,Cfw0BJ,+F,Ce7zBI,0B,CAAA,kB,CACA,S,Cf+zBF,qG,Ce3zBI,U,CAOR,kB,CACE,iB,CACA,U,CACA,6B,CACA,e,CACA,S,CAwBF,sB,CACE,W,CACA,qB,CACA,2C,CACA,e,CACA,gC,CA8CJ,iB,CACE,qB,CACA,qB,CAGA,uB,CACE,e,CACA,gC,CACA,qB,CACA,gB,CACA,kB,CAeF,uB,CACE,Q,CACA,S,CACA,uC,CACA,e,CAIF,uB,CACE,sC,CAIF,uB,CACE,a,CACA,kC,CAAA,0B,CACA,S,CACA,e,CAJD,6B,CAAA,6B,CASG,oC,CATH,gE,CAAA,gE,CAaK,U,CAbL,4D,CCxdC,wC,CAAA,oC,CD2eE,mB,CAKJ,0B,CACE,iB,CACA,e,CACA,a,CAcC,4C,CAMG,iB,CACA,M,CACA,Y,CACA,+B,CAAA,uB,CACA,qB,CACA,e,Cf8uBF,sD,Ce1uBI,O,CACA,Y,CAhBL,6D,CA2BG,e,CACA,e,CACA,e,CACA,e,CAMN,wB,CACE,a,CACA,gB,CACA,e,CACA,e,CAMF,yB,CACE,mB,CACA,kB,CACA,a,CACA,qB,CACA,gB,CACA,e,CACA,sB,CACA,e,CACA,2B,CACA,oB,CAvIJ,oB,CA0JI,iB,CACA,e,CACA,yB,CE1lBJ,W,CACE,iB,CACA,a,CACA,gB,CACA,e,CAJF,+B,CAaI,c,CACA,U,CAwDF,sB,CC9EF,mC,CD+EI,Y,CAgCF,uB,CACE,e,CACA,c,CACA,e,CAGA,kC,CAAA,0B,CAND,0C,CAwBG,W,CACA,Y,CAzBH,gD,CA8BG,gC,CA9BH,sD,CAkCK,wB,ChBjHR,U,CACE,a,CACA,mB,CACA,+B,CAAA,uB,CACA,gB,CACA,e,CACA,kB,CDi3CA,oB,CC72CE,qB,CACA,kB,CAXJ,gB,CAgBI,U,CAhBJ,iB,CAsBI,a,CACA,U,CAvBJ,iB,CA4BE,gB,CAsCA,sB,CACE,oB,CAMA,qB,CA7CF,gB,CAEE,Y,CACA,a,CAHD,oB,CASG,Y,CACA,a,CACA,gB,CACA,iB,CACA,S,CDm2CA,8B,CC/1CE,kB,CACA,mB,CAlBL,uC,CAwBG,iB,CACA,iB,CD61CA,iD,CCz1CE,kB,CACA,mB,CACA,kB,CACA,oB,CAMN,sB,CAEE,c,CACA,iB,CACA,e,CACA,sB,CACA,e,CAKF,iB,CACE,Q,CACA,S,CACA,gB,CACA,e,CACA,oB,CACA,W,CACA,e,CDm1CA,sC,CC/0CE,qD,CAAA,6C,CAKJ,gB,CACE,U,CD60CA,0B,CCz0CE,W,CD20CF,qC,CCt0CE,oD,CAAA,4C,CAVH,wB,CAeG,c,CACA,e,CAhBH,oC,CAqBG,Y,CAMN,e,CACE,oB,CACA,qB,CACA,oB,CACA,mB,CACA,gC,CACA,gB,CACA,oB,CACA,c,CACA,e,CATF,uB,CAeI,oB,CACA,mB,CACA,c,CACA,gC,CACA,U,CACA,e,CACA,e,CACA,qB,CAKF,oB,CACE,kF,CAAA,0E,CADF,4B,CAQI,0B,CAAA,kB,CAnCN,qB,CM9JE,6D,CN8JF,6B,CAmDM,wB,CkB3MN,Q,CACE,U,CACA,kC,CAAA,0B,CACA,wB,CACA,U,CACA,a,CAaA,c,CACE,Q,CACA,iB,CACA,S,CACA,e,CACA,kB,CAIF,c,CACE,oB,CACA,a,CACA,mB,CACA,kB,CAKF,c,CACE,a,CACA,gB,CACA,8E,CAAA,8D,CAAA,6G,CAGA,e,CACA,U,CAGA,sB,CAAA,oB,CAEE,a,CACA,S,CAKA,0C,CACE,6B,CAAA,qB,CADF,0C,CACE,6B,CAAA,qB,CADF,0C,CACE,6B,CAAA,qB,CADF,0C,CACE,6B,CAAA,qB,CADF,0C,CACE,4B,CAAA,oB,CADF,0C,CACE,6B,CAAA,qB,CADF,0C,CACE,6B,CAAA,qB,CADF,0C,CACE,6B,CAAA,qB,CADF,2C,CACE,6B,CAAA,qB,CADF,2C,CACE,4B,CAAA,oB,CADF,2C,CACE,6B,CAAA,qB,CADF,2C,CACE,6B,CAAA,qB,CADF,2C,CACE,6B,CAAA,qB,CADF,2C,CACE,6B,CAAA,qB,CADF,2C,CACE,4B,CAAA,oB,CAvDR,8B,CA8DI,mB,CA9DJ,6C,CAmEM,iC,CAAA,yB,CACA,kE,CAAA,kD,CAAA,2E,CAIA,S,CHxEN,uB,CAAA,mB,CTFE,gG,CSQE,iB,CACA,e,CACA,+B,CACA,mB,CACA,gB,CACA,a,ChBmlDF,iC,CAAA,6B,CgB/kDI,gC,CACA,gB,CAhBN,mC,CAAA,+B,CAAA,+B,CAAA,2B,CA0BM,Y,CA1BN,yC,CAAA,+B,CAAA,qC,CAAA,2B,CA+BM,e,CACA,8B,CACA,8C,CACA,oC,CACA,e,ChBwkDF,mD,CAAA,yC,CAAA,+C,CAAA,qC,CgBpkDI,8B,CAvCR,oD,CAAA,0C,CAAA,gD,CAAA,sC,CA4CQ,e,CA5CR,iD,CAAA,uC,CAAA,6C,CAAA,mC,CAmDQ,iB,CACA,mB,CACA,a,CACA,c,CACA,e,ChB8jDF,2D,CAAA,iD,CAAA,uD,CAAA,6C,CgB1jDI,oB,CACA,mB,CA5DV,gC,CAAA,+B,CAAA,4B,CAAA,4B,CAAA,2B,CAAA,wB,CAqFQ,yB,ChBqiDJ,0C,CAAA,yC,CAAA,sC,CAAA,sC,CAAA,qC,CAAA,kC,CgBjiDM,0B,CAzFV,kD,CAAA,wC,CAAA,iD,CAAA,uC,CAAA,8C,CAAA,oC,CAAA,8C,CAAA,oC,CAAA,6C,CAAA,mC,CAAA,0C,CAAA,gC,CA8FU,sC,CACA,mC,CA/FV,0D,CAAA,gD,CAAA,yD,CAAA,+C,CAAA,sD,CAAA,4C,CAAA,sD,CAAA,4C,CAAA,qD,CAAA,2C,CAAA,kD,CAAA,wC,CAmGY,a,CACA,W,CApGZ,4B,CAAA,4B,CAAA,wB,CAAA,wB,CAqFQ,yB,ChB+iDJ,sC,CAAA,sC,CAAA,kC,CAAA,kC,CgB3iDM,0B,CAzFV,8C,CAAA,oC,CAAA,8C,CAAA,oC,CAAA,0C,CAAA,gC,CAAA,0C,CAAA,gC,CA8FU,sC,CACA,mC,CA/FV,sD,CAAA,4C,CAAA,sD,CAAA,4C,CAAA,kD,CAAA,wC,CAAA,kD,CAAA,wC,CAmGY,a,CACA,W,CApGZ,4B,CAAA,iC,CAAA,2B,CAAA,wB,CAAA,6B,CAAA,uB,CAqFQ,yB,ChByjDJ,sC,CAAA,2C,CAAA,qC,CAAA,kC,CAAA,uC,CAAA,iC,CgBrjDM,0B,CAzFV,8C,CAAA,oC,CAAA,mD,CAAA,yC,CAAA,6C,CAAA,mC,CAAA,0C,CAAA,gC,CAAA,+C,CAAA,qC,CAAA,yC,CAAA,+B,CA8FU,sC,CACA,mC,CA/FV,sD,CAAA,4C,CAAA,2D,CAAA,iD,CAAA,qD,CAAA,2C,CAAA,kD,CAAA,wC,CAAA,uD,CAAA,6C,CAAA,iD,CAAA,uC,CAmGY,a,CACA,W,CApGZ,6B,CAAA,4B,CAAA,+B,CAAA,yB,CAAA,wB,CAAA,2B,CAqFQ,yB,ChBmkDJ,uC,CAAA,sC,CAAA,yC,CAAA,mC,CAAA,kC,CAAA,qC,CgB/jDM,0B,CAzFV,+C,CAAA,qC,CAAA,8C,CAAA,oC,CAAA,iD,CAAA,uC,CAAA,2C,CAAA,iC,CAAA,0C,CAAA,gC,CAAA,6C,CAAA,mC,CA8FU,qC,CACA,kC,CA/FV,uD,CAAA,6C,CAAA,sD,CAAA,4C,CAAA,yD,CAAA,+C,CAAA,mD,CAAA,yC,CAAA,kD,CAAA,wC,CAAA,qD,CAAA,2C,CAmGY,a,CACA,W,CApGZ,2B,CAAA,4B,CAAA,gC,CAAA,uB,CAAA,wB,CAAA,4B,CAqFQ,yB,ChB6kDJ,qC,CAAA,sC,CAAA,0C,CAAA,iC,CAAA,kC,CAAA,sC,CgBzkDM,0B,CAzFV,6C,CAAA,mC,CAAA,8C,CAAA,oC,CAAA,kD,CAAA,wC,CAAA,yC,CAAA,+B,CAAA,0C,CAAA,gC,CAAA,8C,CAAA,oC,CA8FU,uC,CACA,oC,CA/FV,qD,CAAA,2C,CAAA,sD,CAAA,4C,CAAA,0D,CAAA,gD,CAAA,iD,CAAA,uC,CAAA,kD,CAAA,wC,CAAA,sD,CAAA,4C,CAmGY,a,CACA,W,CApGZ,iC,CAAA,+B,CAAA,+B,CAAA,6B,CAAA,2B,CAAA,2B,CAqFQ,yB,ChBulDJ,2C,CAAA,yC,CAAA,yC,CAAA,uC,CAAA,qC,CAAA,qC,CgBnlDM,0B,CAzFV,mD,CAAA,yC,CAAA,iD,CAAA,uC,CAAA,iD,CAAA,uC,CAAA,+C,CAAA,qC,CAAA,6C,CAAA,mC,CAAA,6C,CAAA,mC,CA8FU,sC,CACA,mC,CA/FV,2D,CAAA,iD,CAAA,yD,CAAA,+C,CAAA,yD,CAAA,+C,CAAA,uD,CAAA,6C,CAAA,qD,CAAA,2C,CAAA,qD,CAAA,2C,CAmGY,a,CACA,W,CApGZ,4B,CAAA,+B,CAAA,+B,CAAA,wB,CAAA,2B,CAAA,2B,CAqFQ,yB,ChBimDJ,sC,CAAA,yC,CAAA,yC,CAAA,kC,CAAA,qC,CAAA,qC,CgB7lDM,0B,CAzFV,8C,CAAA,oC,CAAA,iD,CAAA,uC,CAAA,iD,CAAA,uC,CAAA,0C,CAAA,gC,CAAA,6C,CAAA,mC,CAAA,6C,CAAA,mC,CA8FU,sC,CACA,mC,CA/FV,sD,CAAA,4C,CAAA,yD,CAAA,+C,CAAA,yD,CAAA,+C,CAAA,kD,CAAA,wC,CAAA,qD,CAAA,2C,CAAA,qD,CAAA,2C,CAmGY,a,CACA,W,CApGZ,8B,CAAA,6B,CAAA,0B,CAAA,yB,CAqFQ,yB,ChB2mDJ,wC,CAAA,uC,CAAA,oC,CAAA,mC,CgBvmDM,0B,CAzFV,gD,CAAA,sC,CAAA,+C,CAAA,qC,CAAA,4C,CAAA,kC,CAAA,2C,CAAA,iC,CA8FU,sC,CACA,mC,CA/FV,wD,CAAA,8C,CAAA,uD,CAAA,6C,CAAA,oD,CAAA,0C,CAAA,mD,CAAA,yC,CAmGY,a,CACA,W,CApGZ,2B,CAAA,uB,CAqFQ,yB,ChBqnDJ,qC,CAAA,iC,CgBjnDM,0B,CAzFV,6C,CAAA,mC,CAAA,yC,CAAA,+B,CA8FU,qC,CACA,kC,CA/FV,qD,CAAA,2C,CAAA,iD,CAAA,uC,CAmGY,a,CACA,W,CApGZ,+B,CAAA,2B,CAqFQ,yB,ChB+nDJ,yC,CAAA,qC,CgB3nDM,0B,CAzFV,iD,CAAA,uC,CAAA,6C,CAAA,mC,CA8FU,uC,CACA,oC,CA/FV,yD,CAAA,+C,CAAA,qD,CAAA,2C,CAmGY,a,CACA,W,CApGZ,4B,CAAA,6B,CAAA,wB,CAAA,yB,CAqFQ,yB,ChByoDJ,sC,CAAA,uC,CAAA,kC,CAAA,mC,CgBroDM,0B,CAzFV,8C,CAAA,oC,CAAA,+C,CAAA,qC,CAAA,0C,CAAA,gC,CAAA,2C,CAAA,iC,CA8FU,wC,CACA,qC,CA/FV,sD,CAAA,4C,CAAA,uD,CAAA,6C,CAAA,kD,CAAA,wC,CAAA,mD,CAAA,yC,CAmGY,a,CACA,W,CIhBZ,c,CAAA,e,CAAA,yB,CAAA,0B,CAGQ,a,CAHR,e,CAAA,0B,CAOQ,U,CAPR,e,CAAA,0B,CAQQ,U,CARR,e,CAAA,0B,CASQ,U,CATR,e,CAAA,0B,CAUQ,U,CAVR,e,CAAA,0B,CAWQ,U,CAXR,e,CAAA,0B,CAYQ,a,CAZR,e,CAAA,0B,CAaQ,U,CAbR,e,CAAA,0B,CAcQ,U,CAdR,e,CAAA,0B,CAiBQ,qB,CAjBR,e,CAAA,0B,CAkBQ,qB,CAlBR,c,CAAA,yB,CAqBQ,a,CArBR,e,CAAA,0B,CAsBQ,a,CAtBR,e,CAAA,e,CAAA,0B,CAAA,0B,CAuBQ,a,CAvBR,e,CAAA,0B,CAyBQ,a,CAzBR,e,CAAA,e,CAAA,0B,CAAA,0B,CA0BQ,a,CA1BR,c,CAAA,e,CAAA,yB,CAAA,0B,CA8BQ,U,CA9BR,e,CAAA,0B,CAgCQ,U,CAhCR,e,CAAA,e,CAAA,e,CAAA,0B,CAAA,0B,CAAA,0B,CAiCQ,U,CAjCR,e,CAAA,e,CAAA,0B,CAAA,0B,CAsCQ,a,CAtCR,e,CAAA,0B,CAwCQ,a,CAxCR,e,CAAA,0B,CAyCQ,a,CAzCR,e,CAAA,0B,CA0CQ,a,CA1CR,e,CAAA,e,CAAA,0B,CAAA,0B,CA2CQ,U,CA3CR,e,CAAA,e,CAAA,0B,CAAA,0B,CA6CQ,a,CA7CR,e,CAAA,0B,CA+CQ,a,CA/CR,e,CAAA,0B,CAgDQ,a,CAhDR,e,CAAA,0B,CAiDQ,a,CAjDR,e,CAAA,e,CAAA,e,CAAA,e,CAAA,0B,CAAA,0B,CAAA,0B,CAAA,0B,CAkDQ,a,CAlDR,e,CAAA,0B,CAsDQ,a,CAtDR,e,CAAA,c,CAAA,e,CAAA,e,CAAA,e,CAAA,e,CAAA,0B,CAAA,yB,CAAA,0B,CAAA,0B,CAAA,0B,CAAA,0B,CAyDQ,a,CAzDR,c,CAAA,e,CAAA,e,CAAA,yB,CAAA,0B,CAAA,0B,CAiEQ,a,CAjER,e,CAAA,0B,CAoEQ,U,CApER,e,CAAA,0B,CAqEQ,a,CArER,e,CAAA,e,CAAA,e,CAAA,e,CAAA,0B,CAAA,0B,CAAA,0B,CAAA,0B,CAsEQ,a,CAtER,e,CAAA,0B,CA0EQ,a,CA1ER,e,CAAA,e,CAAA,0B,CAAA,0B,CA2EQ,a,CA3ER,gB,CAAA,2B,CA+ES,a,CA/ET,c,CAAA,yB,CAgFO,iB,CAhFP,gB,CAAA,2B,CAoFI,a,CACA,e,CACA,e,CACA,oC,CAeJ,4B,CAAA,2B,CAII,a,CACA,e,CALJ,kC,ChB8zCE,+B,CgB9zCF,iC,ChB+zCE,8B,CgBpzCI,a,CACA,S,CAZN,+B,CAAA,8B,CAkBM,mB,CAAA,Y,ChBozCJ,uC,CgBt0CF,gC,ChBu0CE,sC,CgBv0CF,+B,CF1LA,oC,CEmNM,Q,CACA,e,CA1BN,uC,ChB40CE,sC,CgB7yCI,qB,CA/BN,qC,CAAA,oC,CAqCM,gC,CACA,qB,CACA,wB,CAAA,qB,CAAA,oB,CAAA,gB,CAvCN,yC,CAAA,wC,CA2CQ,4B,CACA,a,CACA,gB,CA7CR,kC,CAAA,iC,CAoDM,kB,CAAA,M,CACA,e,CArDN,4B,CAAA,2B,CA2DI,Y,CACA,kB,CCtPJ,0B,CAII,oB,CAJJ,iC,CAQM,kB,CACA,kB,CACA,mB,CAVN,+B,CAmBM,Y,CACA,Q,CACA,U,CArBN,sC,CA0BM,a,CACA,kB,CACA,kB,CACA,mB,CA7BN,qB,CAmCI,qB,CACA,gB,CApCJ,wB,CAwCM,a,CAxCN,wB,CA6CM,6B,CAAA,qB,CA7CN,+B,CAiDQ,qB,CAjDR,qC,CAsDQ,Y,CAtDR,gD,CjB2jDI,iD,CiB//CI,+B,CAAA,uB,CACA,S,CA7DR,sD,CjBgkDI,iD,CiB7/CI,a,CAnER,yB,CA0EI,oB,CACA,sB,CA3EJ,iC,CA+EM,c,CACA,a,CACA,wC,CACA,gB,CACA,U,CACA,sB,CApFN,6B,CA4FI,oB,CACA,oC,CAAA,4B,CACA,8E,CAAA,8D,CAAA,2F,CAIA,qB,CAEA,W,CACA,S,CACA,0B,CrB26DF,uC,CqBv6DI,qC,CAAA,6B,CA1GN,qC,CA+GM,oB,CACA,e,CACA,e,CrBs6DF,+C,CqBl6DI,4B,CAAA,oB,CCrHR,uB,CAII,oB,CACA,iB,CACA,qC,CAAA,6B,CACA,4E,CAAA,4D,CAAA,wF,CAIA,S,CtBqhEF,iC,CsBjhEI,kB,CACA,mB,CAIF,iC,CACE,qB,CArBN,0B,CAAA,0B,CAAA,0B,CA2CQ,a,CACA,e,CACA,e,CACA,U,CA9CR,iC,CAAA,iC,CAAA,iC,CAmDQ,kB,CACA,kB,ClB6kDR,oC,CkBjoDA,oC,ClBgoDA,qC,CkBrkDQ,gC,CAAA,wB,CACA,S,ClB4kDR,oC,CkBxoDA,0C,ClBuoDA,qC,CkBpkDQ,a,ClBolDR,oC,CkBvpDA,oC,ClBspDA,qC,CkB3lDQ,gC,CAAA,wB,CACA,S,ClBkmDR,oC,CkB9pDA,0C,ClB6pDA,qC,CkB1lDQ,a,ClB0mDR,oC,CkB7qDA,oC,ClB4qDA,qC,CkBjnDQ,gC,CAAA,wB,CACA,S,ClBwnDR,oC,CkBprDA,0C,ClBmrDA,qC,CkBhnDQ,a,CAnER,0B,CA2CQ,a,CACA,e,CACA,e,CACA,U,CA9CR,iC,CAmDQ,mB,CACA,mB,ClB+oDR,oC,CkBnsDA,oC,ClBksDA,qC,CkBvoDQ,gC,CAAA,wB,CACA,S,ClB8oDR,oC,CkB1sDA,0C,ClBysDA,qC,CkBtoDQ,a,CAnER,0B,CAAA,0B,CA2CQ,a,CACA,gB,CACA,gB,CACA,U,CA9CR,iC,CAAA,iC,CAmDQ,mB,CACA,mB,ClBqqDR,oC,CkBztDA,oC,ClBwtDA,qC,CkB7pDQ,gC,CAAA,wB,CACA,S,ClBoqDR,oC,CkBhuDA,0C,ClB+tDA,qC,CkB5pDQ,a,ClB4qDR,oC,CkB/uDA,oC,ClB8uDA,qC,CkBnrDQ,gC,CAAA,wB,CACA,S,ClB0rDR,oC,CkBtvDA,0C,ClBqvDA,qC,CkBlrDQ,a,CCjER,yB,CAII,c,CACA,e,CACA,a,CACA,gC,CAPJ,0B,CAsBI,S,CnB4uDJ,2B,CoBpwDA,sB,CpBmwDA,sB,CoB7vDI,c,CACA,iB,CACA,mB,CACA,kC,CAAA,0B,CATJ,sB,CAcI,qB,CACA,yC,CAfJ,sB,CAsBI,qB,CACA,yC,CAvBJ,2B,CA8BI,qC,CACA,a,CACA,yE,CAhCJ,mC,CAwCM,oB,CACA,qB,CACA,e,CACA,sB,CA3CN,yB,CAiDI,a,CACA,Y,CACA,mB,CACA,kB,CACA,e,CArDJ,sC,CAyDM,e,CAzDN,qC,CA8DM,kB,CC9DN,mB,CAMI,a,CACA,a,CAPJ,wC,CAWM,gC,CAAA,wB,CAXN,wBAAA,O,CAgBM,gB,CAhBN,wBAAA,e,CAoBQ,kB,CApBR,2B,CA0BM,iB,CACA,kB,CzB2sEF,qC,CyBvsEI,iB,CAKJ,oCAAA,S,CAII,Y,CAJJ,oCAAA,e,CASI,a,CA7CR,mB,CAuDI,a,CACA,S,CACA,c,CAzDJ,2C,CA6DM,Y,CA7DN,0B,CAoEM,iB,CACA,S,CACA,W,CACA,qB,CACA,c,CACA,e,CzBirEF,oC,CyB7qEI,a,CACA,U,CC9ER,qB,CtB+0DA,mB,CADA,oB,CsBx0DI,U,CACA,uB,CCPJ,2B,CAAA,0B,CAMI,iB,CACA,kB,CTPJ,gC,CAII,Y,CACA,6B,CAAA,Q,CACA,U,CACA,qB,CAPJ,6B,CAkBI,mB,CAAA,Y,CACA,iB,CACA,c,CACA,Y,CACA,mC,CACA,kB,CAvBJ,iD,CA+BQ,e,CA/BR,sE,CAmCU,a,CAnCV,mC,CA0CM,U,CACA,a,CACA,8B,CAAA,sB,CACA,gB,CACA,c,CAGA,8C,CACE,a,CUlDR,2B,CAII,iB,CACA,oB,CALJ,2C,CAUM,iB,CACA,S,CACA,S,C5B6yEF,qD,C4BzyEI,U,CACA,Y,CAjBR,2D,CA6BM,iB,CACA,S,CACA,Y,CACA,qB,CACA,gB,CACA,e,CACA,qB,C5BkyEJ,qE,C4B9xEM,a,CACA,Y,CAxCR,mF,CA8CM,e,CA9CN,8C,CAmDM,S,CACA,U,CvByEF,aA/FJ,oB,CAmGQ,qB,CACA,2B,CApGR,gB,CD83DM,e,CC3wDA,oB,CAnHN,gB,CAsIM,e,CACA,oC,CAAA,4B,CIrKN,a,CCiDE,iB,CGjDF,U,CFAA,U,CMQA,W,CERA,Q,CGAA,uB,CbiBI,coBuMA,A,6CxB1LJ,e,CA2MM,iB,CACA,e,CehDN,4B,CAAA,2B,CF1LA,kC,Cb8BA,oB,CAgNQ,qB,CQ1MH,gD,CAcK,Y,CEihBR,yB,CAcI,iB,CACA,oB,CK9fN,gB,CAAA,2B,CA2FM,e,CACA,e,CAUN,uB,CAAA,sB,CAoEM,iB,CApEN,4B,CAAA,2B,CF1LA,6B,CEwQM,iB,CACA,e,CA/EN,uC,CAAA,sC,CAmFQ,mB,CG3QR,2B,CAeM,mB,CACA,mB,CLlBN,6B,CA6DM,Q,CACA,uC,CA9DN,qD,CAwEQ,mBW0HJ,A,yC3BhMJ,I,CCyBI,kB0BuKA,A,yC3BhMJ,I,CC8BI,gB0BwLA,A,6C1BnLJ,wB,CAYM,e,CAGA,2C,CYieD,4C,CDpID,2C,CX5VI,Y,CW2CJ,6B,CAkTE,a,CACA,oB,CAFF,oC,CAMI,a,CACA,e,CAxTJ,qC,CAkUI,mB,CAAA,Y,CAKJ,4B,CACE,mB,CACA,mB,CAnSJ,e,CAwSI,a,CACA,e,CACA,sC,CACA,U,CC5ZJ,mB,CAMI,iB,CACA,S,CACA,U,CACA,Y,CACA,a,CACA,+B,CAAA,uB,CACA,4D,CAAA,4C,CAAA,sE,CAGA,kB,CACA,qB,CACA,e,CACA,mB,Cfo9BA,6B,Ceh9BE,W,CACA,Y,Cfk9BF,8D,Ce78BE,oD,CAAA,oC,CAAA,0D,CAGA,S,CAyDN,iB,CAII,c,CACA,K,CACA,S,CACA,U,CACA,W,CACA,gC,CAAA,wB,CACA,iH,CAAA,iG,CAAA,qJ,CAKA,S,CACA,S,Cf26BF,4D,Cev6BI,M,CACA,+B,CAAA,uB,CACA,gH,CAAA,gG,CAAA,qJ,CAKA,S,Cfq6BF,sE,Cej6BI,O,CACA,Y,CAKJ,gC,CACE,U,CACA,Y,CACA,iC,CAAA,yB,CAyDN,iB,CA6BI,U,CACA,a,CACA,e,CAqDH,8B,CAiCK,S,CACA,U,CAlCL,oD,CAsCO,e,Cfg1BA,8D,Ce50BE,e,CA1CT,4B,CAkEK,S,CACA,W,CAiBN,kB,CASI,U,CACA,UcxKF,A,6C7BiNA,2C,CGpSE,U,CACA,W,CACA,kD,CAAA,0C,CAIA,S,CQ/FH,oC,CAAA,8B,CAqCK,Y,CCzEN,e,CAUI,iB,CACA,oB,CEnBN,O,CA4II,qB,CAGA,gB,CVi8DE,wB,CU/7DA,mB,CAAA,Y,CACA,iB,CACA,K,CACA,O,CACA,M,CACA,2B,CAAA,4B,CAAA,qB,CACA,W,CACA,S,CVq8DA,8B,CUj8DD,+B,CAKG,e,CACA,e,CAKF,oC,CACE,iB,CACA,a,CACA,wB,CACA,gC,CACA,qB,CACA,e,CACA,kB,CACA,kB,CACA,c,CATF,4C,CAaI,a,CACA,iB,CACA,S,CACA,U,CACA,U,CACA,W,CACA,qB,CAnBJ,kD,CAwBI,qB,CACA,2C,CAzBJ,4E,CA6BM,Y,CA7BN,0C,CAmCI,iB,CACA,wB,CACA,U,CArCJ,0D,CAyCM,a,CACA,iB,CACA,S,CACA,U,CACA,Y,CACA,a,CACA,gB,CA/CN,kD,CAoDM,Y,CAMN,oE,CAAA,sD,CAII,W,CACA,Y,CA1EL,8B,CAsFG,kB,CAAA,M,CACA,e,CAvFH,8B,CA4FG,S,CACA,uC,CdioBA,wC,Cc7nBE,S,CAjGL,oD,CAsGK,oB,Cd4nBA,8D,CcxnBE,mB,CACA,mB,CA3GP,2D,CAgHO,e,CdunBA,qE,CcnnBE,e,CApHT,8B,CA4HG,iB,CACA,Y,CACA,mB,CA9HH,qC,CAkIK,iB,CACA,O,CACA,W,CACA,iB,CACA,a,CACA,gB,Cd6mBA,+C,CczmBE,a,CACA,U,CA5IP,iD,CAsJK,e,CAtJL,2C,CA2JK,e,CACA,4B,CA5JL,yD,CAgKO,mB,Cd8lBF,mE,Cc1lBI,oB,CACA,oB,CArKT,iE,CA2KO,iB,CdwlBF,2E,CcplBI,kB,CACA,oB,CAhLT,yE,CAsLO,mB,CdklBF,mF,Cc9kBI,oB,CACA,oB,CA3LT,iF,CAiMO,mB,Cd4kBF,2F,CcxkBI,oB,CACA,oB,CAQV,uB,CACE,mB,CAAA,Y,CACA,kC,CAAA,0B,CACA,oF,CAAA,oE,CAAA,mH,CAGA,S,CdikBE,iC,Cc7jBA,mC,CAAA,2B,CAIF,2C,CACE,Y,CAKJ,+B,CACE,+B,CAAA,uB,CACA,qF,CAAA,qE,CAAA,oH,CAGA,S,CAGA,mD,CACE,mB,CAAA,Y,CG1WJ,oB,CACE,c,CACA,K,CACA,a,CACA,a,CACA,W,CACA,+B,CAAA,uB,CACA,iF,CAAA,iE,CAAA,gH,CAGA,qB,CACA,S,CjBoyCA,8B,CiBhyCE,c,CACA,Y,CE7CR,Q,CFiDM,wC,CACE,Y,CjB+xCF,kE,CO3zCJ,sG,CUmCM,qC,CAAA,6B,CjB2xCA,4E,CiBvxCE,sC,CAAA,8B,CAIF,sF,CACE,a,CArCL,4C,CA2CG,e,CAoDA,iB,CACA,K,CACA,O,CACA,Q,CACA,M,CACA,UYiEJ,A,wCnBlMJ,W,CAII,oB,CV8fA,qB,CU1fE,oB,CACA,mB,CCmCH,sC,CA2BK,Y,CAkGN,sB,CAKI,a,CACA,a,CACA,iB,CACA,mB,CX6cE,gC,CWzcA,qB,CACA,kB,CI9KR,U,CASI,a,CAIF,mB,CAwDI,c,CACA,K,CACA,M,CACA,O,CACA,Q,CACA,4D,CAAA,oD,CAIA,gC,CACA,c,Cf67BA,6B,Cez7BE,O,CACA,Y,Cf27BF,8D,Cet7BE,U,CACA,W,CACA,kD,CAAA,0C,CAIA,S,CAMN,iB,CA8CI,iB,CACA,a,CACA,kB,CACA,e,CACA,W,CACA,sD,CAAA,8C,Cf65BF,2B,Cez5BI,oB,CACA,iB,CACA,U,CA8BN,gB,CAUA,iB,CALI,mB,CAKJ,iB,CAoCI,U,CACA,a,CACA,mB,CACA,qG,CAAA,6F,CAIA,gC,CACA,a,CACA,e,Cfu3BA,2B,Cen3BE,oB,CAjDL,kC,CAsDK,a,CAtDL,4C,CA2DK,0B,CA3DL,mC,CA2DK,0B,CA3DL,uC,CAAA,wC,CA2DK,0B,CA3DL,8B,CA2DK,0B,CA3DL,uB,CAgEK,sC,Cf42BF,4D,Cev2BE,6B,CACA,qB,CACA,qB,CACA,kB,Cfy2BA,uF,Cep2BE,qB,Cfo2BF,8E,Cep2BE,qB,Cfo2BF,kF,CAAA,mF,Cep2BE,qB,Cfo2BF,6E,CAAA,yE,Cep2BE,qB,CA2FR,kB,CAeI,U,CACA,8B,CAAA,sB,CACA,S,CfqzBA,6D,CO5qCJ,kG,CQ6XM,S,CAMN,sB,CAwBI,Y,CfuyBA,iE,CenyBE,e,CA5BL,yC,CAiCK,W,CACA,Y,CAlCL,+C,CAuCK,gC,CAvCL,qD,CA2CO,wB,CAsER,0B,CAzDA,uB,CASI,mB,CfoxBE,iC,CehxBA,oB,CACA,oB,Cf2yBA,oC,CervBA,oB,CACA,kB,CElcN,sB,CAKI,a,CACA,gC,CjB4wCE,gC,CiBxwCA,iC,CACA,mB,CAXL,8C,CAgBK,kCYoGJ,A,2CnBlMJ,W,CAeI,mB,CV0fA,qB,CUtfE,oB,CAKJ,kB,CAMI,mB,CACA,kB,CCaH,oC,CGsZG,8B,CHxWE,Y,CG1FR,O,CA0bI,4D,CAAA,oD,CAhFA,uB,CAoFE,Y,CACA,e,CAjEF,+B,CA2EE,e,CAIF,4C,CACE,Y,CArXA,0C,CA8XE,oB,CACA,oC,CAAA,4B,CACA,mC,CAAA,2B,CACA,sB,CAIA,8C,CACE,wC,CAAA,wB,CAAA,8C,CAKJ,kE,CACE,iC,CAAA,yB,CCxXN,iB,CA+DI,mB,Cfy5BF,2B,Cer5BI,kB,Cf65BN,4D,Ce/4BM,a,CAqNN,sB,CAmBI,a,CExVJ,sB,CAsBI,mB,CjBowCE,gC,CiBhwCA,oB,CACA,mB,CEzGR,sE,CAkFM,W,CACA,iB,CAID,yD,CAOK,a,CACA,S,CARL,+D,CAAA,4F,CAaK,Y,CAIF,yD,CACE,a,CAlBL,sE,CAuBK,W,CACA,iB,CAxBL,8E,CA4BO,Y,CACA,e,CACA,a,CACA,kB,CA/BP,8E,CAyCO,a,CAzCP,oD,CAgDG,kB,CACA,gB,CAjDH,gF,CAqDK,c,CArDL,2E,CA0DK,cUiDN,A,wChB9KF,oB,CAOI,S,CA4FN,oB,CAQI,a,CACA,U,Cb8lBE,8B,Ca1lBA,W,CAWN,iB,CAMI,e,CACA,W,CbolBE,2B,CahlBA,YgB8DF,A,6C7B0yBA,8D,Cer8BI,2B,CAAA,qBc4GF,A,kE7B41BF,8D,Cen8BI,2B,CAAA,qBcuGF,A,kE7B+1BF,8D,Cej8BI,2B,CAAA,qBckGF,A,kE7Bg6BJ,4D,Ceh5BM,a,CA0NN,sB,CAcI,a,CAkKJ,yB,CAoBI,iB,CACA,sBA7LF,A,iEARF,sB,CASI,+B,CAAA,yB","file":"material/assets/stylesheets/app.css","sourcesContent":[null,null,null,null,"@charset \"UTF-8\";\nhtml {\n box-sizing: border-box; }\n\n*,\n*::before,\n*::after {\n box-sizing: inherit; }\n\nhtml {\n -webkit-text-size-adjust: none;\n -moz-text-size-adjust: none;\n -ms-text-size-adjust: none;\n text-size-adjust: none; }\n\nbody {\n margin: 0; }\n\nhr {\n overflow: visible;\n box-sizing: content-box; }\n\na {\n -webkit-text-decoration-skip: objects; }\n\na,\nbutton,\nlabel,\ninput {\n -webkit-tap-highlight-color: transparent; }\n\na {\n color: inherit;\n text-decoration: none; }\n\nsmall {\n font-size: 80%; }\n\nsub,\nsup {\n position: relative;\n font-size: 80%;\n line-height: 0;\n vertical-align: baseline; }\n\nsub {\n bottom: -0.25em; }\n\nsup {\n top: -0.5em; }\n\nimg {\n border-style: none; }\n\ntable {\n border-collapse: separate;\n border-spacing: 0; }\n\ntd,\nth {\n font-weight: normal;\n vertical-align: top; }\n\nbutton {\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n font-size: inherit; }\n\ninput {\n border: 0;\n outline: 0; }\n\n.md-icon, .md-nav__title::before, .md-nav__button, .md-nav__link::after, .md-search-result__article--document::before, .md-source-file::before, .md-typeset .admonition > .admonition-title::before, .md-typeset details > .admonition-title::before, .md-typeset .admonition > summary::before, .md-typeset details > summary::before, .md-typeset .footnote-backref, .md-typeset .critic.comment::before, .md-typeset summary::after, .md-typeset .task-list-control .task-list-indicator::before {\n font-family: \"Material Icons\";\n font-style: normal;\n font-variant: normal;\n font-weight: normal;\n line-height: 1;\n text-transform: none;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr; }\n .md-content__icon, .md-header-nav__button, .md-footer-nav__button, .md-nav__title::before, .md-nav__button, .md-search-result__article--document::before {\n display: inline-block;\n width: 2rem;\n margin: 0.2rem;\n padding: 0.4rem;\n font-size: 1.2rem;\n cursor: pointer; }\n\n.md-icon--arrow-back::before {\n content: \"\"; }\n\n.md-icon--arrow-forward::before {\n content: \"\"; }\n\n.md-icon--menu::before {\n content: \"\"; }\n\n.md-icon--search::before {\n content: \"\"; }\n\n[dir=\"rtl\"] .md-icon--arrow-back::before {\n content: \"\"; }\n\n[dir=\"rtl\"] .md-icon--arrow-forward::before {\n content: \"\"; }\n\nbody {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\nbody,\ninput {\n color: rgba(0, 0, 0, 0.87);\n font-feature-settings: \"kern\", \"liga\";\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; }\n\npre,\ncode,\nkbd {\n color: rgba(0, 0, 0, 0.87);\n font-feature-settings: \"kern\";\n font-family: \"Courier New\", Courier, monospace; }\n\n.md-typeset {\n font-size: 0.8rem;\n line-height: 1.6;\n -webkit-print-color-adjust: exact; }\n .md-typeset p,\n .md-typeset ul,\n .md-typeset ol,\n .md-typeset blockquote {\n margin: 1em 0; }\n .md-typeset h1 {\n margin: 0 0 2rem;\n color: rgba(0, 0, 0, 0.54);\n font-size: 1.5625rem;\n font-weight: 300;\n letter-spacing: -0.01em;\n line-height: 1.3; }\n .md-typeset h2 {\n margin: 2rem 0 0.8rem;\n font-size: 1.25rem;\n font-weight: 300;\n letter-spacing: -0.01em;\n line-height: 1.4; }\n .md-typeset h3 {\n margin: 1.6rem 0 0.8rem;\n font-size: 1rem;\n font-weight: 400;\n letter-spacing: -0.01em;\n line-height: 1.5; }\n .md-typeset h2 + h3 {\n margin-top: 0.8rem; }\n .md-typeset h4 {\n margin: 0.8rem 0;\n font-size: 0.8rem;\n font-weight: 700;\n letter-spacing: -0.01em; }\n .md-typeset h5,\n .md-typeset h6 {\n margin: 0.8rem 0;\n color: rgba(0, 0, 0, 0.54);\n font-size: 0.64rem;\n font-weight: 700;\n letter-spacing: -0.01em; }\n .md-typeset h5 {\n text-transform: uppercase; }\n .md-typeset hr {\n margin: 1.5em 0;\n border-bottom: 0.05rem dotted rgba(0, 0, 0, 0.26); }\n .md-typeset a {\n color: #3f51b5;\n word-break: break-word; }\n .md-typeset a, .md-typeset a::before {\n -webkit-transition: color 0.125s;\n transition: color 0.125s; }\n .md-typeset a:hover, .md-typeset a:active {\n color: #536dfe; }\n .md-typeset code,\n .md-typeset pre {\n background-color: rgba(236, 236, 236, 0.5);\n color: #37474F;\n font-size: 85%;\n direction: ltr; }\n .md-typeset code {\n margin: 0 0.29412em;\n padding: 0.07353em 0;\n border-radius: 0.1rem;\n box-shadow: 0.29412em 0 0 rgba(236, 236, 236, 0.5), -0.29412em 0 0 rgba(236, 236, 236, 0.5);\n word-break: break-word;\n -webkit-box-decoration-break: clone;\n box-decoration-break: clone; }\n .md-typeset h1 code,\n .md-typeset h2 code,\n .md-typeset h3 code,\n .md-typeset h4 code,\n .md-typeset h5 code,\n .md-typeset h6 code {\n margin: 0;\n background-color: transparent;\n box-shadow: none; }\n .md-typeset a > code {\n margin: inherit;\n padding: inherit;\n border-radius: initial;\n background-color: inherit;\n color: inherit;\n box-shadow: none; }\n .md-typeset pre {\n position: relative;\n margin: 1em 0;\n border-radius: 0.1rem;\n line-height: 1.4;\n -webkit-overflow-scrolling: touch; }\n .md-typeset pre > code {\n display: block;\n margin: 0;\n padding: 0.525rem 0.6rem;\n background-color: transparent;\n font-size: inherit;\n box-shadow: none;\n -webkit-box-decoration-break: slice;\n box-decoration-break: slice;\n overflow: auto; }\n .md-typeset pre > code::-webkit-scrollbar {\n width: 0.2rem;\n height: 0.2rem; }\n .md-typeset pre > code::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.26); }\n .md-typeset pre > code::-webkit-scrollbar-thumb:hover {\n background-color: #536dfe; }\n .md-typeset kbd {\n padding: 0 0.29412em;\n border: 0.05rem solid #c9c9c9;\n border-radius: 0.15rem;\n border-bottom-color: #bcbcbc;\n background-color: #FCFCFC;\n color: #555555;\n font-size: 85%;\n box-shadow: 0 0.05rem 0 #b0b0b0;\n word-break: break-word; }\n .md-typeset mark {\n margin: 0 0.25em;\n padding: 0.0625em 0;\n border-radius: 0.1rem;\n background-color: rgba(255, 235, 59, 0.5);\n box-shadow: 0.25em 0 0 rgba(255, 235, 59, 0.5), -0.25em 0 0 rgba(255, 235, 59, 0.5);\n word-break: break-word;\n -webkit-box-decoration-break: clone;\n box-decoration-break: clone; }\n .md-typeset abbr {\n border-bottom: 0.05rem dotted rgba(0, 0, 0, 0.54);\n text-decoration: none;\n cursor: help; }\n .md-typeset small {\n opacity: 0.75; }\n .md-typeset sup,\n .md-typeset sub {\n margin-left: 0.07812em; }\n [dir=\"rtl\"] .md-typeset sup, [dir=\"rtl\"]\n .md-typeset sub {\n margin-right: 0.07812em;\n margin-left: initial; }\n .md-typeset blockquote {\n padding-left: 0.6rem;\n border-left: 0.2rem solid rgba(0, 0, 0, 0.26);\n color: rgba(0, 0, 0, 0.54); }\n [dir=\"rtl\"] .md-typeset blockquote {\n padding-right: 0.6rem;\n padding-left: initial;\n border-right: 0.2rem solid rgba(0, 0, 0, 0.26);\n border-left: initial; }\n .md-typeset ul {\n list-style-type: disc; }\n .md-typeset ul,\n .md-typeset ol {\n margin-left: 0.625em;\n padding: 0; }\n [dir=\"rtl\"] .md-typeset ul, [dir=\"rtl\"]\n .md-typeset ol {\n margin-right: 0.625em;\n margin-left: initial; }\n .md-typeset ul ol,\n .md-typeset ol ol {\n list-style-type: lower-alpha; }\n .md-typeset ul ol ol,\n .md-typeset ol ol ol {\n list-style-type: lower-roman; }\n .md-typeset ul li,\n .md-typeset ol li {\n margin-bottom: 0.5em;\n margin-left: 1.25em; }\n [dir=\"rtl\"] .md-typeset ul li, [dir=\"rtl\"]\n .md-typeset ol li {\n margin-right: 1.25em;\n margin-left: initial; }\n .md-typeset ul li p,\n .md-typeset ul li blockquote,\n .md-typeset ol li p,\n .md-typeset ol li blockquote {\n margin: 0.5em 0; }\n .md-typeset ul li:last-child,\n .md-typeset ol li:last-child {\n margin-bottom: 0; }\n .md-typeset ul li ul,\n .md-typeset ul li ol,\n .md-typeset ol li ul,\n .md-typeset ol li ol {\n margin: 0.5em 0 0.5em 0.625em; }\n [dir=\"rtl\"] .md-typeset ul li ul, [dir=\"rtl\"]\n .md-typeset ul li ol, [dir=\"rtl\"]\n .md-typeset ol li ul, [dir=\"rtl\"]\n .md-typeset ol li ol {\n margin-right: 0.625em;\n margin-left: initial; }\n .md-typeset dd {\n margin: 1em 0 1em 1.875em; }\n [dir=\"rtl\"] .md-typeset dd {\n margin-right: 1.875em;\n margin-left: initial; }\n .md-typeset iframe,\n .md-typeset img,\n .md-typeset svg {\n max-width: 100%; }\n .md-typeset table:not([class]) {\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);\n display: inline-block;\n max-width: 100%;\n border-radius: 0.1rem;\n font-size: 0.64rem;\n overflow: auto;\n -webkit-overflow-scrolling: touch; }\n .md-typeset table:not([class]) + * {\n margin-top: 1.5em; }\n .md-typeset table:not([class]) th:not([align]),\n .md-typeset table:not([class]) td:not([align]) {\n text-align: left; }\n [dir=\"rtl\"] .md-typeset table:not([class]) th:not([align]), [dir=\"rtl\"]\n .md-typeset table:not([class]) td:not([align]) {\n text-align: right; }\n .md-typeset table:not([class]) th {\n min-width: 5rem;\n padding: 0.6rem 0.8rem;\n background-color: rgba(0, 0, 0, 0.54);\n color: white;\n vertical-align: top; }\n .md-typeset table:not([class]) td {\n padding: 0.6rem 0.8rem;\n border-top: 0.05rem solid rgba(0, 0, 0, 0.07);\n vertical-align: top; }\n .md-typeset table:not([class]) tr {\n -webkit-transition: background-color 0.125s;\n transition: background-color 0.125s; }\n .md-typeset table:not([class]) tr:hover {\n background-color: rgba(0, 0, 0, 0.035);\n box-shadow: 0 0.05rem 0 white inset; }\n .md-typeset table:not([class]) tr:first-child td {\n border-top: 0; }\n .md-typeset table:not([class]) a {\n word-break: normal; }\n .md-typeset__scrollwrap {\n margin: 1em -0.8rem;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .md-typeset .md-typeset__table {\n display: inline-block;\n margin-bottom: 0.5em;\n padding: 0 0.8rem; }\n .md-typeset .md-typeset__table table {\n display: table;\n width: 100%;\n margin: 0;\n overflow: hidden; }\n\nhtml {\n min-height: 100%;\n background-color: white;\n font-size: 125%;\n overflow-x: hidden; }\n\nbody {\n position: relative;\n min-height: 100%;\n font-size: 0.5rem; }\n\nhr {\n display: block;\n height: 0.05rem;\n padding: 0;\n border: 0; }\n\n.md-grid {\n max-width: 61rem;\n margin-right: auto;\n margin-left: auto; }\n\n.md-container,\n.md-main {\n overflow: auto; }\n\n.md-container {\n display: table;\n width: 100%;\n height: 100%;\n table-layout: fixed; }\n\n.md-main {\n display: table-row;\n height: 100%; }\n .md-main__inner {\n height: 100%;\n padding-top: 1.5rem;\n padding-bottom: 0.05rem; }\n\n.md-toggle {\n display: none; }\n\n.md-overlay {\n position: fixed;\n top: 0;\n width: 0;\n height: 0;\n -webkit-transition: width 0s 0.25s, height 0s 0.25s, opacity 0.25s;\n transition: width 0s 0.25s, height 0s 0.25s, opacity 0.25s;\n background-color: rgba(0, 0, 0, 0.54);\n opacity: 0;\n z-index: 3; }\n\n.md-flex {\n display: table; }\n .md-flex__cell {\n display: table-cell;\n position: relative;\n vertical-align: top; }\n .md-flex__cell--shrink {\n width: 0%; }\n .md-flex__cell--stretch {\n display: table;\n width: 100%;\n table-layout: fixed; }\n .md-flex__ellipsis {\n display: table-cell;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden; }\n\n.md-skip {\n position: fixed;\n width: 0.05rem;\n height: 0.05rem;\n margin: 0.5rem;\n padding: 0.3rem 0.5rem;\n -webkit-transform: translateY(0.4rem);\n transform: translateY(0.4rem);\n border-radius: 0.1rem;\n background-color: rgba(0, 0, 0, 0.87);\n color: white;\n font-size: 0.64rem;\n opacity: 0;\n overflow: hidden; }\n .md-skip:focus {\n width: auto;\n height: auto;\n clip: auto;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n -webkit-transition: opacity 0.175s 0.075s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n transition: opacity 0.175s 0.075s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.175s 0.075s;\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.175s 0.075s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 1;\n z-index: 10; }\n\n@page {\n margin: 25mm; }\n\n.md-announcement {\n background-color: rgba(0, 0, 0, 0.87); }\n .md-announcement__inner {\n min-height: 2.4rem;\n padding: 0 0.8rem;\n color: white;\n font-size: 0.7rem;\n line-height: 2.4rem; }\n\n.md-clipboard {\n position: absolute;\n top: 0.3rem;\n right: 0.3rem;\n width: 1.4rem;\n height: 1.4rem;\n -webkit-transition: color 0.25s;\n transition: color 0.25s;\n border-radius: 0.1rem;\n color: rgba(0, 0, 0, 0.07);\n font-size: 0.8rem;\n cursor: pointer;\n z-index: 1;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden; }\n pre:hover .md-clipboard,\n .codehilite:hover .md-clipboard,\n .md-typeset .highlight:hover .md-clipboard {\n color: rgba(0, 0, 0, 0.54); }\n pre .md-clipboard:focus,\n pre .md-clipboard:hover,\n .codehilite .md-clipboard:focus,\n .md-typeset .highlight .md-clipboard:focus,\n .codehilite .md-clipboard:hover,\n .md-typeset .highlight .md-clipboard:hover {\n color: #536dfe; }\n\n.md-content__inner {\n margin: 0 0.8rem 1.2rem;\n padding-top: 0.6rem; }\n .md-content__inner::before {\n display: block;\n height: 0.4rem;\n content: \"\"; }\n .md-content__inner > :last-child {\n margin-bottom: 0; }\n\n.md-content__icon {\n position: relative;\n margin: 0.4rem 0;\n padding: 0;\n float: right; }\n .md-typeset .md-content__icon {\n color: rgba(0, 0, 0, 0.26); }\n\n.md-header {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n right: 0;\n left: 0;\n height: 2.4rem;\n -webkit-transition: background-color 0.25s, color 0.25s;\n transition: background-color 0.25s, color 0.25s;\n background-color: #3f51b5;\n color: white;\n box-shadow: none;\n z-index: 2;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden; }\n .no-js .md-header {\n -webkit-transition: none;\n transition: none;\n box-shadow: none; }\n .md-header[data-md-state=\"shadow\"] {\n -webkit-transition: background-color 0.25s, color 0.25s, box-shadow 0.25s;\n transition: background-color 0.25s, color 0.25s, box-shadow 0.25s;\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2); }\n\n.md-header-nav {\n padding: 0 0.2rem; }\n .md-header-nav__button {\n position: relative;\n -webkit-transition: opacity 0.25s;\n transition: opacity 0.25s;\n z-index: 1; }\n .md-header-nav__button:hover {\n opacity: 0.7; }\n .md-header-nav__button.md-logo * {\n display: block; }\n .no-js .md-header-nav__button.md-icon--search {\n display: none; }\n .md-header-nav__topic {\n display: block;\n position: absolute;\n width: calc(100% - 1rem);\n -webkit-transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s;\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden; }\n .md-header-nav__topic + .md-header-nav__topic {\n -webkit-transform: translateX(1.25rem);\n transform: translateX(1.25rem);\n -webkit-transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1);\n transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1);\n transition: transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1), opacity 0.15s;\n transition: transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1), opacity 0.15s, -webkit-transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1);\n opacity: 0;\n z-index: -1;\n pointer-events: none; }\n [dir=\"rtl\"] .md-header-nav__topic + .md-header-nav__topic {\n -webkit-transform: translateX(-1.25rem);\n transform: translateX(-1.25rem); }\n .no-js .md-header-nav__topic {\n position: initial; }\n .no-js .md-header-nav__topic + .md-header-nav__topic {\n display: none; }\n .md-header-nav__title {\n padding: 0 1rem;\n font-size: 0.9rem;\n line-height: 2.4rem; }\n .md-header-nav__title[data-md-state=\"active\"] .md-header-nav__topic {\n -webkit-transform: translateX(-1.25rem);\n transform: translateX(-1.25rem);\n -webkit-transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1);\n transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1);\n transition: transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1), opacity 0.15s;\n transition: transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1), opacity 0.15s, -webkit-transform 0.4s cubic-bezier(1, 0.7, 0.1, 0.1);\n opacity: 0;\n z-index: -1;\n pointer-events: none; }\n [dir=\"rtl\"] .md-header-nav__title[data-md-state=\"active\"] .md-header-nav__topic {\n -webkit-transform: translateX(1.25rem);\n transform: translateX(1.25rem); }\n .md-header-nav__title[data-md-state=\"active\"] .md-header-nav__topic + .md-header-nav__topic {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n -webkit-transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: opacity 0.15s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s;\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n opacity: 1;\n z-index: 0;\n pointer-events: initial; }\n .md-header-nav__source {\n display: none; }\n\n.md-hero {\n -webkit-transition: background 0.25s;\n transition: background 0.25s;\n background-color: #3f51b5;\n color: white;\n font-size: 1rem;\n overflow: hidden; }\n .md-hero__inner {\n margin-top: 1rem;\n padding: 0.8rem 0.8rem 0.4rem;\n -webkit-transition: opacity 0.25s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: opacity 0.25s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s;\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n -webkit-transition-delay: 0.1s;\n transition-delay: 0.1s; }\n [data-md-state=\"hidden\"] .md-hero__inner {\n pointer-events: none;\n -webkit-transform: translateY(0.625rem);\n transform: translateY(0.625rem);\n -webkit-transition: opacity 0.1s 0s, -webkit-transform 0s 0.4s;\n transition: opacity 0.1s 0s, -webkit-transform 0s 0.4s;\n transition: transform 0s 0.4s, opacity 0.1s 0s;\n transition: transform 0s 0.4s, opacity 0.1s 0s, -webkit-transform 0s 0.4s;\n opacity: 0; }\n .md-hero--expand .md-hero__inner {\n margin-bottom: 1.2rem; }\n\n.md-footer-nav {\n background-color: rgba(0, 0, 0, 0.87);\n color: white; }\n .md-footer-nav__inner {\n padding: 0.2rem;\n overflow: auto; }\n .md-footer-nav__link {\n padding-top: 1.4rem;\n padding-bottom: 0.4rem;\n -webkit-transition: opacity 0.25s;\n transition: opacity 0.25s; }\n .md-footer-nav__link:hover {\n opacity: 0.7; }\n .md-footer-nav__link--prev {\n width: 25%;\n float: left; }\n [dir=\"rtl\"] .md-footer-nav__link--prev {\n float: right; }\n .md-footer-nav__link--next {\n width: 75%;\n float: right;\n text-align: right; }\n [dir=\"rtl\"] .md-footer-nav__link--next {\n float: left;\n text-align: left; }\n .md-footer-nav__button {\n -webkit-transition: background 0.25s;\n transition: background 0.25s; }\n .md-footer-nav__title {\n position: relative;\n padding: 0 1rem;\n font-size: 0.9rem;\n line-height: 2.4rem; }\n .md-footer-nav__direction {\n position: absolute;\n right: 0;\n left: 0;\n margin-top: -1rem;\n padding: 0 1rem;\n color: rgba(255, 255, 255, 0.7);\n font-size: 0.75rem; }\n\n.md-footer-meta {\n background-color: rgba(0, 0, 0, 0.895); }\n .md-footer-meta__inner {\n padding: 0.2rem;\n overflow: auto; }\n html .md-footer-meta.md-typeset a {\n color: rgba(255, 255, 255, 0.7); }\n html .md-footer-meta.md-typeset a:focus, html .md-footer-meta.md-typeset a:hover {\n color: white; }\n\n.md-footer-copyright {\n margin: 0 0.6rem;\n padding: 0.4rem 0;\n color: rgba(255, 255, 255, 0.3);\n font-size: 0.64rem; }\n .md-footer-copyright__highlight {\n color: rgba(255, 255, 255, 0.7); }\n\n.md-footer-social {\n margin: 0 0.4rem;\n padding: 0.2rem 0 0.6rem; }\n .md-footer-social__link {\n display: inline-block;\n width: 1.6rem;\n height: 1.6rem;\n font-size: 0.8rem;\n text-align: center; }\n .md-footer-social__link::before {\n line-height: 1.9; }\n .md-footer-social__link svg {\n width: 0.8rem;\n -webkit-transition: fill 0.25s;\n transition: fill 0.25s;\n vertical-align: -25%;\n fill: rgba(255, 255, 255, 0.7); }\n .md-footer-social__link:focus svg,\n .md-footer-social__link:hover svg {\n fill: white; }\n\n.md-nav {\n font-size: 0.7rem;\n line-height: 1.3; }\n .md-nav__title {\n display: block;\n padding: 0 0.6rem;\n font-weight: 700;\n text-overflow: ellipsis;\n overflow: hidden; }\n .md-nav__title::before {\n display: none;\n content: \"\\E5C4\"; }\n [dir=\"rtl\"] .md-nav__title::before {\n content: \"\\E5C8\"; }\n .md-nav__title .md-nav__button {\n display: none; }\n .md-nav__list {\n margin: 0;\n padding: 0;\n list-style: none; }\n .md-nav__item {\n padding: 0 0.6rem; }\n .md-nav__item:last-child {\n padding-bottom: 0.6rem; }\n .md-nav__item .md-nav__item {\n padding-right: 0; }\n [dir=\"rtl\"] .md-nav__item .md-nav__item {\n padding-right: 0.6rem;\n padding-left: 0; }\n .md-nav__item .md-nav__item:last-child {\n padding-bottom: 0; }\n .md-nav__button img {\n width: 100%;\n height: auto; }\n .md-nav__link {\n display: block;\n margin-top: 0.625em;\n -webkit-transition: color 0.125s;\n transition: color 0.125s;\n text-overflow: ellipsis;\n cursor: pointer;\n overflow: hidden; }\n .md-nav__item--nested > .md-nav__link::after {\n content: \"\\E313\"; }\n html .md-nav__link[for=\"__toc\"] {\n display: none; }\n html .md-nav__link[for=\"__toc\"] ~ .md-nav {\n display: none; }\n html .md-nav__link[for=\"__toc\"] + .md-nav__link::after {\n display: none; }\n .md-nav__link[data-md-state=\"blur\"] {\n color: rgba(0, 0, 0, 0.54); }\n .md-nav__link:active, .md-nav__link--active {\n color: #3f51b5; }\n .md-nav__item--nested > .md-nav__link {\n color: inherit; }\n .md-nav__link:focus, .md-nav__link:hover {\n color: #536dfe; }\n .md-nav__source {\n display: none; }\n\n.no-js .md-search {\n display: none; }\n\n.md-search__overlay {\n opacity: 0;\n z-index: 1; }\n\n.md-search__form {\n position: relative; }\n\n.md-search__input {\n position: relative;\n padding: 0 2.2rem 0 3.6rem;\n text-overflow: ellipsis;\n z-index: 2; }\n [dir=\"rtl\"] .md-search__input {\n padding: 0 3.6rem 0 2.2rem; }\n .md-search__input::-webkit-input-placeholder {\n -webkit-transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1); }\n .md-search__input::-moz-placeholder {\n -moz-transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1); }\n .md-search__input:-ms-input-placeholder {\n -ms-transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1); }\n .md-search__input::-ms-input-placeholder {\n -ms-transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1); }\n .md-search__input::placeholder {\n -webkit-transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1); }\n .md-search__input::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n .md-search__input::-moz-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n .md-search__input:-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n .md-search__input::-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n .md-search__input ~ .md-search__icon, .md-search__input::placeholder {\n color: rgba(0, 0, 0, 0.54); }\n .md-search__input::-ms-clear {\n display: none; }\n\n.md-search__icon {\n position: absolute;\n -webkit-transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s;\n transition: color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s;\n font-size: 1.2rem;\n cursor: pointer;\n z-index: 2; }\n .md-search__icon:hover {\n opacity: 0.7; }\n .md-search__icon[for=\"__search\"] {\n top: 0.3rem;\n left: 0.5rem; }\n [dir=\"rtl\"] .md-search__icon[for=\"__search\"] {\n right: 0.5rem;\n left: initial; }\n .md-search__icon[for=\"__search\"]::before {\n content: \"\\E8B6\"; }\n .md-search__icon[type=\"reset\"] {\n top: 0.3rem;\n right: 0.5rem;\n -webkit-transform: scale(0.125);\n transform: scale(0.125);\n -webkit-transition: opacity 0.15s, -webkit-transform 0.15s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: opacity 0.15s, -webkit-transform 0.15s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: transform 0.15s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s;\n transition: transform 0.15s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s, -webkit-transform 0.15s cubic-bezier(0.1, 0.7, 0.1, 1);\n opacity: 0; }\n [dir=\"rtl\"] .md-search__icon[type=\"reset\"] {\n right: initial;\n left: 0.5rem; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input:valid ~ .md-search__icon[type=\"reset\"] {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input:valid ~ .md-search__icon[type=\"reset\"]:hover {\n opacity: 0.7; }\n\n.md-search__output {\n position: absolute;\n width: 100%;\n border-radius: 0 0 0.1rem 0.1rem;\n overflow: hidden;\n z-index: 1; }\n\n.md-search__scrollwrap {\n height: 100%;\n background-color: white;\n box-shadow: 0 0.05rem 0 rgba(0, 0, 0, 0.07) inset;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch; }\n\n.md-search-result {\n color: rgba(0, 0, 0, 0.87);\n word-break: break-word; }\n .md-search-result__meta {\n padding: 0 0.8rem;\n background-color: rgba(0, 0, 0, 0.07);\n color: rgba(0, 0, 0, 0.54);\n font-size: 0.64rem;\n line-height: 1.8rem; }\n .md-search-result__list {\n margin: 0;\n padding: 0;\n border-top: 0.05rem solid rgba(0, 0, 0, 0.07);\n list-style: none; }\n .md-search-result__item {\n box-shadow: 0 -0.05rem 0 rgba(0, 0, 0, 0.07); }\n .md-search-result__link {\n display: block;\n -webkit-transition: background 0.25s;\n transition: background 0.25s;\n outline: 0;\n overflow: hidden; }\n .md-search-result__link:focus, .md-search-result__link:hover {\n background-color: rgba(83, 109, 254, 0.1); }\n .md-search-result__link:focus .md-search-result__article::before, .md-search-result__link:hover .md-search-result__article::before {\n opacity: 0.7; }\n .md-search-result__link:last-child .md-search-result__teaser {\n margin-bottom: 0.6rem; }\n .md-search-result__article {\n position: relative;\n padding: 0 0.8rem;\n overflow: auto; }\n .md-search-result__article--document::before {\n position: absolute;\n left: 0;\n margin: 0.1rem;\n -webkit-transition: opacity 0.25s;\n transition: opacity 0.25s;\n color: rgba(0, 0, 0, 0.54);\n content: \"\\E880\"; }\n [dir=\"rtl\"] .md-search-result__article--document::before {\n right: 0;\n left: initial; }\n .md-search-result__article--document .md-search-result__title {\n margin: 0.55rem 0;\n font-size: 0.8rem;\n font-weight: 400;\n line-height: 1.4; }\n .md-search-result__title {\n margin: 0.5em 0;\n font-size: 0.64rem;\n font-weight: 700;\n line-height: 1.4; }\n .md-search-result__teaser {\n display: -webkit-box;\n max-height: 1.65rem;\n margin: 0.5em 0;\n color: rgba(0, 0, 0, 0.54);\n font-size: 0.64rem;\n line-height: 1.4;\n text-overflow: ellipsis;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2; }\n .md-search-result em {\n font-style: normal;\n font-weight: 700;\n text-decoration: underline; }\n\n.md-sidebar {\n position: absolute;\n width: 12.1rem;\n padding: 1.2rem 0;\n overflow: hidden; }\n .md-sidebar[data-md-state=\"lock\"] {\n position: fixed;\n top: 2.4rem; }\n .md-sidebar--secondary {\n display: none; }\n .md-sidebar__scrollwrap {\n max-height: 100%;\n margin: 0 0.2rem;\n overflow-y: auto;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden; }\n .md-sidebar__scrollwrap::-webkit-scrollbar {\n width: 0.2rem;\n height: 0.2rem; }\n .md-sidebar__scrollwrap::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.26); }\n .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover {\n background-color: #536dfe; }\n\n@-webkit-keyframes md-source__facts--done {\n 0% {\n height: 0; }\n 100% {\n height: 0.65rem; } }\n\n@keyframes md-source__facts--done {\n 0% {\n height: 0; }\n 100% {\n height: 0.65rem; } }\n\n@-webkit-keyframes md-source__fact--done {\n 0% {\n -webkit-transform: translateY(100%);\n transform: translateY(100%);\n opacity: 0; }\n 50% {\n opacity: 0; }\n 100% {\n -webkit-transform: translateY(0%);\n transform: translateY(0%);\n opacity: 1; } }\n\n@keyframes md-source__fact--done {\n 0% {\n -webkit-transform: translateY(100%);\n transform: translateY(100%);\n opacity: 0; }\n 50% {\n opacity: 0; }\n 100% {\n -webkit-transform: translateY(0%);\n transform: translateY(0%);\n opacity: 1; } }\n\n.md-source {\n display: block;\n padding-right: 0.6rem;\n -webkit-transition: opacity 0.25s;\n transition: opacity 0.25s;\n font-size: 0.65rem;\n line-height: 1.2;\n white-space: nowrap; }\n [dir=\"rtl\"] .md-source {\n padding-right: initial;\n padding-left: 0.6rem; }\n .md-source:hover {\n opacity: 0.7; }\n .md-source::after {\n display: inline-block;\n height: 2.4rem;\n content: \"\";\n vertical-align: middle; }\n .md-source__icon {\n display: inline-block;\n width: 2.4rem;\n height: 2.4rem;\n vertical-align: middle; }\n .md-source__icon svg {\n width: 1.2rem;\n height: 1.2rem;\n margin-top: 0.6rem;\n margin-left: 0.6rem;\n fill: white; }\n [dir=\"rtl\"] .md-source__icon svg {\n margin-right: 0.6rem;\n margin-left: initial; }\n .md-source__icon + .md-source__repository {\n margin-left: -2rem;\n padding-left: 2rem; }\n [dir=\"rtl\"] .md-source__icon + .md-source__repository {\n margin-right: -2rem;\n margin-left: initial;\n padding-right: 2rem;\n padding-left: initial; }\n .md-source__repository {\n display: inline-block;\n max-width: 100%;\n margin-left: 0.6rem;\n font-weight: 700;\n text-overflow: ellipsis;\n overflow: hidden;\n vertical-align: middle; }\n .md-source__facts {\n margin: 0;\n padding: 0;\n font-size: 0.55rem;\n font-weight: 700;\n list-style-type: none;\n opacity: 0.75;\n overflow: hidden; }\n [data-md-state=\"done\"] .md-source__facts {\n -webkit-animation: md-source__facts--done 0.25s ease-in;\n animation: md-source__facts--done 0.25s ease-in; }\n .md-source__fact {\n float: left; }\n [dir=\"rtl\"] .md-source__fact {\n float: right; }\n [data-md-state=\"done\"] .md-source__fact {\n -webkit-animation: md-source__fact--done 0.4s ease-out;\n animation: md-source__fact--done 0.4s ease-out; }\n .md-source__fact::before {\n margin: 0 0.1rem;\n content: \"\\00B7\"; }\n .md-source__fact:first-child::before {\n display: none; }\n\n.md-source-file {\n display: inline-block;\n margin: 1em 0.5em 1em 0;\n padding-right: 0.25rem;\n border-radius: 0.1rem;\n background-color: rgba(0, 0, 0, 0.07);\n font-size: 0.64rem;\n list-style-type: none;\n cursor: pointer;\n overflow: hidden; }\n .md-source-file::before {\n display: inline-block;\n margin-right: 0.25rem;\n padding: 0.25rem;\n background-color: rgba(0, 0, 0, 0.26);\n color: white;\n font-size: 0.8rem;\n content: \"\\E86F\";\n vertical-align: middle; }\n html .md-source-file {\n -webkit-transition: background 0.4s, color 0.4s, box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n transition: background 0.4s, color 0.4s, box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1); }\n html .md-source-file::before {\n -webkit-transition: inherit;\n transition: inherit; }\n html body .md-typeset .md-source-file {\n color: rgba(0, 0, 0, 0.54); }\n .md-source-file:hover {\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36); }\n .md-source-file:hover::before {\n background-color: #536dfe; }\n\n.md-tabs {\n width: 100%;\n -webkit-transition: background 0.25s;\n transition: background 0.25s;\n background-color: #3f51b5;\n color: white;\n overflow: auto; }\n .md-tabs__list {\n margin: 0;\n margin-left: 0.2rem;\n padding: 0;\n list-style: none;\n white-space: nowrap; }\n .md-tabs__item {\n display: inline-block;\n height: 2.4rem;\n padding-right: 0.6rem;\n padding-left: 0.6rem; }\n .md-tabs__link {\n display: block;\n margin-top: 0.8rem;\n -webkit-transition: opacity 0.25s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: opacity 0.25s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s;\n transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.25s, -webkit-transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1);\n font-size: 0.7rem;\n opacity: 0.7; }\n .md-tabs__link--active, .md-tabs__link:hover {\n color: inherit;\n opacity: 1; }\n .md-tabs__item:nth-child(2) .md-tabs__link {\n -webkit-transition-delay: 0.02s;\n transition-delay: 0.02s; }\n .md-tabs__item:nth-child(3) .md-tabs__link {\n -webkit-transition-delay: 0.04s;\n transition-delay: 0.04s; }\n .md-tabs__item:nth-child(4) .md-tabs__link {\n -webkit-transition-delay: 0.06s;\n transition-delay: 0.06s; }\n .md-tabs__item:nth-child(5) .md-tabs__link {\n -webkit-transition-delay: 0.08s;\n transition-delay: 0.08s; }\n .md-tabs__item:nth-child(6) .md-tabs__link {\n -webkit-transition-delay: 0.1s;\n transition-delay: 0.1s; }\n .md-tabs__item:nth-child(7) .md-tabs__link {\n -webkit-transition-delay: 0.12s;\n transition-delay: 0.12s; }\n .md-tabs__item:nth-child(8) .md-tabs__link {\n -webkit-transition-delay: 0.14s;\n transition-delay: 0.14s; }\n .md-tabs__item:nth-child(9) .md-tabs__link {\n -webkit-transition-delay: 0.16s;\n transition-delay: 0.16s; }\n .md-tabs__item:nth-child(10) .md-tabs__link {\n -webkit-transition-delay: 0.18s;\n transition-delay: 0.18s; }\n .md-tabs__item:nth-child(11) .md-tabs__link {\n -webkit-transition-delay: 0.2s;\n transition-delay: 0.2s; }\n .md-tabs__item:nth-child(12) .md-tabs__link {\n -webkit-transition-delay: 0.22s;\n transition-delay: 0.22s; }\n .md-tabs__item:nth-child(13) .md-tabs__link {\n -webkit-transition-delay: 0.24s;\n transition-delay: 0.24s; }\n .md-tabs__item:nth-child(14) .md-tabs__link {\n -webkit-transition-delay: 0.26s;\n transition-delay: 0.26s; }\n .md-tabs__item:nth-child(15) .md-tabs__link {\n -webkit-transition-delay: 0.28s;\n transition-delay: 0.28s; }\n .md-tabs__item:nth-child(16) .md-tabs__link {\n -webkit-transition-delay: 0.3s;\n transition-delay: 0.3s; }\n .md-tabs[data-md-state=\"hidden\"] {\n pointer-events: none; }\n .md-tabs[data-md-state=\"hidden\"] .md-tabs__link {\n -webkit-transform: translateY(50%);\n transform: translateY(50%);\n -webkit-transition: color 0.25s, opacity 0.1s, -webkit-transform 0s 0.4s;\n transition: color 0.25s, opacity 0.1s, -webkit-transform 0s 0.4s;\n transition: color 0.25s, transform 0s 0.4s, opacity 0.1s;\n transition: color 0.25s, transform 0s 0.4s, opacity 0.1s, -webkit-transform 0s 0.4s;\n opacity: 0; }\n\n.md-typeset .admonition, .md-typeset details {\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);\n margin: 1.5625em 0;\n padding: 0 0.6rem;\n border-left: 0.2rem solid #448aff;\n border-radius: 0.1rem;\n font-size: 0.64rem;\n overflow: auto; }\n [dir=\"rtl\"] .md-typeset .admonition, [dir=\"rtl\"] .md-typeset details {\n border-right: 0.2rem solid #448aff;\n border-left: none; }\n html .md-typeset .admonition > :last-child, html .md-typeset details > :last-child {\n margin-bottom: 0.6rem; }\n .md-typeset .admonition .admonition, .md-typeset details .admonition, .md-typeset .admonition details, .md-typeset details details {\n margin: 1em 0; }\n .md-typeset .admonition > .admonition-title, .md-typeset details > .admonition-title, .md-typeset .admonition > summary, .md-typeset details > summary {\n margin: 0 -0.6rem;\n padding: 0.4rem 0.6rem 0.4rem 2rem;\n border-bottom: 0.05rem solid rgba(68, 138, 255, 0.1);\n background-color: rgba(68, 138, 255, 0.1);\n font-weight: 700; }\n [dir=\"rtl\"] .md-typeset .admonition > .admonition-title, [dir=\"rtl\"] .md-typeset details > .admonition-title, [dir=\"rtl\"] .md-typeset .admonition > summary, [dir=\"rtl\"] .md-typeset details > summary {\n padding: 0.4rem 2rem 0.4rem 0.6rem; }\n .md-typeset .admonition > .admonition-title:last-child, .md-typeset details > .admonition-title:last-child, .md-typeset .admonition > summary:last-child, .md-typeset details > summary:last-child {\n margin-bottom: 0; }\n .md-typeset .admonition > .admonition-title::before, .md-typeset details > .admonition-title::before, .md-typeset .admonition > summary::before, .md-typeset details > summary::before {\n position: absolute;\n margin-left: -1.4rem;\n color: #448aff;\n font-size: 1rem;\n content: \"\\E3C9\"; }\n [dir=\"rtl\"] .md-typeset .admonition > .admonition-title::before, [dir=\"rtl\"] .md-typeset details > .admonition-title::before, [dir=\"rtl\"] .md-typeset .admonition > summary::before, [dir=\"rtl\"] .md-typeset details > summary::before {\n margin-right: -1.4rem;\n margin-left: initial; }\n .md-typeset .admonition.summary, .md-typeset details.summary, .md-typeset .admonition.tldr, .md-typeset details.tldr, .md-typeset .admonition.abstract, .md-typeset details.abstract {\n border-left-color: #00b0ff; }\n [dir=\"rtl\"] .md-typeset .admonition.summary, [dir=\"rtl\"] .md-typeset details.summary, [dir=\"rtl\"] .md-typeset .admonition.tldr, [dir=\"rtl\"] .md-typeset details.tldr, [dir=\"rtl\"] .md-typeset .admonition.abstract, [dir=\"rtl\"] .md-typeset details.abstract {\n border-right-color: #00b0ff; }\n .md-typeset .admonition.summary > .admonition-title, .md-typeset details.summary > .admonition-title, .md-typeset .admonition.tldr > .admonition-title, .md-typeset details.tldr > .admonition-title, .md-typeset .admonition.summary > summary, .md-typeset details.summary > summary, .md-typeset .admonition.tldr > summary, .md-typeset details.tldr > summary, .md-typeset .admonition.abstract > .admonition-title, .md-typeset details.abstract > .admonition-title, .md-typeset .admonition.abstract > summary, .md-typeset details.abstract > summary {\n border-bottom-color: rgba(0, 176, 255, 0.1);\n background-color: rgba(0, 176, 255, 0.1); }\n .md-typeset .admonition.summary > .admonition-title::before, .md-typeset details.summary > .admonition-title::before, .md-typeset .admonition.tldr > .admonition-title::before, .md-typeset details.tldr > .admonition-title::before, .md-typeset .admonition.summary > summary::before, .md-typeset details.summary > summary::before, .md-typeset .admonition.tldr > summary::before, .md-typeset details.tldr > summary::before, .md-typeset .admonition.abstract > .admonition-title::before, .md-typeset details.abstract > .admonition-title::before, .md-typeset .admonition.abstract > summary::before, .md-typeset details.abstract > summary::before {\n color: #00b0ff;\n content: \"\"; }\n .md-typeset .admonition.todo, .md-typeset details.todo, .md-typeset .admonition.info, .md-typeset details.info {\n border-left-color: #00b8d4; }\n [dir=\"rtl\"] .md-typeset .admonition.todo, [dir=\"rtl\"] .md-typeset details.todo, [dir=\"rtl\"] .md-typeset .admonition.info, [dir=\"rtl\"] .md-typeset details.info {\n border-right-color: #00b8d4; }\n .md-typeset .admonition.todo > .admonition-title, .md-typeset details.todo > .admonition-title, .md-typeset .admonition.todo > summary, .md-typeset details.todo > summary, .md-typeset .admonition.info > .admonition-title, .md-typeset details.info > .admonition-title, .md-typeset .admonition.info > summary, .md-typeset details.info > summary {\n border-bottom-color: rgba(0, 184, 212, 0.1);\n background-color: rgba(0, 184, 212, 0.1); }\n .md-typeset .admonition.todo > .admonition-title::before, .md-typeset details.todo > .admonition-title::before, .md-typeset .admonition.todo > summary::before, .md-typeset details.todo > summary::before, .md-typeset .admonition.info > .admonition-title::before, .md-typeset details.info > .admonition-title::before, .md-typeset .admonition.info > summary::before, .md-typeset details.info > summary::before {\n color: #00b8d4;\n content: \"\"; }\n .md-typeset .admonition.hint, .md-typeset details.hint, .md-typeset .admonition.important, .md-typeset details.important, .md-typeset .admonition.tip, .md-typeset details.tip {\n border-left-color: #00bfa5; }\n [dir=\"rtl\"] .md-typeset .admonition.hint, [dir=\"rtl\"] .md-typeset details.hint, [dir=\"rtl\"] .md-typeset .admonition.important, [dir=\"rtl\"] .md-typeset details.important, [dir=\"rtl\"] .md-typeset .admonition.tip, [dir=\"rtl\"] .md-typeset details.tip {\n border-right-color: #00bfa5; }\n .md-typeset .admonition.hint > .admonition-title, .md-typeset details.hint > .admonition-title, .md-typeset .admonition.important > .admonition-title, .md-typeset details.important > .admonition-title, .md-typeset .admonition.hint > summary, .md-typeset details.hint > summary, .md-typeset .admonition.important > summary, .md-typeset details.important > summary, .md-typeset .admonition.tip > .admonition-title, .md-typeset details.tip > .admonition-title, .md-typeset .admonition.tip > summary, .md-typeset details.tip > summary {\n border-bottom-color: rgba(0, 191, 165, 0.1);\n background-color: rgba(0, 191, 165, 0.1); }\n .md-typeset .admonition.hint > .admonition-title::before, .md-typeset details.hint > .admonition-title::before, .md-typeset .admonition.important > .admonition-title::before, .md-typeset details.important > .admonition-title::before, .md-typeset .admonition.hint > summary::before, .md-typeset details.hint > summary::before, .md-typeset .admonition.important > summary::before, .md-typeset details.important > summary::before, .md-typeset .admonition.tip > .admonition-title::before, .md-typeset details.tip > .admonition-title::before, .md-typeset .admonition.tip > summary::before, .md-typeset details.tip > summary::before {\n color: #00bfa5;\n content: \"\"; }\n .md-typeset .admonition.check, .md-typeset details.check, .md-typeset .admonition.done, .md-typeset details.done, .md-typeset .admonition.success, .md-typeset details.success {\n border-left-color: #00c853; }\n [dir=\"rtl\"] .md-typeset .admonition.check, [dir=\"rtl\"] .md-typeset details.check, [dir=\"rtl\"] .md-typeset .admonition.done, [dir=\"rtl\"] .md-typeset details.done, [dir=\"rtl\"] .md-typeset .admonition.success, [dir=\"rtl\"] .md-typeset details.success {\n border-right-color: #00c853; }\n .md-typeset .admonition.check > .admonition-title, .md-typeset details.check > .admonition-title, .md-typeset .admonition.done > .admonition-title, .md-typeset details.done > .admonition-title, .md-typeset .admonition.check > summary, .md-typeset details.check > summary, .md-typeset .admonition.done > summary, .md-typeset details.done > summary, .md-typeset .admonition.success > .admonition-title, .md-typeset details.success > .admonition-title, .md-typeset .admonition.success > summary, .md-typeset details.success > summary {\n border-bottom-color: rgba(0, 200, 83, 0.1);\n background-color: rgba(0, 200, 83, 0.1); }\n .md-typeset .admonition.check > .admonition-title::before, .md-typeset details.check > .admonition-title::before, .md-typeset .admonition.done > .admonition-title::before, .md-typeset details.done > .admonition-title::before, .md-typeset .admonition.check > summary::before, .md-typeset details.check > summary::before, .md-typeset .admonition.done > summary::before, .md-typeset details.done > summary::before, .md-typeset .admonition.success > .admonition-title::before, .md-typeset details.success > .admonition-title::before, .md-typeset .admonition.success > summary::before, .md-typeset details.success > summary::before {\n color: #00c853;\n content: \"\"; }\n .md-typeset .admonition.help, .md-typeset details.help, .md-typeset .admonition.faq, .md-typeset details.faq, .md-typeset .admonition.question, .md-typeset details.question {\n border-left-color: #64dd17; }\n [dir=\"rtl\"] .md-typeset .admonition.help, [dir=\"rtl\"] .md-typeset details.help, [dir=\"rtl\"] .md-typeset .admonition.faq, [dir=\"rtl\"] .md-typeset details.faq, [dir=\"rtl\"] .md-typeset .admonition.question, [dir=\"rtl\"] .md-typeset details.question {\n border-right-color: #64dd17; }\n .md-typeset .admonition.help > .admonition-title, .md-typeset details.help > .admonition-title, .md-typeset .admonition.faq > .admonition-title, .md-typeset details.faq > .admonition-title, .md-typeset .admonition.help > summary, .md-typeset details.help > summary, .md-typeset .admonition.faq > summary, .md-typeset details.faq > summary, .md-typeset .admonition.question > .admonition-title, .md-typeset details.question > .admonition-title, .md-typeset .admonition.question > summary, .md-typeset details.question > summary {\n border-bottom-color: rgba(100, 221, 23, 0.1);\n background-color: rgba(100, 221, 23, 0.1); }\n .md-typeset .admonition.help > .admonition-title::before, .md-typeset details.help > .admonition-title::before, .md-typeset .admonition.faq > .admonition-title::before, .md-typeset details.faq > .admonition-title::before, .md-typeset .admonition.help > summary::before, .md-typeset details.help > summary::before, .md-typeset .admonition.faq > summary::before, .md-typeset details.faq > summary::before, .md-typeset .admonition.question > .admonition-title::before, .md-typeset details.question > .admonition-title::before, .md-typeset .admonition.question > summary::before, .md-typeset details.question > summary::before {\n color: #64dd17;\n content: \"\"; }\n .md-typeset .admonition.caution, .md-typeset details.caution, .md-typeset .admonition.attention, .md-typeset details.attention, .md-typeset .admonition.warning, .md-typeset details.warning {\n border-left-color: #ff9100; }\n [dir=\"rtl\"] .md-typeset .admonition.caution, [dir=\"rtl\"] .md-typeset details.caution, [dir=\"rtl\"] .md-typeset .admonition.attention, [dir=\"rtl\"] .md-typeset details.attention, [dir=\"rtl\"] .md-typeset .admonition.warning, [dir=\"rtl\"] .md-typeset details.warning {\n border-right-color: #ff9100; }\n .md-typeset .admonition.caution > .admonition-title, .md-typeset details.caution > .admonition-title, .md-typeset .admonition.attention > .admonition-title, .md-typeset details.attention > .admonition-title, .md-typeset .admonition.caution > summary, .md-typeset details.caution > summary, .md-typeset .admonition.attention > summary, .md-typeset details.attention > summary, .md-typeset .admonition.warning > .admonition-title, .md-typeset details.warning > .admonition-title, .md-typeset .admonition.warning > summary, .md-typeset details.warning > summary {\n border-bottom-color: rgba(255, 145, 0, 0.1);\n background-color: rgba(255, 145, 0, 0.1); }\n .md-typeset .admonition.caution > .admonition-title::before, .md-typeset details.caution > .admonition-title::before, .md-typeset .admonition.attention > .admonition-title::before, .md-typeset details.attention > .admonition-title::before, .md-typeset .admonition.caution > summary::before, .md-typeset details.caution > summary::before, .md-typeset .admonition.attention > summary::before, .md-typeset details.attention > summary::before, .md-typeset .admonition.warning > .admonition-title::before, .md-typeset details.warning > .admonition-title::before, .md-typeset .admonition.warning > summary::before, .md-typeset details.warning > summary::before {\n color: #ff9100;\n content: \"\"; }\n .md-typeset .admonition.fail, .md-typeset details.fail, .md-typeset .admonition.missing, .md-typeset details.missing, .md-typeset .admonition.failure, .md-typeset details.failure {\n border-left-color: #ff5252; }\n [dir=\"rtl\"] .md-typeset .admonition.fail, [dir=\"rtl\"] .md-typeset details.fail, [dir=\"rtl\"] .md-typeset .admonition.missing, [dir=\"rtl\"] .md-typeset details.missing, [dir=\"rtl\"] .md-typeset .admonition.failure, [dir=\"rtl\"] .md-typeset details.failure {\n border-right-color: #ff5252; }\n .md-typeset .admonition.fail > .admonition-title, .md-typeset details.fail > .admonition-title, .md-typeset .admonition.missing > .admonition-title, .md-typeset details.missing > .admonition-title, .md-typeset .admonition.fail > summary, .md-typeset details.fail > summary, .md-typeset .admonition.missing > summary, .md-typeset details.missing > summary, .md-typeset .admonition.failure > .admonition-title, .md-typeset details.failure > .admonition-title, .md-typeset .admonition.failure > summary, .md-typeset details.failure > summary {\n border-bottom-color: rgba(255, 82, 82, 0.1);\n background-color: rgba(255, 82, 82, 0.1); }\n .md-typeset .admonition.fail > .admonition-title::before, .md-typeset details.fail > .admonition-title::before, .md-typeset .admonition.missing > .admonition-title::before, .md-typeset details.missing > .admonition-title::before, .md-typeset .admonition.fail > summary::before, .md-typeset details.fail > summary::before, .md-typeset .admonition.missing > summary::before, .md-typeset details.missing > summary::before, .md-typeset .admonition.failure > .admonition-title::before, .md-typeset details.failure > .admonition-title::before, .md-typeset .admonition.failure > summary::before, .md-typeset details.failure > summary::before {\n color: #ff5252;\n content: \"\"; }\n .md-typeset .admonition.error, .md-typeset details.error, .md-typeset .admonition.danger, .md-typeset details.danger {\n border-left-color: #ff1744; }\n [dir=\"rtl\"] .md-typeset .admonition.error, [dir=\"rtl\"] .md-typeset details.error, [dir=\"rtl\"] .md-typeset .admonition.danger, [dir=\"rtl\"] .md-typeset details.danger {\n border-right-color: #ff1744; }\n .md-typeset .admonition.error > .admonition-title, .md-typeset details.error > .admonition-title, .md-typeset .admonition.error > summary, .md-typeset details.error > summary, .md-typeset .admonition.danger > .admonition-title, .md-typeset details.danger > .admonition-title, .md-typeset .admonition.danger > summary, .md-typeset details.danger > summary {\n border-bottom-color: rgba(255, 23, 68, 0.1);\n background-color: rgba(255, 23, 68, 0.1); }\n .md-typeset .admonition.error > .admonition-title::before, .md-typeset details.error > .admonition-title::before, .md-typeset .admonition.error > summary::before, .md-typeset details.error > summary::before, .md-typeset .admonition.danger > .admonition-title::before, .md-typeset details.danger > .admonition-title::before, .md-typeset .admonition.danger > summary::before, .md-typeset details.danger > summary::before {\n color: #ff1744;\n content: \"\"; }\n .md-typeset .admonition.bug, .md-typeset details.bug {\n border-left-color: #f50057; }\n [dir=\"rtl\"] .md-typeset .admonition.bug, [dir=\"rtl\"] .md-typeset details.bug {\n border-right-color: #f50057; }\n .md-typeset .admonition.bug > .admonition-title, .md-typeset details.bug > .admonition-title, .md-typeset .admonition.bug > summary, .md-typeset details.bug > summary {\n border-bottom-color: rgba(245, 0, 87, 0.1);\n background-color: rgba(245, 0, 87, 0.1); }\n .md-typeset .admonition.bug > .admonition-title::before, .md-typeset details.bug > .admonition-title::before, .md-typeset .admonition.bug > summary::before, .md-typeset details.bug > summary::before {\n color: #f50057;\n content: \"\"; }\n .md-typeset .admonition.example, .md-typeset details.example {\n border-left-color: #651fff; }\n [dir=\"rtl\"] .md-typeset .admonition.example, [dir=\"rtl\"] .md-typeset details.example {\n border-right-color: #651fff; }\n .md-typeset .admonition.example > .admonition-title, .md-typeset details.example > .admonition-title, .md-typeset .admonition.example > summary, .md-typeset details.example > summary {\n border-bottom-color: rgba(101, 31, 255, 0.1);\n background-color: rgba(101, 31, 255, 0.1); }\n .md-typeset .admonition.example > .admonition-title::before, .md-typeset details.example > .admonition-title::before, .md-typeset .admonition.example > summary::before, .md-typeset details.example > summary::before {\n color: #651fff;\n content: \"\"; }\n .md-typeset .admonition.cite, .md-typeset details.cite, .md-typeset .admonition.quote, .md-typeset details.quote {\n border-left-color: #9e9e9e; }\n [dir=\"rtl\"] .md-typeset .admonition.cite, [dir=\"rtl\"] .md-typeset details.cite, [dir=\"rtl\"] .md-typeset .admonition.quote, [dir=\"rtl\"] .md-typeset details.quote {\n border-right-color: #9e9e9e; }\n .md-typeset .admonition.cite > .admonition-title, .md-typeset details.cite > .admonition-title, .md-typeset .admonition.cite > summary, .md-typeset details.cite > summary, .md-typeset .admonition.quote > .admonition-title, .md-typeset details.quote > .admonition-title, .md-typeset .admonition.quote > summary, .md-typeset details.quote > summary {\n border-bottom-color: rgba(158, 158, 158, 0.1);\n background-color: rgba(158, 158, 158, 0.1); }\n .md-typeset .admonition.cite > .admonition-title::before, .md-typeset details.cite > .admonition-title::before, .md-typeset .admonition.cite > summary::before, .md-typeset details.cite > summary::before, .md-typeset .admonition.quote > .admonition-title::before, .md-typeset details.quote > .admonition-title::before, .md-typeset .admonition.quote > summary::before, .md-typeset details.quote > summary::before {\n color: #9e9e9e;\n content: \"\"; }\n\n.codehilite .o, .md-typeset .highlight .o {\n color: inherit; }\n\n.codehilite .ow, .md-typeset .highlight .ow {\n color: inherit; }\n\n.codehilite .ge, .md-typeset .highlight .ge {\n color: #000000; }\n\n.codehilite .gr, .md-typeset .highlight .gr {\n color: #AA0000; }\n\n.codehilite .gh, .md-typeset .highlight .gh {\n color: #999999; }\n\n.codehilite .go, .md-typeset .highlight .go {\n color: #888888; }\n\n.codehilite .gp, .md-typeset .highlight .gp {\n color: #555555; }\n\n.codehilite .gs, .md-typeset .highlight .gs {\n color: inherit; }\n\n.codehilite .gu, .md-typeset .highlight .gu {\n color: #AAAAAA; }\n\n.codehilite .gt, .md-typeset .highlight .gt {\n color: #AA0000; }\n\n.codehilite .gd, .md-typeset .highlight .gd {\n background-color: #FFDDDD; }\n\n.codehilite .gi, .md-typeset .highlight .gi {\n background-color: #DDFFDD; }\n\n.codehilite .k, .md-typeset .highlight .k {\n color: #3B78E7; }\n\n.codehilite .kc, .md-typeset .highlight .kc {\n color: #A71D5D; }\n\n.codehilite .kd, .md-typeset .highlight .kd {\n color: #3B78E7; }\n\n.codehilite .kn, .md-typeset .highlight .kn {\n color: #3B78E7; }\n\n.codehilite .kp, .md-typeset .highlight .kp {\n color: #A71D5D; }\n\n.codehilite .kr, .md-typeset .highlight .kr {\n color: #3E61A2; }\n\n.codehilite .kt, .md-typeset .highlight .kt {\n color: #3E61A2; }\n\n.codehilite .c, .md-typeset .highlight .c {\n color: #999999; }\n\n.codehilite .cm, .md-typeset .highlight .cm {\n color: #999999; }\n\n.codehilite .cp, .md-typeset .highlight .cp {\n color: #666666; }\n\n.codehilite .c1, .md-typeset .highlight .c1 {\n color: #999999; }\n\n.codehilite .ch, .md-typeset .highlight .ch {\n color: #999999; }\n\n.codehilite .cs, .md-typeset .highlight .cs {\n color: #999999; }\n\n.codehilite .na, .md-typeset .highlight .na {\n color: #C2185B; }\n\n.codehilite .nb, .md-typeset .highlight .nb {\n color: #C2185B; }\n\n.codehilite .bp, .md-typeset .highlight .bp {\n color: #3E61A2; }\n\n.codehilite .nc, .md-typeset .highlight .nc {\n color: #C2185B; }\n\n.codehilite .no, .md-typeset .highlight .no {\n color: #3E61A2; }\n\n.codehilite .nd, .md-typeset .highlight .nd {\n color: #666666; }\n\n.codehilite .ni, .md-typeset .highlight .ni {\n color: #666666; }\n\n.codehilite .ne, .md-typeset .highlight .ne {\n color: #C2185B; }\n\n.codehilite .nf, .md-typeset .highlight .nf {\n color: #C2185B; }\n\n.codehilite .nl, .md-typeset .highlight .nl {\n color: #3B5179; }\n\n.codehilite .nn, .md-typeset .highlight .nn {\n color: #EC407A; }\n\n.codehilite .nt, .md-typeset .highlight .nt {\n color: #3B78E7; }\n\n.codehilite .nv, .md-typeset .highlight .nv {\n color: #3E61A2; }\n\n.codehilite .vc, .md-typeset .highlight .vc {\n color: #3E61A2; }\n\n.codehilite .vg, .md-typeset .highlight .vg {\n color: #3E61A2; }\n\n.codehilite .vi, .md-typeset .highlight .vi {\n color: #3E61A2; }\n\n.codehilite .nx, .md-typeset .highlight .nx {\n color: #EC407A; }\n\n.codehilite .m, .md-typeset .highlight .m {\n color: #E74C3C; }\n\n.codehilite .mf, .md-typeset .highlight .mf {\n color: #E74C3C; }\n\n.codehilite .mh, .md-typeset .highlight .mh {\n color: #E74C3C; }\n\n.codehilite .mi, .md-typeset .highlight .mi {\n color: #E74C3C; }\n\n.codehilite .il, .md-typeset .highlight .il {\n color: #E74C3C; }\n\n.codehilite .mo, .md-typeset .highlight .mo {\n color: #E74C3C; }\n\n.codehilite .s, .md-typeset .highlight .s {\n color: #0D904F; }\n\n.codehilite .sb, .md-typeset .highlight .sb {\n color: #0D904F; }\n\n.codehilite .sc, .md-typeset .highlight .sc {\n color: #0D904F; }\n\n.codehilite .sd, .md-typeset .highlight .sd {\n color: #999999; }\n\n.codehilite .s2, .md-typeset .highlight .s2 {\n color: #0D904F; }\n\n.codehilite .se, .md-typeset .highlight .se {\n color: #183691; }\n\n.codehilite .sh, .md-typeset .highlight .sh {\n color: #183691; }\n\n.codehilite .si, .md-typeset .highlight .si {\n color: #183691; }\n\n.codehilite .sx, .md-typeset .highlight .sx {\n color: #183691; }\n\n.codehilite .sr, .md-typeset .highlight .sr {\n color: #009926; }\n\n.codehilite .s1, .md-typeset .highlight .s1 {\n color: #0D904F; }\n\n.codehilite .ss, .md-typeset .highlight .ss {\n color: #0D904F; }\n\n.codehilite .err, .md-typeset .highlight .err {\n color: #A61717; }\n\n.codehilite .w, .md-typeset .highlight .w {\n color: transparent; }\n\n.codehilite .hll, .md-typeset .highlight .hll {\n display: block;\n margin: 0 -0.6rem;\n padding: 0 0.6rem;\n background-color: rgba(255, 235, 59, 0.5); }\n\n.md-typeset .codehilitetable, .md-typeset .highlighttable {\n display: block;\n overflow: hidden; }\n .md-typeset .codehilitetable tbody, .md-typeset .highlighttable tbody,\n .md-typeset .codehilitetable td,\n .md-typeset .highlighttable td {\n display: block;\n padding: 0; }\n .md-typeset .codehilitetable tr, .md-typeset .highlighttable tr {\n display: -webkit-box;\n display: flex; }\n .md-typeset .codehilitetable pre, .md-typeset .highlighttable pre,\n .md-typeset .codehilitetable .linenodiv,\n .md-typeset .highlighttable .linenodiv {\n margin: 0;\n border-radius: 0; }\n \n .md-typeset .codehilitetable .linenodiv,\n .md-typeset .highlighttable .linenodiv {\n padding: 0.525rem 0.6rem; }\n .md-typeset .codehilitetable .linenos, .md-typeset .highlighttable .linenos {\n background-color: rgba(0, 0, 0, 0.07);\n color: rgba(0, 0, 0, 0.26);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .md-typeset .codehilitetable .linenos pre, .md-typeset .highlighttable .linenos pre {\n background-color: transparent;\n color: inherit;\n text-align: right; }\n .md-typeset .codehilitetable .code, .md-typeset .highlighttable .code {\n -webkit-box-flex: 1;\n flex: 1;\n overflow: hidden; }\n\n.md-typeset > .codehilitetable, .md-typeset > .highlighttable {\n margin: 1em 0;\n border-radius: 0.2em; }\n\n.md-typeset [id^=\"fnref:\"] {\n display: inline-block; }\n .md-typeset [id^=\"fnref:\"]:target {\n margin-top: -3.8rem;\n padding-top: 3.8rem;\n pointer-events: none; }\n\n.md-typeset [id^=\"fn:\"]::before {\n display: none;\n height: 0;\n content: \"\"; }\n\n.md-typeset [id^=\"fn:\"]:target::before {\n display: block;\n margin-top: -3.5rem;\n padding-top: 3.5rem;\n pointer-events: none; }\n\n.md-typeset .footnote {\n color: rgba(0, 0, 0, 0.54);\n font-size: 0.64rem; }\n .md-typeset .footnote ol {\n margin-left: 0; }\n .md-typeset .footnote li {\n -webkit-transition: color 0.25s;\n transition: color 0.25s; }\n .md-typeset .footnote li:target {\n color: rgba(0, 0, 0, 0.87); }\n .md-typeset .footnote li :first-child {\n margin-top: 0; }\n .md-typeset .footnote li:hover .footnote-backref,\n .md-typeset .footnote li:target .footnote-backref {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1; }\n .md-typeset .footnote li:hover .footnote-backref:hover,\n .md-typeset .footnote li:target .footnote-backref {\n color: #536dfe; }\n\n.md-typeset .footnote-ref {\n display: inline-block;\n pointer-events: initial; }\n .md-typeset .footnote-ref::before {\n display: inline;\n margin: 0 0.2em;\n border-left: 0.05rem solid rgba(0, 0, 0, 0.26);\n font-size: 1.25em;\n content: \"\";\n vertical-align: -0.25rem; }\n\n.md-typeset .footnote-backref {\n display: inline-block;\n -webkit-transform: translateX(0.25rem);\n transform: translateX(0.25rem);\n -webkit-transition: color 0.25s, opacity 0.125s 0.125s, -webkit-transform 0.25s 0.125s;\n transition: color 0.25s, opacity 0.125s 0.125s, -webkit-transform 0.25s 0.125s;\n transition: transform 0.25s 0.125s, color 0.25s, opacity 0.125s 0.125s;\n transition: transform 0.25s 0.125s, color 0.25s, opacity 0.125s 0.125s, -webkit-transform 0.25s 0.125s;\n color: rgba(0, 0, 0, 0.26);\n font-size: 0;\n opacity: 0;\n vertical-align: text-bottom; }\n [dir=\"rtl\"] .md-typeset .footnote-backref {\n -webkit-transform: translateX(-0.25rem);\n transform: translateX(-0.25rem); }\n .md-typeset .footnote-backref::before {\n display: inline-block;\n font-size: 0.8rem;\n content: \"\\E31B\"; }\n [dir=\"rtl\"] .md-typeset .footnote-backref::before {\n -webkit-transform: scaleX(-1);\n transform: scaleX(-1); }\n\n.md-typeset .headerlink {\n display: inline-block;\n margin-left: 0.5rem;\n -webkit-transform: translate(0, 0.25rem);\n transform: translate(0, 0.25rem);\n -webkit-transition: color 0.25s, opacity 0.125s 0.25s, -webkit-transform 0.25s 0.25s;\n transition: color 0.25s, opacity 0.125s 0.25s, -webkit-transform 0.25s 0.25s;\n transition: transform 0.25s 0.25s, color 0.25s, opacity 0.125s 0.25s;\n transition: transform 0.25s 0.25s, color 0.25s, opacity 0.125s 0.25s, -webkit-transform 0.25s 0.25s;\n opacity: 0; }\n [dir=\"rtl\"] .md-typeset .headerlink {\n margin-right: 0.5rem;\n margin-left: initial; }\n html body .md-typeset .headerlink {\n color: rgba(0, 0, 0, 0.26); }\n\n.md-typeset h1[id]::before {\n display: block;\n margin-top: -8px;\n padding-top: 8px;\n content: \"\"; }\n\n.md-typeset h1[id]:target::before {\n margin-top: -3.4rem;\n padding-top: 3.4rem; }\n\n.md-typeset h1[id]:hover .headerlink,\n.md-typeset h1[id]:target .headerlink,\n.md-typeset h1[id] .headerlink:focus {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n opacity: 1; }\n\n.md-typeset h1[id]:hover .headerlink:hover,\n.md-typeset h1[id]:target .headerlink,\n.md-typeset h1[id] .headerlink:focus {\n color: #536dfe; }\n\n.md-typeset h2[id]::before {\n display: block;\n margin-top: -8px;\n padding-top: 8px;\n content: \"\"; }\n\n.md-typeset h2[id]:target::before {\n margin-top: -3.4rem;\n padding-top: 3.4rem; }\n\n.md-typeset h2[id]:hover .headerlink,\n.md-typeset h2[id]:target .headerlink,\n.md-typeset h2[id] .headerlink:focus {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n opacity: 1; }\n\n.md-typeset h2[id]:hover .headerlink:hover,\n.md-typeset h2[id]:target .headerlink,\n.md-typeset h2[id] .headerlink:focus {\n color: #536dfe; }\n\n.md-typeset h3[id]::before {\n display: block;\n margin-top: -8px;\n padding-top: 8px;\n content: \"\"; }\n\n.md-typeset h3[id]:target::before {\n margin-top: -3.4rem;\n padding-top: 3.4rem; }\n\n.md-typeset h3[id]:hover .headerlink,\n.md-typeset h3[id]:target .headerlink,\n.md-typeset h3[id] .headerlink:focus {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n opacity: 1; }\n\n.md-typeset h3[id]:hover .headerlink:hover,\n.md-typeset h3[id]:target .headerlink,\n.md-typeset h3[id] .headerlink:focus {\n color: #536dfe; }\n\n.md-typeset h4[id]::before {\n display: block;\n margin-top: -9px;\n padding-top: 9px;\n content: \"\"; }\n\n.md-typeset h4[id]:target::before {\n margin-top: -3.45rem;\n padding-top: 3.45rem; }\n\n.md-typeset h4[id]:hover .headerlink,\n.md-typeset h4[id]:target .headerlink,\n.md-typeset h4[id] .headerlink:focus {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n opacity: 1; }\n\n.md-typeset h4[id]:hover .headerlink:hover,\n.md-typeset h4[id]:target .headerlink,\n.md-typeset h4[id] .headerlink:focus {\n color: #536dfe; }\n\n.md-typeset h5[id]::before {\n display: block;\n margin-top: -11px;\n padding-top: 11px;\n content: \"\"; }\n\n.md-typeset h5[id]:target::before {\n margin-top: -3.55rem;\n padding-top: 3.55rem; }\n\n.md-typeset h5[id]:hover .headerlink,\n.md-typeset h5[id]:target .headerlink,\n.md-typeset h5[id] .headerlink:focus {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n opacity: 1; }\n\n.md-typeset h5[id]:hover .headerlink:hover,\n.md-typeset h5[id]:target .headerlink,\n.md-typeset h5[id] .headerlink:focus {\n color: #536dfe; }\n\n.md-typeset h6[id]::before {\n display: block;\n margin-top: -11px;\n padding-top: 11px;\n content: \"\"; }\n\n.md-typeset h6[id]:target::before {\n margin-top: -3.55rem;\n padding-top: 3.55rem; }\n\n.md-typeset h6[id]:hover .headerlink,\n.md-typeset h6[id]:target .headerlink,\n.md-typeset h6[id] .headerlink:focus {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n opacity: 1; }\n\n.md-typeset h6[id]:hover .headerlink:hover,\n.md-typeset h6[id]:target .headerlink,\n.md-typeset h6[id] .headerlink:focus {\n color: #536dfe; }\n\n.md-typeset .MJXc-display {\n margin: 0.75em 0;\n padding: 0.75em 0;\n overflow: auto;\n -webkit-overflow-scrolling: touch; }\n\n.md-typeset .MathJax_CHTML {\n outline: 0; }\n\n.md-typeset del.critic,\n.md-typeset ins.critic,\n.md-typeset .critic.comment {\n margin: 0 0.25em;\n padding: 0.0625em 0;\n border-radius: 0.1rem;\n -webkit-box-decoration-break: clone;\n box-decoration-break: clone; }\n\n.md-typeset del.critic {\n background-color: #FFDDDD;\n box-shadow: 0.25em 0 0 #FFDDDD, -0.25em 0 0 #FFDDDD; }\n\n.md-typeset ins.critic {\n background-color: #DDFFDD;\n box-shadow: 0.25em 0 0 #DDFFDD, -0.25em 0 0 #DDFFDD; }\n\n.md-typeset .critic.comment {\n background-color: rgba(236, 236, 236, 0.5);\n color: #37474F;\n box-shadow: 0.25em 0 0 rgba(236, 236, 236, 0.5), -0.25em 0 0 rgba(236, 236, 236, 0.5); }\n .md-typeset .critic.comment::before {\n padding-right: 0.125em;\n color: rgba(0, 0, 0, 0.26);\n content: \"\\E0B7\";\n vertical-align: -0.125em; }\n\n.md-typeset .critic.block {\n display: block;\n margin: 1em 0;\n padding-right: 0.8rem;\n padding-left: 0.8rem;\n box-shadow: none; }\n .md-typeset .critic.block :first-child {\n margin-top: 0.5em; }\n .md-typeset .critic.block :last-child {\n margin-bottom: 0.5em; }\n\n.md-typeset details {\n display: block;\n padding-top: 0; }\n .md-typeset details[open] > summary::after {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n .md-typeset details:not([open]) {\n padding-bottom: 0; }\n .md-typeset details:not([open]) > summary {\n border-bottom: none; }\n .md-typeset details summary {\n position: relative;\n padding-right: 2rem; }\n [dir=\"rtl\"] .md-typeset details summary {\n padding-left: 2rem; }\n .no-details .md-typeset details:not([open]) > * {\n display: none; }\n .no-details .md-typeset details:not([open]) summary {\n display: block; }\n\n.md-typeset summary {\n display: block;\n outline: none;\n cursor: pointer; }\n .md-typeset summary::-webkit-details-marker {\n display: none; }\n .md-typeset summary::after {\n position: absolute;\n top: 0.4rem;\n right: 0.6rem;\n color: rgba(0, 0, 0, 0.26);\n font-size: 1rem;\n content: \"\\E313\"; }\n [dir=\"rtl\"] .md-typeset summary::after {\n right: initial;\n left: 0.6rem; }\n\n.md-typeset .emojione,\n.md-typeset .twemoji,\n.md-typeset .gemoji {\n width: 1rem;\n vertical-align: text-top; }\n\n.md-typeset code.codehilite, .md-typeset code.highlight {\n margin: 0 0.29412em;\n padding: 0.07353em 0; }\n\n.md-typeset .superfences-content {\n display: none;\n -webkit-box-ordinal-group: 100;\n order: 99;\n width: 100%;\n background-color: white; }\n .md-typeset .superfences-content pre {\n margin: 0;\n border-radius: 0; }\n\n.md-typeset .superfences-tabs {\n display: -webkit-box;\n display: flex;\n position: relative;\n flex-wrap: wrap;\n margin: 1em 0;\n border: 0.05rem solid rgba(0, 0, 0, 0.07);\n border-radius: 0.2em; }\n .md-typeset .superfences-tabs > input {\n display: none; }\n .md-typeset .superfences-tabs > input:checked + label {\n font-weight: 700; }\n .md-typeset .superfences-tabs > input:checked + label + .superfences-content {\n display: block; }\n .md-typeset .superfences-tabs > label {\n width: auto;\n padding: 0.6rem;\n -webkit-transition: color 0.125s;\n transition: color 0.125s;\n font-size: 0.64rem;\n cursor: pointer; }\n html .md-typeset .superfences-tabs > label:hover {\n color: #536dfe; }\n\n.md-typeset .task-list-item {\n position: relative;\n list-style-type: none; }\n .md-typeset .task-list-item [type=\"checkbox\"] {\n position: absolute;\n top: 0.45em;\n left: -2em; }\n [dir=\"rtl\"] .md-typeset .task-list-item [type=\"checkbox\"] {\n right: -2em;\n left: initial; }\n\n.md-typeset .task-list-control .task-list-indicator::before {\n position: absolute;\n top: 0.15em;\n left: -1.25em;\n color: rgba(0, 0, 0, 0.26);\n font-size: 1.25em;\n content: \"\\E835\";\n vertical-align: -0.25em; }\n [dir=\"rtl\"] .md-typeset .task-list-control .task-list-indicator::before {\n right: -1.25em;\n left: initial; }\n\n.md-typeset .task-list-control [type=\"checkbox\"]:checked + .task-list-indicator::before {\n content: \"\\E834\"; }\n\n.md-typeset .task-list-control [type=\"checkbox\"] {\n opacity: 0;\n z-index: -1; }\n\n@media print {\n .md-typeset a::after {\n color: rgba(0, 0, 0, 0.54);\n content: \" [\" attr(href) \"]\"; }\n .md-typeset code,\n .md-typeset pre {\n white-space: pre-wrap; }\n .md-typeset code {\n box-shadow: none;\n -webkit-box-decoration-break: initial;\n box-decoration-break: initial; }\n .md-clipboard {\n display: none; }\n .md-content__icon {\n display: none; }\n .md-header {\n display: none; }\n .md-footer {\n display: none; }\n .md-sidebar {\n display: none; }\n .md-tabs {\n display: none; }\n .md-typeset .headerlink {\n display: none; } }\n\n@media only screen and (max-width: 44.9375em) {\n .md-typeset > pre {\n margin: 1em -0.8rem;\n border-radius: 0; }\n .md-typeset > pre > code {\n padding: 0.525rem 0.8rem; }\n .md-footer-nav__link--prev .md-footer-nav__title {\n display: none; }\n .md-search-result__teaser {\n max-height: 2.5rem;\n -webkit-line-clamp: 3; }\n .codehilite .hll, .md-typeset .highlight .hll {\n margin: 0 -0.8rem;\n padding: 0 0.8rem; }\n .md-typeset > .codehilite, .md-typeset > .highlight {\n margin: 1em -0.8rem; }\n .md-typeset > .codehilite code, .md-typeset > .highlight code {\n padding: 0.525rem 0.8rem; }\n .md-typeset > .codehilitetable, .md-typeset > .highlighttable {\n margin: 1em -0.8rem;\n border-radius: 0; }\n .md-typeset > .codehilitetable .linenodiv, .md-typeset > .highlighttable .linenodiv {\n padding: 0.5rem 0.8rem; }\n .md-typeset > p > .MJXc-display {\n margin: 0.75em -0.8rem;\n padding: 0.25em 0.8rem; }\n .md-typeset > .superfences-tabs {\n margin: 1em -0.8rem;\n border: 0;\n border-top: 0.05rem solid rgba(0, 0, 0, 0.07);\n border-radius: 0; }\n .md-typeset > .superfences-tabs code {\n padding: 0.525rem 0.8rem; }\n .md-typeset > .superfences-tabs input:first-child + label {\n margin-left: 0.2rem; } }\n\n@media only screen and (min-width: 100em) {\n html {\n font-size: 137.50%; } }\n\n@media only screen and (min-width: 125em) {\n html {\n font-size: 150%; } }\n\n@media only screen and (max-width: 59.9375em) {\n body[data-md-state=\"lock\"] {\n overflow: hidden; }\n .ios body[data-md-state=\"lock\"] .md-container {\n display: none; }\n html .md-nav__link[for=\"__toc\"] {\n display: block;\n padding-right: 2.4rem; }\n html .md-nav__link[for=\"__toc\"]::after {\n color: inherit;\n content: \"\\E8DE\"; }\n html .md-nav__link[for=\"__toc\"] + .md-nav__link {\n display: none; }\n html .md-nav__link[for=\"__toc\"] ~ .md-nav {\n display: -webkit-box;\n display: flex; }\n html [dir=\"rtl\"] .md-nav__link {\n padding-right: 0.8rem;\n padding-left: 2.4rem; }\n .md-nav__source {\n display: block;\n padding: 0 0.2rem;\n background-color: rgba(50, 64, 144, 0.9675);\n color: white; }\n .md-search__overlay {\n position: absolute;\n top: 0.2rem;\n left: 0.2rem;\n width: 1.8rem;\n height: 1.8rem;\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transition: opacity 0.2s 0.2s, -webkit-transform 0.3s 0.1s;\n transition: opacity 0.2s 0.2s, -webkit-transform 0.3s 0.1s;\n transition: transform 0.3s 0.1s, opacity 0.2s 0.2s;\n transition: transform 0.3s 0.1s, opacity 0.2s 0.2s, -webkit-transform 0.3s 0.1s;\n border-radius: 1rem;\n background-color: white;\n overflow: hidden;\n pointer-events: none; }\n [dir=\"rtl\"] .md-search__overlay {\n right: 0.2rem;\n left: initial; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__overlay {\n -webkit-transition: opacity 0.1s, -webkit-transform 0.4s;\n transition: opacity 0.1s, -webkit-transform 0.4s;\n transition: transform 0.4s, opacity 0.1s;\n transition: transform 0.4s, opacity 0.1s, -webkit-transform 0.4s;\n opacity: 1; }\n .md-search__inner {\n position: fixed;\n top: 0;\n left: 100%;\n width: 100%;\n height: 100%;\n -webkit-transform: translateX(5%);\n transform: translateX(5%);\n -webkit-transition: right 0s 0.3s, left 0s 0.3s, opacity 0.15s 0.15s, -webkit-transform 0.15s 0.15s cubic-bezier(0.4, 0, 0.2, 1);\n transition: right 0s 0.3s, left 0s 0.3s, opacity 0.15s 0.15s, -webkit-transform 0.15s 0.15s cubic-bezier(0.4, 0, 0.2, 1);\n transition: right 0s 0.3s, left 0s 0.3s, transform 0.15s 0.15s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.15s 0.15s;\n transition: right 0s 0.3s, left 0s 0.3s, transform 0.15s 0.15s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.15s 0.15s, -webkit-transform 0.15s 0.15s cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n z-index: 2; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__inner {\n left: 0;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n -webkit-transition: right 0s 0s, left 0s 0s, opacity 0.15s 0.15s, -webkit-transform 0.15s 0.15s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: right 0s 0s, left 0s 0s, opacity 0.15s 0.15s, -webkit-transform 0.15s 0.15s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: right 0s 0s, left 0s 0s, transform 0.15s 0.15s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s 0.15s;\n transition: right 0s 0s, left 0s 0s, transform 0.15s 0.15s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.15s 0.15s, -webkit-transform 0.15s 0.15s cubic-bezier(0.1, 0.7, 0.1, 1);\n opacity: 1; }\n [dir=\"rtl\"] [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__inner {\n right: 0;\n left: initial; }\n html [dir=\"rtl\"] .md-search__inner {\n right: 100%;\n left: initial;\n -webkit-transform: translateX(-5%);\n transform: translateX(-5%); }\n .md-search__input {\n width: 100%;\n height: 2.4rem;\n font-size: 0.9rem; }\n .md-search__icon[for=\"__search\"] {\n top: 0.6rem;\n left: 0.8rem; }\n .md-search__icon[for=\"__search\"][for=\"__search\"]::before {\n content: \"\\E5C4\"; }\n [dir=\"rtl\"] .md-search__icon[for=\"__search\"][for=\"__search\"]::before {\n content: \"\\E5C8\"; }\n .md-search__icon[type=\"reset\"] {\n top: 0.6rem;\n right: 0.8rem; }\n .md-search__output {\n top: 2.4rem;\n bottom: 0; }\n .md-search-result__article--document::before {\n display: none; } }\n\n@media only screen and (max-width: 76.1875em) {\n [data-md-toggle=\"drawer\"]:checked ~ .md-overlay {\n width: 100%;\n height: 100%;\n -webkit-transition: width 0s, height 0s, opacity 0.25s;\n transition: width 0s, height 0s, opacity 0.25s;\n opacity: 1; }\n .md-header-nav__button.md-icon--home, .md-header-nav__button.md-logo {\n display: none; }\n .md-hero__inner {\n margin-top: 2.4rem;\n margin-bottom: 1.2rem; }\n .md-nav {\n background-color: white; }\n .md-nav--primary,\n .md-nav--primary .md-nav {\n display: -webkit-box;\n display: flex;\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n flex-direction: column;\n height: 100%;\n z-index: 1; }\n .md-nav--primary .md-nav__title,\n .md-nav--primary .md-nav__item {\n font-size: 0.8rem;\n line-height: 1.5; }\n html .md-nav--primary .md-nav__title {\n position: relative;\n height: 5.6rem;\n padding: 3rem 0.8rem 0.2rem;\n background-color: rgba(0, 0, 0, 0.07);\n color: rgba(0, 0, 0, 0.54);\n font-weight: 400;\n line-height: 2.4rem;\n white-space: nowrap;\n cursor: pointer; }\n html .md-nav--primary .md-nav__title::before {\n display: block;\n position: absolute;\n top: 0.2rem;\n left: 0.2rem;\n width: 2rem;\n height: 2rem;\n color: rgba(0, 0, 0, 0.54); }\n html .md-nav--primary .md-nav__title ~ .md-nav__list {\n background-color: white;\n box-shadow: 0 0.05rem 0 rgba(0, 0, 0, 0.07) inset; }\n html .md-nav--primary .md-nav__title ~ .md-nav__list > .md-nav__item:first-child {\n border-top: 0; }\n html .md-nav--primary .md-nav__title--site {\n position: relative;\n background-color: #3f51b5;\n color: white; }\n html .md-nav--primary .md-nav__title--site .md-nav__button {\n display: block;\n position: absolute;\n top: 0.2rem;\n left: 0.2rem;\n width: 3.2rem;\n height: 3.2rem;\n font-size: 2.4rem; }\n html .md-nav--primary .md-nav__title--site::before {\n display: none; }\n html [dir=\"rtl\"] .md-nav--primary .md-nav__title::before {\n right: 0.2rem;\n left: initial; }\n html [dir=\"rtl\"] .md-nav--primary .md-nav__title--site .md-nav__button {\n right: 0.2rem;\n left: initial; }\n .md-nav--primary .md-nav__list {\n -webkit-box-flex: 1;\n flex: 1;\n overflow-y: auto; }\n .md-nav--primary .md-nav__item {\n padding: 0;\n border-top: 0.05rem solid rgba(0, 0, 0, 0.07); }\n [dir=\"rtl\"] .md-nav--primary .md-nav__item {\n padding: 0; }\n .md-nav--primary .md-nav__item--nested > .md-nav__link {\n padding-right: 2.4rem; }\n [dir=\"rtl\"] .md-nav--primary .md-nav__item--nested > .md-nav__link {\n padding-right: 0.8rem;\n padding-left: 2.4rem; }\n .md-nav--primary .md-nav__item--nested > .md-nav__link::after {\n content: \"\\E315\"; }\n [dir=\"rtl\"] .md-nav--primary .md-nav__item--nested > .md-nav__link::after {\n content: \"\\E314\"; }\n .md-nav--primary .md-nav__link {\n position: relative;\n margin-top: 0;\n padding: 0.6rem 0.8rem; }\n .md-nav--primary .md-nav__link::after {\n position: absolute;\n top: 50%;\n right: 0.6rem;\n margin-top: -0.6rem;\n color: inherit;\n font-size: 1.2rem; }\n [dir=\"rtl\"] .md-nav--primary .md-nav__link::after {\n right: initial;\n left: 0.6rem; }\n .md-nav--primary .md-nav--secondary .md-nav__link {\n position: static; }\n .md-nav--primary .md-nav--secondary .md-nav {\n position: static;\n background-color: transparent; }\n .md-nav--primary .md-nav--secondary .md-nav .md-nav__link {\n padding-left: 1.4rem; }\n [dir=\"rtl\"] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link {\n padding-right: 1.4rem;\n padding-left: initial; }\n .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link {\n padding-left: 2rem; }\n [dir=\"rtl\"] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link {\n padding-right: 2rem;\n padding-left: initial; }\n .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link {\n padding-left: 2.6rem; }\n [dir=\"rtl\"] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link {\n padding-right: 2.6rem;\n padding-left: initial; }\n .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link {\n padding-left: 3.2rem; }\n [dir=\"rtl\"] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link {\n padding-right: 3.2rem;\n padding-left: initial; }\n .md-nav__toggle ~ .md-nav {\n display: -webkit-box;\n display: flex;\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n -webkit-transition: opacity 0.125s 0.05s, -webkit-transform 0.25s cubic-bezier(0.8, 0, 0.6, 1);\n transition: opacity 0.125s 0.05s, -webkit-transform 0.25s cubic-bezier(0.8, 0, 0.6, 1);\n transition: transform 0.25s cubic-bezier(0.8, 0, 0.6, 1), opacity 0.125s 0.05s;\n transition: transform 0.25s cubic-bezier(0.8, 0, 0.6, 1), opacity 0.125s 0.05s, -webkit-transform 0.25s cubic-bezier(0.8, 0, 0.6, 1);\n opacity: 0; }\n [dir=\"rtl\"] .md-nav__toggle ~ .md-nav {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%); }\n .no-csstransforms3d .md-nav__toggle ~ .md-nav {\n display: none; }\n .md-nav__toggle:checked ~ .md-nav {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n -webkit-transition: opacity 0.125s 0.125s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n transition: opacity 0.125s 0.125s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.125s 0.125s;\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.125s 0.125s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 1; }\n .no-csstransforms3d .md-nav__toggle:checked ~ .md-nav {\n display: -webkit-box;\n display: flex; }\n .md-sidebar--primary {\n position: fixed;\n top: 0;\n left: -12.1rem;\n width: 12.1rem;\n height: 100%;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n -webkit-transition: box-shadow 0.25s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n transition: box-shadow 0.25s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s;\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s, -webkit-transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n background-color: white;\n z-index: 3; }\n [dir=\"rtl\"] .md-sidebar--primary {\n right: -12.1rem;\n left: initial; }\n .no-csstransforms3d .md-sidebar--primary {\n display: none; }\n [data-md-toggle=\"drawer\"]:checked ~ .md-container .md-sidebar--primary {\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.4);\n -webkit-transform: translateX(12.1rem);\n transform: translateX(12.1rem); }\n [dir=\"rtl\"] [data-md-toggle=\"drawer\"]:checked ~ .md-container .md-sidebar--primary {\n -webkit-transform: translateX(-12.1rem);\n transform: translateX(-12.1rem); }\n .no-csstransforms3d [data-md-toggle=\"drawer\"]:checked ~ .md-container .md-sidebar--primary {\n display: block; }\n .md-sidebar--primary .md-sidebar__scrollwrap {\n overflow: hidden; }\n .md-sidebar--primary .md-sidebar__scrollwrap {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: 0; }\n .md-tabs {\n display: none; } }\n\n@media only screen and (min-width: 60em) {\n .md-content {\n margin-right: 12.1rem; }\n [dir=\"rtl\"] .md-content {\n margin-right: initial;\n margin-left: 12.1rem; }\n .md-header-nav__button.md-icon--search {\n display: none; }\n .md-header-nav__source {\n display: block;\n width: 11.7rem;\n max-width: 11.7rem;\n padding-right: 0.6rem; }\n [dir=\"rtl\"] .md-header-nav__source {\n padding-right: initial;\n padding-left: 0.6rem; }\n .md-search {\n padding: 0.2rem; }\n .md-search__overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n -webkit-transition: width 0s 0.25s, height 0s 0.25s, opacity 0.25s;\n transition: width 0s 0.25s, height 0s 0.25s, opacity 0.25s;\n background-color: rgba(0, 0, 0, 0.54);\n cursor: pointer; }\n [dir=\"rtl\"] .md-search__overlay {\n right: 0;\n left: initial; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__overlay {\n width: 100%;\n height: 100%;\n -webkit-transition: width 0s, height 0s, opacity 0.25s;\n transition: width 0s, height 0s, opacity 0.25s;\n opacity: 1; }\n .md-search__inner {\n position: relative;\n width: 11.5rem;\n margin-right: 0.8rem;\n padding: 0.1rem 0;\n float: right;\n -webkit-transition: width 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: width 0.25s cubic-bezier(0.1, 0.7, 0.1, 1); }\n [dir=\"rtl\"] .md-search__inner {\n margin-right: initial;\n margin-left: 0.8rem;\n float: left; }\n .md-search__form {\n border-radius: 0.1rem; }\n .md-search__input {\n width: 100%;\n height: 1.8rem;\n padding-left: 2.2rem;\n -webkit-transition: background-color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1), color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n transition: background-color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1), color 0.25s cubic-bezier(0.1, 0.7, 0.1, 1);\n border-radius: 0.1rem;\n background-color: rgba(0, 0, 0, 0.26);\n color: inherit;\n font-size: 0.8rem; }\n [dir=\"rtl\"] .md-search__input {\n padding-right: 2.2rem; }\n .md-search__input + .md-search__icon {\n color: inherit; }\n .md-search__input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.7); }\n .md-search__input::-moz-placeholder {\n color: rgba(255, 255, 255, 0.7); }\n .md-search__input:-ms-input-placeholder {\n color: rgba(255, 255, 255, 0.7); }\n .md-search__input::-ms-input-placeholder {\n color: rgba(255, 255, 255, 0.7); }\n .md-search__input::placeholder {\n color: rgba(255, 255, 255, 0.7); }\n .md-search__input:hover {\n background-color: rgba(255, 255, 255, 0.12); }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input {\n border-radius: 0.1rem 0.1rem 0 0;\n background-color: white;\n color: rgba(0, 0, 0, 0.87);\n text-overflow: clip; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input::-moz-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input:-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input::-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.54); }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input + .md-search__icon, [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__input::placeholder {\n color: rgba(0, 0, 0, 0.54); }\n .md-search__output {\n top: 1.9rem;\n -webkit-transition: opacity 0.4s;\n transition: opacity 0.4s;\n opacity: 0; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__output {\n box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.4);\n opacity: 1; }\n .md-search__scrollwrap {\n max-height: 0; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__scrollwrap {\n max-height: 75vh; }\n .md-search__scrollwrap::-webkit-scrollbar {\n width: 0.2rem;\n height: 0.2rem; }\n .md-search__scrollwrap::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.26); }\n .md-search__scrollwrap::-webkit-scrollbar-thumb:hover {\n background-color: #536dfe; }\n .md-search-result__meta {\n padding-left: 2.2rem; }\n [dir=\"rtl\"] .md-search-result__meta {\n padding-right: 2.2rem;\n padding-left: initial; }\n .md-search-result__article {\n padding-left: 2.2rem; }\n [dir=\"rtl\"] .md-search-result__article {\n padding-right: 2.2rem;\n padding-left: 0.8rem; }\n .md-sidebar--secondary {\n display: block;\n margin-left: calc(100% - 12.1rem); }\n [dir=\"rtl\"] .md-sidebar--secondary {\n margin-right: calc(100% - 12.1rem);\n margin-left: initial; }\n .md-sidebar--secondary .md-sidebar__scrollwrap {\n -webkit-overflow-scrolling: touch; } }\n\n@media only screen and (min-width: 76.25em) {\n .md-content {\n margin-left: 12.1rem; }\n [dir=\"rtl\"] .md-content {\n margin-right: 12.1rem; }\n .md-content__inner {\n margin-right: 1.2rem;\n margin-left: 1.2rem; }\n .md-header-nav__button.md-icon--menu {\n display: none; }\n .md-nav {\n -webkit-transition: max-height 0.25s cubic-bezier(0.86, 0, 0.07, 1);\n transition: max-height 0.25s cubic-bezier(0.86, 0, 0.07, 1); }\n .md-nav__toggle ~ .md-nav {\n max-height: 0;\n overflow: hidden; }\n .no-js .md-nav__toggle ~ .md-nav {\n display: none; }\n .md-nav__toggle:checked ~ .md-nav {\n max-height: 100%; }\n .md-nav__item--nested > .md-nav > .md-nav__title {\n display: none; }\n .md-nav__item--nested > .md-nav__link::after {\n display: inline-block;\n -webkit-transform-origin: 0.45em 0.45em;\n transform-origin: 0.45em 0.45em;\n -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d;\n vertical-align: -0.125em; }\n .js .md-nav__item--nested > .md-nav__link::after {\n -webkit-transition: -webkit-transform 0.4s;\n transition: -webkit-transform 0.4s;\n transition: transform 0.4s;\n transition: transform 0.4s, -webkit-transform 0.4s; }\n .md-nav__item--nested .md-nav__toggle:checked ~ .md-nav__link::after {\n -webkit-transform: rotateX(180deg);\n transform: rotateX(180deg); }\n .md-search__inner {\n margin-right: 1.2rem; }\n [dir=\"rtl\"] .md-search__inner {\n margin-left: 1.2rem; }\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__inner {\n width: 34.4rem; }\n .md-search__scrollwrap {\n width: 34.4rem; }\n .md-sidebar--secondary {\n margin-left: 48.9rem; }\n [dir=\"rtl\"] .md-sidebar--secondary {\n margin-right: 48.9rem;\n margin-left: initial; }\n .md-tabs ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--nested {\n font-size: 0;\n visibility: hidden; }\n .md-tabs--active ~ .md-main .md-nav--primary .md-nav__title {\n display: block;\n padding: 0; }\n .md-tabs--active ~ .md-main .md-nav--primary .md-nav__title--site {\n display: none; }\n .no-js .md-tabs--active ~ .md-main .md-nav--primary .md-nav {\n display: block; }\n .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item {\n font-size: 0;\n visibility: hidden; }\n .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--nested {\n display: none;\n font-size: 0.7rem;\n overflow: auto;\n visibility: visible; }\n .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--nested > .md-nav__link {\n display: none; }\n .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--active {\n display: block; }\n .md-tabs--active ~ .md-main .md-nav[data-md-level=\"1\"] {\n max-height: initial;\n overflow: visible; }\n .md-tabs--active ~ .md-main .md-nav[data-md-level=\"1\"] > .md-nav__list > .md-nav__item {\n padding-left: 0; }\n .md-tabs--active ~ .md-main .md-nav[data-md-level=\"1\"] .md-nav .md-nav__title {\n display: none; } }\n\n@media only screen and (min-width: 45em) {\n .md-footer-nav__link {\n width: 50%; }\n .md-footer-copyright {\n max-width: 75%;\n float: left; }\n [dir=\"rtl\"] .md-footer-copyright {\n float: right; }\n .md-footer-social {\n padding: 0.6rem 0;\n float: right; }\n [dir=\"rtl\"] .md-footer-social {\n float: left; } }\n\n@media only screen and (max-width: 29.9375em) {\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__overlay {\n -webkit-transform: scale(45);\n transform: scale(45); } }\n\n@media only screen and (min-width: 30em) and (max-width: 44.9375em) {\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__overlay {\n -webkit-transform: scale(60);\n transform: scale(60); } }\n\n@media only screen and (min-width: 45em) and (max-width: 59.9375em) {\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__overlay {\n -webkit-transform: scale(75);\n transform: scale(75); } }\n\n@media only screen and (min-width: 60em) and (max-width: 76.1875em) {\n [data-md-toggle=\"search\"]:checked ~ .md-header .md-search__inner {\n width: 23.4rem; }\n .md-search__scrollwrap {\n width: 23.4rem; }\n .md-search-result__teaser {\n max-height: 2.5rem;\n -webkit-line-clamp: 3; } }\n\n@media (-webkit-max-device-pixel-ratio: 1), (max-resolution: 1dppx) {\n .md-search__scrollwrap {\n -webkit-transform: translateZ(0);\n transform: translateZ(0); } }\n/*# sourceMappingURL=app.css.map */",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]} \ No newline at end of file diff --git a/material/mkdocs_theme.yml b/material/mkdocs_theme.yml index 2d1a05f83..0ef3b0bd9 100644 --- a/material/mkdocs_theme.yml +++ b/material/mkdocs_theme.yml @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2019 Martin Donath +# Copyright (c) 2016-2020 Martin Donath # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to diff --git a/material/partials/language/ja.html b/material/partials/language/ja.html index 5d86079ec..f280341e5 100644 --- a/material/partials/language/ja.html +++ b/material/partials/language/ja.html @@ -18,6 +18,6 @@ "search.result.other": "#件見つかりました", "search.tokenizer": "[\s\- 、。,.]+", "source.link.title": "リポジトリへ", - "source.revision.date": "最後の更新", + "source.revision.date": "最終更新日", "toc.title": "目次" }[key] }}{% endmacro %} diff --git a/material/partials/language/ro.html b/material/partials/language/ro.html new file mode 100644 index 000000000..8794aeb62 --- /dev/null +++ b/material/partials/language/ro.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "ro", + "clipboard.copy": "Copiază în clipboard", + "clipboard.copied": "Copiat în clipboard", + "edit.link.title": "Editeaza această pagină", + "footer.previous": "Anterior", + "footer.next": "Următor", + "meta.comments": "Comentarii", + "meta.source": "Sursă", + "search.language": "ro", + "search.placeholder": "Căutare", + "search.result.placeholder": "Tastează pentru a începe căutarea", + "search.result.none": "Nu a fost găsit niciun document", + "search.result.one": "1 document găsit", + "search.result.other": "# documente găsite", + "skip.link.title": "Sari la conținut", + "source.link.title": "Accesează repository-ul", + "source.revision.date": "Ultima actualizare", + "toc.title": "Cuprins" +}[key] }}{% endmacro %} diff --git a/mkdocs.yml b/mkdocs.yml index 0fe07c413..06d80a365 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2019 Martin Donath +# Copyright (c) 2016-2020 Martin Donath # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to @@ -30,7 +30,7 @@ repo_url: https://github.com/squidfunk/mkdocs-material edit_uri: "" # Copyright -copyright: 'Copyright © 2016 - 2019 Martin Donath' +copyright: 'Copyright © 2016 - 2020 Martin Donath' # Configuration theme: diff --git a/requirements.txt b/requirements.txt index 006c2fd9e..04734ebfa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2019 Martin Donath +# Copyright (c) 2016-2020 Martin Donath # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to @@ -19,8 +19,8 @@ # IN THE SOFTWARE. # Direct dependencies -mkdocs>=1 +mkdocs>=1.0 mkdocs-minify-plugin>=0.2 Pygments>=2.2 -markdown<3.2 -pymdown-extensions>=6.2,<6.3 +markdown>=3.2 +pymdown-extensions>=6.3 diff --git a/setup.py b/setup.py index f7bfae5e0..63cc1d3bf 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2019 Martin Donath +# Copyright (c) 2016-2020 Martin Donath # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to diff --git a/src/404.html b/src/404.html index b4379e632..3ffece839 100644 --- a/src/404.html +++ b/src/404.html @@ -1,5 +1,5 @@ + + +{% macro t(key) %}{{ { + "language": "ro", + "clipboard.copy": "Copiază în clipboard", + "clipboard.copied": "Copiat în clipboard", + "edit.link.title": "Editeaza această pagină", + "footer.previous": "Anterior", + "footer.next": "Următor", + "meta.comments": "Comentarii", + "meta.source": "Sursă", + "search.language": "ro", + "search.placeholder": "Căutare", + "search.result.placeholder": "Tastează pentru a începe căutarea", + "search.result.none": "Nu a fost găsit niciun document", + "search.result.one": "1 document găsit", + "search.result.other": "# documente găsite", + "skip.link.title": "Sari la conținut", + "source.link.title": "Accesează repository-ul", + "source.revision.date": "Ultima actualizare", + "toc.title": "Cuprins" +}[key] }}{% endmacro %} diff --git a/src/partials/language/ru.html b/src/partials/language/ru.html index 4d1c6c812..705cc8b45 100644 --- a/src/partials/language/ru.html +++ b/src/partials/language/ru.html @@ -1,5 +1,5 @@