{"version":3,"sources":["webpack:///./node_modules/diffie-hellman/browser.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/browserify-aes/modes/ecb.js","webpack:///./node_modules/des.js/lib/des/cipher.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/index.js","webpack:///./node_modules/vuelidate/lib/params.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/lodash.isboolean/index.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/vm-browserify/index.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/sha.js/sha.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/core-js/modules/es7.promise.finally.js","webpack:///./node_modules/browserify-aes/streamCipher.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/browserify-des/modes.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/elliptic/lib/elliptic/curves.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/des.js/lib/des/cbc.js","webpack:///./node_modules/jws/lib/tostring.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/jsonwebtoken/verify.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/public-encrypt/privateDecrypt.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/vue-maskedinput/dist/vue-maskedinput.common.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/browserify-sign/algos.js","webpack:///./node_modules/randombytes/browser.js","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/ms/index.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/jsonwebtoken/index.js","webpack:///./node_modules/des.js/lib/des.js","webpack:///./node_modules/jws/lib/verify-stream.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/create-hmac/browser.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/crypto-browserify/index.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/vuelidate/lib/index.js","webpack:///./node_modules/browserify-des/index.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/des.js/lib/des/ede.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/pbkdf2/lib/async.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/index.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/fullcalendar/dist/fullcalendar.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/jsonwebtoken/sign.js","webpack:///./node_modules/vue-full-calendar/components/FullCalendar.vue?67be","webpack:///node_modules/vue-full-calendar/components/FullCalendar.vue","webpack:///./node_modules/vue-full-calendar/components/FullCalendar.vue?f122","webpack:///./node_modules/vue-full-calendar/components/FullCalendar.vue","webpack:///./node_modules/vue-full-calendar/index.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/vue-resource/dist/vue-resource.esm.js","webpack:///./node_modules/jsonwebtoken/lib/JsonWebTokenError.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/parse-asn1/index.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/portal-vue/dist/portal-vue.common.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/vuex/dist/vuex.esm.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///./node_modules/elliptic/lib/elliptic.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/jws/index.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/index.js","webpack:///./node_modules/browserify-aes/modes/cfb.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/der.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/jsonwebtoken/decode.js","webpack:///./node_modules/bn.js/lib/bn.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/browserify-aes/aes.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/sweetalert2/dist/sweetalert2.all.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/browserify-aes/ghash.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/@chenfengyuan/vue-countdown/dist/vue-countdown.js","webpack:///./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack:///./node_modules/parse-asn1/asn1.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/asn1.js/lib/asn1/base/index.js","webpack:///./node_modules/browserify-aes/decrypter.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/vue-event-calendar/dist/index.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/vue-select/dist/vue-select.js","webpack:///./node_modules/vue-custom-scrollbar/dist/vueScrollbar.umd.min.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/lodash.isinteger/index.js","webpack:///./node_modules/parse-asn1/fixProc.js","webpack:///./node_modules/des.js/lib/des/des.js","webpack:///./node_modules/sha.js/sha512.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/browserify-aes/modes/ofb.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/browserify-aes/modes/cfb1.js","webpack:///./node_modules/public-encrypt/withPublic.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/inputmask-core/lib/index.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/diffie-hellman/lib/dh.js","webpack:///./node_modules/parse-asn1/certificate.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/vue-sweetalert2/dist/index.js","webpack:///./node_modules/diffie-hellman/lib/generatePrime.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/lodash.defaultsdeep/index.js","webpack:///./node_modules/create-hash/md5.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/flatted/esm/index.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/des.js/lib/des/utils.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/bootstrap-vue/esm/utils/vue.js","webpack:///./node_modules/bootstrap-vue/esm/utils/warn.js","webpack:///./node_modules/bootstrap-vue/esm/utils/array.js","webpack:///./node_modules/bootstrap-vue/esm/utils/object.js","webpack:///./node_modules/bootstrap-vue/esm/utils/clone-deep.js","webpack:///./node_modules/bootstrap-vue/esm/utils/get.js","webpack:///./node_modules/bootstrap-vue/esm/utils/inspect.js","webpack:///./node_modules/bootstrap-vue/esm/utils/config-defaults.js","webpack:///./node_modules/bootstrap-vue/esm/utils/config-set.js","webpack:///./node_modules/bootstrap-vue/esm/utils/plugins.js","webpack:///./node_modules/bootstrap-vue/esm/utils/memoize.js","webpack:///./node_modules/bootstrap-vue/esm/utils/config.js","webpack:///./node_modules/bootstrap-vue/esm/utils/dom.js","webpack:///./node_modules/vue-functional-data-merge/dist/lib.esm.js","webpack:///./node_modules/bootstrap-vue/esm/utils/bv-transition.js","webpack:///./node_modules/bootstrap-vue/esm/utils/normalize-slot.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/normalize-slot.js","webpack:///./node_modules/bootstrap-vue/esm/components/button/button-close.js","webpack:///./node_modules/bootstrap-vue/esm/components/alert/alert.js","webpack:///./node_modules/bootstrap-vue/esm/components/alert/index.js","webpack:///./node_modules/bootstrap-vue/esm/utils/identity.js","webpack:///./node_modules/bootstrap-vue/esm/utils/pluck-props.js","webpack:///./node_modules/bootstrap-vue/esm/utils/to-string.js","webpack:///./node_modules/bootstrap-vue/esm/utils/router.js","webpack:///./node_modules/bootstrap-vue/esm/components/link/link.js","webpack:///./node_modules/bootstrap-vue/esm/components/badge/badge.js","webpack:///./node_modules/bootstrap-vue/esm/components/badge/index.js","webpack:///./node_modules/bootstrap-vue/esm/utils/html.js","webpack:///./node_modules/bootstrap-vue/esm/components/breadcrumb/breadcrumb-link.js","webpack:///./node_modules/bootstrap-vue/esm/components/breadcrumb/breadcrumb-item.js","webpack:///./node_modules/bootstrap-vue/esm/components/breadcrumb/breadcrumb.js","webpack:///./node_modules/bootstrap-vue/esm/components/breadcrumb/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/button/button.js","webpack:///./node_modules/bootstrap-vue/esm/components/button/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/button-group/button-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/button-group/index.js","webpack:///./node_modules/bootstrap-vue/esm/utils/key-codes.js","webpack:///./node_modules/bootstrap-vue/esm/components/button-toolbar/button-toolbar.js","webpack:///./node_modules/bootstrap-vue/esm/components/button-toolbar/index.js","webpack:///./node_modules/bootstrap-vue/esm/utils/upper-first.js","webpack:///./node_modules/bootstrap-vue/esm/utils/prefix-prop-name.js","webpack:///./node_modules/bootstrap-vue/esm/utils/lower-first.js","webpack:///./node_modules/bootstrap-vue/esm/utils/unprefix-prop-name.js","webpack:///./node_modules/bootstrap-vue/esm/utils/copy-props.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card.js","webpack:///./node_modules/bootstrap-vue/esm/utils/loose-equal.js","webpack:///./node_modules/bootstrap-vue/esm/directives/visible.js","webpack:///./node_modules/bootstrap-vue/esm/components/image/img.js","webpack:///./node_modules/bootstrap-vue/esm/components/image/img-lazy.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img-lazy.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/index.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js","webpack:///./node_modules/bootstrap-vue/esm/utils/observe-dom.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/id.js","webpack:///./node_modules/bootstrap-vue/esm/components/carousel/carousel.js","webpack:///./node_modules/bootstrap-vue/esm/components/carousel/carousel-slide.js","webpack:///./node_modules/bootstrap-vue/esm/components/carousel/index.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/listen-on-root.js","webpack:///./node_modules/bootstrap-vue/esm/components/collapse/collapse.js","webpack:///./node_modules/bootstrap-vue/esm/utils/target.js","webpack:///./node_modules/bootstrap-vue/esm/directives/toggle/toggle.js","webpack:///./node_modules/bootstrap-vue/esm/components/collapse/index.js","webpack:///./node_modules/bootstrap-vue/esm/utils/safe-types.js","webpack:///./node_modules/bootstrap-vue/esm/utils/bv-event.class.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item-button.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-header.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-divider.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-form.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/embed/embed.js","webpack:///./node_modules/bootstrap-vue/esm/components/embed/index.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-options.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-datalist.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-invalid-feedback.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-valid-feedback.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/form-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/index.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-state.js","webpack:///./node_modules/bootstrap-vue/esm/utils/suffix-prop-name.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/col.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-group/form-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-group/index.js","webpack:///./node_modules/bootstrap-vue/esm/utils/loose-index-of.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-radio/form-radio.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-radio-check-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-checkbox/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-radio/form-radio-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-radio/index.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-textarea/form-textarea.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-textarea/index.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-file/form-file.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-file/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-select/form-select.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-select/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/image/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-addon.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-prepend.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group-append.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/input-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/input-group/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/container.js","webpack:///./node_modules/bootstrap-vue/esm/components/jumbotron/jumbotron.js","webpack:///./node_modules/bootstrap-vue/esm/components/jumbotron/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/link/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/list-group/list-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/list-group/list-group-item.js","webpack:///./node_modules/bootstrap-vue/esm/components/list-group/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-aside.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/index.js","webpack:///./node_modules/bootstrap-vue/esm/utils/transporter.js","webpack:///./node_modules/bootstrap-vue/esm/utils/get-scope-id.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/scoped-style-attrs.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/helpers/modal-manager.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal-event.class.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/modal.js","webpack:///./node_modules/bootstrap-vue/esm/directives/modal/modal.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav-item.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav-form.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav-item-dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/navbar.js","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/navbar-nav.js","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/navbar-brand.js","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/navbar-toggle.js","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/index.js","webpack:///./node_modules/bootstrap-vue/esm/utils/range.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/pagination/pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/pagination/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/pagination-nav/pagination-nav.js","webpack:///./node_modules/bootstrap-vue/esm/components/pagination-nav/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-popper.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip-template.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/tooltip.js","webpack:///./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover-template.js","webpack:///./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover.js","webpack:///./node_modules/bootstrap-vue/esm/components/popover/popover.js","webpack:///./node_modules/bootstrap-vue/esm/directives/popover/popover.js","webpack:///./node_modules/bootstrap-vue/esm/components/popover/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/progress/progress-bar.js","webpack:///./node_modules/bootstrap-vue/esm/components/progress/progress.js","webpack:///./node_modules/bootstrap-vue/esm/components/progress/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/spinner/spinner.js","webpack:///./node_modules/bootstrap-vue/esm/components/spinner/index.js","webpack:///./node_modules/bootstrap-vue/esm/utils/startcase.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/constants.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/normalize-fields.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-items.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-stacked.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/sanitize-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/stringify-object-values.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/stringify-record-values.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-filtering.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/default-sort-compare.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-sorting.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-caption.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/text-selection-active.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/thead.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tr.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/table-cell.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/th.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tbody.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/td.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-empty.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-top-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-bottom-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-busy.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-selectable.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-provider.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-table-renderer.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/table.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/table-lite.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/table-simple.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tabs.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tab.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/toast/toaster.js","webpack:///./node_modules/bootstrap-vue/esm/components/toast/toast.js","webpack:///./node_modules/bootstrap-vue/esm/components/toast/helpers/bv-toast.js","webpack:///./node_modules/bootstrap-vue/esm/components/toast/index.js","webpack:///./node_modules/bootstrap-vue/esm/directives/tooltip/tooltip.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/index.js","webpack:///./node_modules/bootstrap-vue/esm/directives/modal/index.js","webpack:///./node_modules/bootstrap-vue/esm/directives/popover/index.js","webpack:///./node_modules/bootstrap-vue/esm/directives/scrollspy/scrollspy.class.js","webpack:///./node_modules/bootstrap-vue/esm/directives/scrollspy/scrollspy.js","webpack:///./node_modules/bootstrap-vue/esm/directives/scrollspy/index.js","webpack:///./node_modules/bootstrap-vue/esm/directives/toggle/index.js","webpack:///./node_modules/bootstrap-vue/esm/directives/tooltip/index.js","webpack:///./node_modules/bootstrap-vue/esm/directives/index.js","webpack:///./node_modules/bootstrap-vue/esm/index.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/asn1.js/lib/asn1/base/buffer.js","webpack:///./node_modules/browserify-aes/modes/cfb8.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/cipher-base/index.js","webpack:///./node_modules/public-encrypt/browser.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/lodash.isnumber/index.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/sha.js/index.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///./node_modules/browserify-aes/modes/ctr.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./node_modules/jws/lib/sign-stream.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/jsonwebtoken/lib/TokenExpiredError.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/browserify-sign/browser/sign.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/sha.js/sha224.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/vue-currency-filter/dist/VueCurrencyFilter.min.js","webpack:///./node_modules/vue-input-tag/dist/vueInputTag.common.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/randomfill/browser.js","webpack:///./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/jwa/index.js","webpack:///./node_modules/miller-rabin/lib/mr.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/pbkdf2/lib/precondition.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/sha.js/sha1.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/asn1.js/lib/asn1.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/browserify-aes/authCipher.js","webpack:///./node_modules/asn1.js/lib/asn1/base/node.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/public-encrypt/xor.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/browserify-aes/encrypter.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/der.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./node_modules/buffer-xor/index.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/semver/semver.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/bootstrap-vue/esm/utils/env.js","webpack:///./node_modules/hash-base/index.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack:///./node_modules/browserify-cipher/browser.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/browserify-sign/browser/verify.js","webpack:///./node_modules/create-hash/browser.js","webpack:///./node_modules/lodash.isstring/index.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/lodash.includes/index.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/pbkdf2/lib/default-encoding.js","webpack:///./node_modules/pbkdf2/browser.js","webpack:///./node_modules/jws/lib/data-stream.js","webpack:///./node_modules/sha.js/sha256.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack:///./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack:///./node_modules/browserify-rsa/index.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/public-encrypt/publicEncrypt.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/evp_bytestokey/index.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/ripemd160/index.js","webpack:///./node_modules/buffer-equal-constant-time/index.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/sha.js/hash.js","webpack:///./node_modules/browserify-sign/browser/index.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/sha.js/sha384.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///./node_modules/browserify-aes/modes/index.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/vue2-daterange-picker/dist/vue2-daterange-picker.umd.min.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/browserify-aes/incr32.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/vuex-persist/dist/esm/index.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/browserify-aes/modes/cbc.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/moment/locale/he.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/lodash.isplainobject/index.js","webpack:///./node_modules/moment/locale/en-SG.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/der.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/asn1.js/lib/asn1/base/reporter.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/create-hmac/legacy.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/minimalistic-assert/index.js","webpack:///./node_modules/lodash.merge/index.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/vue-gravatar/lib/index.js","webpack:///./node_modules/pbkdf2/lib/sync-browser.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/create-ecdh/browser.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///./node_modules/lodash.once/index.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///./node_modules/vue-notification/dist/index.js","webpack:///./node_modules/jsonwebtoken/lib/psSupported.js","webpack:///./node_modules/asn1.js/lib/asn1/api.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/jsonwebtoken/lib/NotBeforeError.js","webpack:///./node_modules/elliptic/lib/elliptic/utils.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/public-encrypt/mgf.js","webpack:///./node_modules/jsonwebtoken/lib/timespan.js","webpack:///./node_modules/md5.js/index.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/vue-good-table/dist/vue-good-table.esm.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/vuejs-datepicker/dist/vuejs-datepicker.esm.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/vuelidate/lib/vval.js","webpack:///./node_modules/vue-ins-progress-bar/dist/vue-ins-progress-bar.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/browserify-aes/browser.js","webpack:///./node_modules/brorand/index.js","webpack:///./node_modules/moment/locale/se.js"],"names":["primes","DH","getDiffieHellman","mod","prime","Buffer","gen","ENCODINGS","createDiffieHellman","enc","generator","genc","isBuffer","undefined","generatePrime","exports","DiffieHellmanGroup","createDiffieHellmanGroup","DiffieHellman","global","factory","this","moment","uzLatn","defineLocale","months","split","monthsShort","weekdays","weekdaysShort","weekdaysMin","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","y","yy","week","dow","doy","encrypt","self","block","_cipher","encryptBlock","decrypt","decryptBlock","assert","Cipher","options","type","blockSize","_init","buffer","Array","bufferOff","module","prototype","update","data","length","_updateDecrypt","_updateEncrypt","_buffer","off","min","Math","i","_flushBuffer","out","_update","inputOff","outputOff","count","max","ceil","final","first","last","_finalEncrypt","_finalDecrypt","concat","_pad","_unpad","equal","LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","keys","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","methods","key","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","call","Object","name","values","P","F","constants","_reverse","map","res","forEach","value","der","_objectSpread","target","arguments","source","ownKeys","getOwnPropertySymbols","filter","sym","getOwnPropertyDescriptor","enumerable","_defineProperty","obj","defineProperty","configurable","writable","_typeof","Symbol","iterator","constructor","pushParams","popParams","withParams","_setTarget","stack","x","push","lastTarget","newTarget","pop","isArray","$sub","addParams","params","Error","withParamsDirect","validator","withParamsClosure","add","_len","args","_key","apply","closure","_len2","_key2","paramsOrClosure","maybeValidator","toInteger","defined","TO_STRING","that","pos","a","b","String","l","charCodeAt","charAt","slice","ml","monthsParseExact","meridiemParse","meridiemHour","hour","meridiem","minute","isLower","boolTag","objectProto","objectToString","toString","isBoolean","isObjectLike","at","S","index","unicode","cv","output","affix","exec","dayOfMonthOrdinalParse","ordinal","plural","n","translate","number","withoutSuffix","isFuture","result","is","indexOf","xs","item","Object_keys","fn","defineProp","e","globals","Context","Script","code","runInContext","context","TypeError","iframe","document","createElement","style","display","body","appendChild","win","contentWindow","wEval","eval","wExecScript","execScript","winKeys","removeChild","runInThisContext","runInNewContext","ctx","createContext","isContext","createScript","copy","fo","ja","ll","lll","llll","isPM","input","now","period","utils","SHA256","SHA224","inherits","outSize","hmacStrength","padLength","_digest","toHex32","split32","Hash","K","W","Sha","init","_w","rotl5","num","rotl30","ft","c","_a","_b","_c","_d","_e","readInt32BE","j","t","_hash","H","allocUnsafe","writeInt32BE","core","speciesConstructor","promiseResolve","R","onFinally","C","Promise","isFunction","then","aes","Transform","StreamCipher","mode","iv","AES","_prev","from","_cache","_secCache","_decrypt","_mode","chunk","_final","scrub","monthsShortDot","monthsParse","monthsRegex","esDo","format","test","month","monthsShortRegex","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","weekdaysParseExact","hours","arMa","des","des3","anObject","ignoreCase","multiline","sticky","processRelativeTime","gomLatn","pre","curves","hash","curve","PresetCurve","short","edwards","mont","g","validate","mul","isInfinity","defineCurve","get","p","sha256","gRed","sha384","sha512","beta","lambda","basis","$keys","enumBugKeys","O","CBCState","instantiate","CBC","_cbcInit","create","state","_cbcState","inp","inOff","outOff","superProto","super_","JSON","stringify","frCh","enAu","suffixes","1","5","8","70","80","2","7","20","50","3","4","100","6","9","10","30","60","90","tr","JsonWebTokenError","NotBeforeError","TokenExpiredError","decode","timespan","PS_SUPPORTED","jws","PUB_KEY_ALGS","RSA_KEY_ALGS","HS_ALGS","splice","jwtString","secretOrPublicKey","callback","done","assign","err","clockTimestamp","nonce","trim","floor","Date","decodedToken","parts","complete","getSecret","header","secretCallback","message","valid","hasSignature","algorithms","alg","verify","payload","nbf","ignoreNotBefore","clockTolerance","exp","ignoreExpiration","audience","audiences","aud","match","some","targetAudience","RegExp","join","issuer","invalid_issuer","iss","subject","sub","jwtid","jti","maxAge","iat","maxAgeTimestamp","signature","da","parseKeys","mgf","xor","BN","crt","createHash","withPublic","oaep","msg","k","modulus","byteLength","iHash","alloc","digest","hLen","maskedSeed","maskedDb","seed","db","compare","pkcs1","reverse","p1","status","ps","dif","len","privateKey","padding","cmp","zBuffer","tlPh","eu","th","_interopDefault","ex","InputMask","KEYCODE_Z","KEYCODE_Y","getSelection","el","start","end","rangeEl","clone","selectionStart","selectionEnd","focus","createTextRange","duplicate","moveToBookmark","selection","createRange","getBookmark","setEndPoint","text","isUndo","ctrlKey","metaKey","keyCode","shiftKey","isRedo","setSelection","setSelectionRange","collapse","moveStart","moveEnd","select","render","ref","domProps","on","change","_change","keydown","_keydown","keypress","_keypress","paste","_paste","props","pattern","required","formatCharacters","default","char","transform","toUpperCase","placeholder","placeholderChar","hideUnderline","Boolean","watch","newValue","mask","setValue","mounted","this$1","$refs","emptyValue","$emit","getValue","setTimeout","_updateInputSelection","maskValue","sizeDiff","_updateMaskSelection","backspace","_updateValue","preventDefault","undo","redo","altKey","clipboardData","getData","_getDisplayValue","getRawValue","w","window","noGlobal","arr","getProto","class2type","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","support","nodeType","isWindow","preservedScriptAttributes","src","noModule","DOMEval","node","doc","val","script","getAttribute","setAttribute","head","parentNode","toType","version","jQuery","selector","rtrim","isArrayLike","jquery","toArray","pushStack","elems","ret","merge","prevObject","each","elem","eq","sort","extend","copyIsArray","deep","isPlainObject","expando","random","replace","isReady","error","noop","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","guid","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","childNodes","els","nid","groups","newSelector","newContext","ownerDocument","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","toSelector","testContext","querySelectorAll","qsaError","removeAttribute","cache","cacheLength","shift","markFunction","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","attrId","find","getAttributeNode","tag","tmp","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","operator","check","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","matcher","unmatched","lang","elemLang","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","filters","parseOnly","soFar","preFilters","cached","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","has","targets","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","rnothtmlwhite","createOptions","object","flag","Identity","v","Thrower","adoptValue","resolve","reject","noValue","method","promise","fail","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","fireWith","Deferred","func","tuples","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","console","warn","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","rmsPrefix","rdashAlpha","fcamelCase","all","letter","camelCase","string","acceptData","owner","Data","uid","set","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","parse","dataAttr","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","css","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","show","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","td","_default","getAll","setGlobalEval","refElements","optgroup","tbody","tfoot","colgroup","caption","buildFragment","scripts","ignored","wrap","attached","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","div","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","types","one","origFn","event","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","trigger","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","load","noBubble","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","bubbles","cancelable","changedTouches","detail","eventPhase","pageX","pageY","view","charCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","cssPrefixes","emptyStyle","vendorProps","vendorPropName","capName","finalPropName","cssProps","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","getWidthOrHeight","boxSizingNeeded","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","border","prefix","suffix","expand","expanded","propHooks","run","percent","eased","duration","step","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","defaultPrefilter","opts","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","properties","stopped","prefilters","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","bind","timer","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","parseInt","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","throws","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","rect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","hover","fnOver","fnOut","unbind","delegate","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","_jQuery","_$","$","noConflict","MAX_BYTES","MAX_UINT32","oldBrowser","crypto","msCrypto","randomBytes","size","cb","RangeError","bytes","generated","getRandomValues","nextTick","common","shaCommon","rotl32","sum32","sum32_5","ft_1","BlockHash","sha1_K","SHA1","translator","words","correctGrammaticalCase","wordKey","srCyrl","day","lastWeekDays","str","fmtShort","ms","msAbs","abs","fmtLong","isPlural","long","dP","getKeys","defineProperties","Properties","f","sign","DES","EDE","DataStream","jwa","Stream","util","JWS_REGEX","isObject","thing","safeJsonParse","headerFromJWS","jwsSig","encodedHeader","securedInputFromJWS","signatureFromJWS","payloadFromJWS","encoding","isValidJws","jwsVerify","algorithm","secretOrKey","securedInput","algo","jwsDecode","typ","VerifyStream","secret","publicKey","secretStream","readable","emit","isValid","channel","port","invoke","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","ONREADYSTATECHANGE","listener","Function","port2","port1","onmessage","postMessage","importScripts","clear","Legacy","md5","RIPEMD160","sha","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","mt","rng","pseudoRandomBytes","prng","createHmac","algos","algoKeys","hashes","getHashes","pbkdf2","pbkdf2Sync","createCipher","Cipheriv","createCipheriv","Decipher","createDecipher","Decipheriv","createDecipheriv","getCiphers","listCiphers","dh","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","symbolMap","pluralForm","plurals","pluralize","u","arLy","preparse","postformat","Vuelidate","_params","validationMixin","_vval","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","arr2","NIL","buildFromKeys","keyFn","reduce","build","isPromise","getPath","path","fallback","__isVuelidateAsyncVm","makePendingAsyncVm","Vue","asyncVm","validationGetters","$invalid","_this","nestedKeys","nested","refProxy","ruleKeys","rule","$dirty","_this2","dirty","every","$anyDirty","_this3","$error","$pending","$anyError","_this4","getRef","$params","_this5","vals","validations","setDirtyRecursive","newState","validationMethods","$touch","$reset","$flattenParams","isNested","childParams","getterNames","methodNames","_cachedComponent","getComponent","VBase","refs","oldVval","patchChildren","vm","beforeCreate","beforeDestroy","getModel","lazyModel","model","getModelKey","hasIter","ValidationRule","lazyParentModel","rootModel","runRule","rawOutput","rawParams","_this6","isArrayDependant","__ob__","arrayDep","dep","depend","_indirectWatcher","Watcher","lazy","_lastModel","evaluate","destroyed","Validation","_this7","_this8","keyDefs","getterDefs","methodDefs","iterDefs","$iter","$model","_this9","renderNested","renderRule","GroupValidation","EachValidation","tracker","_this10","trackBy","$trackBy","getModelLazy","_this11","_this12","def","usedTracks","track","refVals","$v","_cachedVue","getVue","rootVm","super","validateModel","_getComponent","$options","_vuelidate","$destroy","mixin","CipherBase","modes","modeName","_des","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","word","forms","relativeTimeWithPlural","be","standalone","isFormat","EDEState","k1","k2","k3","ciphers","_edeState","ka","ZERO_BUF","defaultEncoding","sync","subtle","toBrowser","checks","checkNative","browser","importKey","deriveBits","prom","browserPbkdf2","salt","iterations","resolvePromise","keylen","checkParameters","resp","decoders","pem","inner","outer","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","regexp","arg2","forceStringMethod","strfn","rxfn","__WEBPACK_EXTERNAL_MODULE_0__","__WEBPACK_EXTERNAL_MODULE_3__","modules","installedModules","__webpack_require__","moduleId","o","__esModule","property","extendStatics","setPrototypeOf","__proto__","__extends","__","compensateScroll","rowEls","scrollbarWidths","uncompensateScroll","disableCursor","enableCursor","distributeHeight","availableHeight","shouldRedistribute","minOffset1","minOffset2","flexEls","flexOffsets","flexHeights","usedHeight","undistributeHeight","minOffset","naturalOffset","outerHeight","naturalHeight","newHeight","matchCellWidths","maxInnerWidth","innerEl","innerWidth","outerWidth","subtractInnerElHeight","outerEl","both","getScrollParent","scrollParent","getOuterRect","origin","bottom","getClientRect","getScrollbarWidths","getCssFloat","clientWidth","clientHeight","getContentRect","widths","leftRightWidth","bottomWidth","sanitizeScrollbarWidth","getIsLeftRtlScrollbars","_isLeftRtlScrollbars","computeIsLeftRtlScrollbars","direction","isPrimaryMouseButton","ev","getEvX","getEvY","getEvIsTouch","preventSelection","allowSelection","intersectRects","rect1","rect2","constrainPoint","point","getRectCenter","diffPoints","point1","point2","parseFieldSpecs","specs","field","substring","order","compareByFieldSpecs","obj1","obj2","fieldSpecs","obj1fallback","obj2fallback","compareByFieldSpec","fieldSpec","val1","val2","flexibleCompare","localeCompare","diffDayTime","days","stripTime","diffDay","diffByUnit","computeGreatestUnit","unitsDesc","computeRangeAs","isInt","computeDurationGreatestUnit","durationInput","isDuration","as","divideRangeByDuration","dur","durationHasTime","asMonths","asDays","divideDurationByDuration","dur1","dur2","months1","months2","multiplyDuration","minutes","seconds","milliseconds","isNativeDate","isTimeString","log","_i","dayIDs","hasOwnPropMethod","mergeProps","propObjs","complexProps","complexObjs","copyOwnProps","name_1","hasOwnProp","applyAll","functions","thisObj","removeMatching","array","testFunc","removeCnt","removeExact","exactVal","isArraysEqual","a0","a1","firstDefined","htmlEscape","stripHtmlEntities","cssToStr","statements","attrsToStr","capitaliseFirstLetter","compareNumbers","methodName","debounce","immediate","timestamp","later","callNow","moment_ext_1","UnzonedRange","startInput","endInput","isStart","isEnd","isMoment","stripZone","startMs","valueOf","endMs","invertRanges","ranges","constraintRange","dateRange","invertedRanges","compareUnzonedRanges","intersect","otherRange","newRange","intersectsWith","containsRange","innerRange","containsDate","date","constrainDate","equals","range","getStart","utc","getEnd","range1","range2","tslib_1","ParsableModelMixin_1","Class_1","EventDefParser_1","EventSource","_super","uuid","rawInput","applyProps","normalizeId","fetch","timezone","removeEventDefsById","eventDefId","removeAllEventDefs","getPrimitive","otherSource","parseEventDefs","rawEventDefs","eventDef","eventDefs","parseEventDef","calendarTransform","sourceTransform","eventDataTransform","applyManualStandardProps","rawProps","defineStandardProps","copyVerbatimStandardProps","mixInto","color","backgroundColor","borderColor","textColor","editable","startEditable","durationEditable","rendering","overlap","constraint","allDayDefault","Mixin_1","ListenerMixin","listenTo","other","eventName","getListenerNamespace","stopListeningTo","listenerId","EventDef_1","EventInstance_1","EventDateProfile_1","SingleEventDef","buildInstances","buildInstance","dateProfile","isAllDay","rezone","superSuccess","miscProps","allDay","util_1","ambigDateOfMonthRegex","ambigTimeOrZoneRegex","newMomentProto","oldMomentProto","momentProperties","oldMomentFormat","mom","formatStr","momentExt","makeMoment","parseAsUTC","parseZone","isAmbigTime","isAmbigZone","ambigMatch","isSingleString","_ambigTime","_ambigZone","utcOffset","_fullCalendar","hasTime","weeks","weekCalc","_locale","_fullCalendar_weekCalc","isoWeek","dayHours","wasAmbigTime","hasZone","local","keepLocalTime","tzo","ComponentFootprint","unzonedRange","toLegacy","msToMoment","EmitterMixin","_prepareIntercept","intercept","triggerWith","hasHandlers","Interaction","component","_getView","Mixin","destClass","getOwnPropertyNames","mixOver","UnzonedRange_1","EventDateProfile","buildUnzonedRange","forcedAllDay","forceEventDuration","isAfter","getDefaultEventEnd","isStandardProp","propName","DragListener_1","HitDragListener","handleInteractionStart","subjectRect","origPoint","subjectEl","hitsNeeded","computeScrollBounds","origHit","queryHit","subjectCenter","coordAdjust","handleDragStart","hit","handleHitOver","handleDrag","dx","dy","isHitsEqual","handleHitOut","handleDragEnd","handleHitDone","isOrig","handleInteractionEnd","isCancelled","hitsNotNeeded","handleScrollEnd","isDragging","releaseHits","prepareHits","hit0","hit1","isHitPropsWithin","subHit","superHit","internalApiVersion","date_formatting_1","formatDate","formatRange","queryMostGranularFormatUnit","locale_1","datepickerLocale","locale","getMomentLocaleData","populateInstanceComputableOptions","util_2","eventDefsToEventInstances","eventFootprintToComponentFootprint","eventInstanceToEventRange","eventInstanceToUnzonedRange","eventRangeToEventFootprint","EmitterMixin_1","ListenerMixin_1","Model_1","Model","Constraints_1","Constraints","DateProfileGenerator_1","DateProfileGenerator","ComponentFootprint_1","BusinessHourGenerator_1","BusinessHourGenerator","EventPeriod_1","EventPeriod","EventManager_1","EventManager","EventDef","EventDefMutation_1","EventDefMutation","EventDefParser","EventInstance","EventRange_1","EventRange","RecurringEventDef_1","RecurringEventDef","SingleEventDef_1","EventDefDateMutation_1","EventDefDateMutation","EventSourceParser_1","EventSourceParser","EventSource_1","ThemeRegistry_1","defineThemeSystem","getThemeSystemClass","EventInstanceGroup_1","EventInstanceGroup","ArrayEventSource_1","ArrayEventSource","FuncEventSource_1","FuncEventSource","JsonFeedEventSource_1","JsonFeedEventSource","EventFootprint_1","EventFootprint","Class","CoordCache_1","CoordCache","Iterator_1","Iterator","DragListener","HitDragListener_1","MouseFollower_1","MouseFollower","ParsableModelMixin","Popover_1","Popover","Promise_1","TaskQueue_1","TaskQueue","RenderQueue_1","RenderQueue","Scroller_1","Scroller","Theme_1","Theme","Component_1","Component","DateComponent_1","DateComponent","InteractiveDateComponent_1","InteractiveDateComponent","Calendar_1","Calendar","View_1","View","ViewRegistry_1","defineView","getViewConfig","DayTableMixin_1","DayTableMixin","BusinessHourRenderer_1","BusinessHourRenderer","EventRenderer_1","EventRenderer","FillRenderer_1","FillRenderer","HelperRenderer_1","HelperRenderer","ExternalDropping_1","ExternalDropping","EventResizing_1","EventResizing","EventPointing_1","EventPointing","EventDragging_1","EventDragging","DateSelecting_1","DateSelecting","DateClicking_1","DateClicking","Interaction_1","StandardInteractionsMixin_1","StandardInteractionsMixin","AgendaView_1","AgendaView","TimeGrid_1","TimeGrid","TimeGridEventRenderer_1","TimeGridEventRenderer","TimeGridFillRenderer_1","TimeGridFillRenderer","TimeGridHelperRenderer_1","TimeGridHelperRenderer","DayGrid_1","DayGrid","DayGridEventRenderer_1","DayGridEventRenderer","DayGridFillRenderer_1","DayGridFillRenderer","DayGridHelperRenderer_1","DayGridHelperRenderer","BasicView_1","BasicView","BasicViewDateProfileGenerator_1","BasicViewDateProfileGenerator","MonthView_1","MonthView","MonthViewDateProfileGenerator_1","MonthViewDateProfileGenerator","ListView_1","ListView","ListEventPointing_1","ListEventPointing","ListEventRenderer_1","ListEventRenderer","eventInstances","eventInstance","eventRange","eventFootprint","componentFootprint","getAllEventRanges","sliceNormalRenderRanges","sliceRenderRanges","isInverse","sliceInverseRenderRanges","slicedRange","slicedEventRanges","unzonedRanges","ownerDef","getEventDef","hasInverseRendering","explicitEventDef","PromiseStub","construct","executor","attachImmediatelyResolvingThen","attachImmediatelyRejectingThen","onResolve","onReject","optionsManager","processIconOverride","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","iconClasses","applyIconOverridePrefix","iconOverridePrefix","getIconClass","baseIconClass","getCustomButtonIconClass","customButtonProps","iconOverrideCustomButtonOption","exportHooks","touchMouseIgnoreWait","globalEmitter","neededCount","GlobalEmitter","isTouching","mouseIgnoreDepth","needed","unneeded","touchstart","handleTouchStart","touchcancel","handleTouchCancel","touchend","handleTouchEnd","mousedown","handleMouseDown","mousemove","handleMouseMove","mouseup","handleMouseUp","handleClick","selectstart","handleSelectStart","contextmenu","handleContextMenu","handleTouchMoveProxy","handleTouchMove","passive","handleScrollProxy","handleScroll","stopTouch","shouldIgnoreMouse","skipMouseIgnore","startTouchMouseIgnore","viewName","viewConfig","viewHash","views","options_1","localeOptionHash","locales","dpComputableOptions","buttonText","dpOptions","prevText","nextText","today","currentText","monthYearFormat","showMonthAfterYear","yearSuffix","momComputableOptions","dayOfMonthFormat","momOptions","fcOptions","isRTL","mediumTimeFormat","smallTimeFormat","extraSmallTimeFormat","hourFormat","noMeridiemTimeFormat","instanceComputableOptions","smallDayDateFormat","weekFormat","weekNumberTitle","smallWeekFormat","localeCode","dpLocaleCode","weekHeader","jqDatePicker","datepicker","regional","en","setDefaults","newFcOptions","mergeOptions","globalDefaults","localeData","englishDefaults","titleRangeSeparator","defaultTimedEventDuration","defaultAllDayEventDuration","nextDayThreshold","columnHeader","aspectRatio","center","weekends","weekNumbers","weekNumberCalculation","scrollTime","minTime","maxTime","showNonCurrentDates","lazyFetching","startParam","endParam","timezoneParam","prevYear","nextYear","year","allDayText","agendaEventMinHeight","theme","dragOpacity","dragRevertDuration","dragScroll","unselectAuto","dropAccept","eventOrder","eventLimit","eventLimitText","eventLimitClick","dayPopoverFormat","handleWindowResize","windowResizeDelay","longPressDelay","rtlDefaults","buttonIcons","themeButtonIcons","complexOptions","optionObjs","getEventLegacy","members","SubClass","eventInput","generateId","rawId","getRendering","hasBgRendering","getConstraint","getOverlap","isStartExplicitlyEditable","isDurationExplicitlyEditable","isExplicitlyEditable","_id","applyMiscProps","title","sourceClasses","registerClass","EventSourceClass","eventSource","createFromRawProps","largeUnit","dateMutation","defMutation","dateProps","standardProps","verbatimStandardProps","createFromDiff","mutateSingle","origDateProfile","buildNewDateProfile","setDateMutation","isEmpty","clearEnd","forceTimed","forceAllDay","dateProfile0","dateProfile1","dateDelta","endDiff","endDelta","mutation","subtractDates","date1","date0","setDateDelta","setEndDelta","eventDateProfile","shouldRezone","startDelta","applyTimezone","setStartDelta","renderEl","applyOverflow","scrollEl","setHeight","destroy","lockOverflow","scrollWidth","scrollHeight","getScrollTop","setScrollTop","getClientWidth","getClientHeight","GlobalEmitter_1","_view","_options","segSelector","dateSelectingClass","dateClicking","dateClickingClass","dateSelecting","eventPointingClass","eventPointing","eventDraggingClass","eventDragging","eventResizingClass","eventResizing","externalDroppingClass","externalDropping","setElement","bindToEl","bindAllSegHandlersToEl","removeElement","endInteractions","executeEventUnrender","bindGlobalHandlers","bindToDocument","unbindGlobalHandlers","unbindFromDocument","bindDateHandlerToEl","eventInteraction","bindSegHandlerToEl","segEl","seg","shouldIgnoreEventPointing","shouldIgnoreTouch","isSelected","selectedEvent","isResizing","canStartSelection","canStartResize","isEventDefDraggable","footprint","isEventDefResizable","canStartDrag","isEventDefSelected","interaction","isEventDefStartEditable","isEditable","isEventDefGenerallyEditable","isEventDefResizableFromStart","isEventDefResizableFromEnd","isResizable","diffDates","isEventInstanceGroupAllowed","eventInstanceGroup","eventFootprints","eventRangesToEventFootprints","validUnzonedRange","constraints","isExternalInstanceGroupAllowed","isSelectionFootprintAllowed","viewSpec","batchRenderDepth","initRenderQueue","initHiddenDays","dateProfileGenerator","dateProfileGeneratorClass","bindBaseRenderHandlers","eventOrderSpecs","renderQueue","onRenderQueueStart","onRenderQueueStop","startBatchRender","stopBatchRender","freezeContentHeight","addScroll","queryScroll","updateViewSize","popScroll","thawContentHeight","pause","resume","requestRender","actionType","whenSizeUpdated","isRunning","computeTitle","currentRangeUnit","currentUnzonedRange","activeUnzonedRange","isRangeAllDay","computeTitleFormat","setDate","currentDateProfile","newDateProfile","unsetDate","unset","fetchInitialEvents","usesMinMaxTime","requestEvents","bindEventChanges","resetEvents","unbindEventChanges","setEvents","eventsPayload","unsetEvents","requestDateRender","executeDateRender","requestDateUnrender","executeDateUnrender","isDateInit","startNowIndicator","unselect","stopNowIndicator","triggerViewRender","triggerViewDestroy","publiclyTrigger","requestEventsRender","executeEventRender","triggerAfterEventsRendered","requestEventsUnrender","triggerBeforeEventsDestroyed","requestBusinessHoursRender","businessHourGenerator","renderBusinessHours","requestBusinessHoursUnrender","unrenderBusinessHours","processUnselect","handleDocumentMousedown","getNowIndicatorUnit","initialNowDate","getNow","initialNowQueriedMs","startOf","nowIndicatorTimeoutID","nowIndicatorIntervalID","setInterval","updateNowIndicator","isDatesRendered","unrenderNowIndicator","renderNowIndicator","isNowIndicatorRendered","clearInterval","updateSize","totalHeight","isAuto","isResize","scroll","queuedScroll","applyQueuedScroll","applyScroll","queryDateScroll","computeInitialDateScroll","applyDateScroll","reportEventDrop","eventMutation","eventManager","undoFunc","mutateEventsWithId","triggerEventDrop","reportExternalDrop","singleEventDef","isEvent","isSticky","ui","addEventDef","triggerExternalDrop","reportEventResize","resizeDelta","triggerEventResize","renderSelectionFootprint","reportSelection","triggerSelect","footprintToDateProfile","unrenderSelection","selectEventInstance","selectedEventInstance","unselectEventInstance","getEventSegs","processRangeUnselect","processEventUnselect","ignore","triggerBaseRendered","triggerBaseUnrendered","triggerDayClick","dayEl","isDateInOtherMonth","getUnzonedRangeOption","parseUnzonedRange","hiddenDays","isHiddenDayHash","dayCnt","trimHiddenDays","inputUnzonedRange","skipHiddenDays","isHiddenDay","inc","isExclusive","deps","initialEvents","intervalStart","intervalEnd","fillRenderer","rangeUpdated","displayEventTime","displayEventEnd","eventTimeFormat","computeEventTimeFormat","computeDisplayEventTime","computeDisplayEventEnd","instanceGroup","eventRanges","_getDateProfile","bgRanges","fgRanges","renderBgRanges","renderFgRanges","unrender","unrenderBgRanges","unrenderFgRanges","segs","eventFootprintsToSegs","renderFgSegEls","renderFgSegs","fgSegs","unrenderFgSegs","renderBgSegs","bgSegs","unrenderBgSegs","getSegs","renderSegs","getClasses","getBgClasses","getCss","getBgColor","filterEl","filterEventRenderEl","disableResizing","hasEventRenderHandlers","hasPublicHandlers","renderedSegs","beforeFgSegHtml","fgSegHtml","getSegClasses","isDraggable","legacy","custom","getTimeText","displayEnd","_getTimeText","objs","getStylingObjs","eventClassName","getSkinCss","getBorderColor","getTextColor","eventBackgroundColor","eventColor","eventBorderColor","eventTextColor","getFallbackStylingObjs","sortEventSegs","compareEventSegs","seg1","seg2","f1","f2","cf1","cf2","r1","r2","englishMoment","toISOString","PART_SEPARATOR","SPECIAL_TOKEN_MARKER","MAYBE_MARKER","MAYBE_REGEXP","specialTokens","T","largeTokenMap","Y","D","renderFakeFormatString","getParsedFormatString","fakeFormatString","date2","separator","renderParsedFormat","parsedFormat","leftI","rightI","middleI","sameUnits","unzonedDate1","unzonedDate2","renderedParts1","renderFakeFormatStringParts","renderedParts2","leftStr","rightStr","middleStr1","middleStr2","middleStr","isSame","processMaybeMarkers","parsedFormatStrCache","parseFormatString","chunks","chunkFormatString","buildFakeFormatString","buildSameUnits","chunker","splitStringLiteral","maybe","tokenInfo","units","fakePart","fakeRender","fakeParts","m0","m1","candidate","best","_watchers","_props","applyGlobalWatchers","constructed","_globalWatchArgs","newProps","setProps","oldProps","changeset","names","changedProps","changedCnt","depList","startFunc","stopFunc","unwatch","_watchDeps","watcher","queuedChangeCnt","depCnt","satisfyCnt","bindTuples","isCallingStop","onBeforeDepChange","depName","isOptional","onDepChange","flash","propDefs","standardPropMap","manualProps","endTime","zonedDayStart","instanceStart","instanceEnd","unzonedDate","unzonedEnd","instances","isBefore","dowHash","setDow","dowNumbers","msToUtcMoment","buildPrev","prevDate","dateIncrement","buildNext","nextDate","forceToValid","currentInfo","renderUnzonedRange","isDateAllDay","buildValidRange","buildCurrentRangeInfo","buildRenderRange","adjustActiveRange","buildDateIncrement","dayCount","durationUnit","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","getFallbackDuration","dateIncrementInput","dateIncrementDuration","alignment","computeRes","customAlignment","runningCount","visibleUnzonedRange","setRawEventDefs","currentTimezone","StandardTheme_1","JqueryUiTheme_1","themeClassHash","themeName","themeClass","themeSetting","isHorizontal","isVertical","forcedOffsetParentEl","offsetParentEl","boundingRect","queryBoundingRect","buildElHorizontals","buildElVerticals","lefts","rights","tops","bottoms","ensureBuilt","getHorizontalIndex","leftOffset","getVerticalIndex","topOffset","getLeftOffset","leftIndex","getLeftPosition","getRightOffset","getRightPosition","getWidth","getTopOffset","topIndex","getTopPosition","getBottomOffset","getBottomPosition","getHeight","scrollParentEl","isPointInBounds","isLeftInBounds","isTopInBounds","isInteracting","isDistanceSurpassed","isDelayEnded","isTouch","isGeneric","shouldCancelTouchScroll","scrollAlwaysKills","isAutoScroll","scrollSensitivity","scrollSpeed","scrollIntervalMs","startInteraction","extraOptions","minDistance","distance","originX","originY","bindHandlers","initAutoScroll","startDelay","handleDistanceSurpassed","endInteraction","endDrag","delayTimeoutId","destroyAutoScroll","unbindHandlers","drag","handleMove","dragstop","touchmove","handleTouchScroll","startDrag","distanceSq","updateAutoScroll","initialEv","handleDelayEnd","handleDebouncedScroll","endAutoScroll","scrollBounds","topCloseness","bottomCloseness","leftCloseness","rightCloseness","sensitivity","bounds","topVel","leftVel","setScrollVel","scrollTopVel","scrollLeftVel","constrainScrollVel","scrollIntervalId","scrollIntervalFunc","frac","updateDayTable","daysPerRow","firstDay","rowCnt","dayIndex","dayIndices","dayDates","breakOnWeeks","updateDayTableCols","colCnt","computeColCnt","colHeadFormat","computeColHeadFormat","getCellDate","row","getCellDayIndex","getCellRange","getColDayIndex","getDateDayIndex","dayOffset","sliceRangeByRow","rowFirst","rowLast","segFirst","segLast","normalRange","computeDayRange","rangeFirst","rangeLast","firstRowDayIndex","lastRowDayIndex","sliceRangeByDay","renderHeadHtml","renderHeadTrHtml","renderHeadIntroHtml","renderIntroHtml","renderHeadDateCellsHtml","htmls","renderHeadDateCellHtml","colspan","otherAttrs","innerHtml","isDateValid","getDayClasses","buildGotoAnchorHtml","forceOff","renderBgTrHtml","renderBgIntroHtml","renderBgCellsHtml","renderBgCellHtml","bookendCells","trEl","introHtml","buildEventInstanceGroup","hasAllDayBusinessHours","renderEventFootprints","fillSegTag","elsByFill","renderFootprint","componentFootprintToSegs","buildSegEls","attachSegEls","reportEls","buildSegHtml","eventRenderer","renderComponentFootprint","fabricateEventFootprint","renderEventDraggingFootprints","sourceSeg","renderEventResizingFootprints","extraClassNames","helperEls","dummyInstance","dummyEvent","handleMouseover","handleMouseout","mousedOverSeg","cellWeekNumbersVisible","bottomCoordPadding","isRigid","leftCol","rightCol","renderDates","renderGrid","unrenderDates","removeSegPopover","headContainerEl","renderDayRowHtml","cellEls","rowCoordCache","colCoordCache","getCellEl","getIsNumbersVisible","renderNumberTrHtml","getIsDayNumbersVisible","renderNumberIntroHtml","renderNumberCellsHtml","renderNumberCellHtml","weekCalcFirstDoW","isDayNumberVisible","firstDayOfWeek","getCellHit","getHitFootprint","getHitEl","getOwnEventSegs","popoverSegs","renderDrag","renderHighlight","helperRenderer","unrenderDrag","unrenderHighlight","renderEventResize","unrenderEventResize","segPopover","limitRows","levelLimit","rowLevelLimit","rowStructs","unlimitRow","computeRowLevelLimit","limitRow","trHeight","rowEl","rowHeight","trEls","tbodyEl","iterInnerHeights","childNode","levelSegs","cellMatrix","limitedNodes","segsBelow","totalSegsBelow","colSegsBelow","rowspan","segMoreNodes","moreTd","moreWrap","moreLink","rowStruct","moreNodes","emptyCellsUntil","endCol","getCellSegs","renderMoreLink","segLevels","moreEls","limitedEls","hiddenSegs","getMoreLinkText","clickOption","moreEl","allSegs","reslicedAllSegs","resliceDaySegs","reslicedHiddenSegs","showSegPopover","zoomTo","topEl","renderSegPopoverContent","parentEl","autoHide","viewportConstrain","triggerBeforeEventSegsDestroyed","triggerAfterEventSegsRendered","segContainer","dayDate","dayStart","dayEnd","dayRange","newSegs","startLevel","segMatrix","level","eventRendererClass","businessHourRendererClass","helperRendererClass","fillRendererClass","dayGrid","instantiateDayGrid","hasRigidRows","colWeekNumbersVisible","addChild","scroller","subclass","makeDayGridSubclass","dayGridClass","renderSkeleton","dayGridContainerEl","dayGridEl","renderSkeletonHtml","unrenderSkeleton","weekNumberStyleAttr","weekNumberWidth","scrollerHeight","headRowEl","computeScrollerHeight","setGridHeight","SuperClass","weekStart","weekday","_calendar","peerEventInstances","getPeerEventInstances","peerEventRanges","peerEventFootprints","constraintVal","overlapVal","eventAllowFunc","isFootprintAllowed","getEventInstancesWithoutId","selectAllowFunc","getEventInstances","subjectEventInstance","constraintFootprints","overlapEventFootprints","constraintValToFootprints","isFootprintWithinConstraints","collectOverlapEventFootprints","isOverlapsAllowedByFunc","isOverlapEventInstancesAllowed","footprintContainsFootprint","buildCurrentBusinessFootprints","parseEventDefToInstances","eventInstancesToFootprints","parseFootprints","getEventInstancesWithId","targetFootprint","footprintsIntersect","currentPeriod","eventRangeToEventFootprints","outerFootprint","innerFootprint","footprint0","footprint1","overlapFunc","overlapEventInstance","overlapEventDef","subjectLegacyInstance","BUSINESS_HOUR_EVENT_DEFAULTS","rawComplexDef","buildEventDefs","rawDefs","requireDow","defs","buildEventDef","rawDef","fullRawDef","pendingCnt","freezeDepth","stuntedReleaseCnt","releaseCnt","requestsByUid","eventDefsByUid","eventDefsById","eventInstanceGroupsById","isWithinRange","requestSources","sources","freeze","requestSource","thaw","request","addEventDefs","tryRelease","purgeSource","removeEventDef","purgeAllSources","completedCnt","getEventDefByUid","eventDefUid","getEventDefsById","addEventInstance","removeEventInstancesForDef","matchingInstances","currentEventInstance","release","whenReleased","stickySource","otherSources","force","setPeriod","addSource","removeSource","doomedSource","removeAllSources","refetchSource","refetchAllSources","getSources","multiQuerySources","matchInputs","matchingSources","querySources","matchInput","getSourceById","isSourcesEquivalent","eventPeriod","unbindPeriod","bindPeriod","eventId","eventDefMutation","undoFuncs","buildMutatedEventInstanceGroup","defCopy","allInstances","source0","source1","StandardTheme","widget","widgetHeader","widgetContent","buttonGroup","cornerLeft","cornerRight","stateDefault","stateActive","stateDisabled","stateHover","stateDown","popoverHeader","popoverContent","headerRow","dayRow","listView","close","JqueryUiTheme","pushLoading","popLoading","onSuccess","onError","requestParams","buildRequestParams","AJAX_DEFAULTS","callbackRes","errorThrown","customRequestParams","items","proxyCall","sourceEl","isFollowing","isHidden","isAnimating","y0","x0","topDelta","leftDelta","updatePosition","shouldRevert","revertDuration","top0","left0","getEl","additionalClass","zIndex","sourceOffset","documentMousedown","viewportTop","viewportLeft","viewportOffset","windowEl","viewportEl","q","isPaused","tryStart","getIsIdle","canRunNext","runRemaining","task","runTask","waitsByNamespace","taskFunc","waitMs","waitNamespace","delayWait","clearWait","compoundTask","startWait","spawnWait","waitId","newTask","shouldAppend","hitsNeededDepth","childrenByUid","businessHourRenderer","child","callChildren","_getCalendar","convertEventsPayloadToLegacyArray","getBusinessHourSegs","getOwnBusinessHourSegs","iterChildren","showEventsWithId","hideEventsWithId","renderedHelper","getSafeHitFootprint","eventFootprintToSegs","gotoOptions","finalOptions","getAllDayHtml","noThemeHighlight","currentRangeAs","startDay","endTimeMS","endDay","isMultiDayRange","legacyEvents","Toolbar_1","OptionsManager_1","ViewSpecManager_1","overrides","loadingLevel","ignoreUpdateViewSize","freezeContentHeightDepth","viewsByType","viewSpecManager","initMomentInternals","initCurrentDate","initEventManager","getView","triggerInfo","optHandler","newOptionHash","instantiateView","viewType","spec","getViewSpec","isValidViewType","changeView","dateOrRange","recordOverrides","visibleRange","currentDate","renderView","newDate","getUnitViewSpec","defaultDateInput","prevInfo","nextInfo","gotoDate","zonedDateInput","incrementDate","getDate","contentEl","elementVisible","calcSize","initialRender","anchorEl","customAction","themeSystem","widgetClass","businessHours","initToolbars","renderHeader","renderFooter","resize","windowResizeProxy","windowResize","clearView","toolbarsManager","bindViewHandlers","setToolbarsTitle","updateToolbarButtons","unbindViewHandlers","newView","oldView","currentView","reinitView","getSuggestedViewHeight","suggestedViewHeight","isHeightAuto","_calcSize","contentHeightInput","heightInput","queryToolbarsHeight","forceFreezeContentHeight","computeHeaderOptions","footer","computeFooterOptions","extraClasses","layout","setToolbarOptions","todayInfo","accumulator","toolbar","toolbarHeight","zonedStartInput","zonedEndInput","buildSelectFootprint","_week","monthNames","_months","monthNamesShort","_monthsShort","dayNames","_weekdays","dayNamesShort","_weekdaysShort","localizeMoment","getIsAmbigTimezone","adjustedZonedDate","zonedDate","timeAdjust","asMilliseconds","ignoreEnd","humanizeDuration","humanize","rangeInput","rawSources","singleRawSource","rawSource","getEventEnd","zonedStart","rerenderEvents","refetchEvents","renderEvents","eventInputs","renderEvent","removeEvents","legacyQuery","legacyInstances","idMap","filterLegacyEventInstances","clientEvents","legacyEventInstances","updateEvents","eventPropsArray","updateEvent","eventProps","getEventSources","getEventSourceById","addEventSource","sourceInput","removeEventSources","sourceMultiQuery","removeEventSource","sourceQuery","refetchEventSources","defaults","legacyEventInstance","dragListener","dragstart","sortstart","accept","listenToExternalDrag","meta","getDraggedElMeta","interactionStart","hitOver","mutatedEventInstanceGroup","isAllowed","hitFootprint","computeExternalDrop","hitOut","hitDone","interactionEnd","stick","dataAttrPrefix","buildDragListener","resizeMutation","dragStart","segResizeStart","origHitFootprint","computeEventStartResizeMutation","computeEventEndResizeMutation","segResizeStop","startFootprint","endFootprint","origEventFootprint","origRange","getSelectionDelay","handleMousedown","buildSelectListener","mouseFollower","segDragStart","origFootprint","computeEventDropMutation","segDragStop","computeEventDateMutation","getDelay","selectionFootprint","computeSelection","wholeFootprint","computeSelectionFootprint","dayClickHit","agendaTimeGridMethods","agendaDayGridMethods","AGENDA_ALL_DAY_EVENT_LIMIT","timeGrid","instantiateTimeGrid","timeGridClass","timeGridWrapEl","timeGridEl","axisStyleAttr","axisWidth","colEls","noScrollRowEls","bottomRuleEl","getTotalSlatHeight","computeTimeTop","dayEventsPayload","timedEventsPayload","groupEventFootprintsByAllDay","timed","weekText","AGENDA_STOCK_SUB_DURATIONS","processOptions","sliceRangeByTimes","segRange","dayRanges","slotDuration","snapDuration","snapsPerSlot","labelFormat","labelInterval","computeLabelInterval","slotsPerLabel","renderSlats","renderColumns","unrenderColumns","slatContainerEl","renderSlatRowHtml","slatEls","slatCoordCache","slotDate","isLabeled","axisHtml","slotTime","slotIterator","renderContentSkeleton","unrenderContentSkeleton","skeletonEl","cellHtml","contentSkeletonEl","colContainerEls","helperContainerEls","fgContainerEls","bgContainerEls","highlightContainerEls","businessContainerEls","groupSegsByCol","segsByCol","attachSegsByCol","containerEls","computeDateTop","nowIndicatorEls","updateSegVerticals","businessSegs","startOfDayDate","slatIndex","slatRemainder","slatCoverage","computeSegVerticals","assignSegVerticals","eventMinHeight","generateSegVerticalCss","colIndex","slatTop","slatHeight","partial","localSnapIndex","snapIndex","snapTop","snapBottom","snap","computeSnapTime","renderFgSegsIntoContainers","updateFgSegCoords","timeText","fullTimeText","startTimeText","isResizableFromStart","isResizableFromEnd","skinCss","zonedEnd","computeFgSegHorizontals","assignFgSegHorizontals","levels","level0","buildSlotSegLevels","computeForwardSlotSegs","computeSlotSegPressures","computeFgSegForwardBack","seriesBackwardPressure","seriesBackwardCoord","forwardSegs","forwardCoord","sortForwardSegs","backwardCoord","compareForwardSegs","forwardPressure","generateFgSegHorizontalCss","shouldOverlap","computeSlotSegCollisions","forwardSeg","otherSegs","isSlotSegCollision","helperNodes","renderSegRows","rowNode","segRows","groupSegRows","renderSegRow","rowSegs","buildSegLevels","levelCnt","loneCellMatrix","isDaySegCollision","compareDaySegCols","titleHtml","timeHtml","otherSeg","skeletonTopEl","skeletonTop","renderFillRow","startCol","viewEnd","renderEmptyMessage","renderSegList","daySegs","segsByDay","groupSegsByDay","tableEl","dayHeaderHtml","mainFormat","altFormat","bgColor","fullCalendar","_element","singleRes","element","Toolbar","toolbarOptions","viewsWithButtons","newToolbarOptions","sections","renderSection","sectionEl","buttonStr","calendarCustomButtons","calendarButtonTextOverrides","calendarButtonText","buttonGroupStr","groupEl","groupChildren","isOnlyButtons","buttonClick","buttonIcon","buttonInnerHtml","buttonClasses","buttonEl","buttonAriaAttr","buttonTextOverride","buttonTextDefault","updateTitle","activateButton","deactivateButton","disableButton","enableButton","getViewsWithButtons","OptionsManager","dynamicOverrides","compute","optionName","optionCnt","localeDefaults","dirDefaults","rawOptions","clearCache","ViewSpecManager","viewSpecCache","buildViewSpec","viewTypes","singleUnit","requestedViewType","viewOverrides","specChain","defaultsChain","overridesChain","buildViewSpecOptions","buildViewSpecButtonText","queryButtonText","buttonTextKey","Bootstrap3Theme_1","Bootstrap4Theme_1","Bootstrap3Theme","tableGrid","tableList","tableListHeading","popover","Bootstrap4Theme","fixedWeekCount","allDaySlot","slotEventOverlap","listDayFormat","noEventsMessage","listDayAltFormat","ko","isUpper","it","cof","ARG","tryGet","B","callee","numberMap","ku","bs","includes","isInteger","isNumber","isString","SUPPORTED_ALGS","sign_options_schema","expiresIn","notBefore","noTimestamp","keyid","mutatePayload","registered_claims_schema","schema","allowUnknown","parameterName","validateOptions","validatePayload","options_to_payload","options_for_objects","secretOrPrivateKey","isObjectPayload","kid","failure","invalid_options","claim","_vm","_h","$createElement","_self","staticRenderFns","install","FullCalendar","translateSeconds","translateSingular","lt","Duplex","afterTransform","er","ts","_transformState","transforming","writecb","writechunk","rs","_readableState","reading","needReadable","highWaterMark","_read","needTransform","writeencoding","_transform","flush","_flush","prefinish","stream","_writableState","_write","_destroy","err2","classof","getIteratorMethod","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","shadowRoot","_injectStyles","originalRender","existing","ctor","superCtor","TempCtor","isRegExp","advanceStringIndex","toLength","callRegExpExec","$min","$push","$SPLIT","LENGTH","LAST_INDEX","SUPPORTS_Y","SPLIT","$split","maybeCallNative","internalSplit","limit","lastIndex","lastLength","flags","lastLastIndex","splitLimit","separatorCopy","splitter","rx","unicodeMatching","lim","A","z","RESOLVED","REJECTED","PENDING","Promise$1","r","iterable","resolver","race","PromiseObj","called","reason","onResolved","p$1","fulfilled","rejected","finally","ntick","ref$1","debug","inBrowser","Util","config","silent","trimEnd","chars","toLower","toUpper","isBlob","Blob","isFormData","FormData","$vm","_assign","_merge","options$$1","query","urlParams","Url","variables","tmpl","vars","template","operators","expression","literal","substr","variable","getValues","encodeReserved","modifier","isDefined","encodeValue","isKeyOperator","part","encodeURI","transforms","scope","plain","xdrClient","xdr","XDomainRequest","respondWith","getUrl","onprogress","getBody","documentMode","hostname","pathname","search","SUPPORTS_CORS","orgUrl","reqUrl","crossOrigin","emulateHTTP","client","form","delete","emulateJSON","bodyText","isJson","jsonpClient","Http","xhrClient","withCredentials","credentials","downloadProgress","upload","uploadProgress","nodeClient","statusMessage","error$$1","Client","reqHandlers","sendRequest","resHandlers","use","Headers","getName","curr","normalizeName","deleteAll","thisArg","Response","ok","bodyBlob","isBlobText","blobText","reader","FileReader","readAsText","blob","Request","COMMON_HEADERS","JSON_CONTENT_TYPE","interceptors","interceptor","Resource","actions","resource","action","$http","plugin","installed","http","$url","$resource","$promise","put","post","patch","method$$1","save","captureStackTrace","vi","me","SRC","$toString","TPL","inspectSource","safe","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","gt","write","asn1","aesid","fixProc","compat","passphrase","subtype","ndata","stripped","certificate","tbsCertificate","subjectPublicKeyInfo","PublicKey","RSAPublicKey","subjectPublicKey","subjectPrivateKey","pub_key","DSAparam","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","kde","kdeparams","iters","cipher","cipherText","emptyObject","isUndef","isDef","isTrue","isFalse","isPrimitive","_toString","isValidArrayIndex","toNumber","makeMap","expectsLowerCase","isReservedAttribute","camelizeRE","camelize","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","_length","nativeBind","_from","toObject","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","getTime","keysA","keysB","looseIndexOf","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","unicodeRegExp","isReserved","bailRE","parsePath","segments","_isServer","hasProto","inWeex","WXEnvironment","platform","weexPlatform","UA","navigator","userAgent","isIE","isIE9","isEdge","isIOS","isFF","nativeWatch","supportsPassive","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","_Set","hasSymbol","Reflect","Set","Dep","subs","addSub","removeSub","addDep","targetStack","pushTarget","popTarget","VNode","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","inserted","ob","observeArray","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","observe","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","shallow","childOb","dependArray","newVal","del","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","mergeHook","dedupeHooks","mergeAssets","key$1","inject","provide","defaultStrat","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","directives","def$$1","_base","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","getType","isSameType","expectedTypes","handleError","info","$parent","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","MutationObserver","observer","textNode","characterData","_resolve","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","once$$1","createFnInvoker","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","renderList","renderSlot","bindObject","scopedSlotFn","$scopedSlots","$slots","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_m","_f","_k","_v","_u","_g","_p","FunctionalRenderContext","contextVm","_original","isCompiled","needNormalization","listeners","injections","scopedSlots","createFunctionalComponent","renderContext","cloneAndMarkFunctionalResult","vnodes","componentVNodeHooks","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","_isMounted","callHook","queueActivatedComponent","activateChildComponent","deactivateChildComponent","hooksToMerge","createComponent","baseCtor","cid","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","applyNS","registerDeepBindings","class","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","$nextTick","_render","ensureCtor","comp","toStringTag","errorComp","resolved","owners","loading","loadingComp","timerLoading","timerTimeout","$on","forceRender","renderCompleted","$forceUpdate","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","$off","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","i$1","cbs","setActiveInstance","prevActiveInstance","initLifecycle","$children","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","prevEl","$el","prevVnode","restoreActiveInstance","__patch__","__vue__","mountComponent","updateComponent","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$attrs","$listeners","propKeys","_propKeys","isInInactiveTree","direct","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","createEvent","flushSchedulerQueue","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueWatcher","uid$2","expOrFn","isRenderWatcher","user","newDeps","depIds","newDepIds","cleanupDeps","oldValue","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","isRoot","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","$set","$delete","uid$3","initMixin","_uid","initInternalComponent","vnodeComponentOptions","_componentTag","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","components","latest","sealed","sealedOptions","initUse","installedPlugins","_installedPlugins","initMixin$1","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","patternTypes","KeepAlive","include","exclude","Number","created","builtInComponents","initGlobalAPI","configDef","defineReactive","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","mergeClassData","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","querySelector","createElement$1","tagName","multiple","createElementNS","newNode","referenceNode","setTextContent","setStyleScope","nodeOps","registerRef","isRemoval","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","transition","activate","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","isRenderedModule","inVPre","hasChildNodes","childrenMatch","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","setAttributeNS","__ieph","blocker","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","target$1","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","updateDOMListeners","svgContainer","updateDOMProps","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","_vModifiers","parseStyleText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","cssVarRE","importantRE","setProp","normalizedName","normalize","vendorNames","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","classList","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","vmodel","directive","binding","_vOptions","setSelected","onCompositionStart","onCompositionEnd","prevOptions","curOptions","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","initEvent","dispatchEvent","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","c$1","updated","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","moved","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","newPos","oldPos","platformComponents","store","USE_SYMBOL","$exports","combinePassengers","slotProps","passengers","newPassengers","stableSort","compareFn","pick","acc","Wormhole","trackInstances","_transport$order","Infinity","newTransport","currentIndex","$_getTransportIndex","newTransports","registerTarget","unregisterTarget","registerSource","unregisterSource","hasTarget","hasSource","hasContentFor","_ref","wormhole","Portal","slim","sendUpdate","closer","normalizeSlots","normalizeOwnChildren","slotContent","Tag","PortalTarget","firstRender","ownTransports","oldVal","noWrapper","_id$1","portalProps","targetProps","MountingPortal","bail","mountTo","targetSlim","targetSlotProps","targetTag","$props","portalTarget","mountEl","manual","Vue$$1","portalName","portalTargetName","MountingPortalName","af","getParamSize","keySize","paramBytesForAlg","ES256","ES384","ES512","getParamBytesForAlg","paramBytes","uz","applyMixin","vuexInit","$store","devtoolHook","devtoolPlugin","_devtoolHook","targetState","replaceState","subscribe","subscribeAction","deepCopy","forEachValue","Module","rawModule","runtime","_children","_rawModule","rawState","namespaced","getChild","hasChild","mutations","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","register","targetModule","newModule","getNamespace","rawChildModule","unregister","isRegistered","Store","plugins","strict","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","commit","installModule","resetStoreVM","useDevtools","prototypeAccessors$1","genericSubscribe","resetStore","hot","oldVm","wrappedGetters","$$state","enableStrictMode","_withCommit","rootState","parentState","getNestedState","moduleName","makeLocalContext","namespacedType","registerMutation","registerAction","registerGetter","noNamespace","_type","_payload","unifyObjectStyle","makeLocalGetters","gettersProxy","splitPos","localType","entry","rootGetters","rawGetter","_Vue","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","createNamespacedHelpers","isValidMap","helper","createLogger","collapsed","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","logger","prevState","nextState","formattedTime","getFormattedTime","formattedMutation","startMessage","endMessage","formattedAction","groupCollapsed","group","groupEnd","pad","getHours","getMinutes","getSeconds","getMilliseconds","repeat","times","maxLength","INCLUDES","searchString","getOwnPropertyDescriptors","descriptors","formatRegExp","objects","isNull","deprecate","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","stylize","stylizeNoColor","colors","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","arrayToHash","recurseTimes","primitive","formatPrimitive","visibleKeys","isError","formatError","isDate","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","desc","line","numLinesEst","ar","isNullOrUndefined","isSymbol","debuglog","NODE_DEBUG","pid","getMonth","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","callbackify","callbackified","maybeCb","rej","promisify","promiseReject","un","createDesc","ShortCurve","conf","toRed","red","tinv","two","redInvm","zeroA","fromRed","cmpn","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","BasePoint","inf","forceRed","JPoint","zOne","modn","betas","_getEndoRoots","lambdas","redMul","vec","_getEndoBasis","ntinv","redNeg","redSqrt","l1","redAdd","l2","redSub","b0","b1","a2","b2","prevR","aprxSqrt","ushrn","bitLength","x1","y1","x2","y2","neg","len1","sqr","negative","_endoSplit","v1","v2","c1","divRound","c2","p2","q1","q2","pointFromX","odd","redSqr","redIAdd","zero","isOdd","ax","rhs","redISub","_endoWnafMulAdd","points","coeffs","jacobianResult","npoints","ncoeffs","_getBeta","ineg","_wnafMulAdd","pointFromJSON","fromJSON","precomputed","endoMul","naf","wnd","doubles","toJSON","obj2point","dbl","nx","ny","ys1","dyinv","getX","getY","_hasDoubles","_fixedNafMul","_wnafMul","mulAdd","jmulAdd","_precompute","negate","toJ","jpoint","toP","zinv","zinv2","ay","pz2","z2","u1","u2","s1","s2","h2","h3","nz","mixedAdd","dblp","pow","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","t1","t2","dny","_zeroDbl","_threeDbl","_dbl","xx","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","ee","yyu4","kbase","z3","pz3","eqXToP","zs","xc","redN","iadd","elliptic","rand","ec","eddsa","ArrayProto","SignStream","ALGORITHMS","encoders","encryptStart","DEREncoder","entity","DERNode","Node","encodeTag","reporter","tagByName","tagClassByName","encode","_encode","_encodeComposite","encodedTag","_createEncoderBuffer","lenOctets","_encodeStr","unused","buf","writeUInt16BE","_isNumstr","_isPrintstr","_encodeObjid","ident","objid","_encodeTime","getFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","_encodeNull","_encodeInt","numArray","_encodeBool","_use","_getEncoder","_skipDefault","dataBuffer","_baseState","defaultBuffer","_encodeValue","parseBytes","cachedProperty","KeyPair","_secret","isPoint","pub","_pub","_pubBytes","fromPublic","fromSecret","encodePoint","decodePoint","priv","lastIx","encodingLength","decodeInt","privBytes","sig","getPublic","pubBytes","enCa","ObjectProto","jwt","decoded","endian","isBN","wordSize","parseHex","parseBase","_initNumber","_initArray","_parseHex","_parseBase","strip","limbLen","limbPow","total","imuln","_iaddn","_expand","_normSign","zeros","groupSizes","groupBases","toBitArray","bit","wbit","smallMulTo","lo","carry","ncarry","rword","maxJ","groupSize","groupBase","isZero","idivn","toBuffer","toArrayLike","ArrayType","reqLength","littleEndian","andln","iushrn","clz32","_countBits","_zeroBits","hi","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","isNeg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","uxor","bytesNeeded","bitsLeft","setn","isub","comb10MulTo","mid","al0","ah0","al1","ah1","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","bl0","bh0","bl1","bh1","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","imul","w0","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","fftm","FFTM","mulp","mulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","itwdf","sin","rtwdf_","itwdf_","ie","ro","io","guessLen13b","conjugate","normalize13b","ws","convert13b","stub","ph","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","isqr","iushln","bits","carryMask","newCarry","ishln","hint","extended","maskedWords","ishrn","shln","ushln","shrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","bhiBits","qj","divmod","positive","divn","umod","dm","half","egcd","isEven","yp","xp","im","jm","gcd","_invmp","invm","bincn","ucmp","gtn","gten","gte","ltn","lten","lte","eqn","Red","convertTo","_forceRed","convertFrom","redShl","shl","_verify2","redIMul","_verify1","redISqr","sqrt","redPow","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","outLen","mod3","nOne","lpow","inv","windowSize","currentLen","enGb","relativeTimeMr","mr","asUInt32Array","readUInt32BE","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","t0","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","_reset","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","writeUInt32BE","ne","12","13","40","tg","cs","_classCallCheck","instance","_defineProperties","descriptor","_createClass","protoProps","staticProps","_extends","_inherits","subClass","superClass","_setPrototypeOf","_getPrototypeOf","isNativeReflectConstruct","sham","Proxy","_construct","Parent","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_superPropBase","_get","receiver","consolePrefix","uniqueArray","objectValues","nodeList","previousWarnOnceMessages","warnOnce","warnAboutDepreation","deprecatedParam","useInstead","callIfFunction","DismissReason","cancel","backdrop","esc","argsToParams","swalPrefix","swalClasses","iconTypes","previousBodyPadding","removeCustomClasses","applyCustomClass","customClass","getInput","inputType","getChildByClass","oldInputVal","focusInput","condition","applyNumericalStyle","removeProperty","isVisible","isScrollable","hasCssAnimation","animDuration","transDuration","haystack","needle","getContainer","elementBySelector","selectorString","elementByClass","getPopup","popup","getIcons","icon","getIcon","visibleIcon","getTitle","getContent","getImage","getProgressSteps","getValidationMessage","getConfirmButton","confirm","getCancelButton","getActions","getHeader","getFooter","getCloseButton","focusable","getFocusableElements","focusableElementsWithTabindex","otherFocusableElements","isModal","isToast","isLoading","isNodeEnv","sweetHTML","question","warning","label","textarea","resetOldContainer","oldContainer","resetValidationMessage","Swal","addInputChangeListeners","rangeOutput","oninput","onchange","getTarget","setupAccessibility","toast","setupRTL","targetElement","rtl","parseHtmlToContainer","handleJqueryElem","testEl","transEndEventNames","WebkitAnimation","OAnimation","measureScrollbar","supportsTouch","msMaxTouchPoints","scrollDiv","scrollbarWidth","renderActions","confirmButton","cancelButton","showConfirmButton","showCancelButton","renderButton","buttonsStyling","handleButtonsStyling","styled","borderLeftColor","borderRightColor","reverseButtons","confirmButtonColor","cancelButtonColor","confirmButtonBackgroundColor","buttonType","handleBackdropParam","background","handlePositionParam","handleGrowParam","grow","growClass","renderContainer","allowOutsideClick","customContainerClass","privateProps","WeakMap","innerParams","domCache","inputTypes","renderInput","rerender","inputClass","inputContainer","setAttributes","inputAttributes","setClass","showInput","renderInputType","removeAttributes","attrName","setInputPlaceholder","inputPlaceholder","email","tel","inputValue","checkboxInput","initialPopupWidth","popupPadding","paddingLeft","paddingRight","outputsize","contentWidth","attributeFilter","renderContent","renderCloseButton","closeButton","closeButtonHtml","showCloseButton","closeButtonAriaLabel","renderIcon","hideAllIcons","adjustSuccessIconBackgoundColor","icons","popupBackgroundColor","successIconParts","renderImage","imageUrl","imageAlt","imageWidth","imageHeight","imageClass","createStepElement","stepEl","createLineElement","lineEl","progressStepsDistance","renderProgressSteps","progressStepsContainer","progressSteps","currentProgressStep","getQueueStep","renderTitle","titleText","innerText","renderPopup","modal","noanimation","onRender","isVisible$1","clickConfirm","clickCancel","mixinParams","MixinSwal","currentSteps","steps","resetAndResolve","queueResult","dismiss","insertQueueStep","deleteQueueStep","showLoading","RESTORE_FOCUS_TIMEOUT","globalState","focusPreviousActiveElement","previousActiveElement","restoreActiveElement","scrollX","scrollY","restoreFocusTimeout","getTimerLeft","stopTimer","resumeTimer","toggleTimer","running","increaseTimer","increase","isTimerRunning","defaultParams","heightAuto","allowEscapeKey","allowEnterKey","stopKeydownPropagation","keydownListenerCapture","preConfirm","confirmButtonText","confirmButtonAriaLabel","confirmButtonClass","cancelButtonText","cancelButtonAriaLabel","cancelButtonClass","focusConfirm","focusCancel","showLoaderOnConfirm","inputOptions","inputAutoTrim","inputValidator","validationMessage","onBeforeOpen","onOpen","onClose","onAfterClose","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","showWarningsForParams","staticMethods","enableLoading","hideLoading","getInput$1","fixScrollbar","innerHeight","undoScrollbar","iOSfix","iOS","MSStream","iosfix","lockBodyScroll","preventTouchMove","ontouchstart","ontouchmove","undoIOSfix","isIE11","MSInputMethodContext","fixVerticalPositionIE","offsetTop","alignItems","IEfix","undoIEfix","setAriaHidden","bodyChildren","unsetAriaHidden","privateMethods","swalPromiseResolve","removePopupAndResetState","triggerOnAfterCloseAndDispose","keydownTarget","keydownHandler","keydownHandlerAdded","removeBodyClasses","shown","disposeSwal","unsetWeakMaps","resolveValue","handlePopupAnimation","animationIsSupported","animatePopup","swalCloseEventFinishedCallback","setButtonsDisabled","setInputDisabled","radiosContainer","radios","enableButtons","disableButtons","enableConfirmButton","disableConfirmButton","enableInput","disableInput","showValidationMessage","popupComputedStyle","marginRight","inputerror","resetValidationMessage$1","getProgressSteps$1","setProgressSteps","updatedParams","showProgressSteps","hideProgressSteps","Timer","started","defaultInputValidators","setDefaultInputValidators","validateCustomTargetElement","setParameters","swalOpenAnimationFinished","openPopup","addClasses","setScrollingVisibility","fixScrollContainer","fade","handleInputOptionsAndValue","handleInputOptions","handleInputValue","processInputOptions","populateInputOptions","formatInputOptions","inputOption","optionValue","optionLabel","radioLabel","radioInput","radioLabelElement","Map","handleConfirmButtonClick","handleConfirmWithInput","handleCancelButtonClick","dismissWith","getInputValue","validationPromise","checkValidity","succeedWith","closePopup","preConfirmPromise","preConfirmValue","getCheckboxValue","getRadioValue","getFileValue","files","addKeydownHandler","setFocus","increment","focusableElements","arrowKeys","escKeys","handleEnter","handleTab","handleArrows","handleEsc","isComposing","outerHTML","btnIndex","handlePopupClick","handleToastClick","handleModalMousedown","handleContainerMousedown","handleModalClick","onclick","ignoreOutsideClick","onmousedown","onmouseup","_main","userParams","deferDisposalTimer","populateDomCache","swalPromise","setupTimer","initFocus","globalState$$1","blurActiveElement","validUpdatableParams","currentInstance","instanceMethods","disableLoading","closeModal","closeToast","SweetAlert","outerParams","_currentInstance","Sweetalert2","swal","sweetAlert","styleSheet","EdwardsCurve","twisted","mOneA","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","zi","ta","kn","ZEROES","fromArray","GHASH","ghash","_multiply","lsbVi","Vi","Zi","abl","bl","MILLISECONDS_SECOND","MILLISECONDS_MINUTE","MILLISECONDS_HOUR","MILLISECONDS_DAY","EVENT_VISIBILITY_CHANGE","counting","totalMilliseconds","autoStart","emitEvents","totalDays","totalHours","totalMinutes","totalSeconds","visibilityState","continue","requestId","timeoutId","cancelAnimationFrame","handleVisibilityChange","define","seq","int","AlgorithmIdentifier","bitstr","null_","optional","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","explicit","ECParameters","choice","namedCurve","Reporter","DecoderBuffer","EncoderBuffer","AuthCipher","MODES","ebtk","Splitter","_last","_autopadding","unpad","padded","suite","setAutoPadding","setTo","autoPadding","arKw","EventEmitter","__webpack_exports__","dateTimeFormatter","mts","isEqualDateStr","dateStr1","dateStr2","dateArr1","dateArr2","rawScriptExports","compiledTemplate","cssModules","esModule","fullFormat","dayEventsTitle","notHaveEvents","zh","us","es","fr","ru","sv","de","originalModule","webpackPolyfill","__WEBPACK_IMPORTED_MODULE_0__i18n_js__","__WEBPACK_IMPORTED_MODULE_1__tools_js__","i18n","__WEBPACK_IMPORTED_MODULE_2__cal_event_item_vue__","__WEBPACK_IMPORTED_MODULE_2__cal_event_item_vue___default","dayEvents","tempDate","selectedDay","dayList","curYear","curMonth","dayOfWeek","getDay","weekStartOn","startDate","tempArr","tempItem","dateObj","curYearMonth","customColor","nextMonth","$EventCalendar","preMonth","handleChangeCurday","__WEBPACK_IMPORTED_MODULE_0__tools_js__","__WEBPACK_IMPORTED_MODULE_1__components_cal_events_vue__","__WEBPACK_IMPORTED_MODULE_1__components_cal_events_vue___default","__WEBPACK_IMPORTED_MODULE_2__components_cal_panel_vue__","__WEBPACK_IMPORTED_MODULE_2__components_cal_panel_vue___default","selectedDayEvents","calendarOptions","VueCalendarBarEventBus","CALENDAR_EVENTS_DATA","curDate","curEventsDate","calendarParams","handleChangeCurDay","handleMonthChanged","yearMonth","__WEBPACK_IMPORTED_MODULE_0__vue_event_calendar_vue__","__WEBPACK_IMPORTED_MODULE_0__vue_event_calendar_vue___default","DEFAULT_OPTION","bindEventBus","toDate","dateString","dateArr","showEvents","dayName","_obj","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","lastDigit","firstDigit","lb","Signature","_R","_S","_Rencoded","Rencoded","_Sencoded","Sencoded","encodeInt","toBytes","toHex","bitmap","pna","readableDestroyed","writableDestroyed","errorEmitted","emitErrorNT","undestroy","endEmitted","ending","finished","az","regExpExec","MATCH","$match","fullUnicode","matchStr","zhHk","hm","isArrayIter","getIterFn","BREAK","RETURN","iterFn","typeAheadPointer","maybeAdjustScroll","pixelsToPointerTop","pixelsToPointerBottom","viewport","pointerHeight","dropdownMenu","filteredOptions","typeAheadUp","typeAheadDown","typeAheadSelect","taggable","clearSearchOnSelect","mutableLoading","toggleLoading","Deselect","xmlns","OpenIndicator","clearable","searchable","closeOnSelect","autocomplete","getOptionLabel","getOptionKey","onTab","selectOnTab","pushTags","filterable","filterBy","createOption","optionList","resetOnOptionsChange","noDrop","inputId","searchInputQuerySelector","pushedTags","clearSelection","isTrackingValues","setInternalValueFromOptions","maybePushTag","$data","findOptionFromReducedValue","isOptionSelected","optionExists","selectedValue","updateValue","onAfterSelect","deselect","optionComparator","searchEl","toggleDropdown","openIndicator","closeSearchOptions","maybeDeleteValue","normalizeOptionForSlot","onEscape","onSearchBlur","searching","clearSearchOnBlur","onSearchFocus","onMousedown","onMouseUp","onSearchKeyDown","onSearchKeyUp","selectedOptions","searchPlaceholder","readonly","dropdownOpen","role","keyup","spinner","childComponents","stateClasses","isValueEmpty","showClearButton","mouseover","pointer","pointerScroll","btoa","sourceRoot","unescape","media","sourceMap","DEBUG","ssrId","a667","currentScript","tagname","scrollHandle","Element","main","thumb","rail","consuming","clicking","scrolling","isAlive","scrollingThreshold","unbindAll","eventElements","CustomEvent","initCustomEvent","eventElement","X","reach","borderLeftWidth","borderRightWidth","isWebKit","DocumentTouch","supportsIePointer","isChrome","containerWidth","containerHeight","contentHeight","scrollbarXRail","scrollbarYRail","suppressScrollX","scrollXMarginOffset","scrollbarXActive","railXWidth","railXMarginWidth","railXRatio","scrollbarXWidth","scrollbarXLeft","negativeScrollAdjustment","suppressScrollY","scrollYMarginOffset","scrollbarYActive","railYHeight","railYMarginHeight","railYRatio","scrollbarYHeight","scrollbarYTop","minScrollbarLength","maxScrollbarLength","isRtl","isScrollbarXUsingBottom","scrollbarXBottom","scrollbarXTop","isScrollbarYUsingRight","scrollbarYRight","scrollbarYOuterWidth","scrollbarYLeft","scrollbarX","railBorderXWidth","scrollbarY","railBorderYWidth","E","wheelPropagation","deltaX","deltaY","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","useBothWheelAxes","wheelSpeed","onwheel","onmousewheel","PointerEvent","MSPointerEvent","MSPOINTER_TYPE_MOUSE","swipeEasing","isInitialized","keyboard","wheel","touch","isNegativeScroll","borderTopWidth","borderBottomWidth","marginTop","marginBottom","lastScrollTop","lastScrollLeft","onScroll","removePsClasses","swicher","__init","_ps_inited","__uninit","$route","$isServer","activated","deactivated","I","U","e67d","f5fc","locals","hr","INFINITY","MAX_INTEGER","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toFinite","remainder","isBinary","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherKey","match2","DESState","_desState","deriveKeys","shiftTable","kL","kR","pc1","r28shl","pc2","ip","_encrypt","lStart","rStart","keyL","keyR","substitute","rip","Sha512","Ch","maj","sigma0","xl","sigma1","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","ah","bh","eh","fh","gh","al","cl","dl","fl","gl","hl","xh","gamma0","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","ga","getBlock","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","encryptByte","byteParam","shiftIn","paddedMsg","publicExponent","ur","propertyIsEnumerable","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","aFunction","anInstance","forOf","microtask","newPromiseCapabilityModule","perform","PROMISE","versions","v8","$Promise","isNode","newPromiseCapability","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","isReject","chain","reaction","exited","domain","onHandleUnhandled","exit","onUnhandled","unhandled","isUnhandled","onunhandledrejection","onrejectionhandled","$reject","$resolve","wrapper","capability","$$reject","$index","alreadyCalled","SHARED","copyright","mergeFormatCharacters","DEFAULT_FORMAT_CHARACTERS","ESCAPE_CHAR","DIGIT_RE","LETTER_RE","ALPHANNUMERIC_RE","DEFAULT_PLACEHOLDER_CHAR","Pattern","isRevealingMask","firstEditableIndex","lastEditableIndex","_editableIndices","_parse","setPattern","sourceChars","patternIndex","valueBuffer","valueIndex","isEditableIndex","isValidAtIndex","selectionBefore","valueBefore","inputIndex","_historyIndex","_history","_lastOp","_lastSelection","lastOp","initialState","historyItem","startUndo","_resetHistory","rawValue","esUs","MillerRabin","millerRabin","TWENTYFOUR","ELEVEN","TEN","THREE","SEVEN","setPublicKey","setPrivateKey","_priv","primeCache","checkPrime","hex","rem","simpleSieve","fermatTest","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","bn","__gen","generateKeys","_gen","getPublicKey","computeSecret","getPrime","front","fill","getPrivateKey","getGenerator","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","any","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","TBSCertificate","implicit","X509Certificate","tet","VueSweetalert2","vue","_swal","mixed","_loop_1","$swal","findPrime","ONE","TWO","FIVE","FOUR","_getPrimes","n2","sha1","sha224","dv","LARGE_ARRAY_SIZE","HASH_UNDEFINED","HOT_COUNT","HOT_SPAN","MAX_SAFE_INTEGER","argsTag","arrayTag","asyncTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","objectTag","proxyTag","regexpTag","setTag","stringTag","undefinedTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reRegExpChar","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","require","nodeIsTypedArray","isTypedArray","baseTimes","iteratee","baseUnary","overArg","funcProto","coreJsData","funcToString","maskSrcKey","nativeObjectToString","objectCtorString","reIsNative","getPrototype","objectCreate","symToStringTag","getNative","nativeIsBuffer","nativeMax","nativeNow","nativeCreate","baseCreate","hashClear","__data__","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","assignMergeValue","baseAssignValue","assignValue","objValue","baseFor","createBaseFor","baseGetTag","getRawTag","baseIsArguments","baseIsNative","isMasked","toSource","baseIsTypedArray","isLength","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","srcIndex","customizer","srcValue","baseMergeDeep","safeGet","keysIn","mergeFunc","stacked","isCommon","isTyped","isArrayLikeObject","copyArray","cloneBuffer","cloneTypedArray","toPlainObject","initCloneObject","baseRest","setToString","overRest","baseSetToString","constant","isDeep","cloneArrayBuffer","arrayBuffer","typedArray","byteOffset","copyObject","isNew","createAssigner","assigner","guard","isIterateeCall","fromRight","keysFunc","customDefaultsMerge","isKeyable","isOwn","unmasked","otherArgs","shortOut","lastCalled","stamp","stubFalse","defaultsDeep","mergeWith","MD5","weekEndings","hu","Flatted","Primitive","reviver","Primitives","primitives","revive","replacer","space","firstRun","known","zhCn","own","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","te","SAFE_CLOSING","riter","skipClosing","copyBuffer","BufferList","tail","inL","inR","outL","outR","pc2table","sTable","sb","permuteTable","padSplit","builtinExec","arrayIncludes","enumerableOnly","symbols","omit","readonlyDescriptor","deepFreeze","cloneDeep","toRawType","isUndefinedOrNull","breakpoints","formControls","BAlert","dismissLabel","variant","BBadge","BButton","BButtonClose","textVariant","ariaLabel","BCardSubTitle","subTitleTextVariant","BCarousel","labelPrev","labelNext","labelGotoSlide","labelIndicators","BDropdown","toggleText","splitVariant","BFormFile","browseText","dropPlaceholder","BFormText","BImg","blankColor","BImgLazy","BInputGroup","BJumbotron","bgVariant","borderVariant","BListGroupItem","BModal","titleTag","headerBgVariant","headerBorderVariant","headerTextVariant","headerCloseVariant","bodyBgVariant","bodyTextVariant","footerBgVariant","footerBorderVariant","footerTextVariant","cancelTitle","cancelVariant","okTitle","okVariant","headerCloseLabel","BNavbar","BNavbarToggle","BPagination","BPaginationNav","BPopover","boundary","boundaryPadding","BProgress","BProgressBar","BSpinner","BTable","selectedVariant","headVariant","footVariant","BToast","toaster","autoHideDelay","toastClass","headerClass","bodyClass","BToaster","ariaLive","ariaAtomic","BTooltip","PROP_NAME","BvConfig","$_config","$_cachedBreakpoints","configKeys","cmpName","cmpConfig","setConfig","checkMultipleVue","checkMultipleVueWarned","MULTIPLE_VUE_WARNING","registerComponents","registerDirectives","registerPlugins","pluginFactory","registerComponent","registerDirective","argsKey","VueProto","getConfigValue","getComponentConfig","getBreakpoints","_getBreakpointsCached","getBreakpointsUpCached","elProto","matchesEl","closestEl","parentElement","ELEMENT_NODE","requestAF","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","MutationObs","WebKitMutationObserver","MozMutationObserver","useCapture","eventOn","evtName","eventOff","isElement","bcr","getBCR","getAttr","reflow","hasAttr","_offset","elStyles","offsetParentStyles","kebab","styleProp","styleList","NO_FADE_PROPS","FADE_PROPS","BVTransition","noFade","transProps","hasNormalizedSlot","normalizeSlot","vNodes","componentData","parseShow","isNumericLike","dismissible","countDownTimerId","countDown","localShow","clearTimer","$alert","$dismissBtn","AlertPlugin","keysToPluck","objToPluck","transformFn","memo","spaces","ANCHOR_TAG","commaRE","encodeReserveRE","encodeReserveReplacer","decodeURIComponent","computeTag","thisOrParent","$router","$nuxt","_ref2","rel","_ref3","toFallback","propsFactory","exact","exactActiveClass","routerTag","noPrefetch","BLink","computedTag","isRouterLink","computedRel","computedHref","computedProps","onClick","_arguments","evtIsEvent","suppliedHandler","pill","BadgePlugin","stripTagsRegex","stripTags","htmlOrText","ariaCurrent","BBreadcrumbLink","suppliedProps","BBreadcrumbItem","BBreadcrumb","activeDefined","BreadcrumbPlugin","squared","pressed","linkPropKeys","isButton","isNonStandardTag","computeAttrs","link","nonStdTag","focusout","ButtonPlugin","BBtn","BBtnClose","vertical","ariaRole","BButtonGroup","ButtonGroupPlugin","BBtnGroup","KEY_CODES","SPACE","ENTER","ESC","LEFT","UP","RIGHT","DOWN","PAGEUP","PAGEDOWN","HOME","END","TAB","SHIFT","CTRL","BACKSPACE","ALT","PAUSE","INSERT","INS","DELETE","ITEM_SELECTOR","BButtonToolbar","justify","keyNav","getItems","onFocusin","focusFirst","onKeydown","focusPrev","focusLast","focusNext","setItemFocus","ButtonToolbarPlugin","BBtnToolbar","lowerFirst","copied","BCardTitle","subTitle","subTitleTag","card","overlay","BCardBody","cardTitle","cardSubTitle","cardContent","bodyTag","bodyBorderVariant","headerHtml","BCardHeader","headerTag","footerHtml","footerClass","BCardFooter","footerTag","alt","BCardImg","baseClass","cardImgProps","imgSrc","align","noBody","BCard","_class","imgFirst","imgLast","img","imgBottom","imgLeft","imgStart","imgRight","imgEnd","compareArrays","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","OBSERVER_PROP_NAME","VisibilityObserver","doneOnce","createObserver","IntersectionObserver","rootMargin","threshold","_unused","isIntersecting","intersectionRatio","disconnect","_prevModifiers","VBVisible","BLANK_TEMPLATE","fluid","fluidGrow","rounded","thumbnail","blank","makeBlankImgSrc","blankSrc","blankWidth","blankHeight","bVisible","isShown","computedSrc","computedBlank","computedWidth","computedHeight","updateShowProp","doShow","_modifiers","BCardImgLazy","lazyProps","textTag","BCardText","deck","columns","BCardGroup","CardPlugin","obs","changed","TEXT_NODE","addedNodes","removedNodes","childList","subtree","localId_","safeId","DIRECTION","dirClass","overlayClass","TRANS_DURATION","TOUCH_EVENT_COMPAT_WAIT","SWIPE_THRESHOLD","PointerType","TOUCH","PEN","TransitionEndEvents","WebkitTransition","MozTransition","OTransition","EventOptions","bvCarousel","indicators","controls","noAnimation","noWrap","noTouch","noHoverPause","imgWidth","imgHeight","isSliding","slides","touchStartX","touchDeltaX","numSlides","setSlide","doSlide","_intervalId","_animationTimeout","_touchTimeout","updateSlides","slide","restart","isCycling","calcDirection","currentSlide","nextSlide","onceTransEnd","curIndex","nextIndex","handleSwipe","absDeltaX","touchStart","touchMove","touchEnd","imgAlt","imgBlank","imgBlankColor","contentVisibleUp","contentTag","captionHtml","captionTag","textHtml","BCarouselSlide","contentClasses","noDrag","contentChildren","CarouselPlugin","listenOnRoot","listenOnRootOnce","emitOnRoot","_this$$root","EVENT_STATE","EVENT_ACCORDION","EVENT_STATE_SYNC","EVENT_TOGGLE","EVENT_STATE_REQUEST","BCollapse","isNav","accordion","transitioning","classObject","emitState","handleToggleEvt","handleAccordionEvt","setWindowEvents","handleResize","emitSync","onEnter","onAfterEnter","onLeave","onAfterLeave","checkDisplayBlock","restore","isBlock","clickHandler","openedId","allListenTypes","BVBoundListeners","listenTypes","boundListeners","BV_TOGGLE","BV_TOGGLE_STATE","BV_TOGGLE_CONTROLS","BV_TOGGLE_TARGETS","resetProp","handleTargets","VBToggle","toggleDirectiveHandler","CollapsePlugin","BvEvent","eventInit","Defaults","vueTarget","componentId","listenForClickOut","clickOutElement","clickOutEventName","_clickOutHandler","isClickOut","clickOutHandler","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","Selector","FORM_CHILD","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","bvDropdown","dropup","dropright","dropleft","noFlip","popperOpts","inNavbar","visibleChangePrevented","toggler","directionClass","bvEvt","menu","emitEvent","focusToggler","showMenu","hideMenu","_popper","whileOpenListen","removePopper","createPopper","focusMenu","getPopperConfig","placement","popperConfig","flip","enabled","preventOverflow","boundariesElement","rootCloseListener","refocus","onEsc","up","focusItem","menuClass","toggleTag","noCaret","splitHref","splitTo","splitButtonType","dropdownClasses","menuClasses","toggleClasses","buttonContent","btnProps","BDropdownItem","closeDropdown","BDropdownItemButton","BDropdownHeader","BDropdownDivider","inline","novalidate","validated","BForm","BDropdownForm","BDropdownText","headerVariant","headerClasses","ariaDescribedby","BDropdownGroup","headerId","adb","ariaDescribedBy","DropdownPlugin","BDd","BDdItem","BDropdownItemBtn","BDdItemButton","BDdItemBtn","BDdHeader","BDdDivider","BDdForm","BDdText","BDdGroup","aspect","BEmbed","EmbedPlugin","valueField","textField","htmlField","disabledField","formOptions","BFormDatalist","tooltip","forceShow","BFormInvalidFeedback","BFormValidFeedback","BFormRow","FormPlugin","BDatalist","BFormFeedback","computedState","stateClass","boolStrNum","strNum","breakpoint","computeBreakpointClass","breakpointPropMap","breakpointCol","propMap","breakpointOffset","breakpointOrder","cols","alignSelf","BCol","_classList$push","_keys","hasColClasses","SELECTOR","invalidFeedback","invalidFeedbackId","feedbackAriaLive","validFeedback","validFeedbackId","description","descriptionId","labelFor","isLegend","labelTag","labelSrOnly","labelId","for","labelColProps","legendClick","labelSize","labelAlignClasses","labelClass","makePropName","BREAKPOINTS","bpLabelColProps","bpLabelAlignProps","BFormGroup","propVal","bColPropName","hasInvalidFeedback","hasValidFeedback","describedByIds","setInputDescribedBy","inputs","ids","isFieldset","FormGroupPlugin","BFormFieldset","autofocus","handleAutofocus","buttonVariant","ariaLabelledby","localChecked","isGroup","bvGroup","computedLocalChecked","isBtnMode","isPlain","isCustom","isSwitch","isRadio","switches","switch","isInline","isRequired","groupName","getForm","getSize","getState","getButtonVariant","isChecked","handleFocus","defaultSlot","handleChange","isCheck","sizeFormClass","sizeBtnClass","BFormCheckbox","uncheckedValue","indeterminate","setIndeterminate","_ref$target","BFormRadio","ariaInvalid","groupClasses","computedAriaInvalid","isRadioGroup","BFormCheckboxGroup","bvCheckGroup","FormCheckboxPlugin","BCheckbox","BCheck","BCheckboxGroup","BCheckGroup","BFormRadioGroup","bvRadioGroup","FormRadioPlugin","BRadio","BRadioGroup","plaintext","formatter","lazyFormatter","localValue","stringifyValue","computedClass","getFormatted","onInput","formatted","onChange","onBlur","selectionDirection","_this$$refs$input","_this$$refs$input2","setRangeText","_this$$refs$input3","validity","willValidate","setCustomValidity","reportValidity","TYPES","BFormInput","noWheel","setWheelStopper","onWheelFocus","onWheelBlur","stopWheel","FormInputPlugin","BInput","BFormTextarea","rows","maxRows","noResize","noAutoShrink","heightInPx","computedStyle","computedRows","computedMinRows","computedMaxRows","visibleCallback","computeHeight","lineHeight","paddingTop","paddingBottom","minHeight","oldHeight","contentRows","FormTextareaPlugin","BTextarea","directory","noTraverse","fileNameFormatter","selectedFile","dragging","selectLabel","focusHandler","onFileChange","dataTransfer","setFiles","webkitGetAsEntry","traverseFileTree","filesArr","filesArray","onReset","onDragover","dropEffect","onDragleave","onDrop","isFile","$path","isDirectory","createReader","readEntries","webkitdirectory","dragover","dragleave","drop","FormFilePlugin","BFile","BFormSelect","selectSize","computedSelectSize","selectedVal","FormSelectPlugin","BSelect","ImagePlugin","BInputGroupText","commonProps","isText","BInputGroupAddon","BInputGroupPrepend","BInputGroupAppend","prependHtml","appendHtml","InputGroupPlugin","BContainer","containerFluid","headerLevel","lead","leadHtml","leadTag","_class2","JumbotronPlugin","COMMON_ALIGNMENT","noGutters","alignV","alignH","alignContent","BRow","LayoutPlugin","LinkPlugin","horizontal","BListGroup","actionTags","isAction","itemProps","ListGroupPlugin","BMediaBody","verticalAlign","BMediaAside","rightAlign","BMedia","$aside","MediaPlugin","BTransporterTargetSingle","updatedNodes","BTransporterSingle","unmountTarget","mountTarget","_bv_defaultFn","_bv_target","updateTarget","defaultFn","getScopeId","scopedStyleAttrs","DEFAULT_ZINDEX","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","ModalManager","modals","baseZIndex","isBodyOverflowing","modalCount","modalsAreOpen","newCount","oldCount","getScrollbarWidth","checkScrollbar","setScrollbar","resetScrollbar","updateModals","registerModal","unregisterModal","resetModal","getBaseZIndex","isTop","_getBCR","_paddingChangedForModal","_marginChangedForModal","actualPadding","calculatedPadding","actualMargin","calculatedMargin","modalManager","_BvEvent","BvModalEvent","OBSERVER_CONFIG","EVT_OPTIONS","TABABLE_SELECTOR","centered","scrollable","buttonSize","noStacking","noCloseOnBackdrop","noCloseOnEsc","noEnforceFocus","titleClass","titleSrOnly","modalClass","dialogClass","contentClass","hideHeader","hideFooter","hideHeaderClose","hideBackdrop","okOnly","okDisabled","cancelDisabled","returnFocus","cancelTitleHtml","okTitleHtml","busy","static","autoFocusButton","isTransitioning","isShow","isOpening","isClosing","ignoreBackdropClick","isModalOverflowing","return_focus","modalClasses","modalStyles","sbWidth","dialogClasses","titleClasses","bodyClasses","footerClasses","_ref4","modalOuterStyle","slotScope","onOk","onCancel","_observer","showHandler","hideHandler","toggleHandler","modalListener","setEnforceFocus","setResizeEvent","updateModel","buildEvent","getActiveElement","showEvt","hideEvt","triggerEl","getTabables","checkModalOverflow","onBeforeEnter","onBeforeLeave","returnFocusTo","bvModalEvt","onDialogMousedown","onceModalMouseup","onClickOut","tabables","bottomTrap","topTrap","preventScroll","autoFocus","makeModal","modalHeader","modalFooter","cancelHtml","okHtml","okButton","modalContent","tabTrapTop","tabTrapBottom","modalDialog","EVENT_SHOW","VBModal","PROP_NAME_PRIV","BASE_PROPS","defaultResolver","propsToSlots","msgBoxContent","BMsgBox","handleDestroy","asyncMsgBox","msgBox","makeMsgBox","BvModal","_root","_this$_root","_this$_root2","BVModalPlugin","ModalPlugin","justified","tabs","pills","small","cardHeader","computeJustifyContent","BNav","BNavItem","linkAttrs","linkClasses","BNavText","BNavForm","BNavItemDropdown","NavPlugin","BNavItemDd","BNavDropdown","BNavDd","toggleable","fixed","print","BNavbarNav","BNavbarBrand","isLink","toggleState","handleStateEvt","NavbarPlugin","BNavToggle","ELLIPSIS_THRESHOLD","DEFAULT_LIMIT","startNumber","numberOfPages","sanitizeLimit","sanitizeCurrentPage","page","hideGotoEndButtons","labelFirstPage","firstText","labelPrevPage","labelNextPage","labelLastPage","lastText","labelPage","hideEllipsis","ellipsisText","currentPage","localNumberOfPages","localLimit","btnSize","computedCurrentPage","paginationParams","showFirstDots","showLastDots","numberOfLinks","pageList","_this$paginationParam","pages","_i2","_i3","getButtons","btn","setBtnFocus","focusCurrent","cnt","_this$paginationParam2","isActivePage","pageNum","noCurrPage","makeEndBtn","linkTo","btnSlot","btnText","pageTest","btnContent","linkProps","ariaControls","makeEllipsis","isLast","makePage","pagination","DEFAULT_PER_PAGE","DEFAULT_TOTAL_ROWS","perPage","totalRows","sanitizePerPage","sanitizeTotalRows","pageSizeNumberOfPages","PaginationPlugin","sanitizeNumberOfPages","baseUrl","useRouter","linkGen","pageGen","noPageDetect","computedValue","setNumberOfPages","guessCurrentPage","getPageInfo","_link","makeLink","resolveLink","_link2","resolveRoute","route","guess","currRoute","loc","currLink","PaginationNavPlugin","AUTO","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","BVPopper","fallbackPlacement","arrowPadding","attachment","getAttachment","templateType","getOffset","behavior","arrow","onCreate","originalPlacement","popperPlacementChange","onUpdate","$_popper","popperCreate","popperUpdate","popperDestroy","arrowOffset","scheduleUpdate","renderTemplate","BVTooltipTemplate","templateClasses","templateAttributes","templateListeners","$title","MODAL_SELECTOR","MODAL_CLOSE_EVENT","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","EvtOpts","templateData","triggers","BVTooltip","activeTrigger","computedId","computedDelay","computedTriggers","isWithActiveTrigger","computedTemplateData","newTriggers","oldTriggers","unListen","listen","handleTemplateUpdate","enable","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","forceHide","setWhileOpenListeners","destroyTemplate","restoreTitle","getTemplate","updateData","titleUpdated","fixTitle","createTemplateAndShow","Template","$tip","getPlacementTarget","getBoundary","onTemplateShow","onTemplateShown","onTemplateHide","onTemplateHidden","handleEvent","hideTemplate","$_hoverTimout","clearActiveTriggers","localPlacementTarget","getTemplateElement","addAriaDescribedby","tip","hoverTimeout","prevHoverState","removeAriaDescribedby","getTargetId","isInModal","isDropdown","setRootListener","doHide","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","visibleInterval","evtTarget","$hoverTimeout","localTitle","localContent","templateTitleContent","_show","$_bv_toolpop","updateContent","doOpen","doClose","$toolpop","onShow","onShown","onHide","onHidden","onDisabled","onEnabled","setTitle","setContent","BVPopoverTemplate","$content","titleDomProps","contentDomProps","BVPopover","BV_POPOVER","DefaultTrigger","validTriggers","htmlRE","noFadeRE","placementRE","boundaryRE","delayRE","delayShowRE","delayHideRE","offsetRE","variantRE","bindings","selectedTriggers","__bv_prev_data__","newData","removePopover","VBPopover","PopoverPlugin","bvProgress","labelHtml","precision","striped","showProgress","showValue","progressBarClasses","computedVariant","computedStriped","computedAnimated","progressBarStyles","computedMax","computedProgress","computedPrecision","computedShowProgress","computedShowValue","toFixed","progressHeight","ProgressPlugin","SpinnerPlugin","startCase","$1","$2","IGNORED_FIELD_KEYS","_rowVariant","_cellVariants","_showDetails","EVENT_FILTER","origFields","fields","sample","primaryKey","localItems","computedFields","computedFieldsObj","computedItems","paginatedItems","sortedItems","filteredItems","localFilter","sortBy","localSortBy","sortDesc","localSortDesc","apiUrl","newItems","getFieldFormatter","isStacked","isStackedAlways","stackedTableClasses","ignoreFields","includeFields","fieldsObj","filterByFormatted","stringifyObjectValues","filterFunction","filterIgnoredFields","filterIncludedFields","filterDebounce","isFiltered","filterSanitize","computedFilterIgnored","computedFilterIncluded","computedFilterDebounce","localFiltering","hasProvider","noProviderFiltering","filteredCheck","localFilterFn","criteria","filterFn","filterFnFactory","defaultFilterFnFactory","$_filterTimer","newFilter","oldFilter","localeOpts","nullLast","aa","bb","sortDirection","sortCompare","sortCompareOptions","numeric","sortCompareLocale","sortNullLast","noSortReset","labelSortAsc","labelSortDesc","labelSortClear","noLocalSorting","noFooterSorting","sortIconLeft","localSorting","noProviderSorting","isSortable","sortable","sortOptions","usage","sortLocale","sortByFormatted","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortTheadThClasses","sortTheadThAttrs","headerTitle","ariaLabelSorting","ariaSort","localPaging","noProviderPaging","captionId","renderCaption","$captionSlot","$caption","renderColgroup","$colgroup","TABLE_TAG_NAMES","containsNode","BThead","bvTableThead","bvTable","theadClasses","theadAttrs","BTfoot","bvTableTfoot","tfootClasses","tfootAttrs","BTr","bvTableTr","isDark","dark","trClasses","trAttrs","digitsRx","parseSpan","stackedHeading","stickyColumn","BTableCell","bvTableTbody","isStackedCell","isResponsive","isStickyHeader","stickyHeader","isStickyColumn","cellClasses","tableVariant","computedColspan","computedRowspan","cellAttrs","headOrFoot","BTh","theadClass","theadTrClass","fieldClasses","thClass","headClicked","stopIfBusy","renderThead","selectAllRows","isSelectable","clearSelected","makeCell","hasHeadClickListener","sortAttrs","sortClass","thStyle","abbr","headerAbbr","getThValues","thAttr","slotNames","hasSlot","column","$cells","$trs","tfootTrClass","tfootClass","footClone","renderTFootCustom","renderTfoot","tbodyTransitionProps","tbodyTransitionHandlers","BTbody","isTransitionGroup","tbodyAttrs","tbodyProps","tbodyListeners","BTd","detailsSlotName","tbodyTrClass","getTdValues","tdValue","defValue","thValue","getFormattedValue","toggleDetailsFactory","hasDetailsSlot","rowEvtFactory","rowIndex","tbodyRowKeydown","trs","itemRows","rowClicked","middleMouseRowClicked","rowDblClicked","rowHovered","rowUnhovered","rowContextmenu","renderTbodyRowCell","tdClass","isRowHeader","tdAttr","unformatted","toggleDetails","detailsShowing","selectedRows","rowSelected","isRowSelected","slotName","$_bodyFieldSlotNameCache","$childNodes","renderTbodyRow","tableStriped","rowShowDetails","hasRowClickHandler","$rows","detailsId","$tds","ariaRowIndex","hasPkValue","rowKey","rowId","evtFactory","selectableClasses","selectableRowClasses","selectableAttrs","selectableRowAttrs","auxclick","dblclick","detailsScope","$details","tbodyClass","renderTbody","$busy","renderBusy","defaultSlotName","fullName","lowerName","renderTopRow","renderEmpty","renderBottomRow","$tbody","showEmpty","emptyText","emptyHtml","emptyFilteredText","emptyFilteredHtml","$empty","computedBusy","busySlotName","localBusy","selectable","selectMode","selectedLastRow","selectableHasSelection","selectableIsMultiSelect","selectableTableClasses","selectableTableAttrs","setSelectionHandlers","_selectedRows","selectRow","selectedLastClicked","unselectRow","selectionHandler","providerTriggerContext","_providerUpdate","refresh","_providerSetLocal","bordered","borderless","outlined","responsive","noBorderCollapse","captionTop","tableClass","wrapperClasses","wrapperStyles","maxHeight","tableClasses","isTableSimple","tableAttrs","ariaAttrs","rowCount","$table","BTableLite","BTableSimple","TableLitePlugin","TableSimplePlugin","TablePlugin","navProps","notDisabled","tab","BTabButtonHelper","bvTabs","posInSet","setSize","noKeyNav","handleEvt","localActive","titleLinkClass","activeNavItemClass","titleItemClass","BTabs","noNavStyle","navClass","navWrapperClass","activeTabClass","tabIdx","currentTab","registeredTabs","isMounted","localNavClass","previousTab","nextTab","updateTabs","setObserver","_bvObserver","registerTab","unregisterTab","tabsContainer","getTabs","_isTab","getButtonForTab","updateButton","activateTab","deactivateTab","focusButton","emitTabClick","clickTab","firstTab","lastTab","activeTab","fallbackTab","controlledBy","nav","BTab","buttonId","headHtml","tabClasses","computedNoFade","computedLazy","deactivate","TabsPlugin","DefaultTransition","doRender","dead","staticName","$toaster","$target","MIN_DURATION","EVENT_OPTIONS","isStatus","appendToast","noAutoHide","noCloseButton","solid","isHiding","dismissStarted","resumeDismiss","bToastClasses","computedDuration","computedToaster","transitionHandlers","ensureToaster","clearDismissTimer","setHoverHandler","startDismissTimer","onPause","onUnPause","passed","onLinkClick","hiddenEvt","makeToast","$headerContent","$header","$body","$toast","toastContent","BToastPop","BvToast","BVToastPlugin","ToastPlugin","BV_TOOLTIP","removeTooltip","VBTooltip","TooltipPlugin","componentsPlugin","VBModalPlugin","VBPopoverPlugin","ACTIVATE_EVENT","Default","throttle","DefaultType","ClassName","DROPDOWN_ITEM","ACTIVE","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","HREF_REGEX","componentName","configTypes","valueType","ScrollSpy","$scroller","$selector","$offsets","$targets","$activeTarget","$scrollHeight","$resizeTimeout","$obs_scroller","$obs_targets","$config","updateConfig","unlisten","cfg","getScroller","setObservers","resizeThrottle","autoMethod","methodFn","offsetBase","getScrollHeight","maxScroll","getOffsetHeight","isActiveTarget","links","dropdown","setActiveState","previousElementSibling","BV_SCROLLSPY","removeScrollspy","dispose","VBScrollspy","VBScrollspyPlugin","VBTogglePlugin","VBTooltipPlugin","directivesPlugin","BootstrapVue","ugCn","shared","readUInt8","_reporterState","paths","msMy","StringDecoder","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","outData","getAuthTag","setAuthTag","setAAD","fin","eo","$includes","MontCurve","i4","a24","precompute","diffAdd","jumlAdd","sd","IObject","relativeTimeWithMutation","specialMutationForYears","lastNumber","softMutation","mutationTable","br","mi","mk","last2Digits","Algorithm","HmacDRBG","predResist","minEntropy","_reseed","reseedInterval","V","entropy","entropyEnc","nonceEnc","pers","persEnc","_hmac","hmac","kmac","reseed","addEnc","generate","incr32","chunkNum","$flags","DESCRIPTORS","base64url","jwsSecuredInput","encodedPayload","jwsSign","nb","kk","arTn","expiredAt","sum32_4","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","T1","T2","itCh","enNz","EC","hashType","signType","ecSign","dsaSign","curveId","keyFromPrivate","toDER","bits2int","kv","getKey","makeKey","makeR","hlen","hbits","bits2octets","obits","monthsShortWithDots","monthsShortWithoutDots","fy","Sha256","Sha224","enIl","gOPS","pIE","$assign","aLen","getSymbols","isEnum","__isNull","__isString","__isArray","__isObject","__defaults","__map","currency","decimal","thousand","grouping","unformat","formatNumber","formatMoney","thousandsSeparator","fractionCount","fractionSeparator","symbolPosition","symbolSpacing","$CurrencyFilter","getConfig","toIObject","toPrimitive","IE8_DOM_DEFINE","gOPD","cssWithMappingToString","useSourceMap","cssMapping","sourceMapping","toComment","sourceURLs","base64","mediaQuery","alreadyImportedModules","inheritIfRequired","gOPN","$RegExp","CORRECT_NEW","tiRE","piRE","fiU","listToStyles","parentId","newStyles","addStylesClient","hasDocument","stylesInDom","singletonElement","singletonCounter","isProduction","ssrIdKey","isOldIE","_isProduction","addStylesToDom","newList","mayRemove","domStyle","addStyle","createStyleElement","styleElement","styleIndex","applyToSingletonTag","applyToTag","newObj","replaceText","textStore","replacement","cssNode","__g","stat","__e","Attributes","buggy","_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_InputTag_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_InputTag_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default","hiddenKeys","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","regeneratorRuntime","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","mark","awrap","__await","defineIteratorMethods","AsyncIterator","innerFn","outerFn","tryLocsList","skipTempReset","sent","_sent","tryEntries","resetTryEntry","rootEntry","rootRecord","completion","rval","dispatchException","exception","caught","record","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","abrupt","finallyEntry","afterLoc","thrown","delegateYield","resultName","nextLoc","protoGenerator","_invoke","makeInvokeMethod","tryCatch","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegateResult","maybeInvokeDelegate","return","pushTryEntry","locs","iteratorMethod","UNSCOPABLES","non","ltrim","exporter","ALIAS","FORCE","TYPE","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","Collection","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","$trim","NUMBER","$Number","BROKEN_COF","TRIM","third","radix","maxCode","NaN","digits","px","addToUnscopables","iterated","Arguments","arrayIndexOf","readOnly","isInputActive","focusNewTag","isLimit","removeLastTag","addNew","handleInputBlur","handleInputFocus","newTag","_typeof2","_asyncToGenerator","_next","_throw","validators","isodate","InputTagvue_type_script_lang_js_","addTagOnKeys","addTagOnBlur","allowDuplicates","beforeAdding","innerTags","_addNew","_callee","keyShouldAddTag","typeIsNotBlur","_context","validateIfNeeded","tagChange","_x","tagValue","components_InputTagvue_type_script_lang_js_","__file","InputTag","sw","safeBuffer","randombytes","kBufferMaxLength","kMaxLength","kMaxUint32","assertOffset","assertSize","actualFill","ourBuf","uint","zero2","PassThrough","bufferEqual","formatEcdsa","MSG_INVALID_ALGORITHM","MSG_INVALID_SECRET","MSG_INVALID_VERIFIER_KEY","MSG_INVALID_SIGNER_KEY","supportsKeyObjects","createPublicKey","checkIsPublicKey","typeError","asymmetricKeyType","export","checkIsPrivateKey","checkIsSecretKey","fromBase64","toBase64","errMsg","bufferOrString","normalizeInput","createHmacSigner","createHmacVerifier","computedSig","createKeySigner","signer","createKeyVerifier","verifier","createPSSKeySigner","RSA_PKCS1_PSS_PADDING","saltLength","RSA_PSS_SALTLEN_DIGEST","createPSSKeyVerifier","createECDSASigner","derToJose","createECDSAVerifer","joseToDer","createNoneSigner","createNoneVerifier","signerFactories","hs","none","verifierFactories","brorand","Rand","_randbelow","min_bytes","_randrange","rone","n1","rn1","getDivisor","sk","checkBuffer","MAX_ALLOC","isEncoding","_normalizeEncoding","retried","normalizeEncoding","nenc","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckIncomplete","utf8CheckExtraBytes","utf8Text","utf8End","ripemd","ripemd160","Sha1","rotl1","yo","bignum","FProto","nameRE","macrotask","sl","numbersPast","numbersFuture","verbalNumber","fi","arSa","xorTest","calcIv","ck","_finID","toPad","ivBits","writeUIntBE","_ghash","_alen","_authTag","_called","rump","tags","overrided","reverseArgs","useDecoder","_wrap","stateProps","cstate","_useArgs","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_encodeChoice","_encodePrimitive","bg","PEMEncoder","my","copyProps","dst","SafeBuffer","encodingOrOffset","allocUnsafeSlow","SlowBuffer","PADDING","padBuff","writeUInt8","MAX_OCTET","CLASS_UNIVERSAL","PRIMITIVE_BIT","TAG_SEQ","TAG_INT","ENCODED_TAG_SEQ","ENCODED_TAG_INT","base64Url","signatureAsBuffer","maxEncodedParamLength","inputLength","seqLength","rLength","rOffset","sLength","sOffset","rPadding","sPadding","countPadding","needsSign","signatureBytes","rsBytes","shortLength","tagClass","SHA512","SHA384","isExtendedError","_name","routerView","_routerViewCache","inactive","_routerRoot","vnodeData","routerViewDepth","registerRouteInstance","propsToPass","resolveProps","resolveQuery","extraQuery","_parseQuery","parsedQuery","parseQuery","stringifyQuery","trailingSlashRE","createRoute","redirectedFrom","router","fullPath","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","isObjectEqual","aKeys","bKeys","aVal","bVal","isIncludedRoute","queryIncludes","resolvePath","firstChar","segment","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","asterisk","escapeGroup","escapeString","encodeURIComponentPretty","encodeAsterisk","pretty","attachKeys","sensitive","regexpToRegexp","arrayToRegexp","stringToRegexp","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","rawPath","parsedPath","basePath","toTypes","eventTypes","Link","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","scopedSlot","navigate","isActive","isExactActive","findAnchor","aData","handler$1","event$1","aAttrs","registerInstance","callVal","_router","history","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","childMatchAs","alias","aliases","aliasRoute","createMatcher","addRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","genStateKey","getStateKey","setStateKey","positionStore","setupScroll","protocolAndPath","absolutePath","saveScrollPosition","isPop","app","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","normalizeOffset","hashStartsWithNumberRE","supportsPushState","ua","pushState","runQueue","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","isESModule","flatten","NavigationDuplicated","normalizedLocation","History","normalizeBase","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","extractGuards","records","guards","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","poll","onReady","errorCb","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","beforeHooks","postEnterCbs","enterGuards","resolveHooks","afterHooks","HTML5History","expectScroll","supportsScroll","initLocation","getLocation","go","fromRoute","getCurrentLocation","decodeURI","HashHistory","checkFallback","ensureSlash","setupListeners","getHash","replaceHash","pushHash","searchIndex","AbstractHistory","targetIndex","VueRouter","apps","registerHook","createHref","setupHashListener","beforeEach","beforeResolve","afterEach","back","getMatchedComponents","normalizedTo","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsNominative","monthsSubjective","pl","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","MAINVERSION","MAINVERSIONLOOSE","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","PRERELEASE","PRERELEASELOOSE","BUILDIDENTIFIER","BUILD","FULL","FULLPLAIN","LOOSEPLAIN","LOOSE","GTLT","XRANGEIDENTIFIERLOOSE","XRANGEIDENTIFIER","XRANGEPLAIN","XRANGEPLAINLOOSE","XRANGE","XRANGELOOSE","COERCE","LONETILDE","TILDETRIM","tildeTrimReplace","TILDE","TILDELOOSE","LONECARET","CARETTRIM","caretTrimReplace","CARET","CARETLOOSE","COMPARATORLOOSE","COMPARATOR","COMPARATORTRIM","comparatorTrimReplace","HYPHENRANGE","HYPHENRANGELOOSE","STAR","loose","includePrerelease","SemVer","clean","major","minor","prerelease","version1","version2","defaultResult","compareMain","comparePre","compareIdentifiers","anum","bnum","rcompareIdentifiers","compareLoose","rcompare","rsort","neq","op","Comparator","semver","ANY","Range","parseRange","toComparators","parseComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","pr","replaceCaret","replaceXRange","gtlt","xM","xm","anyX","hyphenReplace","$0","fM","fm","fp","fpr","fb","tM","tm","tp","tpr","tb","testSet","allowed","satisfies","maxSatisfying","maxSV","rangeObj","minSatisfying","minSV","minVersion","minver","comparators","comparator","compver","validRange","ltr","outside","gtr","hilo","gtfn","ltefn","ltfn","ecomp","low","intersects","coerce","rangeTmp","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","comps","compRe","thisComparators","thisComparator","rangeComparators","rangeComparator","fa","DERDecoder","PEMDecoder","lines","zhTw","read","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","hasWindowSupport","hasDocumentSupport","hasNavigatorSupport","hasPromiseSupport","hasMutationObserverSupport","isBrowser","isJSDOM","hasPassiveEventSupport","passiveEventSupported","hasTouchSupport","maxTouchPoints","hasPointerEventSupport","hasIntersectionObserverSupport","IntersectionObserverEntry","getEnv","getNoWarn","throwIfNotStringOrBuffer","HashBase","_block","_blockSize","_blockOffset","_finalized","EDDSA","pointClass","keyFromSecret","hashInt","messagePrefix","s_","makeSignature","keyFromPublic","SG","RplusAh","intFromLE","normed","xIsOdd","aesModes","desModes","keyLen","ivLen","mn","ky","arg1","arg3","cy","ecVerify","dsaVerify","padNum","pubkey","unpacked","checkValue","montp","arrayMap","baseFindIndex","predicate","baseIndexOf","baseIsNaN","baseValues","nativeKeys","baseKeys","pVersionMajor","arDz","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","searchValue","replaceValue","functionalReplace","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","PromiseCapability","$$resolve","registeredInModuleLoader","OldCookies","Cookies","api","converter","expires","stringifiedAttributes","attributeName","cookie","jar","cookies","withConverter","bm","numberFormatKeys","OBJECT_STRING","parseArgs","looseClone","_i18n","$t","$i18n","_getMessages","$tc","_tc","$te","_te","$d","$n","__i18n","VueI18n","localeMessages","mergeLocaleMessage","_i18nWatcher","watchI18nData","fallbackLocale","formatFallbackMessages","silentTranslationWarn","silentFallbackWarn","pluralizationRules","preserveDirectiveContent","localeMessages$1","messages","sharedMessages","_localeWatcher","watchLocale","subscribeDataChanging","_subscribing","unsubscribeDataChanging","destroyVM","interpolationComponent","places","onlyHasDefaultPlace","useLegacyPlaces","createParamsFromPlaces","everyPlace","vnodeHasPlaceAttribute","assignChildPlace","assignChildIndex","place","numberComponent","_ntp","oldVNode","localeEqual","_localeMessage","getLocaleMessage","_vt","ref$2","parseValue","tc","makeParams","BaseFormatter","_caches","interpolate","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","isClosed","APPEND","PUSH","INC_SUB_PATH_DEPTH","PUSH_SUB_PATH","BEFORE_PATH","IN_PATH","BEFORE_IDENT","IN_IDENT","IN_SUB_PATH","IN_SINGLE_QUOTE","IN_DOUBLE_QUOTE","AFTER_PATH","ERROR","pathStateMachine","literalValueRE","isLiteral","stripQuotes","getPathCharType","formatSubPath","trimmed","parse$1","newChar","typeMap","subPathDepth","maybeUnescapeQuote","nextChar","I18nPath","getPathValue","availabilities","htmlTagMatcher","linkKeyMatcher","linkKeyPrefixMatcher","bracketsMatcher","formatters","toLocaleUpperCase","toLocaleLowerCase","defaultFormatter","dateTimeFormats","numberFormats","_formatter","_missing","missing","_sync","_fallbackRoot","fallbackRoot","_formatFallbackMessages","_silentTranslationWarn","_silentFallbackWarn","_dateTimeFormatters","_numberFormatters","_path","_dataListeners","_preserveDirectiveContent","_warnHtmlInMessage","warnHtmlInMessage","_exist","_checkLocaleMessage","_initVM","availableLocales","_getDateTimeFormats","_getNumberFormats","orgLevel","_warnDefault","missingRet","parsedArgs","_isFallbackRoot","_isSilentFallbackWarn","_isSilentFallback","_isSilentTranslationWarn","_interpolate","interpolateMode","visitedLinkStack","pathRet","linkKeyPrefixMatches","linkPrefix","formatterName","linkPlaceholder","translated","_translate","predefined","fetchChoice","choices","getChoiceIndex","choicesLength","defaultImpl","_choice","_choicesLength","setLocaleMessage","getDateTimeFormat","setDateTimeFormat","mergeDateTimeFormat","_localizeDateTime","formats","Intl","DateTimeFormat","getNumberFormat","setNumberFormat","mergeNumberFormat","_getNumberFormatter","NumberFormat","numberFormat","nf","formatToParts","intlDefined","dateTimeFormat","blind","getr","blinder","unblinder","blinds","blinded","prime1","prime2","qinv","coefficient","exponent1","m2","exponent2","rotr32","p32","hLen2","dblen","nonZero","Readable","ReadableState","EElistenerCount","emitter","OurUint8Array","_uint8ArrayToBuffer","_isUint8Array","debugUtil","destroyImpl","kProxyEvents","prependListener","isDuplex","objectMode","readableObjectMode","hwm","readableHwm","readableHighWaterMark","defaultHwm","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","awaitDrain","readingMore","decoder","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","needMoreData","emitReadable","_undestroy","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","nReadingNextTick","resume_","fromList","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","endReadable","endReadableNT","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","endFn","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","removeListener","onclose","onfinish","ondata","needDrain","increasedAwaitDrain","dests","addListener","paused","_fromList","weekdaysCaseReplace","nounCase","processHoursFunction","uk","EVP_BytesToKey","keyBits","used","keyStart","ivStart","forced","objectKeys","Writable","allowHalfOpen","onEndNT","deAt","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","yh","yl","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","c0_hi","c1_hi","c2_hi","s0_512_lo","c0_lo","c1_lo","c2_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","tzmLatn","jv","ARRAY16","zr","sr","rotl","fn1","fn2","fn3","fn4","fn5","readInt32LE","cr","dr","tl","writeUInt32LE","writeInt32LE","bufferEq","origBufEqual","origSlowBufEqual","ieee754","typedArraySupport","foo","subarray","TYPED_ARRAY_SUPPORT","createBuffer","ArrayBuffer","fromArrayBuffer","fromString","fromObject","fromArrayLike","isnan","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","_isBuffer","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","_arr","MAX_ARGUMENTS_LENGTH","codePoints","checkOffset","ext","checkInt","objectWriteUInt16","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt16LE","readUInt32LE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUInt16LE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","leadSurrogate","byteArray","finalSize","_finalSize","accum","assigned","lowBits","highBits","_hashType","_tag","_signType","_importDER","recoveryParam","Position","getLength","octetLen","rmPadding","constructLength","octets","slen","backHalf","localStorage","Sha384","nn","relativeTimeWithSingular","relativeSeconds","lv","nh","keyPair","fromPrivate","genKeyPair","drbg","ns2","_truncateToN","truncOnly","bkey","getPrivate","ns1","kp","kpX","canonical","sinv","_maxwellTrick","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","modeModules","ECB","CFB","CFB8","CFB1","OFB","CTR","GCM","_importPrivate","privEnc","_importPublic","pubEnc","compact","derive","sum32_3","Kh","Ah","Bh","Dh","Eh","rh","sh","deCh","1169","1495","1991","3846","4588","4630","5537","6821","7514","7552","7726","8079","8378","9093","a5b8","aa77","bcaa","be13","c32d","c366","c5f6","c69a","c7db","composedPath","onClickaway","ca5a","cb7c","cd1c","ce10","d3f4","d58f","d8e8","dcbc","e11e","e853","ebd6","f605","f6fd","fab2","fb15","togglePicker","rangeText","endDate","clickAway","pickerStyles","clickRange","single","singleDatePicker","monthDate","minDate","maxDate","showDropdowns","dateFormatFn","showWeekNumbers","changeLeftMonth","dateClick","hoverDate","timePicker","timePickerIncrement","hour24","timePicker24Hour","timePickerSeconds","onUpdateStartTime","nextMonthDate","changeRightMonth","onUpdateEndTime","autoApply","cancelLabel","in_selection","clickedApply","applyLabel","prevMonth","monthName","weekLabel","daysOfWeek","dayClass","customRangeLabel","dateFormat","currentMonthDate","changeMonthDate","setHours","weekend","isoWeekday","daysInMonth","dateNum","weeknumber","secondPicker","ampm","miniuteIncrement","getHour","range_class","CalendarTime","CalendarRanges","linkedCalendars","Today","Yesterday","endOf","opens","alwaysShowCalendars","normalizeDatetime","setMinutes","setSeconds","setMilliseconds","startText","endText","opensright","opensleft","openscenter","linked","isClear","fdef","promiseCapability","MockStorage","SimplePromiseQueue","_queue","_flushing","flushQueue","nextTask","into","FlattedJSON","VuexPersistence","_mutex","subscriber","subscribed","supportCircular","storage","reducer","strictMode","RESTORE_MUTATION","savedState","mergedState","asyncStorage","storageConstructor","restoreState","getItem","saveState","setItem","restored","tzm","hookCallback","setHookCallback","isObjectEmpty","createUTC","createLocalOrUTC","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","rfc2822","weekdayMismatch","getParsingFlags","_pf","_isValid","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","createInvalid","fun","copyConfig","_isAMomentObject","_tzm","_isUTC","updateInProgress","Moment","updateOffset","absFloor","toInt","argumentForCoercion","coercedNumber","array1","array2","dontConvert","lengthDiff","diffs","suppressDeprecationWarnings","firstTime","deprecationHandler","deprecations","deprecateSimple","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","defaultLongDateFormat","_longDateFormat","formatUpper","defaultInvalidDate","invalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","_relativeTime","pastFuture","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","match1","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p3","p4","addParseToken","addWeekParseToken","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","isLeapYear","parseTwoDigitYear","getSetYear","makeGetSet","getIsLeapYear","keepTime","set$1","stringGet","stringSet","prioritized","modMonth","MONTHS_IN_FORMAT","defaultLocaleMonths","localeMonths","defaultLocaleMonthsShort","localeMonthsShort","handleStrictParse","ii","llc","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","defaultMonthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","createDate","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","localeWeekdays","defaultLocaleWeekdaysShort","localeWeekdaysShort","defaultLocaleWeekdaysMin","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","defaultWeekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","kInput","_isPm","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","localeMeridiem","globalLocale","getSetHour","baseConfig","localeFamilies","normalizeLocale","chooseLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","getLocale","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","currentDateArray","nowValue","_useUTC","configFromArray","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","weekYear","weekdayOverflow","GG","createLocal","curWeek","gg","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","calculateOffset","obsOffset","militaryOffset","numOffset","configFromRFC2822","parsedArray","configFromString","createFromInputFallback","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","millisecond","createFromConfig","prepareConfig","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","quarter","_milliseconds","_days","_bubble","absRound","offsetFromString","chunkOffset","cloneWithOffset","setTime","getDateOffset","getTimezoneOffset","getSetOffset","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","positiveMomentsDifference","createAdder","isAdding","invalid","getCalendarFormat","myMoment","calendar$1","sod","calendarFormat","localInput","isBetween","inclusivity","localFrom","localTo","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","keepOffset","zone","datetime","inputString","defaultFormatUtc","defaultFormat","fromNow","toNow","newLocaleData","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","unix","isValid$2","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","isoWeekYear","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","parseMs","getSetMillisecond","getZoneAbbr","getZoneName","createUnix","createInZone","preParsePostFormat","isoWeeks","isoWeeksInYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","langData","mathAbs","addSubtract$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","valueOf$1","makeAs","asSeconds","asMinutes","asHours","asWeeks","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","withSuffix","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","isSurrogatePair","htonl","zero8","join32","he","sq","isHostObject","enSG","tzl","numbersNouns","translateFuture","translatePast","numberNoun","numberAsNoun","hundred","ten","tlh","derDecodeTag","oct","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","possibleEnd","numstr","printstr","identifiers","subident","mon","sec","_getDecoder","errors","ReporterError","rethrow","pathLen","bo","ptBr","EE","_isStdio","didOnEnd","listenerCount","hyAm","ca","frCa","nlBe","CorkedRequest","onCorkedFinish","asyncWrite","WritableState","internalUtil","realHasInstance","nop","writableObjectMode","writableHwm","writableHighWaterMark","finalCalled","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","bufferedRequestCount","corkedRequestsFree","writev","_writev","writeAfterEnd","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","holder","allBuffers","callFinal","need","endWritable","corkReq","getBuffer","hasInstance","cork","uncork","setDefaultEncoding","charenc","utf8","stringToBytes","bin","bytesToString","__WEBPACK_IMPORTED_MODULE_0_md5__","__WEBPACK_IMPORTED_MODULE_0_md5___default","_objectWithoutProperties","defaultImg","rating","_$listeners","_$attrs","onLoad","__WEBPACK_IMPORTED_MODULE_0__components_GravatarImg_vue__","__WEBPACK_IMPORTED_MODULE_0__components_GravatarImg_vue___default","base64map","crypt","rotr","bytesToWords","wordsToBytes","bytesToHex","hexToBytes","bytesToBase64","triplet","imod4","isSlowBuffer","FF","_ff","_gg","HH","II","_ii","cc","_blocksize","_digestsize","digestbytes","asBytes","asString","sizes","rmd160","saltLen","getDigest","ipad1","ipad2","shaFunc","rmd160Func","DK","block1","destPos","gu","enIe","ECDH","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","inenc","otherPub","km","getNAF","getJSF","BaseCurve","_wnafT1","_wnafT2","_wnafT3","_wnafT4","adjustCount","_getDoubles","repr","nafW","nafPoints","_getNAFPoints","defW","wndWidth","comb","jsf","jb","encodeCompressed","power","FUNC_ERROR_TEXT","et","si","pendingTotal","_delta8","_delta32","__WEBPACK_EXTERNAL_MODULE_20__","__WEBPACK_IMPORTED_MODULE_0_vue__","__WEBPACK_IMPORTED_MODULE_0_vue___default","__WEBPACK_IMPORTED_MODULE_0__Notifications_vue__","__WEBPACK_IMPORTED_MODULE_0__Notifications_vue___default","__WEBPACK_IMPORTED_MODULE_1__events__","Notify","__WEBPACK_IMPORTED_MODULE_0__index__","__WEBPACK_IMPORTED_MODULE_2__util__","__WEBPACK_IMPORTED_MODULE_3__defaults__","__WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue__","__WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue___default","__WEBPACK_IMPORTED_MODULE_5__CssGroup_vue__","__WEBPACK_IMPORTED_MODULE_5__CssGroup_vue___default","__WEBPACK_IMPORTED_MODULE_6__parser__","STATE","IDLE","DESTROYED","VelocityGroup","CssGroup","animationType","velocityAnimation","animationName","cssAnimation","cooldown","closeOnClick","velocity","addItem","actualWidth","isVA","_listToDirection","botToTop","destroyAll","indexToDestroy","notifyClass","notifyWrapperStyle","getAnimation","floatRegexp","Id","listToDirection","directions","Entity","_createNamed","named","_initNamed","longerTimeoutBrowsers","timeoutDuration","microtaskDebounce","taskDebounce","scheduled","supportsMicroTasks","functionToCheck","getStyleComputedProperty","getParentNode","_getStyleComputedProp","isIE10","getOffsetParent","noOffsetParent","nextElementSibling","isOffsetContainer","getRoot","findCommonOffsetParent","element1","element2","DOCUMENT_POSITION_FOLLOWING","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","getBordersSize","axis","sideA","sideB","getWindowSizes","classCallCheck","createClass","offsets","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","getBoundaries","popper","reference","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","findIndex","runModifiers","ends","modifiersToRun","isDestroyed","arrowStyles","flipped","positionFixed","isCreated","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","setStyles","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","noRound","referenceWidth","popperWidth","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","_requesting","requested","_data$offsets$arrow","sideCapitalized","altSide","opSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","ops","mergeWithPrevious","index2","transformProp","popperStyles","primary","escapeWithReference","secondary","shiftvariation","shiftOffsets","bound","subtractLength","Popper","Utils","PopperUtils","pt","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","runClearTimeout","marker","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","Item","argv","removeAllListeners","prependOnceListener","cwd","chdir","umask","minAssert","minUtils","d1","d2","m14","m24","m8","computer","paIn","i2ops","fnF","fnG","fnH","fnI","forbiddenField","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","arrayEach","baseEach","createBaseEach","baseForOwn","eachFunc","lodash_foreach","MAX_SAFE_INTEGER$1","argsTag$1","funcTag$1","genTag$1","reIsUint$1","baseTimes$1","overArg$1","objectProto$1","hasOwnProperty$1","objectToString$1","propertyIsEnumerable$1","nativeKeys$1","nonEnumShadows","arrayLikeKeys$1","isArray$1","isArguments$1","isIndex$1","baseKeys$1","isPrototype$1","isObject$1","isArrayLike$1","isArrayLikeObject$1","isLength$1","isFunction$1","isObjectLike$1","keys$1","lodash_assign","commonjsGlobal","globalThis","createCommonjsModule","lodash_clonedeep","promiseTag","reFlags","cloneableTags","addMapEntry","pair","addSetEntry","arrayPush","arrayReduce","initAccum","mapToArray","setToArray","nativeGetSymbols","DataView","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","baseAssign","baseClone","isFull","initCloneArray","getTag","isFunc","copySymbols","initCloneByTag","getAllKeys","subValue","baseGetAllKeys","symbolsFunc","cloneDataView","dataView","cloneMap","cloneFunc","cloneRegExp","cloneSet","cloneSymbol","stubArray","ctorString","lodash_filter","UNORDERED_COMPARE_FLAG","PARTIAL_COMPARE_FLAG","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","arrayFilter","resIndex","arraySome","baseProperty","symbolToString","SetCache","setCacheAdd","setCacheHas","baseFilter","baseGet","isKey","castPath","toKey","baseHasIn","baseIsEqual","bitmask","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsMatch","matchData","noCustomizer","baseIteratee","baseMatchesProperty","baseMatches","getMatchData","matchesStrictComparable","isStrictComparable","hasIn","basePropertyDeep","baseToString","stringToPath","isPartial","othLength","arrValue","othValue","compared","othIndex","convert","objProps","objLength","othProps","skipCtor","objCtor","othCtor","hasPath","hasFunc","memoize","quote","memoized","Cache","lodash_isequal","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","cacheHas","isEqual","diacritics","diacriticless","searchChar","foundChar","indexChar","escapeRegExp","defaultType","filterPredicate","rowval","skipDiacritics","rowValue","searchTerm","cook","lastPage","totalRecords","ofText","pageText","pageInfo","changePage","isFunctionalTemplate","createInjector","createInjectorSSR","createInjectorShadow","normalizeComponent_1","__vue_script__","__vue_render__","__vue_staticRenderFns__","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","VgtPaginationPageInfo","DEFAULT_ROWS_PER_PAGE_DROPDOWN","script$1","styleClass","customRowsPerPageDropdown","paginateDropdownAllowAll","rowsPerPageText","allText","prevPage","currentPerPage","rowsPerPageOptions","handlePerPage","perPageChanged","pagesCount","quotient","paginatedInfo","nextIsPossible","prevIsPossible","pageNumber","pageChanged","nextPage","previousPage","__vue_script__$1","__vue_render__$1","$$selectedVal","__vue_staticRenderFns__$1","__vue_inject_styles__$1","__vue_scope_id__$1","__vue_module_identifier__$1","__vue_is_functional_template__$1","VgtPagination","script$2","globalSearchTerm","showControlBar","searchEnabled","entered","__vue_script__$2","__vue_render__$2","globalSearchPlaceholder","__vue_staticRenderFns__$2","__vue_inject_styles__$2","__vue_scope_id__$2","__vue_module_identifier__$2","__vue_is_functional_template__$2","VgtGlobalSearch","script$3","populateInitialFilters","columnFilters","hasFilterRow","filterOptions","isFilterable","filterDropdownItems","isDropdownObjects","isDropdownArray","getPlaceholder","updateFiltersOnEnter","updateFiltersImmediately","updateFiltersOnKeyup","updateFilters","filterValue","__vue_script__$3","__vue_render__$3","lineNumbers","__vue_staticRenderFns__$3","__vue_inject_styles__$3","__vue_scope_id__$3","__vue_module_identifier__$3","__vue_is_functional_template__$3","VgtFilterRow","getNextSort","currentSort","getIndex","sortArray","primarySort","secondarySort","script$4","allSelected","allSelectedIndeterminate","typedColumns","tableRef","paginated","setColumnStyles","checkBoxThStyle","lineNumberThStyle","columnStyles","sorts","toggleSelectAll","isSortableColumn","setInitialSort","getColumnSort","getHeaderClasses","filterRows","getWidthStyle","dom","cellStyle","colStyles","cell","cells","getColumnStyle","styleObject","__vue_script__$4","__vue_render__$4","__vue_staticRenderFns__$4","__vue_inject_styles__$4","__vue_scope_id__$4","__vue_module_identifier__$4","__vue_is_functional_template__$4","VgtTableHeader","script$5","collectFormatted","formattedRow","fullColspan","__vue_script__$5","__vue_render__$5","__vue_staticRenderFns__$5","__vue_inject_styles__$5","__vue_scope_id__$5","__vue_module_identifier__$5","__vue_is_functional_template__$5","VgtHeaderRow","argStr","dirtyNumber","addMilliseconds","dirtyDate","dirtyAmount","amount","MILLISECONDS_IN_MINUTE","getTimezoneOffsetInMilliseconds","baseTimezoneOffset","millisecondsPartOfTimezoneOffset","compareAsc","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","formatDistanceLocale","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","addSuffix","comparison","buildFormatLongFn","dirtyOptions","defaultWidth","dateFormats","full","medium","timeFormats","formatLong","dateTime","formatRelativeLocale","yesterday","tomorrow","formatRelative","_date","_baseDate","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","_dirtyOptions","rem100","localize","era","dayPeriod","buildMatchPatternFn","dirtyString","matchResult","matchPattern","matchedString","parseResult","parsePattern","valueCallback","rest","buildMatchFn","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","findKey","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","weekStartsOn","firstWeekContainsDate","subMilliseconds","addLeadingZeros","signedYear","dayPeriodEnumValue","numberOfDigits","getUTCMilliseconds","fractionalSeconds","MILLISECONDS_IN_DAY","getUTCDayOfYear","setUTCMonth","setUTCHours","startOfYearTimestamp","difference","startOfUTCISOWeek","setUTCDate","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","MILLISECONDS_IN_WEEK$1","getUTCWeek","dayPeriodEnum","formatters$1","signedWeekYear","twoDigitYear","localDayOfWeek","isoDayOfWeek","_localize","originalDate","_originalDate","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","dirtyDelimiter","absOffset","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","datePattern","timePattern","longFormatters","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","locale$1","utcDate","formatterOptions","firstCharacter","longFormatter","cleanEscapedString","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","assign$1","dirtyObject","setUTCDay","dirtyDay","currentDay","setUTCISODay","setUTCISOWeek","dirtyISOWeek","setUTCWeek","dirtyWeek","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE$1","MILLISECONDS_IN_SECOND","numericPatterns","hour23h","hour24h","hour11h","hour12h","singleDigit","twoDigits","threeDigits","fourDigits","anyDigitsSigned","singleDigitSigned","twoDigitsSigned","threeDigitsSigned","fourDigitsSigned","timezonePatterns","basicOptionalMinutes","basic","basicOptionalSeconds","extendedOptionalSeconds","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","parsers","incompatibleTokens","isTwoDigitYear","normalizedTwoDigitYear","_match","_flags","firstWeekOfYear","wholeWeekDays","setUTCSeconds","setUTCMilliseconds","timestampIsSet","_token","TIMEZONE_UNIT_PRIORITY","formattingTokensRegExp$1","longFormattingTokensRegExp$1","escapedStringRegExp$1","doubleQuoteRegExp$1","notWhitespaceRegExp","unescapedLatinCharacterRegExp$1","dirtyDateString","dirtyFormatString","dirtyBackupDate","formatString","subFnOptions","setters","dateToSystemTimezone","usedTokens","parser","incompatibleToken","usedToken","fullToken","cleanEscapedString$1","uniquePrioritySetters","setterArray","convertedDate","isRight","dateInputFormat","dateOutputFormat","date$1","number$1","decimal$1","percentage","percentage$1","_boolean","_boolean$1","coreDataTypes","compName","script$6","fixedHeader","rowStyleClass","groupOptions","selectOptions","selectionInfoClass","selectionText","clearSelectionText","disableSelectInfo","initialSortBy","paginationOptions","perPageDropdown","dropdownAllowAll","searchOptions","externalQuery","searchFn","tableLoading","selectOnCheckboxOnly","selectAllByPage","defaultSortBy","searchTrigger","externalSearchQuery","searchSkipDiacritics","paginate","paginateOnTop","paginateOnBottom","paginationMode","filteredRows","forceSearch","initializeSelect","initializePagination","handleSearch","initializeSearch","initializeSort","hasFooterSlot","hasHeaderRowTemplate","showEmptySlot","selectedRowCount","selectedPageRowsCount","totalPageRowCount","totalRowCount","selectionInfo","selectedPageRows","vgtSelected","processedRows","originalIndex","groupHeaderOnTop","headerPosition","groupHeaderOnBottom","wrapStyleClasses","tableStyleClasses","globalSearchAllowed","allRows","globalSearchDisabled","foundMatch","vgt_header_id","newHeaderRow","cRows","xRow","yRow","sortValue","getColumnForField","xvalue","collect","yvalue","sortFn","typeDef","paginatedRows","childRows","_paginatedRows","pageStart","pageEnd","reconstructedRows","originalRows","nestedRows","handleGrouped","hasRowClickListener","resetTable","emitSelectedRows","unselectAllInternal","forceAll","paginationWidget","paginationBottom","paginationTop","pageChangedEvent","perPageChangedEvent","changeSort","onCheckboxClicked","pageIndex","onRowDoubleClicked","onRowClicked","onRowAuxClicked","onCellClicked","onMouseenter","onMouseleave","searchTableOnEnter","searchTableOnKeyUp","dig","headerField","formatFn","isHeaderRow","_this$typedColumns$in","fromFilter","_loop","newChildren","getCurrentIndex","getRowStyleClass","rowStyleClasses","childRow","vgt_id","_this$paginationOptio","nextLabel","prevLabel","rowsPerPageLabel","ofLabel","pageLabel","allLabel","setCurrentPage","_perPageDropdown","_this$searchOptions","_this$sortOptions","hasField","_this$selectOptions","__vue_script__$6","__vue_render__$6","$$v","table","__vue_staticRenderFns__$6","__vue_inject_styles__$6","__vue_scope_id__$6","__vue_module_identifier__$6","__vue_is_functional_template__$6","VueGoodTable","VueGoodTablePlugin","gd","Language","language","monthsAbbr","ymd","_language","_monthsAbbr","useUtc","compareDates","isValidDate","getDayNameAbbr","getMonthName","getMonthNameAbbr","getNthSuffix","translation","createDateArray","validateDateInput","makeDateUtils","utils$1","selectedDate","resetTypedDate","refName","openDate","clearButton","clearButtonIcon","calendarButton","calendarButtonIcon","calendarButtonIconContent","typeable","bootstrapStyling","constructedDateUtils","typedDate","formattedValue","computedInputClass","showCalendar","parseTypedDate","inputBlurred","clearDate","_withStripped","DateInput","showDayView","pageDate","pageTimestamp","fullMonthName","allowedToShowView","dayCellContent","disabledDates","highlighted","calendarClass","calendarStyle","mondayFirst","tempDays","blankDays","dObj","isSelectedDate","isDisabledDate","isHighlighted","isHighlightedDate","isHighlightStart","isHighlightEnd","isToday","isWeekend","isSaturday","isSunday","currMonthName","currYearName","isYmd","isLeftNavDisabled","isNextMonthDisabled","isPreviousMonthDisabled","isRightNavDisabled","selectDate","getPageMonth","showMonthCalendar","changeMonth","incrementBy","previousMonth","daysOfMonth","customPredictor","includeDisabled","dayClasses","PickerDay","showMonthView","isSelectedMonth","isDisabledMonth","pageYearName","isNextYearDisabled","isPreviousYearDisabled","selectMonth","changeYear","previousYear","showYearCalendar","PickerMonth","showYearView","isSelectedYear","isDisabledYear","getPageDecade","decadeStart","decadeEnd","isNextDecadeDisabled","isPreviousDecadeDisabled","selectYear","previousDecade","disabledYear","lastYearInPreviousPage","nextDecade","firstYearInNextPage","PickerYear","wrapperClass","initialView","minimumView","maximumView","calendarHeight","setPageDate","setInitialView","computedInitialView","isOpen","resetDefaultPageDate","showDayCalendar","minimumViewIndex","maximumViewIndex","viewIndex","selectDisabledDate","handleChangedMonthFromDayPicker","setTypedDate","clickOutside","HEAD","closeCalendar","changedMonth","selectedDisabled","changedYear","changedDecade","Datepicker","ReflectOwnKeys","ReflectApply","ProcessEmitWarning","NumberIsNaN","_eventsCount","_maxListeners","defaultMaxListeners","$getMaxListeners","_addListener","newListener","onceWrapper","wrapFn","_onceWrap","wrapped","_listeners","evlistener","unwrapListeners","arrayClone","spliceOne","setMaxListeners","getMaxListeners","doError","originalListener","rawListeners","eventNames","nl","sameVval","vval","createVm","Vm","updateVval","elmToMove","oldStartVval","oldEndVval","newStartVval","newEndVval","patchVval","addVvals","removeVvals","vvals","__isDisplay","INSPBEventBus","INSPB","hmr","insertInto","fadeAway","isWFA","__fillBeginning","__fillFinally","__fadeBeginning","__fadeFinally","__isFilling","__isFading","__killFading","__waiting","__isWaiting","__hide","$insProgress","atob","HTMLIFrameElement","insertAt","singleton","URL","createObjectURL","revokeObjectURL","convertToAbsoluteUrls","xPseudo","deciphers","_rand","getBytes","getByte","se"],"mappings":"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B,GACvDpuE,EAAMpgB,KAAK2/F,cAAcQ,EAAmB35B,MAAOgoB,GASvD,MAPI,iBAAiB15E,KAAKu5E,KACtBluE,EAAMgxE,QAAQ,QAEV/wE,EAAI0zF,WACJ1zF,EAAIvV,IAAI,EAAG,QAAQsmF,QAAQ,SAG5B,IAAItiB,EAAe/rD,QAAQ3C,EAAOC,IAEtCg6D,EApBuC,CAqBhDrH,EAAuBjwD,SACzBpjB,EAAQojB,QAAUs3D,GAIV,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACC,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAU12E,EAAQhE,EAASu8D,GAEjCr0D,OAAOwB,eAAe1J,EAAS,aAAc,CAAE4I,OAAO,IACtD,IAAIumE,EAAiB5S,EAAoB,GACrCgX,EAAuBhX,EAAoB,IAC3CiM,EAAmBjM,EAAoB,IACvCqY,EAAgBrY,EAAoB,GACpC2P,EAAS3P,EAAoB,IAC7B6W,EAA6B,WAC7B,SAA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HzwM,KAAK4D,SACL5D,KAAK0wM,WACL,MAEF,IAAK,SACH1wM,KAAK8tF,QACL,MAEF,YAINpqE,QAAS,WACPxU,SAASwgB,iBAAiBsgL,EAAyBhwM,KAAK8wM,yBAE1D39I,cAAe,WACbjkD,SAASovB,oBAAoB0xK,EAAyBhwM,KAAK8wM,wBAC3D9wM,KAAK8tF,UAIT,OAAO3gF,M,qBC3ZTzJ,EAAOhE,QAAU,CACfs3K,QAAS,CACPvkI,KAAM,EACNyjI,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINY,IAAK,CACHC,IAAK,EACLb,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,wE,kCCnwBR,IAAIjsC,EAAO,EAAQ,Q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","file":"js/chunk-vendors.c57a637b.js","sourcesContent":["var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'D MMMM YYYY, dddd HH:mm'\n },\n calendar : {\n sameDay : '[Bugun soat] LT [da]',\n nextDay : '[Ertaga] LT [da]',\n nextWeek : 'dddd [kuni soat] LT [da]',\n lastDay : '[Kecha soat] LT [da]',\n lastWeek : '[O\\'tgan] dddd [kuni soat] LT [da]',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Yaqin %s ichida',\n past : 'Bir necha %s oldin',\n s : 'soniya',\n ss : '%d soniya',\n m : 'bir daqiqa',\n mm : '%d daqiqa',\n h : 'bir soat',\n hh : '%d soat',\n d : 'bir kun',\n dd : '%d kun',\n M : 'bir oy',\n MM : '%d oy',\n y : 'bir yil',\n yy : '%d yil'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return uzLatn;\n\n})));\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.pushParams = pushParams;\nexports.popParams = popParams;\nexports.withParams = withParams;\nexports._setTarget = exports.target = void 0;\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar stack = [];\nvar target = null;\nexports.target = target;\n\nvar _setTarget = function _setTarget(x) {\n exports.target = target = x;\n};\n\nexports._setTarget = _setTarget;\n\nfunction pushParams() {\n if (target !== null) {\n stack.push(target);\n }\n\n exports.target = target = {};\n}\n\nfunction popParams() {\n var lastTarget = target;\n var newTarget = exports.target = target = stack.pop() || null;\n\n if (newTarget) {\n if (!Array.isArray(newTarget.$sub)) {\n newTarget.$sub = [];\n }\n\n newTarget.$sub.push(lastTarget);\n }\n\n return lastTarget;\n}\n\nfunction addParams(params) {\n if (_typeof(params) === 'object' && !Array.isArray(params)) {\n exports.target = target = _objectSpread({}, target, params);\n } else {\n throw new Error('params must be an object');\n }\n}\n\nfunction withParamsDirect(params, validator) {\n return withParamsClosure(function (add) {\n return function () {\n add(params);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return validator.apply(this, args);\n };\n });\n}\n\nfunction withParamsClosure(closure) {\n var validator = closure(addParams);\n return function () {\n pushParams();\n\n try {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validator.apply(this, args);\n } finally {\n popParams();\n }\n };\n}\n\nfunction withParams(paramsOrClosure, maybeValidator) {\n if (_typeof(paramsOrClosure) === 'object' && maybeValidator !== undefined) {\n return withParamsDirect(paramsOrClosure, maybeValidator);\n }\n\n return withParamsClosure(paramsOrClosure);\n}","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ml = moment.defineLocale('ml', {\n months : 'ജനàµà´µà´°à´¿_ഫെബàµà´°àµà´µà´°à´¿_മാർചàµà´šàµ_à´à´ªàµà´°à´¿àµ½_മേയàµ_ജൂൺ_ജൂലൈ_à´“à´—à´¸àµà´±àµà´±àµ_സെപàµà´±àµà´±à´‚ബർ_à´’à´•àµà´Ÿàµ‹à´¬àµ¼_നവംബർ_ഡിസംബർ'.split('_'),\n monthsShort : 'ജനàµ._ഫെബàµà´°àµ._മാർ._à´à´ªàµà´°à´¿._മേയàµ_ജൂൺ_ജൂലൈ._à´“à´—._സെപàµà´±àµà´±._à´’à´•àµà´Ÿàµ‹._നവം._ഡിസം.'.split('_'),\n monthsParseExact : true,\n weekdays : 'ഞായറാഴàµà´š_തിങàµà´•à´³à´¾à´´àµà´š_ചൊവàµà´µà´¾à´´àµà´š_à´¬àµà´§à´¨à´¾à´´àµà´š_à´µàµà´¯à´¾à´´à´¾à´´àµà´š_വെളàµà´³à´¿à´¯à´¾à´´àµà´š_ശനിയാഴàµà´š'.split('_'),\n weekdaysShort : 'ഞായർ_തിങàµà´•àµ¾_ചൊവàµà´µ_à´¬àµà´§àµ»_à´µàµà´¯à´¾à´´à´‚_വെളàµà´³à´¿_ശനി'.split('_'),\n weekdaysMin : 'à´žà´¾_തി_ചൊ_à´¬àµ_à´µàµà´¯à´¾_വെ_à´¶'.split('_'),\n longDateFormat : {\n LT : 'A h:mm -à´¨àµ',\n LTS : 'A h:mm:ss -à´¨àµ',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm -à´¨àµ',\n LLLL : 'dddd, D MMMM YYYY, A h:mm -à´¨àµ'\n },\n calendar : {\n sameDay : '[ഇനàµà´¨àµ] LT',\n nextDay : '[നാളെ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ഇനàµà´¨à´²àµ†] LT',\n lastWeek : '[à´•à´´à´¿à´žàµà´ž] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s à´•à´´à´¿à´žàµà´žàµ',\n past : '%s à´®àµàµ»à´ªàµ',\n s : 'അൽപ നിമിഷങàµà´™àµ¾',\n ss : '%d സെകàµà´•àµ»à´¡àµ',\n m : 'ഒരൠമിനിറàµà´±àµ',\n mm : '%d മിനിറàµà´±àµ',\n h : 'ഒരൠമണികàµà´•àµ‚ർ',\n hh : '%d മണികàµà´•àµ‚ർ',\n d : 'ഒരൠദിവസം',\n dd : '%d ദിവസം',\n M : 'ഒരൠമാസം',\n MM : '%d മാസം',\n y : 'ഒരൠവർഷം',\n yy : '%d വർഷം'\n },\n meridiemParse: /രാതàµà´°à´¿|രാവിലെ|ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ|വൈകàµà´¨àµà´¨àµ‡à´°à´‚|രാതàµà´°à´¿/i,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'രാതàµà´°à´¿' && hour >= 4) ||\n meridiem === 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ' ||\n meridiem === 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാതàµà´°à´¿';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ';\n } else if (hour < 20) {\n return 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚';\n } else {\n return 'രാതàµà´°à´¿';\n }\n }\n });\n\n return ml;\n\n})));\n","/**\n * lodash 3.0.3 (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license <https://lodash.com/license>\n */\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && objectToString.call(value) == boolTag);\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isBoolean;\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var cv = moment.defineLocale('cv', {\n months : 'кӑрлач_нарӑÑ_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\n monthsShort : 'кӑр_нар_пуш_ака_май_Ò«Ó—Ñ€_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays : 'вырÑарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_Ñрнекун_шӑматкун'.split('_'),\n weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_Ñрн_шӑм'.split('_'),\n weekdaysMin : 'вр_тн_Ñ‹Ñ‚_юн_кҫ_ÑÑ€_шм'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'\n },\n calendar : {\n sameDay: '[ПаÑн] LT [Ñехетре]',\n nextDay: '[Ыран] LT [Ñехетре]',\n lastDay: '[Ӗнер] LT [Ñехетре]',\n nextWeek: '[ҪитеÑ] dddd LT [Ñехетре]',\n lastWeek: '[Иртнӗ] dddd LT [Ñехетре]',\n sameElse: 'L'\n },\n relativeTime : {\n future : function (output) {\n var affix = /Ñехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\n return output + affix;\n },\n past : '%s каÑлла',\n s : 'пӗр-ик ҫеккунт',\n ss : '%d ҫеккунт',\n m : 'пӗр минут',\n mm : '%d минут',\n h : 'пӗр Ñехет',\n hh : '%d Ñехет',\n d : 'пӗр кун',\n dd : '%d кун',\n M : 'пӗр уйӑх',\n MM : '%d уйӑх',\n y : 'пӗр ҫул',\n yy : '%d ҫул'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal : '%d-мӗш',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mÃnúta' : 'mÃnútu';\n case 'mm':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'mÃnútur' : 'mÃnútum');\n } else if (withoutSuffix) {\n return result + 'mÃnúta';\n }\n return result + 'mÃnútu';\n case 'hh':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months : 'janúar_febrúar_mars_aprÃl_maÃ_júnÃ_júlÃ_ágúst_september_október_nóvember_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maÃ_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'\n },\n calendar : {\n sameDay : '[à dag kl.] LT',\n nextDay : '[á morgun kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[à gær kl.] LT',\n lastWeek : '[sÃðasta] dddd [kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'eftir %s',\n past : 'fyrir %s sÃðan',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : 'klukkustund',\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return is;\n\n})));\n","var indexOf = function (xs, item) {\n if (xs.indexOf) return xs.indexOf(item);\n else for (var i = 0; i < xs.length; i++) {\n if (xs[i] === item) return i;\n }\n return -1;\n};\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n if (context) {\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n }\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.isContext = function (context) {\n return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var fo = moment.defineLocale('fo', {\n months : 'januar_februar_mars_aprÃl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_frÃggjadagur_leygardagur'.split('_'),\n weekdaysShort : 'sun_mán_týs_mik_hós_frÃ_ley'.split('_'),\n weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D. MMMM, YYYY HH:mm'\n },\n calendar : {\n sameDay : '[à dag kl.] LT',\n nextDay : '[à morgin kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[à gjár kl.] LT',\n lastWeek : '[sÃðstu] dddd [kl] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'um %s',\n past : '%s sÃðani',\n s : 'fá sekund',\n ss : '%d sekundir',\n m : 'ein minuttur',\n mm : '%d minuttir',\n h : 'ein tÃmi',\n hh : '%d tÃmar',\n d : 'ein dagur',\n dd : '%d dagar',\n M : 'ein mánaður',\n MM : '%d mánaðir',\n y : 'eitt ár',\n yy : '%d ár'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ja = moment.defineLocale('ja', {\n months : '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '日曜日_月曜日_ç«æ›œæ—¥_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort : 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n weekdaysMin : 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYYå¹´M月Dæ—¥',\n LLL : 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL : 'YYYYå¹´M月Dæ—¥ dddd HH:mm',\n l : 'YYYY/MM/DD',\n ll : 'YYYYå¹´M月Dæ—¥',\n lll : 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll : 'YYYYå¹´M月Dæ—¥(ddd) HH:mm'\n },\n meridiemParse: /åˆå‰|åˆå¾Œ/i,\n isPM : function (input) {\n return input === 'åˆå¾Œ';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'åˆå‰';\n } else {\n return 'åˆå¾Œ';\n }\n },\n calendar : {\n sameDay : '[今日] LT',\n nextDay : '[明日] LT',\n nextWeek : function (now) {\n if (now.week() < this.week()) {\n return '[æ¥é€±]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay : '[昨日] LT',\n lastWeek : function (now) {\n if (this.week() < now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}æ—¥/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n default:\n return number;\n }\n },\n relativeTime : {\n future : '%s後',\n past : '%så‰',\n s : '数秒',\n ss : '%d秒',\n m : '1分',\n mm : '%d分',\n h : '1時間',\n hh : '%d時間',\n d : '1æ—¥',\n dd : '%dæ—¥',\n M : '1ヶ月',\n MM : '%dヶ月',\n y : '1å¹´',\n yy : '%då¹´'\n }\n });\n\n return ja;\n\n})));\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","module.exports = require('./lib/_stream_duplex.js');\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY h:mm A',\n LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un dÃa',\n dd : '%d dÃas',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arMa = moment.defineLocale('ar-ma', {\n months : 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort : 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays : 'الأØد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'اØد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'ÙÙŠ %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arMa;\n\n})));\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['thodde secondanim', 'thodde second'],\n 'ss': [number + ' secondanim', number + ' second'],\n 'm': ['eka mintan', 'ek minute'],\n 'mm': [number + ' mintanim', number + ' mintam'],\n 'h': ['eka voran', 'ek vor'],\n 'hh': [number + ' voranim', number + ' voram'],\n 'd': ['eka disan', 'ek dis'],\n 'dd': [number + ' disanim', number + ' dis'],\n 'M': ['eka mhoinean', 'ek mhoino'],\n 'MM': [number + ' mhoineanim', number + ' mhoine'],\n 'y': ['eka vorsan', 'ek voros'],\n 'yy': [number + ' vorsanim', number + ' vorsam']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\\'var'.split('_'),\n weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'A h:mm [vazta]',\n LTS : 'A h:mm:ss [vazta]',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY A h:mm [vazta]',\n LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]'\n },\n calendar : {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Ieta to] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fatlo] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s',\n past : '%s adim',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(er)/,\n ordinal : function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /rati|sokalli|donparam|sanje/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokalli') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokalli';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n }\n });\n\n return gomLatn;\n\n})));\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve\n });\n return curve;\n }\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811'\n ]\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34'\n ]\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5'\n ]\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f'\n ]\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650'\n ]\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9'\n ]\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658'\n ]\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3'\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15'\n }\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre\n ]\n});\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","/*global module*/\nvar Buffer = require('buffer').Buffer;\n\nmodule.exports = function toString(obj) {\n if (typeof obj === 'string')\n return obj;\n if (typeof obj === 'number' || Buffer.isBuffer(obj))\n return obj.toString();\n return JSON.stringify(obj);\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var frCh = moment.defineLocale('fr-ch', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à ] LT',\n nextDay : '[Demain à ] LT',\n nextWeek : 'dddd [à ] LT',\n lastDay : '[Hier à ] LT',\n lastWeek : 'dddd [dernier à ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal : function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enAu = moment.defineLocale('en-au', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enAu;\n\n})));\n","\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n var suffixes = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n };\n\n var tr = moment.defineLocale('tr', {\n months : 'Ocak_Åžubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄŸustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort : 'Oca_Åžub_Mar_Nis_May_Haz_Tem_AÄŸu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays : 'Pazar_Pazartesi_Salı_ÇarÅŸamba_PerÅŸembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[yarın saat] LT',\n nextWeek : '[gelecek] dddd [saat] LT',\n lastDay : '[dün] LT',\n lastWeek : '[geçen] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s önce',\n s : 'birkaç saniye',\n ss : '%d saniye',\n m : 'bir dakika',\n mm : '%d dakika',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir yıl',\n yy : '%d yıl'\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) { // special case for zero\n return number + '\\'ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return tr;\n\n})));\n","var JsonWebTokenError = require('./lib/JsonWebTokenError');\nvar NotBeforeError = require('./lib/NotBeforeError');\nvar TokenExpiredError = require('./lib/TokenExpiredError');\nvar decode = require('./decode');\nvar timespan = require('./lib/timespan');\nvar PS_SUPPORTED = require('./lib/psSupported');\nvar jws = require('jws');\n\nvar PUB_KEY_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512'];\nvar RSA_KEY_ALGS = ['RS256', 'RS384', 'RS512'];\nvar HS_ALGS = ['HS256', 'HS384', 'HS512'];\n\nif (PS_SUPPORTED) {\n PUB_KEY_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n RSA_KEY_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n}\n\nmodule.exports = function (jwtString, secretOrPublicKey, options, callback) {\n if ((typeof options === 'function') && !callback) {\n callback = options;\n options = {};\n }\n\n if (!options) {\n options = {};\n }\n\n //clone this object since we are going to mutate it.\n options = Object.assign({}, options);\n\n var done;\n\n if (callback) {\n done = callback;\n } else {\n done = function(err, data) {\n if (err) throw err;\n return data;\n };\n }\n\n if (options.clockTimestamp && typeof options.clockTimestamp !== 'number') {\n return done(new JsonWebTokenError('clockTimestamp must be a number'));\n }\n\n if (options.nonce !== undefined && (typeof options.nonce !== 'string' || options.nonce.trim() === '')) {\n return done(new JsonWebTokenError('nonce must be a non-empty string'));\n }\n\n var clockTimestamp = options.clockTimestamp || Math.floor(Date.now() / 1000);\n\n if (!jwtString){\n return done(new JsonWebTokenError('jwt must be provided'));\n }\n\n if (typeof jwtString !== 'string') {\n return done(new JsonWebTokenError('jwt must be a string'));\n }\n\n var parts = jwtString.split('.');\n\n if (parts.length !== 3){\n return done(new JsonWebTokenError('jwt malformed'));\n }\n\n var decodedToken;\n\n try {\n decodedToken = decode(jwtString, { complete: true });\n } catch(err) {\n return done(err);\n }\n\n if (!decodedToken) {\n return done(new JsonWebTokenError('invalid token'));\n }\n\n var header = decodedToken.header;\n var getSecret;\n\n if(typeof secretOrPublicKey === 'function') {\n if(!callback) {\n return done(new JsonWebTokenError('verify must be called asynchronous if secret or public key is provided as a callback'));\n }\n\n getSecret = secretOrPublicKey;\n }\n else {\n getSecret = function(header, secretCallback) {\n return secretCallback(null, secretOrPublicKey);\n };\n }\n\n return getSecret(header, function(err, secretOrPublicKey) {\n if(err) {\n return done(new JsonWebTokenError('error in secret or public key callback: ' + err.message));\n }\n\n var hasSignature = parts[2].trim() !== '';\n\n if (!hasSignature && secretOrPublicKey){\n return done(new JsonWebTokenError('jwt signature is required'));\n }\n\n if (hasSignature && !secretOrPublicKey) {\n return done(new JsonWebTokenError('secret or public key must be provided'));\n }\n\n if (!hasSignature && !options.algorithms) {\n options.algorithms = ['none'];\n }\n\n if (!options.algorithms) {\n options.algorithms = ~secretOrPublicKey.toString().indexOf('BEGIN CERTIFICATE') ||\n ~secretOrPublicKey.toString().indexOf('BEGIN PUBLIC KEY') ? PUB_KEY_ALGS :\n ~secretOrPublicKey.toString().indexOf('BEGIN RSA PUBLIC KEY') ? RSA_KEY_ALGS : HS_ALGS;\n\n }\n\n if (!~options.algorithms.indexOf(decodedToken.header.alg)) {\n return done(new JsonWebTokenError('invalid algorithm'));\n }\n\n var valid;\n\n try {\n valid = jws.verify(jwtString, decodedToken.header.alg, secretOrPublicKey);\n } catch (e) {\n return done(e);\n }\n\n if (!valid) {\n return done(new JsonWebTokenError('invalid signature'));\n }\n\n var payload = decodedToken.payload;\n\n if (typeof payload.nbf !== 'undefined' && !options.ignoreNotBefore) {\n if (typeof payload.nbf !== 'number') {\n return done(new JsonWebTokenError('invalid nbf value'));\n }\n if (payload.nbf > clockTimestamp + (options.clockTolerance || 0)) {\n return done(new NotBeforeError('jwt not active', new Date(payload.nbf * 1000)));\n }\n }\n\n if (typeof payload.exp !== 'undefined' && !options.ignoreExpiration) {\n if (typeof payload.exp !== 'number') {\n return done(new JsonWebTokenError('invalid exp value'));\n }\n if (clockTimestamp >= payload.exp + (options.clockTolerance || 0)) {\n return done(new TokenExpiredError('jwt expired', new Date(payload.exp * 1000)));\n }\n }\n\n if (options.audience) {\n var audiences = Array.isArray(options.audience) ? options.audience : [options.audience];\n var target = Array.isArray(payload.aud) ? payload.aud : [payload.aud];\n\n var match = target.some(function (targetAudience) {\n return audiences.some(function (audience) {\n return audience instanceof RegExp ? audience.test(targetAudience) : audience === targetAudience;\n });\n });\n\n if (!match) {\n return done(new JsonWebTokenError('jwt audience invalid. expected: ' + audiences.join(' or ')));\n }\n }\n\n if (options.issuer) {\n var invalid_issuer =\n (typeof options.issuer === 'string' && payload.iss !== options.issuer) ||\n (Array.isArray(options.issuer) && options.issuer.indexOf(payload.iss) === -1);\n\n if (invalid_issuer) {\n return done(new JsonWebTokenError('jwt issuer invalid. expected: ' + options.issuer));\n }\n }\n\n if (options.subject) {\n if (payload.sub !== options.subject) {\n return done(new JsonWebTokenError('jwt subject invalid. expected: ' + options.subject));\n }\n }\n\n if (options.jwtid) {\n if (payload.jti !== options.jwtid) {\n return done(new JsonWebTokenError('jwt jwtid invalid. expected: ' + options.jwtid));\n }\n }\n\n if (options.nonce) {\n if (payload.nonce !== options.nonce) {\n return done(new JsonWebTokenError('jwt nonce invalid. expected: ' + options.nonce));\n }\n }\n\n if (options.maxAge) {\n if (typeof payload.iat !== 'number') {\n return done(new JsonWebTokenError('iat required when maxAge is specified'));\n }\n\n var maxAgeTimestamp = timespan(options.maxAge, payload.iat);\n if (typeof maxAgeTimestamp === 'undefined') {\n return done(new JsonWebTokenError('\"maxAge\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n if (clockTimestamp >= maxAgeTimestamp + (options.clockTolerance || 0)) {\n return done(new TokenExpiredError('maxAge exceeded', new Date(maxAgeTimestamp * 1000)));\n }\n }\n\n if (options.complete === true) {\n var signature = decodedToken.signature;\n\n return done(null, {\n header: header,\n payload: payload,\n signature: signature\n });\n }\n\n return done(null, payload);\n });\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var da = moment.defineLocale('da', {\n months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay : '[i dag kl.] LT',\n nextDay : '[i morgen kl.] LT',\n nextWeek : 'pÃ¥ dddd [kl.] LT',\n lastDay : '[i gÃ¥r kl.] LT',\n lastWeek : '[i] dddd[s kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'fÃ¥ sekunder',\n ss : '%d sekunder',\n m : 'et minut',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dage',\n M : 'en mÃ¥ned',\n MM : '%d mÃ¥neder',\n y : 'et Ã¥r',\n yy : '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return da;\n\n})));\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tlPh = moment.defineLocale('tl-ph', {\n months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'MM/D/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY HH:mm',\n LLLL : 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar : {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'sa loob ng %s',\n past : '%s ang nakalipas',\n s : 'ilang segundo',\n ss : '%d segundo',\n m : 'isang minuto',\n mm : '%d minuto',\n h : 'isang oras',\n hh : '%d oras',\n d : 'isang araw',\n dd : '%d araw',\n M : 'isang buwan',\n MM : '%d buwan',\n y : 'isang taon',\n yy : '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var eu = moment.defineLocale('eu', {\n months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n monthsParseExact : true,\n weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY[ko] MMMM[ren] D[a]',\n LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l : 'YYYY-M-D',\n ll : 'YYYY[ko] MMM D[a]',\n lll : 'YYYY[ko] MMM D[a] HH:mm',\n llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'\n },\n calendar : {\n sameDay : '[gaur] LT[etan]',\n nextDay : '[bihar] LT[etan]',\n nextWeek : 'dddd LT[etan]',\n lastDay : '[atzo] LT[etan]',\n lastWeek : '[aurreko] dddd LT[etan]',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s barru',\n past : 'duela %s',\n s : 'segundo batzuk',\n ss : '%d segundo',\n m : 'minutu bat',\n mm : '%d minutu',\n h : 'ordu bat',\n hh : '%d ordu',\n d : 'egun bat',\n dd : '%d egun',\n M : 'hilabete bat',\n MM : '%d hilabete',\n y : 'urte bat',\n yy : '%d urte'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var th = moment.defineLocale('th', {\n months : 'มà¸à¸£à¸²à¸„ม_à¸à¸¸à¸¡à¸ าพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_à¸à¸£à¸à¸Žà¸²à¸„ม_สิงหาคม_à¸à¸±à¸™à¸¢à¸²à¸¢à¸™_ตุลาคม_พฤศจิà¸à¸²à¸¢à¸™_ธันวาคม'.split('_'),\n monthsShort : 'ม.ค._à¸.พ._มี.ค._เม.ย._พ.ค._มิ.ย._à¸.ค._ส.ค._à¸.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays : 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัสบดี_ศุà¸à¸£à¹Œ_เสาร์'.split('_'),\n weekdaysShort : 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัส_ศุà¸à¸£à¹Œ_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin : 'à¸à¸²._จ._à¸._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY เวลา H:mm',\n LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar : {\n sameDay : '[วันนี้ เวลา] LT',\n nextDay : '[พรุ่งนี้ เวลา] LT',\n nextWeek : 'dddd[หน้า เวลา] LT',\n lastDay : '[เมื่à¸à¸§à¸²à¸™à¸™à¸µà¹‰ เวลา] LT',\n lastWeek : '[วัน]dddd[ที่à¹à¸¥à¹‰à¸§ เวลา] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'à¸à¸µà¸ %s',\n past : '%sที่à¹à¸¥à¹‰à¸§',\n s : 'ไม่à¸à¸µà¹ˆà¸§à¸´à¸™à¸²à¸—ี',\n ss : '%d วินาที',\n m : '1 นาที',\n mm : '%d นาที',\n h : '1 ชั่วโมง',\n hh : '%d ชั่วโมง',\n d : '1 วัน',\n dd : '%d วัน',\n M : '1 เดืà¸à¸™',\n MM : '%d เดืà¸à¸™',\n y : '1 ปี',\n yy : '%d ปี'\n }\n });\n\n return th;\n\n})));\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar InputMask = _interopDefault(require('inputmask-core'));\n\nvar KEYCODE_Z = 90;\nvar KEYCODE_Y = 89;\n\nfunction getSelection (el) {\n var start, end, rangeEl, clone;\n if (el.selectionStart !== undefined) {\n start = el.selectionStart;\n end = el.selectionEnd;\n }\n else {\n try {\n el.focus();\n rangeEl = el.createTextRange();\n clone = rangeEl.duplicate();\n\n rangeEl.moveToBookmark(document.selection.createRange().getBookmark());\n clone.setEndPoint('EndToStart', rangeEl);\n\n start = clone.text.length;\n end = start + rangeEl.text.length;\n }\n catch (e) {}\n }\n\n return { start: start, end: end }\n}\n\nfunction isUndo(e) {\n return (e.ctrlKey || e.metaKey) && e.keyCode === (e.shiftKey ? KEYCODE_Y : KEYCODE_Z)\n}\n\nfunction isRedo(e) {\n return (e.ctrlKey || e.metaKey) && e.keyCode === (e.shiftKey ? KEYCODE_Z : KEYCODE_Y)\n}\n\nfunction setSelection(el, selection) {\n var rangeEl;\n\n try {\n if (el.selectionStart !== undefined) {\n el.focus();\n el.setSelectionRange(selection.start, selection.end);\n }\n else {\n el.focus();\n rangeEl = el.createTextRange();\n rangeEl.collapse(true);\n rangeEl.moveStart('character', selection.start);\n rangeEl.moveEnd('character', selection.end - selection.start);\n rangeEl.select();\n }\n }\n catch (e) {}\n}\n\nvar index = {\n name: 'masked-input',\n\n render: function render(h) {\n return h('input', {\n ref: 'input',\n domProps: {\n value: this.value\n },\n on: {\n change: this._change,\n keydown: this._keydown,\n keypress: this._keypress,\n paste: this._paste\n }\n })\n },\n\n props: {\n pattern: {\n type: String,\n required: true\n },\n value: {\n type: String\n },\n formatCharacters: {\n type: Object,\n default: function () {\n return {\n 'w': {\n validate: function validate(char) { return /\\w/.test(char) },\n },\n 'W': {\n validate: function validate(char) { return /\\w/.test(char) },\n transform: function transform(char) { return char.toUpperCase() }\n }\n }\n }\n },\n placeholder: {\n type: String\n },\n placeholderChar: {\n type: String\n },\n hideUnderline: {\n type: Boolean\n }\n },\n\n watch: {\n pattern: function pattern() {\n this.init();\n },\n value: function value(newValue) {\n if (this.mask) { this.mask.setValue(newValue); }\n },\n },\n\n mounted: function mounted() {\n this.init();\n },\n\n methods: {\n init: function init() {\n var this$1 = this;\n\n var options = {\n pattern: this.pattern,\n value: this.value,\n formatCharacters: this.formatCharacters\n };\n if (this.placeholderChar) {\n options.placeholderChar = this.props.placeholderChar;\n }\n this.mask = new InputMask(options);\n this.$refs.input.placeholder = this.placeholder ? this.placeholder : this.hideUnderline ? '' : this.mask.emptyValue;\n\n if (this.$refs.input.value === '') {\n this.$emit('input', '', '');\n } else {\n [].concat( this.$refs.input.value ).map(function (i) {\n if(this$1.mask.input(i)) {\n this$1.$refs.input.value = this$1.mask.getValue();\n setTimeout(this$1._updateInputSelection, 0);\n }\n });\n }\n },\n\n _change: function _change(e) {\n var maskValue = this.mask.getValue();\n if (this.$refs.input.value !== maskValue) {\n // Cut or delete operations will have shortened the value\n if (this.$refs.input.value.length < maskValue.length) {\n var sizeDiff = maskValue.length - this.$refs.input.value.length;\n this._updateMaskSelection();\n this.mask.selection.end = this.mask.selection.start + sizeDiff;\n this.mask.backspace();\n }\n this._updateValue(e);\n }\n },\n\n _keydown: function _keydown(e) {\n if (isUndo(e)) {\n e.preventDefault();\n if (this.mask.undo()) {\n this._updateValue(e);\n }\n return\n }\n else if (isRedo(e)) {\n e.preventDefault();\n if (this.mask.redo()) {\n this._updateValue(e);\n }\n return\n }\n\n if (e.key === 'Backspace') {\n e.preventDefault();\n this._updateMaskSelection();\n if (this.mask.backspace()) {\n this._updateValue(e);\n }\n if (this.$refs.input.value === '') {\n this.$emit('input', '', '');\n }\n }\n },\n\n _keypress: function _keypress(e) {\n if (e.metaKey || e.altKey || e.ctrlKey || e.key === 'Enter') { return }\n e.preventDefault();\n this._updateMaskSelection();\n if (this.mask.input((e.key || e.data))) {\n this._updateValue(e);\n }\n },\n\n _paste: function _paste(e) {\n e.preventDefault();\n this._updateMaskSelection();\n if (this.mask.paste(e.clipboardData.getData('Text'))) {\n this._updateValue(e);\n }\n },\n\n _updateMaskSelection: function _updateMaskSelection() {\n this.mask.selection = getSelection(this.$refs.input);\n },\n\n _updateInputSelection: function _updateInputSelection() {\n setSelection(this.$refs.input, this.mask.selection);\n },\n\n _getDisplayValue: function _getDisplayValue() {\n var value = this.mask.getValue();\n return value === this.mask.emptyValue ? '' : value\n },\n\n _updateValue: function _updateValue(e) {\n this.$refs.input.value = this._getDisplayValue();\n this.$emit('input', this.$refs.input.value, this.mask.getRawValue());\n this._updateInputSelection();\n if (this.change) {\n this.change(e);\n }\n }\n }\n};\n\nmodule.exports = index;\n","/*!\n * jQuery JavaScript Library v3.4.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2019-05-01T21:04Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar document = window.document;\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML <object> elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.4.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code, options ) {\n\t\tDOMEval( code, { nonce: options && options.nonce } );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.4\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2019-04-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t(nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\") ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 && rdescend.test( selector ) ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement(\"fieldset\");\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = (elem.ownerDocument || elem).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( el ) {\n\t\tel.appendChild( document.createComment(\"\") );\n\t\treturn !el.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + \"\").replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( el ) {\n\treturn el.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( typeof elem.contentDocument !== \"undefined\" ) {\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE <=9 only\n\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE <=9 only\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t/* eslint-disable max-len */\n\n\t// See https://github.com/eslint/eslint/issues/3229\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n\t/* eslint-enable */\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1></$2>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t// This happens for inline elements with no explicit setting (gh-3571)\n\t// Support: Android <=4.1 - 4.3 only\n\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t// Support: IE 9-11 only\n\t// Also use offsetWidth/offsetHeight for when box sizing is unreliable\n\t// We use getClientRects() to check for hidden/disconnected.\n\t// In those cases, the computed value can be trusted to be border-box\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\t\tval === \"auto\" ||\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = Date.now();\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce++ ) + uncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\n\njQuery._evalUrl = function( url, options ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name },\n\t\tfunction( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( ( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n} );\n\njQuery.fn.extend( {\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t}\n} );\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( !noGlobal ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","module.exports = require('./browser/algorithms.json')\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['Ñекунда', 'Ñекунде', 'Ñекунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један Ñат', 'једног Ñата'],\n hh: ['Ñат', 'Ñата', 'Ñати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['меÑец', 'меÑеца', 'меÑеци'],\n yy: ['година', 'године', 'година']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_авгуÑÑ‚_Ñептембар_октобар_новембар_децембар'.split('_'),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._Ñеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_Ñреда_четвртак_петак_Ñубота'.split('_'),\n weekdaysShort: 'нед._пон._уто._Ñре._чет._пет._Ñуб.'.split('_'),\n weekdaysMin: 'не_по_ут_ÑÑ€_че_пе_Ñу'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Ð´Ð°Ð½Ð°Ñ Ñƒ] LT',\n nextDay: '[Ñутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [Ñреду] [у] LT';\n case 6:\n return '[у] [Ñуботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay : '[јуче у] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [Ñреде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [Ñуботе] [у] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : 'пре %s',\n s : 'неколико Ñекунди',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'дан',\n dd : translator.translate,\n M : 'меÑец',\n MM : translator.translate,\n y : 'годину',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return srCyrl;\n\n})));\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","module.exports = {\n decode: require('./decode'),\n verify: require('./verify'),\n sign: require('./sign'),\n JsonWebTokenError: require('./lib/JsonWebTokenError'),\n NotBeforeError: require('./lib/NotBeforeError'),\n TokenExpiredError: require('./lib/TokenExpiredError'),\n};\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","/*global module*/\nvar Buffer = require('safe-buffer').Buffer;\nvar DataStream = require('./data-stream');\nvar jwa = require('jwa');\nvar Stream = require('stream');\nvar toString = require('./tostring');\nvar util = require('util');\nvar JWS_REGEX = /^[a-zA-Z0-9\\-_]+?\\.[a-zA-Z0-9\\-_]+?\\.([a-zA-Z0-9\\-_]+)?$/;\n\nfunction isObject(thing) {\n return Object.prototype.toString.call(thing) === '[object Object]';\n}\n\nfunction safeJsonParse(thing) {\n if (isObject(thing))\n return thing;\n try { return JSON.parse(thing); }\n catch (e) { return undefined; }\n}\n\nfunction headerFromJWS(jwsSig) {\n var encodedHeader = jwsSig.split('.', 1)[0];\n return safeJsonParse(Buffer.from(encodedHeader, 'base64').toString('binary'));\n}\n\nfunction securedInputFromJWS(jwsSig) {\n return jwsSig.split('.', 2).join('.');\n}\n\nfunction signatureFromJWS(jwsSig) {\n return jwsSig.split('.')[2];\n}\n\nfunction payloadFromJWS(jwsSig, encoding) {\n encoding = encoding || 'utf8';\n var payload = jwsSig.split('.')[1];\n return Buffer.from(payload, 'base64').toString(encoding);\n}\n\nfunction isValidJws(string) {\n return JWS_REGEX.test(string) && !!headerFromJWS(string);\n}\n\nfunction jwsVerify(jwsSig, algorithm, secretOrKey) {\n if (!algorithm) {\n var err = new Error(\"Missing algorithm parameter for jws.verify\");\n err.code = \"MISSING_ALGORITHM\";\n throw err;\n }\n jwsSig = toString(jwsSig);\n var signature = signatureFromJWS(jwsSig);\n var securedInput = securedInputFromJWS(jwsSig);\n var algo = jwa(algorithm);\n return algo.verify(securedInput, signature, secretOrKey);\n}\n\nfunction jwsDecode(jwsSig, opts) {\n opts = opts || {};\n jwsSig = toString(jwsSig);\n\n if (!isValidJws(jwsSig))\n return null;\n\n var header = headerFromJWS(jwsSig);\n\n if (!header)\n return null;\n\n var payload = payloadFromJWS(jwsSig);\n if (header.typ === 'JWT' || opts.json)\n payload = JSON.parse(payload, opts.encoding);\n\n return {\n header: header,\n payload: payload,\n signature: signatureFromJWS(jwsSig)\n };\n}\n\nfunction VerifyStream(opts) {\n opts = opts || {};\n var secretOrKey = opts.secret||opts.publicKey||opts.key;\n var secretStream = new DataStream(secretOrKey);\n this.readable = true;\n this.algorithm = opts.algorithm;\n this.encoding = opts.encoding;\n this.secret = this.publicKey = this.key = secretStream;\n this.signature = new DataStream(opts.signature);\n this.secret.once('close', function () {\n if (!this.signature.writable && this.readable)\n this.verify();\n }.bind(this));\n\n this.signature.once('close', function () {\n if (!this.secret.writable && this.readable)\n this.verify();\n }.bind(this));\n}\nutil.inherits(VerifyStream, Stream);\nVerifyStream.prototype.verify = function verify() {\n try {\n var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer);\n var obj = jwsDecode(this.signature.buffer, this.encoding);\n this.emit('done', valid, obj);\n this.emit('data', valid);\n this.emit('end');\n this.readable = false;\n return valid;\n } catch (e) {\n this.readable = false;\n this.emit('error', e);\n this.emit('close');\n }\n};\n\nVerifyStream.decode = jwsDecode;\nVerifyStream.isValid = isValidJws;\nVerifyStream.verify = jwsVerify;\n\nmodule.exports = VerifyStream;\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mt = moment.defineLocale('mt', {\n months : 'Jannar_Frar_Marzu_April_Mejju_Ä unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_DiÄ‹embru'.split('_'),\n monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ä un_Lul_Aww_Set_Ott_Nov_DiÄ‹'.split('_'),\n weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ä imgħa_Is-Sibt'.split('_'),\n weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ä im_Sib'.split('_'),\n weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ä i_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Illum fil-]LT',\n nextDay : '[Għada fil-]LT',\n nextWeek : 'dddd [fil-]LT',\n lastDay : '[Il-bieraħ fil-]LT',\n lastWeek : 'dddd [li għadda] [fil-]LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'f’ %s',\n past : '%s ilu',\n s : 'ftit sekondi',\n ss : '%d sekondi',\n m : 'minuta',\n mm : '%d minuti',\n h : 'siegħa',\n hh : '%d siegħat',\n d : 'Ä¡urnata',\n dd : '%d Ä¡ranet',\n M : 'xahar',\n MM : '%d xhur',\n y : 'sena',\n yy : '%d sni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return mt;\n\n})));\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0'\n }, pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n }, plurals = {\n s : ['أقل من ثانية', 'ثانية واØدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m : ['أقل من دقيقة', 'دقيقة واØدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h : ['أقل من ساعة', 'ساعة واØدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d : ['أقل من يوم', 'يوم واØد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M : ['أقل من شهر', 'شهر واØد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y : ['أقل من عام', 'عام واØد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n }, pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months = [\n 'يناير',\n 'Ùبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوÙمبر',\n 'ديسمبر'\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months : months,\n monthsShort : months,\n weekdays : 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/\\u200FM/\\u200FYYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM : function (input) {\n return 'Ù…' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar : {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'بعد %s',\n past : 'منذ %s',\n s : pluralize('s'),\n ss : pluralize('s'),\n m : pluralize('m'),\n mm : pluralize('m'),\n h : pluralize('h'),\n hh : pluralize('h'),\n d : pluralize('d'),\n dd : pluralize('d'),\n M : pluralize('M'),\n MM : pluralize('M'),\n y : pluralize('y'),\n yy : pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arLy;\n\n})));\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Vuelidate = Vuelidate;\nObject.defineProperty(exports, \"withParams\", {\n enumerable: true,\n get: function get() {\n return _params.withParams;\n }\n});\nexports.default = exports.validationMixin = void 0;\n\nvar _vval = require(\"./vval\");\n\nvar _params = require(\"./params\");\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar NIL = function NIL() {\n return null;\n};\n\nvar buildFromKeys = function buildFromKeys(keys, fn, keyFn) {\n return keys.reduce(function (build, key) {\n build[keyFn ? keyFn(key) : key] = fn(key);\n return build;\n }, {});\n};\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\n\nfunction isObject(val) {\n return val !== null && (_typeof(val) === 'object' || isFunction(val));\n}\n\nfunction isPromise(object) {\n return isObject(object) && isFunction(object.then);\n}\n\nvar getPath = function getPath(ctx, obj, path, fallback) {\n if (typeof path === 'function') {\n return path.call(ctx, obj, fallback);\n }\n\n path = Array.isArray(path) ? path : path.split('.');\n\n for (var i = 0; i < path.length; i++) {\n if (obj && _typeof(obj) === 'object') {\n obj = obj[path[i]];\n } else {\n return fallback;\n }\n }\n\n return typeof obj === 'undefined' ? fallback : obj;\n};\n\nvar __isVuelidateAsyncVm = '__isVuelidateAsyncVm';\n\nfunction makePendingAsyncVm(Vue, promise) {\n var asyncVm = new Vue({\n data: {\n p: true,\n v: false\n }\n });\n promise.then(function (value) {\n asyncVm.p = false;\n asyncVm.v = value;\n }, function (error) {\n asyncVm.p = false;\n asyncVm.v = false;\n throw error;\n });\n asyncVm[__isVuelidateAsyncVm] = true;\n return asyncVm;\n}\n\nvar validationGetters = {\n $invalid: function $invalid() {\n var _this = this;\n\n var proxy = this.proxy;\n return this.nestedKeys.some(function (nested) {\n return _this.refProxy(nested).$invalid;\n }) || this.ruleKeys.some(function (rule) {\n return !proxy[rule];\n });\n },\n $dirty: function $dirty() {\n var _this2 = this;\n\n if (this.dirty) {\n return true;\n }\n\n if (this.nestedKeys.length === 0) {\n return false;\n }\n\n return this.nestedKeys.every(function (key) {\n return _this2.refProxy(key).$dirty;\n });\n },\n $anyDirty: function $anyDirty() {\n var _this3 = this;\n\n if (this.dirty) {\n return true;\n }\n\n if (this.nestedKeys.length === 0) {\n return false;\n }\n\n return this.nestedKeys.some(function (key) {\n return _this3.refProxy(key).$anyDirty;\n });\n },\n $error: function $error() {\n return this.$dirty && !this.$pending && this.$invalid;\n },\n $anyError: function $anyError() {\n return this.$anyDirty && !this.$pending && this.$invalid;\n },\n $pending: function $pending() {\n var _this4 = this;\n\n return this.ruleKeys.some(function (key) {\n return _this4.getRef(key).$pending;\n }) || this.nestedKeys.some(function (key) {\n return _this4.refProxy(key).$pending;\n });\n },\n $params: function $params() {\n var _this5 = this;\n\n var vals = this.validations;\n return _objectSpread({}, buildFromKeys(this.nestedKeys, function (key) {\n return vals[key] && vals[key].$params || null;\n }), buildFromKeys(this.ruleKeys, function (key) {\n return _this5.getRef(key).$params;\n }));\n }\n};\n\nfunction setDirtyRecursive(newState) {\n this.dirty = newState;\n var proxy = this.proxy;\n var method = newState ? '$touch' : '$reset';\n this.nestedKeys.forEach(function (key) {\n proxy[key][method]();\n });\n}\n\nvar validationMethods = {\n $touch: function $touch() {\n setDirtyRecursive.call(this, true);\n },\n $reset: function $reset() {\n setDirtyRecursive.call(this, false);\n },\n $flattenParams: function $flattenParams() {\n var proxy = this.proxy;\n var params = [];\n\n for (var key in this.$params) {\n if (this.isNested(key)) {\n var childParams = proxy[key].$flattenParams();\n\n for (var j = 0; j < childParams.length; j++) {\n childParams[j].path.unshift(key);\n }\n\n params = params.concat(childParams);\n } else {\n params.push({\n path: [],\n name: key,\n params: this.$params[key]\n });\n }\n }\n\n return params;\n }\n};\nvar getterNames = Object.keys(validationGetters);\nvar methodNames = Object.keys(validationMethods);\nvar _cachedComponent = null;\n\nvar getComponent = function getComponent(Vue) {\n if (_cachedComponent) {\n return _cachedComponent;\n }\n\n var VBase = Vue.extend({\n computed: {\n refs: function refs() {\n var oldVval = this._vval;\n this._vval = this.children;\n (0, _vval.patchChildren)(oldVval, this._vval);\n var refs = {};\n\n this._vval.forEach(function (c) {\n refs[c.key] = c.vm;\n });\n\n return refs;\n }\n },\n beforeCreate: function beforeCreate() {\n this._vval = null;\n },\n beforeDestroy: function beforeDestroy() {\n if (this._vval) {\n (0, _vval.patchChildren)(this._vval);\n this._vval = null;\n }\n },\n methods: {\n getModel: function getModel() {\n return this.lazyModel ? this.lazyModel(this.prop) : this.model;\n },\n getModelKey: function getModelKey(key) {\n var model = this.getModel();\n\n if (model) {\n return model[key];\n }\n },\n hasIter: function hasIter() {\n return false;\n }\n }\n });\n var ValidationRule = VBase.extend({\n data: function data() {\n return {\n rule: null,\n lazyModel: null,\n model: null,\n lazyParentModel: null,\n rootModel: null\n };\n },\n methods: {\n runRule: function runRule(parent) {\n var model = this.getModel();\n (0, _params.pushParams)();\n var rawOutput = this.rule.call(this.rootModel, model, parent);\n var output = isPromise(rawOutput) ? makePendingAsyncVm(Vue, rawOutput) : rawOutput;\n var rawParams = (0, _params.popParams)();\n var params = rawParams && rawParams.$sub ? rawParams.$sub.length > 1 ? rawParams : rawParams.$sub[0] : null;\n return {\n output: output,\n params: params\n };\n }\n },\n computed: {\n run: function run() {\n var _this6 = this;\n\n var parent = this.lazyParentModel();\n\n var isArrayDependant = Array.isArray(parent) && parent.__ob__;\n\n if (isArrayDependant) {\n var arrayDep = parent.__ob__.dep;\n arrayDep.depend();\n var target = arrayDep.constructor.target;\n\n if (!this._indirectWatcher) {\n var Watcher = target.constructor;\n this._indirectWatcher = new Watcher(this, function () {\n return _this6.runRule(parent);\n }, null, {\n lazy: true\n });\n }\n\n var model = this.getModel();\n\n if (!this._indirectWatcher.dirty && this._lastModel === model) {\n this._indirectWatcher.depend();\n\n return target.value;\n }\n\n this._lastModel = model;\n\n this._indirectWatcher.evaluate();\n\n this._indirectWatcher.depend();\n } else if (this._indirectWatcher) {\n this._indirectWatcher.teardown();\n\n this._indirectWatcher = null;\n }\n\n return this._indirectWatcher ? this._indirectWatcher.value : this.runRule(parent);\n },\n $params: function $params() {\n return this.run.params;\n },\n proxy: function proxy() {\n var output = this.run.output;\n\n if (output[__isVuelidateAsyncVm]) {\n return !!output.v;\n }\n\n return !!output;\n },\n $pending: function $pending() {\n var output = this.run.output;\n\n if (output[__isVuelidateAsyncVm]) {\n return output.p;\n }\n\n return false;\n }\n },\n destroyed: function destroyed() {\n if (this._indirectWatcher) {\n this._indirectWatcher.teardown();\n\n this._indirectWatcher = null;\n }\n }\n });\n var Validation = VBase.extend({\n data: function data() {\n return {\n dirty: false,\n validations: null,\n lazyModel: null,\n model: null,\n prop: null,\n lazyParentModel: null,\n rootModel: null\n };\n },\n methods: _objectSpread({}, validationMethods, {\n refProxy: function refProxy(key) {\n return this.getRef(key).proxy;\n },\n getRef: function getRef(key) {\n return this.refs[key];\n },\n isNested: function isNested(key) {\n return typeof this.validations[key] !== 'function';\n }\n }),\n computed: _objectSpread({}, validationGetters, {\n nestedKeys: function nestedKeys() {\n return this.keys.filter(this.isNested);\n },\n ruleKeys: function ruleKeys() {\n var _this7 = this;\n\n return this.keys.filter(function (k) {\n return !_this7.isNested(k);\n });\n },\n keys: function keys() {\n return Object.keys(this.validations).filter(function (k) {\n return k !== '$params';\n });\n },\n proxy: function proxy() {\n var _this8 = this;\n\n var keyDefs = buildFromKeys(this.keys, function (key) {\n return {\n enumerable: true,\n configurable: true,\n get: function get() {\n return _this8.refProxy(key);\n }\n };\n });\n var getterDefs = buildFromKeys(getterNames, function (key) {\n return {\n enumerable: true,\n configurable: true,\n get: function get() {\n return _this8[key];\n }\n };\n });\n var methodDefs = buildFromKeys(methodNames, function (key) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return _this8[key];\n }\n };\n });\n var iterDefs = this.hasIter() ? {\n $iter: {\n enumerable: true,\n value: Object.defineProperties({}, _objectSpread({}, keyDefs))\n }\n } : {};\n return Object.defineProperties({}, _objectSpread({}, keyDefs, iterDefs, {\n $model: {\n enumerable: true,\n get: function get() {\n var parent = _this8.lazyParentModel();\n\n if (parent != null) {\n return parent[_this8.prop];\n } else {\n return null;\n }\n },\n set: function set(value) {\n var parent = _this8.lazyParentModel();\n\n if (parent != null) {\n parent[_this8.prop] = value;\n\n _this8.$touch();\n }\n }\n }\n }, getterDefs, methodDefs));\n },\n children: function children() {\n var _this9 = this;\n\n return _toConsumableArray(this.nestedKeys.map(function (key) {\n return renderNested(_this9, key);\n })).concat(_toConsumableArray(this.ruleKeys.map(function (key) {\n return renderRule(_this9, key);\n }))).filter(Boolean);\n }\n })\n });\n var GroupValidation = Validation.extend({\n methods: {\n isNested: function isNested(key) {\n return typeof this.validations[key]() !== 'undefined';\n },\n getRef: function getRef(key) {\n var vm = this;\n return {\n get proxy() {\n return vm.validations[key]() || false;\n }\n\n };\n }\n }\n });\n var EachValidation = Validation.extend({\n computed: {\n keys: function keys() {\n var model = this.getModel();\n\n if (isObject(model)) {\n return Object.keys(model);\n } else {\n return [];\n }\n },\n tracker: function tracker() {\n var _this10 = this;\n\n var trackBy = this.validations.$trackBy;\n return trackBy ? function (key) {\n return \"\".concat(getPath(_this10.rootModel, _this10.getModelKey(key), trackBy));\n } : function (x) {\n return \"\".concat(x);\n };\n },\n getModelLazy: function getModelLazy() {\n var _this11 = this;\n\n return function () {\n return _this11.getModel();\n };\n },\n children: function children() {\n var _this12 = this;\n\n var def = this.validations;\n var model = this.getModel();\n\n var validations = _objectSpread({}, def);\n\n delete validations['$trackBy'];\n var usedTracks = {};\n return this.keys.map(function (key) {\n var track = _this12.tracker(key);\n\n if (usedTracks.hasOwnProperty(track)) {\n return null;\n }\n\n usedTracks[track] = true;\n return (0, _vval.h)(Validation, track, {\n validations: validations,\n prop: key,\n lazyParentModel: _this12.getModelLazy,\n model: model[key],\n rootModel: _this12.rootModel\n });\n }).filter(Boolean);\n }\n },\n methods: {\n isNested: function isNested() {\n return true;\n },\n getRef: function getRef(key) {\n return this.refs[this.tracker(key)];\n },\n hasIter: function hasIter() {\n return true;\n }\n }\n });\n\n var renderNested = function renderNested(vm, key) {\n if (key === '$each') {\n return (0, _vval.h)(EachValidation, key, {\n validations: vm.validations[key],\n lazyParentModel: vm.lazyParentModel,\n prop: key,\n lazyModel: vm.getModel,\n rootModel: vm.rootModel\n });\n }\n\n var validations = vm.validations[key];\n\n if (Array.isArray(validations)) {\n var root = vm.rootModel;\n var refVals = buildFromKeys(validations, function (path) {\n return function () {\n return getPath(root, root.$v, path);\n };\n }, function (v) {\n return Array.isArray(v) ? v.join('.') : v;\n });\n return (0, _vval.h)(GroupValidation, key, {\n validations: refVals,\n lazyParentModel: NIL,\n prop: key,\n lazyModel: NIL,\n rootModel: root\n });\n }\n\n return (0, _vval.h)(Validation, key, {\n validations: validations,\n lazyParentModel: vm.getModel,\n prop: key,\n lazyModel: vm.getModelKey,\n rootModel: vm.rootModel\n });\n };\n\n var renderRule = function renderRule(vm, key) {\n return (0, _vval.h)(ValidationRule, key, {\n rule: vm.validations[key],\n lazyParentModel: vm.lazyParentModel,\n lazyModel: vm.getModel,\n rootModel: vm.rootModel\n });\n };\n\n _cachedComponent = {\n VBase: VBase,\n Validation: Validation\n };\n return _cachedComponent;\n};\n\nvar _cachedVue = null;\n\nfunction getVue(rootVm) {\n if (_cachedVue) return _cachedVue;\n var Vue = rootVm.constructor;\n\n while (Vue.super) {\n Vue = Vue.super;\n }\n\n _cachedVue = Vue;\n return Vue;\n}\n\nvar validateModel = function validateModel(model, validations) {\n var Vue = getVue(model);\n\n var _getComponent = getComponent(Vue),\n Validation = _getComponent.Validation,\n VBase = _getComponent.VBase;\n\n var root = new VBase({\n computed: {\n children: function children() {\n var vals = typeof validations === 'function' ? validations.call(model) : validations;\n return [(0, _vval.h)(Validation, '$v', {\n validations: vals,\n lazyParentModel: NIL,\n prop: '$v',\n model: model,\n rootModel: model\n })];\n }\n }\n });\n return root;\n};\n\nvar validationMixin = {\n data: function data() {\n var vals = this.$options.validations;\n\n if (vals) {\n this._vuelidate = validateModel(this, vals);\n }\n\n return {};\n },\n beforeCreate: function beforeCreate() {\n var options = this.$options;\n var vals = options.validations;\n if (!vals) return;\n if (!options.computed) options.computed = {};\n if (options.computed.$v) return;\n\n options.computed.$v = function () {\n return this._vuelidate ? this._vuelidate.refs.$v.proxy : null;\n };\n },\n beforeDestroy: function beforeDestroy() {\n if (this._vuelidate) {\n this._vuelidate.$destroy();\n\n this._vuelidate = null;\n }\n }\n};\nexports.validationMixin = validationMixin;\n\nfunction Vuelidate(Vue) {\n Vue.mixin(validationMixin);\n}\n\nvar _default = Vuelidate;\nexports.default = _default;","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n 'dd': 'дзень_дні_дзён',\n 'MM': 'меÑÑц_меÑÑцы_меÑÑцаў',\n 'yy': 'год_гады_гадоў'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months : {\n format: 'ÑтудзенÑ_лютага_Ñакавіка_краÑавіка_траўнÑ_чÑрвенÑ_ліпенÑ_жніўнÑ_вераÑнÑ_каÑтрычніка_ліÑтапада_ÑнежнÑ'.split('_'),\n standalone: 'Ñтудзень_люты_Ñакавік_краÑавік_травень_чÑрвень_ліпень_жнівень_вераÑень_каÑтрычнік_ліÑтапад_Ñнежань'.split('_')\n },\n monthsShort : 'Ñтуд_лют_Ñак_краÑ_трав_чÑрв_ліп_жнів_вер_каÑÑ‚_ліÑÑ‚_Ñнеж'.split('_'),\n weekdays : {\n format: 'нÑдзелю_панÑдзелак_аўторак_Ñераду_чацвер_пÑтніцу_Ñуботу'.split('_'),\n standalone: 'нÑдзелÑ_панÑдзелак_аўторак_Ñерада_чацвер_пÑтніца_Ñубота'.split('_'),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наÑтупную)? ?\\] ?dddd/\n },\n weekdaysShort : 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n weekdaysMin : 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY г.',\n LLL : 'D MMMM YYYY г., HH:mm',\n LLLL : 'dddd, D MMMM YYYY г., HH:mm'\n },\n calendar : {\n sameDay: '[Ð¡Ñ‘Ð½Ð½Ñ Ñž] LT',\n nextDay: '[Заўтра Ñž] LT',\n lastDay: '[Учора Ñž] LT',\n nextWeek: function () {\n return '[У] dddd [Ñž] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [Ñž] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [Ñž] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'праз %s',\n past : '%s таму',\n s : 'некалькі Ñекунд',\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : relativeTimeWithPlural,\n hh : relativeTimeWithPlural,\n d : 'дзень',\n dd : relativeTimeWithPlural,\n M : 'меÑÑц',\n MM : relativeTimeWithPlural,\n y : 'год',\n yy : relativeTimeWithPlural\n },\n meridiemParse: /ночы|раніцы|днÑ|вечара/,\n isPM : function (input) {\n return /^(днÑ|вечара)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(Ñ–|Ñ‹|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-Ñ–' : number + '-Ñ‹';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return be;\n\n})));\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar des = require('../des');\nvar Cipher = des.Cipher;\nvar DES = des.DES;\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ka = moment.defineLocale('ka', {\n months : {\n standalone: 'იáƒáƒœáƒ•áƒáƒ ი_თებერვáƒáƒšáƒ˜_მáƒáƒ ტი_áƒáƒžáƒ ილი_მáƒáƒ˜áƒ¡áƒ˜_ივნისი_ივლისი_áƒáƒ’ვისტáƒ_სექტემბერი_áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი_ნáƒáƒ”მბერი_დეკემბერი'.split('_'),\n format: 'იáƒáƒœáƒ•áƒáƒ ს_თებერვáƒáƒšáƒ¡_მáƒáƒ ტს_áƒáƒžáƒ ილის_მáƒáƒ˜áƒ¡áƒ¡_ივნისს_ივლისს_áƒáƒ’ვისტს_სექტემბერს_áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერს_ნáƒáƒ”მბერს_დეკემბერს'.split('_')\n },\n monthsShort : 'იáƒáƒœ_თებ_მáƒáƒ _áƒáƒžáƒ _მáƒáƒ˜_ივნ_ივლ_áƒáƒ’ვ_სექ_áƒáƒ¥áƒ¢_ნáƒáƒ”_დეკ'.split('_'),\n weekdays : {\n standalone: 'კვირáƒ_áƒáƒ შáƒáƒ‘áƒáƒ—ი_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი_ხუთშáƒáƒ‘áƒáƒ—ი_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი_შáƒáƒ‘áƒáƒ—ი'.split('_'),\n format: 'კვირáƒáƒ¡_áƒáƒ შáƒáƒ‘áƒáƒ—ს_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ს_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ს_ხუთშáƒáƒ‘áƒáƒ—ს_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვს_შáƒáƒ‘áƒáƒ—ს'.split('_'),\n isFormat: /(წინáƒ|შემდეგ)/\n },\n weekdaysShort : 'კვი_áƒáƒ შ_სáƒáƒ›_áƒáƒ—ხ_ხუთ_პáƒáƒ _შáƒáƒ‘'.split('_'),\n weekdaysMin : 'კვ_áƒáƒ _სáƒ_áƒáƒ—_ხუ_პáƒ_შáƒ'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[დღეს] LT[-ზე]',\n nextDay : '[ხვáƒáƒš] LT[-ზე]',\n lastDay : '[გუშინ] LT[-ზე]',\n nextWeek : '[შემდეგ] dddd LT[-ზე]',\n lastWeek : '[წინáƒ] dddd LT-ზე',\n sameElse : 'L'\n },\n relativeTime : {\n future : function (s) {\n return (/(წáƒáƒ›áƒ˜|წუთი|სáƒáƒáƒ—ი|წელი)/).test(s) ?\n s.replace(/ი$/, 'ში') :\n s + 'ში';\n },\n past : function (s) {\n if ((/(წáƒáƒ›áƒ˜|წუთი|სáƒáƒáƒ—ი|დღე|თვე)/).test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if ((/წელი/).test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n },\n s : 'რáƒáƒ›áƒ“ენიმე წáƒáƒ›áƒ˜',\n ss : '%d წáƒáƒ›áƒ˜',\n m : 'წუთი',\n mm : '%d წუთი',\n h : 'სáƒáƒáƒ—ი',\n hh : '%d სáƒáƒáƒ—ი',\n d : 'დღე',\n dd : '%d დღე',\n M : 'თვე',\n MM : '%d თვე',\n y : 'წელი',\n yy : '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal : function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week : {\n dow : 1,\n doy : 7\n }\n });\n\n return ka;\n\n})));\n","var checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n 'sha': 'SHA-1',\n 'sha-1': 'SHA-1',\n 'sha1': 'SHA-1',\n 'sha256': 'SHA-256',\n 'sha-256': 'SHA-256',\n 'sha384': 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n 'sha512': 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\n\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, {name: 'PBKDF2'}, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n process.nextTick(function () {\n callback(null, out)\n })\n }, function (e) {\n process.nextTick(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n return process.nextTick(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n }\n\n checkParameters(password, salt, iterations, keylen)\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding)\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding)\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","/*!\n * FullCalendar v3.10.1\n * Docs & License: https://fullcalendar.io/\n * (c) 2019 Adam Shaw\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"moment\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"moment\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"FullCalendar\"] = factory(require(\"moment\"), require(\"jquery\"));\n\telse\n\t\troot[\"FullCalendar\"] = factory(root[\"moment\"], root[\"jQuery\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_3__) {\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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 256);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */,\n/* 2 */\n/***/ (function(module, exports) {\n\n/*\r\nderived from:\r\nhttps://github.com/Microsoft/tslib/blob/v1.6.0/tslib.js\r\n\nonly include the helpers we need, to keep down filesize\r\n*/\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b)\r\n if (b.hasOwnProperty(p))\r\n d[p] = b[p]; };\r\nexports.__extends = function (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\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\n/* FullCalendar-specific DOM Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left\r\n// and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that.\r\nfunction compensateScroll(rowEls, scrollbarWidths) {\r\n if (scrollbarWidths.left) {\r\n rowEls.css({\r\n 'border-left-width': 1,\r\n 'margin-left': scrollbarWidths.left - 1\r\n });\r\n }\r\n if (scrollbarWidths.right) {\r\n rowEls.css({\r\n 'border-right-width': 1,\r\n 'margin-right': scrollbarWidths.right - 1\r\n });\r\n }\r\n}\r\nexports.compensateScroll = compensateScroll;\r\n// Undoes compensateScroll and restores all borders/margins\r\nfunction uncompensateScroll(rowEls) {\r\n rowEls.css({\r\n 'margin-left': '',\r\n 'margin-right': '',\r\n 'border-left-width': '',\r\n 'border-right-width': ''\r\n });\r\n}\r\nexports.uncompensateScroll = uncompensateScroll;\r\n// Make the mouse cursor express that an event is not allowed in the current area\r\nfunction disableCursor() {\r\n $('body').addClass('fc-not-allowed');\r\n}\r\nexports.disableCursor = disableCursor;\r\n// Returns the mouse cursor to its original look\r\nfunction enableCursor() {\r\n $('body').removeClass('fc-not-allowed');\r\n}\r\nexports.enableCursor = enableCursor;\r\n// Given a total available height to fill, have `els` (essentially child rows) expand to accomodate.\r\n// By default, all elements that are shorter than the recommended height are expanded uniformly, not considering\r\n// any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and\r\n// reduces the available height.\r\nfunction distributeHeight(els, availableHeight, shouldRedistribute) {\r\n // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions,\r\n // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars.\r\n var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element\r\n var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE*\r\n var flexEls = []; // elements that are allowed to expand. array of DOM nodes\r\n var flexOffsets = []; // amount of vertical space it takes up\r\n var flexHeights = []; // actual css height\r\n var usedHeight = 0;\r\n undistributeHeight(els); // give all elements their natural height\r\n // find elements that are below the recommended height (expandable).\r\n // important to query for heights in a single first pass (to avoid reflow oscillation).\r\n els.each(function (i, el) {\r\n var minOffset = i === els.length - 1 ? minOffset2 : minOffset1;\r\n var naturalOffset = $(el).outerHeight(true);\r\n if (naturalOffset < minOffset) {\r\n flexEls.push(el);\r\n flexOffsets.push(naturalOffset);\r\n flexHeights.push($(el).height());\r\n }\r\n else {\r\n // this element stretches past recommended height (non-expandable). mark the space as occupied.\r\n usedHeight += naturalOffset;\r\n }\r\n });\r\n // readjust the recommended height to only consider the height available to non-maxed-out rows.\r\n if (shouldRedistribute) {\r\n availableHeight -= usedHeight;\r\n minOffset1 = Math.floor(availableHeight / flexEls.length);\r\n minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE*\r\n }\r\n // assign heights to all expandable elements\r\n $(flexEls).each(function (i, el) {\r\n var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1;\r\n var naturalOffset = flexOffsets[i];\r\n var naturalHeight = flexHeights[i];\r\n var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding\r\n if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things\r\n $(el).height(newHeight);\r\n }\r\n });\r\n}\r\nexports.distributeHeight = distributeHeight;\r\n// Undoes distrubuteHeight, restoring all els to their natural height\r\nfunction undistributeHeight(els) {\r\n els.height('');\r\n}\r\nexports.undistributeHeight = undistributeHeight;\r\n// Given `els`, a jQuery set of <td> cells, find the cell with the largest natural width and set the widths of all the\r\n// cells to be that width.\r\n// PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline\r\nfunction matchCellWidths(els) {\r\n var maxInnerWidth = 0;\r\n els.find('> *').each(function (i, innerEl) {\r\n var innerWidth = $(innerEl).outerWidth();\r\n if (innerWidth > maxInnerWidth) {\r\n maxInnerWidth = innerWidth;\r\n }\r\n });\r\n maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance\r\n els.width(maxInnerWidth);\r\n return maxInnerWidth;\r\n}\r\nexports.matchCellWidths = matchCellWidths;\r\n// Given one element that resides inside another,\r\n// Subtracts the height of the inner element from the outer element.\r\nfunction subtractInnerElHeight(outerEl, innerEl) {\r\n var both = outerEl.add(innerEl);\r\n var diff;\r\n // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked\r\n both.css({\r\n position: 'relative',\r\n left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll\r\n });\r\n diff = outerEl.outerHeight() - innerEl.outerHeight(); // grab the dimensions\r\n both.css({ position: '', left: '' }); // undo hack\r\n return diff;\r\n}\r\nexports.subtractInnerElHeight = subtractInnerElHeight;\r\n/* Element Geom Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// borrowed from https://github.com/jquery/jquery-ui/blob/1.11.0/ui/core.js#L51\r\nfunction getScrollParent(el) {\r\n var position = el.css('position');\r\n var scrollParent = el.parents().filter(function () {\r\n var parent = $(this);\r\n return (/(auto|scroll)/).test(parent.css('overflow') + parent.css('overflow-y') + parent.css('overflow-x'));\r\n }).eq(0);\r\n return position === 'fixed' || !scrollParent.length ? $(el[0].ownerDocument || document) : scrollParent;\r\n}\r\nexports.getScrollParent = getScrollParent;\r\n// Queries the outer bounding area of a jQuery element.\r\n// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive).\r\n// Origin is optional.\r\nfunction getOuterRect(el, origin) {\r\n var offset = el.offset();\r\n var left = offset.left - (origin ? origin.left : 0);\r\n var top = offset.top - (origin ? origin.top : 0);\r\n return {\r\n left: left,\r\n right: left + el.outerWidth(),\r\n top: top,\r\n bottom: top + el.outerHeight()\r\n };\r\n}\r\nexports.getOuterRect = getOuterRect;\r\n// Queries the area within the margin/border/scrollbars of a jQuery element. Does not go within the padding.\r\n// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive).\r\n// Origin is optional.\r\n// WARNING: given element can't have borders\r\n// NOTE: should use clientLeft/clientTop, but very unreliable cross-browser.\r\nfunction getClientRect(el, origin) {\r\n var offset = el.offset();\r\n var scrollbarWidths = getScrollbarWidths(el);\r\n var left = offset.left + getCssFloat(el, 'border-left-width') + scrollbarWidths.left - (origin ? origin.left : 0);\r\n var top = offset.top + getCssFloat(el, 'border-top-width') + scrollbarWidths.top - (origin ? origin.top : 0);\r\n return {\r\n left: left,\r\n right: left + el[0].clientWidth,\r\n top: top,\r\n bottom: top + el[0].clientHeight // clientHeight includes padding but NOT scrollbars\r\n };\r\n}\r\nexports.getClientRect = getClientRect;\r\n// Queries the area within the margin/border/padding of a jQuery element. Assumed not to have scrollbars.\r\n// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive).\r\n// Origin is optional.\r\nfunction getContentRect(el, origin) {\r\n var offset = el.offset(); // just outside of border, margin not included\r\n var left = offset.left + getCssFloat(el, 'border-left-width') + getCssFloat(el, 'padding-left') -\r\n (origin ? origin.left : 0);\r\n var top = offset.top + getCssFloat(el, 'border-top-width') + getCssFloat(el, 'padding-top') -\r\n (origin ? origin.top : 0);\r\n return {\r\n left: left,\r\n right: left + el.width(),\r\n top: top,\r\n bottom: top + el.height()\r\n };\r\n}\r\nexports.getContentRect = getContentRect;\r\n// Returns the computed left/right/top/bottom scrollbar widths for the given jQuery element.\r\n// WARNING: given element can't have borders (which will cause offsetWidth/offsetHeight to be larger).\r\n// NOTE: should use clientLeft/clientTop, but very unreliable cross-browser.\r\nfunction getScrollbarWidths(el) {\r\n var leftRightWidth = el[0].offsetWidth - el[0].clientWidth;\r\n var bottomWidth = el[0].offsetHeight - el[0].clientHeight;\r\n var widths;\r\n leftRightWidth = sanitizeScrollbarWidth(leftRightWidth);\r\n bottomWidth = sanitizeScrollbarWidth(bottomWidth);\r\n widths = { left: 0, right: 0, top: 0, bottom: bottomWidth };\r\n if (getIsLeftRtlScrollbars() && el.css('direction') === 'rtl') { // is the scrollbar on the left side?\r\n widths.left = leftRightWidth;\r\n }\r\n else {\r\n widths.right = leftRightWidth;\r\n }\r\n return widths;\r\n}\r\nexports.getScrollbarWidths = getScrollbarWidths;\r\n// The scrollbar width computations in getScrollbarWidths are sometimes flawed when it comes to\r\n// retina displays, rounding, and IE11. Massage them into a usable value.\r\nfunction sanitizeScrollbarWidth(width) {\r\n width = Math.max(0, width); // no negatives\r\n width = Math.round(width);\r\n return width;\r\n}\r\n// Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side\r\nvar _isLeftRtlScrollbars = null;\r\nfunction getIsLeftRtlScrollbars() {\r\n if (_isLeftRtlScrollbars === null) {\r\n _isLeftRtlScrollbars = computeIsLeftRtlScrollbars();\r\n }\r\n return _isLeftRtlScrollbars;\r\n}\r\nfunction computeIsLeftRtlScrollbars() {\r\n var el = $('<div><div/></div>')\r\n .css({\r\n position: 'absolute',\r\n top: -1000,\r\n left: 0,\r\n border: 0,\r\n padding: 0,\r\n overflow: 'scroll',\r\n direction: 'rtl'\r\n })\r\n .appendTo('body');\r\n var innerEl = el.children();\r\n var res = innerEl.offset().left > el.offset().left; // is the inner div shifted to accommodate a left scrollbar?\r\n el.remove();\r\n return res;\r\n}\r\n// Retrieves a jQuery element's computed CSS value as a floating-point number.\r\n// If the queried value is non-numeric (ex: IE can return \"medium\" for border width), will just return zero.\r\nfunction getCssFloat(el, prop) {\r\n return parseFloat(el.css(prop)) || 0;\r\n}\r\n/* Mouse / Touch Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)\r\nfunction isPrimaryMouseButton(ev) {\r\n return ev.which === 1 && !ev.ctrlKey;\r\n}\r\nexports.isPrimaryMouseButton = isPrimaryMouseButton;\r\nfunction getEvX(ev) {\r\n var touches = ev.originalEvent.touches;\r\n // on mobile FF, pageX for touch events is present, but incorrect,\r\n // so, look at touch coordinates first.\r\n if (touches && touches.length) {\r\n return touches[0].pageX;\r\n }\r\n return ev.pageX;\r\n}\r\nexports.getEvX = getEvX;\r\nfunction getEvY(ev) {\r\n var touches = ev.originalEvent.touches;\r\n // on mobile FF, pageX for touch events is present, but incorrect,\r\n // so, look at touch coordinates first.\r\n if (touches && touches.length) {\r\n return touches[0].pageY;\r\n }\r\n return ev.pageY;\r\n}\r\nexports.getEvY = getEvY;\r\nfunction getEvIsTouch(ev) {\r\n return /^touch/.test(ev.type);\r\n}\r\nexports.getEvIsTouch = getEvIsTouch;\r\nfunction preventSelection(el) {\r\n el.addClass('fc-unselectable')\r\n .on('selectstart', preventDefault);\r\n}\r\nexports.preventSelection = preventSelection;\r\nfunction allowSelection(el) {\r\n el.removeClass('fc-unselectable')\r\n .off('selectstart', preventDefault);\r\n}\r\nexports.allowSelection = allowSelection;\r\n// Stops a mouse/touch event from doing it's native browser action\r\nfunction preventDefault(ev) {\r\n ev.preventDefault();\r\n}\r\nexports.preventDefault = preventDefault;\r\n/* General Geometry Utils\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\r\nfunction intersectRects(rect1, rect2) {\r\n var res = {\r\n left: Math.max(rect1.left, rect2.left),\r\n right: Math.min(rect1.right, rect2.right),\r\n top: Math.max(rect1.top, rect2.top),\r\n bottom: Math.min(rect1.bottom, rect2.bottom)\r\n };\r\n if (res.left < res.right && res.top < res.bottom) {\r\n return res;\r\n }\r\n return false;\r\n}\r\nexports.intersectRects = intersectRects;\r\n// Returns a new point that will have been moved to reside within the given rectangle\r\nfunction constrainPoint(point, rect) {\r\n return {\r\n left: Math.min(Math.max(point.left, rect.left), rect.right),\r\n top: Math.min(Math.max(point.top, rect.top), rect.bottom)\r\n };\r\n}\r\nexports.constrainPoint = constrainPoint;\r\n// Returns a point that is the center of the given rectangle\r\nfunction getRectCenter(rect) {\r\n return {\r\n left: (rect.left + rect.right) / 2,\r\n top: (rect.top + rect.bottom) / 2\r\n };\r\n}\r\nexports.getRectCenter = getRectCenter;\r\n// Subtracts point2's coordinates from point1's coordinates, returning a delta\r\nfunction diffPoints(point1, point2) {\r\n return {\r\n left: point1.left - point2.left,\r\n top: point1.top - point2.top\r\n };\r\n}\r\nexports.diffPoints = diffPoints;\r\n/* Object Ordering by Field\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nfunction parseFieldSpecs(input) {\r\n var specs = [];\r\n var tokens = [];\r\n var i;\r\n var token;\r\n if (typeof input === 'string') {\r\n tokens = input.split(/\\s*,\\s*/);\r\n }\r\n else if (typeof input === 'function') {\r\n tokens = [input];\r\n }\r\n else if ($.isArray(input)) {\r\n tokens = input;\r\n }\r\n for (i = 0; i < tokens.length; i++) {\r\n token = tokens[i];\r\n if (typeof token === 'string') {\r\n specs.push(token.charAt(0) === '-' ?\r\n { field: token.substring(1), order: -1 } :\r\n { field: token, order: 1 });\r\n }\r\n else if (typeof token === 'function') {\r\n specs.push({ func: token });\r\n }\r\n }\r\n return specs;\r\n}\r\nexports.parseFieldSpecs = parseFieldSpecs;\r\nfunction compareByFieldSpecs(obj1, obj2, fieldSpecs, obj1fallback, obj2fallback) {\r\n var i;\r\n var cmp;\r\n for (i = 0; i < fieldSpecs.length; i++) {\r\n cmp = compareByFieldSpec(obj1, obj2, fieldSpecs[i], obj1fallback, obj2fallback);\r\n if (cmp) {\r\n return cmp;\r\n }\r\n }\r\n return 0;\r\n}\r\nexports.compareByFieldSpecs = compareByFieldSpecs;\r\nfunction compareByFieldSpec(obj1, obj2, fieldSpec, obj1fallback, obj2fallback) {\r\n if (fieldSpec.func) {\r\n return fieldSpec.func(obj1, obj2);\r\n }\r\n var val1 = obj1[fieldSpec.field];\r\n var val2 = obj2[fieldSpec.field];\r\n if (val1 == null && obj1fallback) {\r\n val1 = obj1fallback[fieldSpec.field];\r\n }\r\n if (val2 == null && obj2fallback) {\r\n val2 = obj2fallback[fieldSpec.field];\r\n }\r\n return flexibleCompare(val1, val2) * (fieldSpec.order || 1);\r\n}\r\nexports.compareByFieldSpec = compareByFieldSpec;\r\nfunction flexibleCompare(a, b) {\r\n if (!a && !b) {\r\n return 0;\r\n }\r\n if (b == null) {\r\n return -1;\r\n }\r\n if (a == null) {\r\n return 1;\r\n }\r\n if ($.type(a) === 'string' || $.type(b) === 'string') {\r\n return String(a).localeCompare(String(b));\r\n }\r\n return a - b;\r\n}\r\nexports.flexibleCompare = flexibleCompare;\r\n/* Date Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nexports.dayIDs = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\r\nexports.unitsDesc = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; // descending\r\n// Diffs the two moments into a Duration where full-days are recorded first, then the remaining time.\r\n// Moments will have their timezones normalized.\r\nfunction diffDayTime(a, b) {\r\n return moment.duration({\r\n days: a.clone().stripTime().diff(b.clone().stripTime(), 'days'),\r\n ms: a.time() - b.time() // time-of-day from day start. disregards timezone\r\n });\r\n}\r\nexports.diffDayTime = diffDayTime;\r\n// Diffs the two moments via their start-of-day (regardless of timezone). Produces whole-day durations.\r\nfunction diffDay(a, b) {\r\n return moment.duration({\r\n days: a.clone().stripTime().diff(b.clone().stripTime(), 'days')\r\n });\r\n}\r\nexports.diffDay = diffDay;\r\n// Diffs two moments, producing a duration, made of a whole-unit-increment of the given unit. Uses rounding.\r\nfunction diffByUnit(a, b, unit) {\r\n return moment.duration(Math.round(a.diff(b, unit, true)), // returnFloat=true\r\n unit);\r\n}\r\nexports.diffByUnit = diffByUnit;\r\n// Computes the unit name of the largest whole-unit period of time.\r\n// For example, 48 hours will be \"days\" whereas 49 hours will be \"hours\".\r\n// Accepts start/end, a range object, or an original duration object.\r\nfunction computeGreatestUnit(start, end) {\r\n var i;\r\n var unit;\r\n var val;\r\n for (i = 0; i < exports.unitsDesc.length; i++) {\r\n unit = exports.unitsDesc[i];\r\n val = computeRangeAs(unit, start, end);\r\n if (val >= 1 && isInt(val)) {\r\n break;\r\n }\r\n }\r\n return unit; // will be \"milliseconds\" if nothing else matches\r\n}\r\nexports.computeGreatestUnit = computeGreatestUnit;\r\n// like computeGreatestUnit, but has special abilities to interpret the source input for clues\r\nfunction computeDurationGreatestUnit(duration, durationInput) {\r\n var unit = computeGreatestUnit(duration);\r\n // prevent days:7 from being interpreted as a week\r\n if (unit === 'week' && typeof durationInput === 'object' && durationInput.days) {\r\n unit = 'day';\r\n }\r\n return unit;\r\n}\r\nexports.computeDurationGreatestUnit = computeDurationGreatestUnit;\r\n// Computes the number of units (like \"hours\") in the given range.\r\n// Range can be a {start,end} object, separate start/end args, or a Duration.\r\n// Results are based on Moment's .as() and .diff() methods, so results can depend on internal handling\r\n// of month-diffing logic (which tends to vary from version to version).\r\nfunction computeRangeAs(unit, start, end) {\r\n if (end != null) { // given start, end\r\n return end.diff(start, unit, true);\r\n }\r\n else if (moment.isDuration(start)) { // given duration\r\n return start.as(unit);\r\n }\r\n else { // given { start, end } range object\r\n return start.end.diff(start.start, unit, true);\r\n }\r\n}\r\n// Intelligently divides a range (specified by a start/end params) by a duration\r\nfunction divideRangeByDuration(start, end, dur) {\r\n var months;\r\n if (durationHasTime(dur)) {\r\n return (end - start) / dur;\r\n }\r\n months = dur.asMonths();\r\n if (Math.abs(months) >= 1 && isInt(months)) {\r\n return end.diff(start, 'months', true) / months;\r\n }\r\n return end.diff(start, 'days', true) / dur.asDays();\r\n}\r\nexports.divideRangeByDuration = divideRangeByDuration;\r\n// Intelligently divides one duration by another\r\nfunction divideDurationByDuration(dur1, dur2) {\r\n var months1;\r\n var months2;\r\n if (durationHasTime(dur1) || durationHasTime(dur2)) {\r\n return dur1 / dur2;\r\n }\r\n months1 = dur1.asMonths();\r\n months2 = dur2.asMonths();\r\n if (Math.abs(months1) >= 1 && isInt(months1) &&\r\n Math.abs(months2) >= 1 && isInt(months2)) {\r\n return months1 / months2;\r\n }\r\n return dur1.asDays() / dur2.asDays();\r\n}\r\nexports.divideDurationByDuration = divideDurationByDuration;\r\n// Intelligently multiplies a duration by a number\r\nfunction multiplyDuration(dur, n) {\r\n var months;\r\n if (durationHasTime(dur)) {\r\n return moment.duration(dur * n);\r\n }\r\n months = dur.asMonths();\r\n if (Math.abs(months) >= 1 && isInt(months)) {\r\n return moment.duration({ months: months * n });\r\n }\r\n return moment.duration({ days: dur.asDays() * n });\r\n}\r\nexports.multiplyDuration = multiplyDuration;\r\n// Returns a boolean about whether the given duration has any time parts (hours/minutes/seconds/ms)\r\nfunction durationHasTime(dur) {\r\n return Boolean(dur.hours() || dur.minutes() || dur.seconds() || dur.milliseconds());\r\n}\r\nexports.durationHasTime = durationHasTime;\r\nfunction isNativeDate(input) {\r\n return Object.prototype.toString.call(input) === '[object Date]' || input instanceof Date;\r\n}\r\nexports.isNativeDate = isNativeDate;\r\n// Returns a boolean about whether the given input is a time string, like \"06:40:00\" or \"06:00\"\r\nfunction isTimeString(str) {\r\n return typeof str === 'string' &&\r\n /^\\d+\\:\\d+(?:\\:\\d+\\.?(?:\\d{3})?)?$/.test(str);\r\n}\r\nexports.isTimeString = isTimeString;\r\n/* Logging and Debug\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nfunction log() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var console = window.console;\r\n if (console && console.log) {\r\n return console.log.apply(console, args);\r\n }\r\n}\r\nexports.log = log;\r\nfunction warn() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var console = window.console;\r\n if (console && console.warn) {\r\n return console.warn.apply(console, args);\r\n }\r\n else {\r\n return log.apply(null, args);\r\n }\r\n}\r\nexports.warn = warn;\r\n/* General Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar hasOwnPropMethod = {}.hasOwnProperty;\r\n// Merges an array of objects into a single object.\r\n// The second argument allows for an array of property names who's object values will be merged together.\r\nfunction mergeProps(propObjs, complexProps) {\r\n var dest = {};\r\n var i;\r\n var name;\r\n var complexObjs;\r\n var j;\r\n var val;\r\n var props;\r\n if (complexProps) {\r\n for (i = 0; i < complexProps.length; i++) {\r\n name = complexProps[i];\r\n complexObjs = [];\r\n // collect the trailing object values, stopping when a non-object is discovered\r\n for (j = propObjs.length - 1; j >= 0; j--) {\r\n val = propObjs[j][name];\r\n if (typeof val === 'object') {\r\n complexObjs.unshift(val);\r\n }\r\n else if (val !== undefined) {\r\n dest[name] = val; // if there were no objects, this value will be used\r\n break;\r\n }\r\n }\r\n // if the trailing values were objects, use the merged value\r\n if (complexObjs.length) {\r\n dest[name] = mergeProps(complexObjs);\r\n }\r\n }\r\n }\r\n // copy values into the destination, going from last to first\r\n for (i = propObjs.length - 1; i >= 0; i--) {\r\n props = propObjs[i];\r\n for (name in props) {\r\n if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign\r\n dest[name] = props[name];\r\n }\r\n }\r\n }\r\n return dest;\r\n}\r\nexports.mergeProps = mergeProps;\r\nfunction copyOwnProps(src, dest) {\r\n for (var name_1 in src) {\r\n if (hasOwnProp(src, name_1)) {\r\n dest[name_1] = src[name_1];\r\n }\r\n }\r\n}\r\nexports.copyOwnProps = copyOwnProps;\r\nfunction hasOwnProp(obj, name) {\r\n return hasOwnPropMethod.call(obj, name);\r\n}\r\nexports.hasOwnProp = hasOwnProp;\r\nfunction applyAll(functions, thisObj, args) {\r\n if ($.isFunction(functions)) {\r\n functions = [functions];\r\n }\r\n if (functions) {\r\n var i = void 0;\r\n var ret = void 0;\r\n for (i = 0; i < functions.length; i++) {\r\n ret = functions[i].apply(thisObj, args) || ret;\r\n }\r\n return ret;\r\n }\r\n}\r\nexports.applyAll = applyAll;\r\nfunction removeMatching(array, testFunc) {\r\n var removeCnt = 0;\r\n var i = 0;\r\n while (i < array.length) {\r\n if (testFunc(array[i])) { // truthy value means *remove*\r\n array.splice(i, 1);\r\n removeCnt++;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return removeCnt;\r\n}\r\nexports.removeMatching = removeMatching;\r\nfunction removeExact(array, exactVal) {\r\n var removeCnt = 0;\r\n var i = 0;\r\n while (i < array.length) {\r\n if (array[i] === exactVal) {\r\n array.splice(i, 1);\r\n removeCnt++;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return removeCnt;\r\n}\r\nexports.removeExact = removeExact;\r\nfunction isArraysEqual(a0, a1) {\r\n var len = a0.length;\r\n var i;\r\n if (len == null || len !== a1.length) { // not array? or not same length?\r\n return false;\r\n }\r\n for (i = 0; i < len; i++) {\r\n if (a0[i] !== a1[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nexports.isArraysEqual = isArraysEqual;\r\nfunction firstDefined() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n for (var i = 0; i < args.length; i++) {\r\n if (args[i] !== undefined) {\r\n return args[i];\r\n }\r\n }\r\n}\r\nexports.firstDefined = firstDefined;\r\nfunction htmlEscape(s) {\r\n return (s + '').replace(/&/g, '&')\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>')\r\n .replace(/'/g, ''')\r\n .replace(/\"/g, '"')\r\n .replace(/\\n/g, '<br />');\r\n}\r\nexports.htmlEscape = htmlEscape;\r\nfunction stripHtmlEntities(text) {\r\n return text.replace(/&.*?;/g, '');\r\n}\r\nexports.stripHtmlEntities = stripHtmlEntities;\r\n// Given a hash of CSS properties, returns a string of CSS.\r\n// Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values.\r\nfunction cssToStr(cssProps) {\r\n var statements = [];\r\n $.each(cssProps, function (name, val) {\r\n if (val != null) {\r\n statements.push(name + ':' + val);\r\n }\r\n });\r\n return statements.join(';');\r\n}\r\nexports.cssToStr = cssToStr;\r\n// Given an object hash of HTML attribute names to values,\r\n// generates a string that can be injected between < > in HTML\r\nfunction attrsToStr(attrs) {\r\n var parts = [];\r\n $.each(attrs, function (name, val) {\r\n if (val != null) {\r\n parts.push(name + '=\"' + htmlEscape(val) + '\"');\r\n }\r\n });\r\n return parts.join(' ');\r\n}\r\nexports.attrsToStr = attrsToStr;\r\nfunction capitaliseFirstLetter(str) {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n}\r\nexports.capitaliseFirstLetter = capitaliseFirstLetter;\r\nfunction compareNumbers(a, b) {\r\n return a - b;\r\n}\r\nexports.compareNumbers = compareNumbers;\r\nfunction isInt(n) {\r\n return n % 1 === 0;\r\n}\r\nexports.isInt = isInt;\r\n// Returns a method bound to the given object context.\r\n// Just like one of the jQuery.proxy signatures, but without the undesired behavior of treating the same method with\r\n// different contexts as identical when binding/unbinding events.\r\nfunction proxy(obj, methodName) {\r\n var method = obj[methodName];\r\n return function () {\r\n return method.apply(obj, arguments);\r\n };\r\n}\r\nexports.proxy = proxy;\r\n// Returns a function, that, as long as it continues to be invoked, will not\r\n// be triggered. The function will be called after it stops being called for\r\n// N milliseconds. If `immediate` is passed, trigger the function on the\r\n// leading edge, instead of the trailing.\r\n// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714\r\nfunction debounce(func, wait, immediate) {\r\n if (immediate === void 0) { immediate = false; }\r\n var timeout;\r\n var args;\r\n var context;\r\n var timestamp;\r\n var result;\r\n var later = function () {\r\n var last = +new Date() - timestamp;\r\n if (last < wait) {\r\n timeout = setTimeout(later, wait - last);\r\n }\r\n else {\r\n timeout = null;\r\n if (!immediate) {\r\n result = func.apply(context, args);\r\n context = args = null;\r\n }\r\n }\r\n };\r\n return function () {\r\n context = this;\r\n args = arguments;\r\n timestamp = +new Date();\r\n var callNow = immediate && !timeout;\r\n if (!timeout) {\r\n timeout = setTimeout(later, wait);\r\n }\r\n if (callNow) {\r\n result = func.apply(context, args);\r\n context = args = null;\r\n }\r\n return result;\r\n };\r\n}\r\nexports.debounce = debounce;\r\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar moment_ext_1 = __webpack_require__(11);\r\nvar UnzonedRange = /** @class */ (function () {\r\n function UnzonedRange(startInput, endInput) {\r\n // TODO: move these into footprint.\r\n // Especially, doesn't make sense for null startMs/endMs.\r\n this.isStart = true;\r\n this.isEnd = true;\r\n if (moment.isMoment(startInput)) {\r\n startInput = startInput.clone().stripZone();\r\n }\r\n if (moment.isMoment(endInput)) {\r\n endInput = endInput.clone().stripZone();\r\n }\r\n if (startInput) {\r\n this.startMs = startInput.valueOf();\r\n }\r\n if (endInput) {\r\n this.endMs = endInput.valueOf();\r\n }\r\n }\r\n /*\r\n SIDEEFFECT: will mutate eventRanges.\r\n Will return a new array result.\r\n Only works for non-open-ended ranges.\r\n */\r\n UnzonedRange.invertRanges = function (ranges, constraintRange) {\r\n var invertedRanges = [];\r\n var startMs = constraintRange.startMs; // the end of the previous range. the start of the new range\r\n var i;\r\n var dateRange;\r\n // ranges need to be in order. required for our date-walking algorithm\r\n ranges.sort(compareUnzonedRanges);\r\n for (i = 0; i < ranges.length; i++) {\r\n dateRange = ranges[i];\r\n // add the span of time before the event (if there is any)\r\n if (dateRange.startMs > startMs) { // compare millisecond time (skip any ambig logic)\r\n invertedRanges.push(new UnzonedRange(startMs, dateRange.startMs));\r\n }\r\n if (dateRange.endMs > startMs) {\r\n startMs = dateRange.endMs;\r\n }\r\n }\r\n // add the span of time after the last event (if there is any)\r\n if (startMs < constraintRange.endMs) { // compare millisecond time (skip any ambig logic)\r\n invertedRanges.push(new UnzonedRange(startMs, constraintRange.endMs));\r\n }\r\n return invertedRanges;\r\n };\r\n UnzonedRange.prototype.intersect = function (otherRange) {\r\n var startMs = this.startMs;\r\n var endMs = this.endMs;\r\n var newRange = null;\r\n if (otherRange.startMs != null) {\r\n if (startMs == null) {\r\n startMs = otherRange.startMs;\r\n }\r\n else {\r\n startMs = Math.max(startMs, otherRange.startMs);\r\n }\r\n }\r\n if (otherRange.endMs != null) {\r\n if (endMs == null) {\r\n endMs = otherRange.endMs;\r\n }\r\n else {\r\n endMs = Math.min(endMs, otherRange.endMs);\r\n }\r\n }\r\n if (startMs == null || endMs == null || startMs < endMs) {\r\n newRange = new UnzonedRange(startMs, endMs);\r\n newRange.isStart = this.isStart && startMs === this.startMs;\r\n newRange.isEnd = this.isEnd && endMs === this.endMs;\r\n }\r\n return newRange;\r\n };\r\n UnzonedRange.prototype.intersectsWith = function (otherRange) {\r\n return (this.endMs == null || otherRange.startMs == null || this.endMs > otherRange.startMs) &&\r\n (this.startMs == null || otherRange.endMs == null || this.startMs < otherRange.endMs);\r\n };\r\n UnzonedRange.prototype.containsRange = function (innerRange) {\r\n return (this.startMs == null || (innerRange.startMs != null && innerRange.startMs >= this.startMs)) &&\r\n (this.endMs == null || (innerRange.endMs != null && innerRange.endMs <= this.endMs));\r\n };\r\n // `date` can be a moment, a Date, or a millisecond time.\r\n UnzonedRange.prototype.containsDate = function (date) {\r\n var ms = date.valueOf();\r\n return (this.startMs == null || ms >= this.startMs) &&\r\n (this.endMs == null || ms < this.endMs);\r\n };\r\n // If the given date is not within the given range, move it inside.\r\n // (If it's past the end, make it one millisecond before the end).\r\n // `date` can be a moment, a Date, or a millisecond time.\r\n // Returns a MS-time.\r\n UnzonedRange.prototype.constrainDate = function (date) {\r\n var ms = date.valueOf();\r\n if (this.startMs != null && ms < this.startMs) {\r\n ms = this.startMs;\r\n }\r\n if (this.endMs != null && ms >= this.endMs) {\r\n ms = this.endMs - 1;\r\n }\r\n return ms;\r\n };\r\n UnzonedRange.prototype.equals = function (otherRange) {\r\n return this.startMs === otherRange.startMs && this.endMs === otherRange.endMs;\r\n };\r\n UnzonedRange.prototype.clone = function () {\r\n var range = new UnzonedRange(this.startMs, this.endMs);\r\n range.isStart = this.isStart;\r\n range.isEnd = this.isEnd;\r\n return range;\r\n };\r\n // Returns an ambig-zoned moment from startMs.\r\n // BEWARE: returned moment is not localized.\r\n // Formatting and start-of-week will be default.\r\n UnzonedRange.prototype.getStart = function () {\r\n if (this.startMs != null) {\r\n return moment_ext_1.default.utc(this.startMs).stripZone();\r\n }\r\n return null;\r\n };\r\n // Returns an ambig-zoned moment from startMs.\r\n // BEWARE: returned moment is not localized.\r\n // Formatting and start-of-week will be default.\r\n UnzonedRange.prototype.getEnd = function () {\r\n if (this.endMs != null) {\r\n return moment_ext_1.default.utc(this.endMs).stripZone();\r\n }\r\n return null;\r\n };\r\n UnzonedRange.prototype.as = function (unit) {\r\n return moment.utc(this.endMs).diff(moment.utc(this.startMs), unit, true);\r\n };\r\n return UnzonedRange;\r\n}());\r\nexports.default = UnzonedRange;\r\n/*\r\nOnly works for non-open-ended ranges.\r\n*/\r\nfunction compareUnzonedRanges(range1, range2) {\r\n return range1.startMs - range2.startMs; // earlier ranges go first\r\n}\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar ParsableModelMixin_1 = __webpack_require__(52);\r\nvar Class_1 = __webpack_require__(35);\r\nvar EventDefParser_1 = __webpack_require__(36);\r\nvar EventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventSource, _super);\r\n // can we do away with calendar? at least for the abstract?\r\n // useful for buildEventDef\r\n function EventSource(calendar) {\r\n var _this = _super.call(this) || this;\r\n _this.calendar = calendar;\r\n _this.className = [];\r\n _this.uid = String(EventSource.uuid++);\r\n return _this;\r\n }\r\n /*\r\n rawInput can be any data type!\r\n */\r\n EventSource.parse = function (rawInput, calendar) {\r\n var source = new this(calendar);\r\n if (typeof rawInput === 'object') {\r\n if (source.applyProps(rawInput)) {\r\n return source;\r\n }\r\n }\r\n return false;\r\n };\r\n EventSource.normalizeId = function (id) {\r\n if (id) {\r\n return String(id);\r\n }\r\n return null;\r\n };\r\n EventSource.prototype.fetch = function (start, end, timezone) {\r\n // subclasses must implement. must return a promise.\r\n };\r\n EventSource.prototype.removeEventDefsById = function (eventDefId) {\r\n // optional for subclasses to implement\r\n };\r\n EventSource.prototype.removeAllEventDefs = function () {\r\n // optional for subclasses to implement\r\n };\r\n /*\r\n For compairing/matching\r\n */\r\n EventSource.prototype.getPrimitive = function (otherSource) {\r\n // subclasses must implement\r\n };\r\n EventSource.prototype.parseEventDefs = function (rawEventDefs) {\r\n var i;\r\n var eventDef;\r\n var eventDefs = [];\r\n for (i = 0; i < rawEventDefs.length; i++) {\r\n eventDef = this.parseEventDef(rawEventDefs[i]);\r\n if (eventDef) {\r\n eventDefs.push(eventDef);\r\n }\r\n }\r\n return eventDefs;\r\n };\r\n EventSource.prototype.parseEventDef = function (rawInput) {\r\n var calendarTransform = this.calendar.opt('eventDataTransform');\r\n var sourceTransform = this.eventDataTransform;\r\n if (calendarTransform) {\r\n rawInput = calendarTransform(rawInput, this.calendar);\r\n }\r\n if (sourceTransform) {\r\n rawInput = sourceTransform(rawInput, this.calendar);\r\n }\r\n return EventDefParser_1.default.parse(rawInput, this);\r\n };\r\n EventSource.prototype.applyManualStandardProps = function (rawProps) {\r\n if (rawProps.id != null) {\r\n this.id = EventSource.normalizeId(rawProps.id);\r\n }\r\n // TODO: converge with EventDef\r\n if ($.isArray(rawProps.className)) {\r\n this.className = rawProps.className;\r\n }\r\n else if (typeof rawProps.className === 'string') {\r\n this.className = rawProps.className.split(/\\s+/);\r\n }\r\n return true;\r\n };\r\n EventSource.uuid = 0;\r\n EventSource.defineStandardProps = ParsableModelMixin_1.default.defineStandardProps;\r\n EventSource.copyVerbatimStandardProps = ParsableModelMixin_1.default.copyVerbatimStandardProps;\r\n return EventSource;\r\n}(Class_1.default));\r\nexports.default = EventSource;\r\nParsableModelMixin_1.default.mixInto(EventSource);\r\n// Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nEventSource.defineStandardProps({\r\n // manually process...\r\n id: false,\r\n className: false,\r\n // automatically transfer...\r\n color: true,\r\n backgroundColor: true,\r\n borderColor: true,\r\n textColor: true,\r\n editable: true,\r\n startEditable: true,\r\n durationEditable: true,\r\n rendering: true,\r\n overlap: true,\r\n constraint: true,\r\n allDayDefault: true,\r\n eventDataTransform: true\r\n});\r\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\r\nUtility methods for easily listening to events on another object,\r\nand more importantly, easily unlistening from them.\r\n\nUSAGE:\r\n import { default as ListenerMixin, ListenerInterface } from './ListenerMixin'\r\nin class:\r\n listenTo: ListenerInterface['listenTo']\r\n stopListeningTo: ListenerInterface['stopListeningTo']\r\nafter class:\r\n ListenerMixin.mixInto(TheClass)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar Mixin_1 = __webpack_require__(15);\r\nvar guid = 0;\r\nvar ListenerMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListenerMixin, _super);\r\n function ListenerMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /*\r\n Given an `other` object that has on/off methods, bind the given `callback` to an event by the given name.\r\n The `callback` will be called with the `this` context of the object that .listenTo is being called on.\r\n Can be called:\r\n .listenTo(other, eventName, callback)\r\n OR\r\n .listenTo(other, {\r\n eventName1: callback1,\r\n eventName2: callback2\r\n })\r\n */\r\n ListenerMixin.prototype.listenTo = function (other, arg, callback) {\r\n if (typeof arg === 'object') { // given dictionary of callbacks\r\n for (var eventName in arg) {\r\n if (arg.hasOwnProperty(eventName)) {\r\n this.listenTo(other, eventName, arg[eventName]);\r\n }\r\n }\r\n }\r\n else if (typeof arg === 'string') {\r\n other.on(arg + '.' + this.getListenerNamespace(), // use event namespacing to identify this object\r\n $.proxy(callback, this) // always use `this` context\r\n // the usually-undesired jQuery guid behavior doesn't matter,\r\n // because we always unbind via namespace\r\n );\r\n }\r\n };\r\n /*\r\n Causes the current object to stop listening to events on the `other` object.\r\n `eventName` is optional. If omitted, will stop listening to ALL events on `other`.\r\n */\r\n ListenerMixin.prototype.stopListeningTo = function (other, eventName) {\r\n other.off((eventName || '') + '.' + this.getListenerNamespace());\r\n };\r\n /*\r\n Returns a string, unique to this object, to be used for event namespacing\r\n */\r\n ListenerMixin.prototype.getListenerNamespace = function () {\r\n if (this.listenerId == null) {\r\n this.listenerId = guid++;\r\n }\r\n return '_listener' + this.listenerId;\r\n };\r\n return ListenerMixin;\r\n}(Mixin_1.default));\r\nexports.default = ListenerMixin;\r\n\n\n/***/ }),\n/* 8 */,\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar EventDef_1 = __webpack_require__(37);\r\nvar EventInstance_1 = __webpack_require__(53);\r\nvar EventDateProfile_1 = __webpack_require__(16);\r\nvar SingleEventDef = /** @class */ (function (_super) {\r\n tslib_1.__extends(SingleEventDef, _super);\r\n function SingleEventDef() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /*\r\n Will receive start/end params, but will be ignored.\r\n */\r\n SingleEventDef.prototype.buildInstances = function () {\r\n return [this.buildInstance()];\r\n };\r\n SingleEventDef.prototype.buildInstance = function () {\r\n return new EventInstance_1.default(this, // definition\r\n this.dateProfile);\r\n };\r\n SingleEventDef.prototype.isAllDay = function () {\r\n return this.dateProfile.isAllDay();\r\n };\r\n SingleEventDef.prototype.clone = function () {\r\n var def = _super.prototype.clone.call(this);\r\n def.dateProfile = this.dateProfile;\r\n return def;\r\n };\r\n SingleEventDef.prototype.rezone = function () {\r\n var calendar = this.source.calendar;\r\n var dateProfile = this.dateProfile;\r\n this.dateProfile = new EventDateProfile_1.default(calendar.moment(dateProfile.start), dateProfile.end ? calendar.moment(dateProfile.end) : null, calendar);\r\n };\r\n /*\r\n NOTE: if super-method fails, should still attempt to apply\r\n */\r\n SingleEventDef.prototype.applyManualStandardProps = function (rawProps) {\r\n var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps);\r\n var dateProfile = EventDateProfile_1.default.parse(rawProps, this.source); // returns null on failure\r\n if (dateProfile) {\r\n this.dateProfile = dateProfile;\r\n // make sure `date` shows up in the legacy event objects as-is\r\n if (rawProps.date != null) {\r\n this.miscProps.date = rawProps.date;\r\n }\r\n return superSuccess;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n return SingleEventDef;\r\n}(EventDef_1.default));\r\nexports.default = SingleEventDef;\r\n// Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nSingleEventDef.defineStandardProps({\r\n start: false,\r\n date: false,\r\n end: false,\r\n allDay: false\r\n});\r\n\n\n/***/ }),\n/* 10 */,\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ambigDateOfMonthRegex = /^\\s*\\d{4}-\\d\\d$/;\r\nvar ambigTimeOrZoneRegex = /^\\s*\\d{4}-(?:(\\d\\d-\\d\\d)|(W\\d\\d$)|(W\\d\\d-\\d)|(\\d\\d\\d))((T| )(\\d\\d(:\\d\\d(:\\d\\d(\\.\\d+)?)?)?)?)?$/;\r\nvar newMomentProto = moment.fn; // where we will attach our new methods\r\nexports.newMomentProto = newMomentProto;\r\nvar oldMomentProto = $.extend({}, newMomentProto); // copy of original moment methods\r\nexports.oldMomentProto = oldMomentProto;\r\n// tell momentjs to transfer these properties upon clone\r\nvar momentProperties = moment.momentProperties;\r\nmomentProperties.push('_fullCalendar');\r\nmomentProperties.push('_ambigTime');\r\nmomentProperties.push('_ambigZone');\r\n/*\r\nCall this if you want Moment's original format method to be used\r\n*/\r\nfunction oldMomentFormat(mom, formatStr) {\r\n return oldMomentProto.format.call(mom, formatStr); // oldMomentProto defined in moment-ext.js\r\n}\r\nexports.oldMomentFormat = oldMomentFormat;\r\n// Creating\r\n// -------------------------------------------------------------------------------------------------\r\n// Creates a new moment, similar to the vanilla moment(...) constructor, but with\r\n// extra features (ambiguous time, enhanced formatting). When given an existing moment,\r\n// it will function as a clone (and retain the zone of the moment). Anything else will\r\n// result in a moment in the local zone.\r\nvar momentExt = function () {\r\n return makeMoment(arguments);\r\n};\r\nexports.default = momentExt;\r\n// Sames as momentExt, but forces the resulting moment to be in the UTC timezone.\r\nmomentExt.utc = function () {\r\n var mom = makeMoment(arguments, true);\r\n // Force it into UTC because makeMoment doesn't guarantee it\r\n // (if given a pre-existing moment for example)\r\n if (mom.hasTime()) { // don't give ambiguously-timed moments a UTC zone\r\n mom.utc();\r\n }\r\n return mom;\r\n};\r\n// Same as momentExt, but when given an ISO8601 string, the timezone offset is preserved.\r\n// ISO8601 strings with no timezone offset will become ambiguously zoned.\r\nmomentExt.parseZone = function () {\r\n return makeMoment(arguments, true, true);\r\n};\r\n// Builds an enhanced moment from args. When given an existing moment, it clones. When given a\r\n// native Date, or called with no arguments (the current time), the resulting moment will be local.\r\n// Anything else needs to be \"parsed\" (a string or an array), and will be affected by:\r\n// parseAsUTC - if there is no zone information, should we parse the input in UTC?\r\n// parseZone - if there is zone information, should we force the zone of the moment?\r\nfunction makeMoment(args, parseAsUTC, parseZone) {\r\n if (parseAsUTC === void 0) { parseAsUTC = false; }\r\n if (parseZone === void 0) { parseZone = false; }\r\n var input = args[0];\r\n var isSingleString = args.length === 1 && typeof input === 'string';\r\n var isAmbigTime;\r\n var isAmbigZone;\r\n var ambigMatch;\r\n var mom;\r\n if (moment.isMoment(input) || util_1.isNativeDate(input) || input === undefined) {\r\n mom = moment.apply(null, args);\r\n }\r\n else { // \"parsing\" is required\r\n isAmbigTime = false;\r\n isAmbigZone = false;\r\n if (isSingleString) {\r\n if (ambigDateOfMonthRegex.test(input)) {\r\n // accept strings like '2014-05', but convert to the first of the month\r\n input += '-01';\r\n args = [input]; // for when we pass it on to moment's constructor\r\n isAmbigTime = true;\r\n isAmbigZone = true;\r\n }\r\n else if ((ambigMatch = ambigTimeOrZoneRegex.exec(input))) {\r\n isAmbigTime = !ambigMatch[5]; // no time part?\r\n isAmbigZone = true;\r\n }\r\n }\r\n else if ($.isArray(input)) {\r\n // arrays have no timezone information, so assume ambiguous zone\r\n isAmbigZone = true;\r\n }\r\n // otherwise, probably a string with a format\r\n if (parseAsUTC || isAmbigTime) {\r\n mom = moment.utc.apply(moment, args);\r\n }\r\n else {\r\n mom = moment.apply(null, args);\r\n }\r\n if (isAmbigTime) {\r\n mom._ambigTime = true;\r\n mom._ambigZone = true; // ambiguous time always means ambiguous zone\r\n }\r\n else if (parseZone) { // let's record the inputted zone somehow\r\n if (isAmbigZone) {\r\n mom._ambigZone = true;\r\n }\r\n else if (isSingleString) {\r\n mom.utcOffset(input); // if not a valid zone, will assign UTC\r\n }\r\n }\r\n }\r\n mom._fullCalendar = true; // flag for extended functionality\r\n return mom;\r\n}\r\n// Week Number\r\n// -------------------------------------------------------------------------------------------------\r\n// Returns the week number, considering the locale's custom week number calcuation\r\n// `weeks` is an alias for `week`\r\nnewMomentProto.week = newMomentProto.weeks = function (input) {\r\n var weekCalc = this._locale._fullCalendar_weekCalc;\r\n if (input == null && typeof weekCalc === 'function') { // custom function only works for getter\r\n return weekCalc(this);\r\n }\r\n else if (weekCalc === 'ISO') {\r\n return oldMomentProto.isoWeek.apply(this, arguments); // ISO getter/setter\r\n }\r\n return oldMomentProto.week.apply(this, arguments); // local getter/setter\r\n};\r\n// Time-of-day\r\n// -------------------------------------------------------------------------------------------------\r\n// GETTER\r\n// Returns a Duration with the hours/minutes/seconds/ms values of the moment.\r\n// If the moment has an ambiguous time, a duration of 00:00 will be returned.\r\n//\r\n// SETTER\r\n// You can supply a Duration, a Moment, or a Duration-like argument.\r\n// When setting the time, and the moment has an ambiguous time, it then becomes unambiguous.\r\nnewMomentProto.time = function (time) {\r\n // Fallback to the original method (if there is one) if this moment wasn't created via FullCalendar.\r\n // `time` is a generic enough method name where this precaution is necessary to avoid collisions w/ other plugins.\r\n if (!this._fullCalendar) {\r\n return oldMomentProto.time.apply(this, arguments);\r\n }\r\n if (time == null) { // getter\r\n return moment.duration({\r\n hours: this.hours(),\r\n minutes: this.minutes(),\r\n seconds: this.seconds(),\r\n milliseconds: this.milliseconds()\r\n });\r\n }\r\n else { // setter\r\n this._ambigTime = false; // mark that the moment now has a time\r\n if (!moment.isDuration(time) && !moment.isMoment(time)) {\r\n time = moment.duration(time);\r\n }\r\n // The day value should cause overflow (so 24 hours becomes 00:00:00 of next day).\r\n // Only for Duration times, not Moment times.\r\n var dayHours = 0;\r\n if (moment.isDuration(time)) {\r\n dayHours = Math.floor(time.asDays()) * 24;\r\n }\r\n // We need to set the individual fields.\r\n // Can't use startOf('day') then add duration. In case of DST at start of day.\r\n return this.hours(dayHours + time.hours())\r\n .minutes(time.minutes())\r\n .seconds(time.seconds())\r\n .milliseconds(time.milliseconds());\r\n }\r\n};\r\n// Converts the moment to UTC, stripping out its time-of-day and timezone offset,\r\n// but preserving its YMD. A moment with a stripped time will display no time\r\n// nor timezone offset when .format() is called.\r\nnewMomentProto.stripTime = function () {\r\n if (!this._ambigTime) {\r\n this.utc(true); // keepLocalTime=true (for keeping *date* value)\r\n // set time to zero\r\n this.set({\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0,\r\n ms: 0\r\n });\r\n // Mark the time as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(),\r\n // which clears all ambig flags.\r\n this._ambigTime = true;\r\n this._ambigZone = true; // if ambiguous time, also ambiguous timezone offset\r\n }\r\n return this; // for chaining\r\n};\r\n// Returns if the moment has a non-ambiguous time (boolean)\r\nnewMomentProto.hasTime = function () {\r\n return !this._ambigTime;\r\n};\r\n// Timezone\r\n// -------------------------------------------------------------------------------------------------\r\n// Converts the moment to UTC, stripping out its timezone offset, but preserving its\r\n// YMD and time-of-day. A moment with a stripped timezone offset will display no\r\n// timezone offset when .format() is called.\r\nnewMomentProto.stripZone = function () {\r\n var wasAmbigTime;\r\n if (!this._ambigZone) {\r\n wasAmbigTime = this._ambigTime;\r\n this.utc(true); // keepLocalTime=true (for keeping date and time values)\r\n // the above call to .utc()/.utcOffset() unfortunately might clear the ambig flags, so restore\r\n this._ambigTime = wasAmbigTime || false;\r\n // Mark the zone as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(),\r\n // which clears the ambig flags.\r\n this._ambigZone = true;\r\n }\r\n return this; // for chaining\r\n};\r\n// Returns of the moment has a non-ambiguous timezone offset (boolean)\r\nnewMomentProto.hasZone = function () {\r\n return !this._ambigZone;\r\n};\r\n// implicitly marks a zone\r\nnewMomentProto.local = function (keepLocalTime) {\r\n // for when converting from ambiguously-zoned to local,\r\n // keep the time values when converting from UTC -> local\r\n oldMomentProto.local.call(this, this._ambigZone || keepLocalTime);\r\n // ensure non-ambiguous\r\n // this probably already happened via local() -> utcOffset(), but don't rely on Moment's internals\r\n this._ambigTime = false;\r\n this._ambigZone = false;\r\n return this; // for chaining\r\n};\r\n// implicitly marks a zone\r\nnewMomentProto.utc = function (keepLocalTime) {\r\n oldMomentProto.utc.call(this, keepLocalTime);\r\n // ensure non-ambiguous\r\n // this probably already happened via utc() -> utcOffset(), but don't rely on Moment's internals\r\n this._ambigTime = false;\r\n this._ambigZone = false;\r\n return this;\r\n};\r\n// implicitly marks a zone (will probably get called upon .utc() and .local())\r\nnewMomentProto.utcOffset = function (tzo) {\r\n if (tzo != null) { // setter\r\n // these assignments needs to happen before the original zone method is called.\r\n // I forget why, something to do with a browser crash.\r\n this._ambigTime = false;\r\n this._ambigZone = false;\r\n }\r\n return oldMomentProto.utcOffset.apply(this, arguments);\r\n};\r\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*\r\nMeant to be immutable\r\n*/\r\nvar ComponentFootprint = /** @class */ (function () {\r\n function ComponentFootprint(unzonedRange, isAllDay) {\r\n this.isAllDay = false; // component can choose to ignore this\r\n this.unzonedRange = unzonedRange;\r\n this.isAllDay = isAllDay;\r\n }\r\n /*\r\n Only works for non-open-ended ranges.\r\n */\r\n ComponentFootprint.prototype.toLegacy = function (calendar) {\r\n return {\r\n start: calendar.msToMoment(this.unzonedRange.startMs, this.isAllDay),\r\n end: calendar.msToMoment(this.unzonedRange.endMs, this.isAllDay)\r\n };\r\n };\r\n return ComponentFootprint;\r\n}());\r\nexports.default = ComponentFootprint;\r\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\r\nUSAGE:\r\n import { default as EmitterMixin, EmitterInterface } from './EmitterMixin'\r\nin class:\r\n on: EmitterInterface['on']\r\n one: EmitterInterface['one']\r\n off: EmitterInterface['off']\r\n trigger: EmitterInterface['trigger']\r\n triggerWith: EmitterInterface['triggerWith']\r\n hasHandlers: EmitterInterface['hasHandlers']\r\nafter class:\r\n EmitterMixin.mixInto(TheClass)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar Mixin_1 = __webpack_require__(15);\r\nvar EmitterMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(EmitterMixin, _super);\r\n function EmitterMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // jQuery-ification via $(this) allows a non-DOM object to have\r\n // the same event handling capabilities (including namespaces).\r\n EmitterMixin.prototype.on = function (types, handler) {\r\n $(this).on(types, this._prepareIntercept(handler));\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.one = function (types, handler) {\r\n $(this).one(types, this._prepareIntercept(handler));\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype._prepareIntercept = function (handler) {\r\n // handlers are always called with an \"event\" object as their first param.\r\n // sneak the `this` context and arguments into the extra parameter object\r\n // and forward them on to the original handler.\r\n var intercept = function (ev, extra) {\r\n return handler.apply(extra.context || this, extra.args || []);\r\n };\r\n // mimick jQuery's internal \"proxy\" system (risky, I know)\r\n // causing all functions with the same .guid to appear to be the same.\r\n // https://github.com/jquery/jquery/blob/2.2.4/src/core.js#L448\r\n // this is needed for calling .off with the original non-intercept handler.\r\n if (!handler.guid) {\r\n handler.guid = $.guid++;\r\n }\r\n intercept.guid = handler.guid;\r\n return intercept;\r\n };\r\n EmitterMixin.prototype.off = function (types, handler) {\r\n $(this).off(types, handler);\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.trigger = function (types) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n // pass in \"extra\" info to the intercept\r\n $(this).triggerHandler(types, { args: args });\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.triggerWith = function (types, context, args) {\r\n // `triggerHandler` is less reliant on the DOM compared to `trigger`.\r\n // pass in \"extra\" info to the intercept.\r\n $(this).triggerHandler(types, { context: context, args: args });\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.hasHandlers = function (type) {\r\n var hash = $._data(this, 'events'); // http://blog.jquery.com/2012/08/09/jquery-1-8-released/\r\n return hash && hash[type] && hash[type].length > 0;\r\n };\r\n return EmitterMixin;\r\n}(Mixin_1.default));\r\nexports.default = EmitterMixin;\r\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Interaction = /** @class */ (function () {\r\n function Interaction(component) {\r\n this.view = component._getView();\r\n this.component = component;\r\n }\r\n Interaction.prototype.opt = function (name) {\r\n return this.view.opt(name);\r\n };\r\n Interaction.prototype.end = function () {\r\n // subclasses can implement\r\n };\r\n return Interaction;\r\n}());\r\nexports.default = Interaction;\r\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Mixin = /** @class */ (function () {\r\n function Mixin() {\r\n }\r\n Mixin.mixInto = function (destClass) {\r\n var _this = this;\r\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\r\n if (!destClass.prototype[name]) { // if destination class doesn't already define it\r\n destClass.prototype[name] = _this.prototype[name];\r\n }\r\n });\r\n };\r\n /*\r\n will override existing methods\r\n TODO: remove! not used anymore\r\n */\r\n Mixin.mixOver = function (destClass) {\r\n var _this = this;\r\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\r\n destClass.prototype[name] = _this.prototype[name];\r\n });\r\n };\r\n return Mixin;\r\n}());\r\nexports.default = Mixin;\r\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\n/*\r\nMeant to be immutable\r\n*/\r\nvar EventDateProfile = /** @class */ (function () {\r\n function EventDateProfile(start, end, calendar) {\r\n this.start = start;\r\n this.end = end || null;\r\n this.unzonedRange = this.buildUnzonedRange(calendar);\r\n }\r\n /*\r\n Needs an EventSource object\r\n */\r\n EventDateProfile.parse = function (rawProps, source) {\r\n var startInput = rawProps.start || rawProps.date;\r\n var endInput = rawProps.end;\r\n if (!startInput) {\r\n return false;\r\n }\r\n var calendar = source.calendar;\r\n var start = calendar.moment(startInput);\r\n var end = endInput ? calendar.moment(endInput) : null;\r\n var forcedAllDay = rawProps.allDay;\r\n var forceEventDuration = calendar.opt('forceEventDuration');\r\n if (!start.isValid()) {\r\n return false;\r\n }\r\n if (forcedAllDay == null) {\r\n forcedAllDay = source.allDayDefault;\r\n if (forcedAllDay == null) {\r\n forcedAllDay = calendar.opt('allDayDefault');\r\n }\r\n }\r\n if (forcedAllDay === true) {\r\n start.stripTime();\r\n if (end) {\r\n end.stripTime();\r\n }\r\n }\r\n else if (forcedAllDay === false) {\r\n if (!start.hasTime()) {\r\n start.time(0);\r\n }\r\n if (end && !end.hasTime()) {\r\n end.time(0);\r\n }\r\n }\r\n if (end && (!end.isValid() || !end.isAfter(start))) {\r\n end = null;\r\n }\r\n if (!end && forceEventDuration) {\r\n end = calendar.getDefaultEventEnd(!start.hasTime(), start);\r\n }\r\n return new EventDateProfile(start, end, calendar);\r\n };\r\n EventDateProfile.isStandardProp = function (propName) {\r\n return propName === 'start' || propName === 'date' || propName === 'end' || propName === 'allDay';\r\n };\r\n EventDateProfile.prototype.isAllDay = function () {\r\n return !(this.start.hasTime() || (this.end && this.end.hasTime()));\r\n };\r\n /*\r\n Needs a Calendar object\r\n */\r\n EventDateProfile.prototype.buildUnzonedRange = function (calendar) {\r\n var startMs = this.start.clone().stripZone().valueOf();\r\n var endMs = this.getEnd(calendar).stripZone().valueOf();\r\n return new UnzonedRange_1.default(startMs, endMs);\r\n };\r\n /*\r\n Needs a Calendar object\r\n */\r\n EventDateProfile.prototype.getEnd = function (calendar) {\r\n return this.end ?\r\n this.end.clone() :\r\n // derive the end from the start and allDay. compute allDay if necessary\r\n calendar.getDefaultEventEnd(this.isAllDay(), this.start);\r\n };\r\n return EventDateProfile;\r\n}());\r\nexports.default = EventDateProfile;\r\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar DragListener_1 = __webpack_require__(59);\r\n/* Tracks mouse movements over a component and raises events about which hit the mouse is over.\r\n------------------------------------------------------------------------------------------------------------------------\r\noptions:\r\n- subjectEl\r\n- subjectCenter\r\n*/\r\nvar HitDragListener = /** @class */ (function (_super) {\r\n tslib_1.__extends(HitDragListener, _super);\r\n function HitDragListener(component, options) {\r\n var _this = _super.call(this, options) || this;\r\n _this.component = component;\r\n return _this;\r\n }\r\n // Called when drag listening starts (but a real drag has not necessarily began).\r\n // ev might be undefined if dragging was started manually.\r\n HitDragListener.prototype.handleInteractionStart = function (ev) {\r\n var subjectEl = this.subjectEl;\r\n var subjectRect;\r\n var origPoint;\r\n var point;\r\n this.component.hitsNeeded();\r\n this.computeScrollBounds(); // for autoscroll\r\n if (ev) {\r\n origPoint = { left: util_1.getEvX(ev), top: util_1.getEvY(ev) };\r\n point = origPoint;\r\n // constrain the point to bounds of the element being dragged\r\n if (subjectEl) {\r\n subjectRect = util_1.getOuterRect(subjectEl); // used for centering as well\r\n point = util_1.constrainPoint(point, subjectRect);\r\n }\r\n this.origHit = this.queryHit(point.left, point.top);\r\n // treat the center of the subject as the collision point?\r\n if (subjectEl && this.options.subjectCenter) {\r\n // only consider the area the subject overlaps the hit. best for large subjects.\r\n // TODO: skip this if hit didn't supply left/right/top/bottom\r\n if (this.origHit) {\r\n subjectRect = util_1.intersectRects(this.origHit, subjectRect) ||\r\n subjectRect; // in case there is no intersection\r\n }\r\n point = util_1.getRectCenter(subjectRect);\r\n }\r\n this.coordAdjust = util_1.diffPoints(point, origPoint); // point - origPoint\r\n }\r\n else {\r\n this.origHit = null;\r\n this.coordAdjust = null;\r\n }\r\n // call the super-method. do it after origHit has been computed\r\n _super.prototype.handleInteractionStart.call(this, ev);\r\n };\r\n // Called when the actual drag has started\r\n HitDragListener.prototype.handleDragStart = function (ev) {\r\n var hit;\r\n _super.prototype.handleDragStart.call(this, ev);\r\n // might be different from this.origHit if the min-distance is large\r\n hit = this.queryHit(util_1.getEvX(ev), util_1.getEvY(ev));\r\n // report the initial hit the mouse is over\r\n // especially important if no min-distance and drag starts immediately\r\n if (hit) {\r\n this.handleHitOver(hit);\r\n }\r\n };\r\n // Called when the drag moves\r\n HitDragListener.prototype.handleDrag = function (dx, dy, ev) {\r\n var hit;\r\n _super.prototype.handleDrag.call(this, dx, dy, ev);\r\n hit = this.queryHit(util_1.getEvX(ev), util_1.getEvY(ev));\r\n if (!isHitsEqual(hit, this.hit)) { // a different hit than before?\r\n if (this.hit) {\r\n this.handleHitOut();\r\n }\r\n if (hit) {\r\n this.handleHitOver(hit);\r\n }\r\n }\r\n };\r\n // Called when dragging has been stopped\r\n HitDragListener.prototype.handleDragEnd = function (ev) {\r\n this.handleHitDone();\r\n _super.prototype.handleDragEnd.call(this, ev);\r\n };\r\n // Called when a the mouse has just moved over a new hit\r\n HitDragListener.prototype.handleHitOver = function (hit) {\r\n var isOrig = isHitsEqual(hit, this.origHit);\r\n this.hit = hit;\r\n this.trigger('hitOver', this.hit, isOrig, this.origHit);\r\n };\r\n // Called when the mouse has just moved out of a hit\r\n HitDragListener.prototype.handleHitOut = function () {\r\n if (this.hit) {\r\n this.trigger('hitOut', this.hit);\r\n this.handleHitDone();\r\n this.hit = null;\r\n }\r\n };\r\n // Called after a hitOut. Also called before a dragStop\r\n HitDragListener.prototype.handleHitDone = function () {\r\n if (this.hit) {\r\n this.trigger('hitDone', this.hit);\r\n }\r\n };\r\n // Called when the interaction ends, whether there was a real drag or not\r\n HitDragListener.prototype.handleInteractionEnd = function (ev, isCancelled) {\r\n _super.prototype.handleInteractionEnd.call(this, ev, isCancelled);\r\n this.origHit = null;\r\n this.hit = null;\r\n this.component.hitsNotNeeded();\r\n };\r\n // Called when scrolling has stopped, whether through auto scroll, or the user scrolling\r\n HitDragListener.prototype.handleScrollEnd = function () {\r\n _super.prototype.handleScrollEnd.call(this);\r\n // hits' absolute positions will be in new places after a user's scroll.\r\n // HACK for recomputing.\r\n if (this.isDragging) {\r\n this.component.releaseHits();\r\n this.component.prepareHits();\r\n }\r\n };\r\n // Gets the hit underneath the coordinates for the given mouse event\r\n HitDragListener.prototype.queryHit = function (left, top) {\r\n if (this.coordAdjust) {\r\n left += this.coordAdjust.left;\r\n top += this.coordAdjust.top;\r\n }\r\n return this.component.queryHit(left, top);\r\n };\r\n return HitDragListener;\r\n}(DragListener_1.default));\r\nexports.default = HitDragListener;\r\n// Returns `true` if the hits are identically equal. `false` otherwise. Must be from the same component.\r\n// Two null values will be considered equal, as two \"out of the component\" states are the same.\r\nfunction isHitsEqual(hit0, hit1) {\r\n if (!hit0 && !hit1) {\r\n return true;\r\n }\r\n if (hit0 && hit1) {\r\n return hit0.component === hit1.component &&\r\n isHitPropsWithin(hit0, hit1) &&\r\n isHitPropsWithin(hit1, hit0); // ensures all props are identical\r\n }\r\n return false;\r\n}\r\n// Returns true if all of subHit's non-standard properties are within superHit\r\nfunction isHitPropsWithin(subHit, superHit) {\r\n for (var propName in subHit) {\r\n if (!/^(component|left|right|top|bottom)$/.test(propName)) {\r\n if (subHit[propName] !== superHit[propName]) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.version = '3.10.1';\r\n// When introducing internal API incompatibilities (where fullcalendar plugins would break),\r\n// the minor version of the calendar should be upped (ex: 2.7.2 -> 2.8.0)\r\n// and the below integer should be incremented.\r\nexports.internalApiVersion = 12;\r\nvar util_1 = __webpack_require__(4);\r\nexports.applyAll = util_1.applyAll;\r\nexports.debounce = util_1.debounce;\r\nexports.isInt = util_1.isInt;\r\nexports.htmlEscape = util_1.htmlEscape;\r\nexports.cssToStr = util_1.cssToStr;\r\nexports.proxy = util_1.proxy;\r\nexports.capitaliseFirstLetter = util_1.capitaliseFirstLetter;\r\nexports.getOuterRect = util_1.getOuterRect;\r\nexports.getClientRect = util_1.getClientRect;\r\nexports.getContentRect = util_1.getContentRect;\r\nexports.getScrollbarWidths = util_1.getScrollbarWidths;\r\nexports.preventDefault = util_1.preventDefault;\r\nexports.parseFieldSpecs = util_1.parseFieldSpecs;\r\nexports.compareByFieldSpecs = util_1.compareByFieldSpecs;\r\nexports.compareByFieldSpec = util_1.compareByFieldSpec;\r\nexports.flexibleCompare = util_1.flexibleCompare;\r\nexports.computeGreatestUnit = util_1.computeGreatestUnit;\r\nexports.divideRangeByDuration = util_1.divideRangeByDuration;\r\nexports.divideDurationByDuration = util_1.divideDurationByDuration;\r\nexports.multiplyDuration = util_1.multiplyDuration;\r\nexports.durationHasTime = util_1.durationHasTime;\r\nexports.log = util_1.log;\r\nexports.warn = util_1.warn;\r\nexports.removeExact = util_1.removeExact;\r\nexports.intersectRects = util_1.intersectRects;\r\nexports.allowSelection = util_1.allowSelection;\r\nexports.attrsToStr = util_1.attrsToStr;\r\nexports.compareNumbers = util_1.compareNumbers;\r\nexports.compensateScroll = util_1.compensateScroll;\r\nexports.computeDurationGreatestUnit = util_1.computeDurationGreatestUnit;\r\nexports.constrainPoint = util_1.constrainPoint;\r\nexports.copyOwnProps = util_1.copyOwnProps;\r\nexports.diffByUnit = util_1.diffByUnit;\r\nexports.diffDay = util_1.diffDay;\r\nexports.diffDayTime = util_1.diffDayTime;\r\nexports.diffPoints = util_1.diffPoints;\r\nexports.disableCursor = util_1.disableCursor;\r\nexports.distributeHeight = util_1.distributeHeight;\r\nexports.enableCursor = util_1.enableCursor;\r\nexports.firstDefined = util_1.firstDefined;\r\nexports.getEvIsTouch = util_1.getEvIsTouch;\r\nexports.getEvX = util_1.getEvX;\r\nexports.getEvY = util_1.getEvY;\r\nexports.getRectCenter = util_1.getRectCenter;\r\nexports.getScrollParent = util_1.getScrollParent;\r\nexports.hasOwnProp = util_1.hasOwnProp;\r\nexports.isArraysEqual = util_1.isArraysEqual;\r\nexports.isNativeDate = util_1.isNativeDate;\r\nexports.isPrimaryMouseButton = util_1.isPrimaryMouseButton;\r\nexports.isTimeString = util_1.isTimeString;\r\nexports.matchCellWidths = util_1.matchCellWidths;\r\nexports.mergeProps = util_1.mergeProps;\r\nexports.preventSelection = util_1.preventSelection;\r\nexports.removeMatching = util_1.removeMatching;\r\nexports.stripHtmlEntities = util_1.stripHtmlEntities;\r\nexports.subtractInnerElHeight = util_1.subtractInnerElHeight;\r\nexports.uncompensateScroll = util_1.uncompensateScroll;\r\nexports.undistributeHeight = util_1.undistributeHeight;\r\nexports.dayIDs = util_1.dayIDs;\r\nexports.unitsDesc = util_1.unitsDesc;\r\nvar date_formatting_1 = __webpack_require__(49);\r\nexports.formatDate = date_formatting_1.formatDate;\r\nexports.formatRange = date_formatting_1.formatRange;\r\nexports.queryMostGranularFormatUnit = date_formatting_1.queryMostGranularFormatUnit;\r\nvar locale_1 = __webpack_require__(32);\r\nexports.datepickerLocale = locale_1.datepickerLocale;\r\nexports.locale = locale_1.locale;\r\nexports.getMomentLocaleData = locale_1.getMomentLocaleData;\r\nexports.populateInstanceComputableOptions = locale_1.populateInstanceComputableOptions;\r\nvar util_2 = __webpack_require__(19);\r\nexports.eventDefsToEventInstances = util_2.eventDefsToEventInstances;\r\nexports.eventFootprintToComponentFootprint = util_2.eventFootprintToComponentFootprint;\r\nexports.eventInstanceToEventRange = util_2.eventInstanceToEventRange;\r\nexports.eventInstanceToUnzonedRange = util_2.eventInstanceToUnzonedRange;\r\nexports.eventRangeToEventFootprint = util_2.eventRangeToEventFootprint;\r\nvar moment_ext_1 = __webpack_require__(11);\r\nexports.moment = moment_ext_1.default;\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nexports.EmitterMixin = EmitterMixin_1.default;\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nexports.ListenerMixin = ListenerMixin_1.default;\r\nvar Model_1 = __webpack_require__(51);\r\nexports.Model = Model_1.default;\r\nvar Constraints_1 = __webpack_require__(217);\r\nexports.Constraints = Constraints_1.default;\r\nvar DateProfileGenerator_1 = __webpack_require__(55);\r\nexports.DateProfileGenerator = DateProfileGenerator_1.default;\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nexports.UnzonedRange = UnzonedRange_1.default;\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nexports.ComponentFootprint = ComponentFootprint_1.default;\r\nvar BusinessHourGenerator_1 = __webpack_require__(218);\r\nexports.BusinessHourGenerator = BusinessHourGenerator_1.default;\r\nvar EventPeriod_1 = __webpack_require__(219);\r\nexports.EventPeriod = EventPeriod_1.default;\r\nvar EventManager_1 = __webpack_require__(220);\r\nexports.EventManager = EventManager_1.default;\r\nvar EventDef_1 = __webpack_require__(37);\r\nexports.EventDef = EventDef_1.default;\r\nvar EventDefMutation_1 = __webpack_require__(39);\r\nexports.EventDefMutation = EventDefMutation_1.default;\r\nvar EventDefParser_1 = __webpack_require__(36);\r\nexports.EventDefParser = EventDefParser_1.default;\r\nvar EventInstance_1 = __webpack_require__(53);\r\nexports.EventInstance = EventInstance_1.default;\r\nvar EventRange_1 = __webpack_require__(50);\r\nexports.EventRange = EventRange_1.default;\r\nvar RecurringEventDef_1 = __webpack_require__(54);\r\nexports.RecurringEventDef = RecurringEventDef_1.default;\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nexports.SingleEventDef = SingleEventDef_1.default;\r\nvar EventDefDateMutation_1 = __webpack_require__(40);\r\nexports.EventDefDateMutation = EventDefDateMutation_1.default;\r\nvar EventDateProfile_1 = __webpack_require__(16);\r\nexports.EventDateProfile = EventDateProfile_1.default;\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nexports.EventSourceParser = EventSourceParser_1.default;\r\nvar EventSource_1 = __webpack_require__(6);\r\nexports.EventSource = EventSource_1.default;\r\nvar ThemeRegistry_1 = __webpack_require__(57);\r\nexports.defineThemeSystem = ThemeRegistry_1.defineThemeSystem;\r\nexports.getThemeSystemClass = ThemeRegistry_1.getThemeSystemClass;\r\nvar EventInstanceGroup_1 = __webpack_require__(20);\r\nexports.EventInstanceGroup = EventInstanceGroup_1.default;\r\nvar ArrayEventSource_1 = __webpack_require__(56);\r\nexports.ArrayEventSource = ArrayEventSource_1.default;\r\nvar FuncEventSource_1 = __webpack_require__(223);\r\nexports.FuncEventSource = FuncEventSource_1.default;\r\nvar JsonFeedEventSource_1 = __webpack_require__(224);\r\nexports.JsonFeedEventSource = JsonFeedEventSource_1.default;\r\nvar EventFootprint_1 = __webpack_require__(34);\r\nexports.EventFootprint = EventFootprint_1.default;\r\nvar Class_1 = __webpack_require__(35);\r\nexports.Class = Class_1.default;\r\nvar Mixin_1 = __webpack_require__(15);\r\nexports.Mixin = Mixin_1.default;\r\nvar CoordCache_1 = __webpack_require__(58);\r\nexports.CoordCache = CoordCache_1.default;\r\nvar Iterator_1 = __webpack_require__(225);\r\nexports.Iterator = Iterator_1.default;\r\nvar DragListener_1 = __webpack_require__(59);\r\nexports.DragListener = DragListener_1.default;\r\nvar HitDragListener_1 = __webpack_require__(17);\r\nexports.HitDragListener = HitDragListener_1.default;\r\nvar MouseFollower_1 = __webpack_require__(226);\r\nexports.MouseFollower = MouseFollower_1.default;\r\nvar ParsableModelMixin_1 = __webpack_require__(52);\r\nexports.ParsableModelMixin = ParsableModelMixin_1.default;\r\nvar Popover_1 = __webpack_require__(227);\r\nexports.Popover = Popover_1.default;\r\nvar Promise_1 = __webpack_require__(21);\r\nexports.Promise = Promise_1.default;\r\nvar TaskQueue_1 = __webpack_require__(228);\r\nexports.TaskQueue = TaskQueue_1.default;\r\nvar RenderQueue_1 = __webpack_require__(229);\r\nexports.RenderQueue = RenderQueue_1.default;\r\nvar Scroller_1 = __webpack_require__(41);\r\nexports.Scroller = Scroller_1.default;\r\nvar Theme_1 = __webpack_require__(22);\r\nexports.Theme = Theme_1.default;\r\nvar Component_1 = __webpack_require__(230);\r\nexports.Component = Component_1.default;\r\nvar DateComponent_1 = __webpack_require__(231);\r\nexports.DateComponent = DateComponent_1.default;\r\nvar InteractiveDateComponent_1 = __webpack_require__(42);\r\nexports.InteractiveDateComponent = InteractiveDateComponent_1.default;\r\nvar Calendar_1 = __webpack_require__(232);\r\nexports.Calendar = Calendar_1.default;\r\nvar View_1 = __webpack_require__(43);\r\nexports.View = View_1.default;\r\nvar ViewRegistry_1 = __webpack_require__(24);\r\nexports.defineView = ViewRegistry_1.defineView;\r\nexports.getViewConfig = ViewRegistry_1.getViewConfig;\r\nvar DayTableMixin_1 = __webpack_require__(60);\r\nexports.DayTableMixin = DayTableMixin_1.default;\r\nvar BusinessHourRenderer_1 = __webpack_require__(61);\r\nexports.BusinessHourRenderer = BusinessHourRenderer_1.default;\r\nvar EventRenderer_1 = __webpack_require__(44);\r\nexports.EventRenderer = EventRenderer_1.default;\r\nvar FillRenderer_1 = __webpack_require__(62);\r\nexports.FillRenderer = FillRenderer_1.default;\r\nvar HelperRenderer_1 = __webpack_require__(63);\r\nexports.HelperRenderer = HelperRenderer_1.default;\r\nvar ExternalDropping_1 = __webpack_require__(233);\r\nexports.ExternalDropping = ExternalDropping_1.default;\r\nvar EventResizing_1 = __webpack_require__(234);\r\nexports.EventResizing = EventResizing_1.default;\r\nvar EventPointing_1 = __webpack_require__(64);\r\nexports.EventPointing = EventPointing_1.default;\r\nvar EventDragging_1 = __webpack_require__(235);\r\nexports.EventDragging = EventDragging_1.default;\r\nvar DateSelecting_1 = __webpack_require__(236);\r\nexports.DateSelecting = DateSelecting_1.default;\r\nvar DateClicking_1 = __webpack_require__(237);\r\nexports.DateClicking = DateClicking_1.default;\r\nvar Interaction_1 = __webpack_require__(14);\r\nexports.Interaction = Interaction_1.default;\r\nvar StandardInteractionsMixin_1 = __webpack_require__(65);\r\nexports.StandardInteractionsMixin = StandardInteractionsMixin_1.default;\r\nvar AgendaView_1 = __webpack_require__(238);\r\nexports.AgendaView = AgendaView_1.default;\r\nvar TimeGrid_1 = __webpack_require__(239);\r\nexports.TimeGrid = TimeGrid_1.default;\r\nvar TimeGridEventRenderer_1 = __webpack_require__(240);\r\nexports.TimeGridEventRenderer = TimeGridEventRenderer_1.default;\r\nvar TimeGridFillRenderer_1 = __webpack_require__(242);\r\nexports.TimeGridFillRenderer = TimeGridFillRenderer_1.default;\r\nvar TimeGridHelperRenderer_1 = __webpack_require__(241);\r\nexports.TimeGridHelperRenderer = TimeGridHelperRenderer_1.default;\r\nvar DayGrid_1 = __webpack_require__(66);\r\nexports.DayGrid = DayGrid_1.default;\r\nvar DayGridEventRenderer_1 = __webpack_require__(243);\r\nexports.DayGridEventRenderer = DayGridEventRenderer_1.default;\r\nvar DayGridFillRenderer_1 = __webpack_require__(245);\r\nexports.DayGridFillRenderer = DayGridFillRenderer_1.default;\r\nvar DayGridHelperRenderer_1 = __webpack_require__(244);\r\nexports.DayGridHelperRenderer = DayGridHelperRenderer_1.default;\r\nvar BasicView_1 = __webpack_require__(67);\r\nexports.BasicView = BasicView_1.default;\r\nvar BasicViewDateProfileGenerator_1 = __webpack_require__(68);\r\nexports.BasicViewDateProfileGenerator = BasicViewDateProfileGenerator_1.default;\r\nvar MonthView_1 = __webpack_require__(246);\r\nexports.MonthView = MonthView_1.default;\r\nvar MonthViewDateProfileGenerator_1 = __webpack_require__(247);\r\nexports.MonthViewDateProfileGenerator = MonthViewDateProfileGenerator_1.default;\r\nvar ListView_1 = __webpack_require__(248);\r\nexports.ListView = ListView_1.default;\r\nvar ListEventPointing_1 = __webpack_require__(250);\r\nexports.ListEventPointing = ListEventPointing_1.default;\r\nvar ListEventRenderer_1 = __webpack_require__(249);\r\nexports.ListEventRenderer = ListEventRenderer_1.default;\r\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventRange_1 = __webpack_require__(50);\r\nvar EventFootprint_1 = __webpack_require__(34);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nfunction eventDefsToEventInstances(eventDefs, unzonedRange) {\r\n var eventInstances = [];\r\n var i;\r\n for (i = 0; i < eventDefs.length; i++) {\r\n eventInstances.push.apply(eventInstances, // append\r\n eventDefs[i].buildInstances(unzonedRange));\r\n }\r\n return eventInstances;\r\n}\r\nexports.eventDefsToEventInstances = eventDefsToEventInstances;\r\nfunction eventInstanceToEventRange(eventInstance) {\r\n return new EventRange_1.default(eventInstance.dateProfile.unzonedRange, eventInstance.def, eventInstance);\r\n}\r\nexports.eventInstanceToEventRange = eventInstanceToEventRange;\r\nfunction eventRangeToEventFootprint(eventRange) {\r\n return new EventFootprint_1.default(new ComponentFootprint_1.default(eventRange.unzonedRange, eventRange.eventDef.isAllDay()), eventRange.eventDef, eventRange.eventInstance // might not exist\r\n );\r\n}\r\nexports.eventRangeToEventFootprint = eventRangeToEventFootprint;\r\nfunction eventInstanceToUnzonedRange(eventInstance) {\r\n return eventInstance.dateProfile.unzonedRange;\r\n}\r\nexports.eventInstanceToUnzonedRange = eventInstanceToUnzonedRange;\r\nfunction eventFootprintToComponentFootprint(eventFootprint) {\r\n return eventFootprint.componentFootprint;\r\n}\r\nexports.eventFootprintToComponentFootprint = eventFootprintToComponentFootprint;\r\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar util_1 = __webpack_require__(19);\r\nvar EventRange_1 = __webpack_require__(50);\r\n/*\r\nIt's expected that there will be at least one EventInstance,\r\nOR that an explicitEventDef is assigned.\r\n*/\r\nvar EventInstanceGroup = /** @class */ (function () {\r\n function EventInstanceGroup(eventInstances) {\r\n this.eventInstances = eventInstances || [];\r\n }\r\n EventInstanceGroup.prototype.getAllEventRanges = function (constraintRange) {\r\n if (constraintRange) {\r\n return this.sliceNormalRenderRanges(constraintRange);\r\n }\r\n else {\r\n return this.eventInstances.map(util_1.eventInstanceToEventRange);\r\n }\r\n };\r\n EventInstanceGroup.prototype.sliceRenderRanges = function (constraintRange) {\r\n if (this.isInverse()) {\r\n return this.sliceInverseRenderRanges(constraintRange);\r\n }\r\n else {\r\n return this.sliceNormalRenderRanges(constraintRange);\r\n }\r\n };\r\n EventInstanceGroup.prototype.sliceNormalRenderRanges = function (constraintRange) {\r\n var eventInstances = this.eventInstances;\r\n var i;\r\n var eventInstance;\r\n var slicedRange;\r\n var slicedEventRanges = [];\r\n for (i = 0; i < eventInstances.length; i++) {\r\n eventInstance = eventInstances[i];\r\n slicedRange = eventInstance.dateProfile.unzonedRange.intersect(constraintRange);\r\n if (slicedRange) {\r\n slicedEventRanges.push(new EventRange_1.default(slicedRange, eventInstance.def, eventInstance));\r\n }\r\n }\r\n return slicedEventRanges;\r\n };\r\n EventInstanceGroup.prototype.sliceInverseRenderRanges = function (constraintRange) {\r\n var unzonedRanges = this.eventInstances.map(util_1.eventInstanceToUnzonedRange);\r\n var ownerDef = this.getEventDef();\r\n unzonedRanges = UnzonedRange_1.default.invertRanges(unzonedRanges, constraintRange);\r\n return unzonedRanges.map(function (unzonedRange) {\r\n return new EventRange_1.default(unzonedRange, ownerDef); // don't give an EventInstance\r\n });\r\n };\r\n EventInstanceGroup.prototype.isInverse = function () {\r\n return this.getEventDef().hasInverseRendering();\r\n };\r\n EventInstanceGroup.prototype.getEventDef = function () {\r\n return this.explicitEventDef || this.eventInstances[0].def;\r\n };\r\n return EventInstanceGroup;\r\n}());\r\nexports.default = EventInstanceGroup;\r\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar PromiseStub = {\r\n construct: function (executor) {\r\n var deferred = $.Deferred();\r\n var promise = deferred.promise();\r\n if (typeof executor === 'function') {\r\n executor(function (val) {\r\n deferred.resolve(val);\r\n attachImmediatelyResolvingThen(promise, val);\r\n }, function () {\r\n deferred.reject();\r\n attachImmediatelyRejectingThen(promise);\r\n });\r\n }\r\n return promise;\r\n },\r\n resolve: function (val) {\r\n var deferred = $.Deferred().resolve(val);\r\n var promise = deferred.promise();\r\n attachImmediatelyResolvingThen(promise, val);\r\n return promise;\r\n },\r\n reject: function () {\r\n var deferred = $.Deferred().reject();\r\n var promise = deferred.promise();\r\n attachImmediatelyRejectingThen(promise);\r\n return promise;\r\n }\r\n};\r\nexports.default = PromiseStub;\r\nfunction attachImmediatelyResolvingThen(promise, val) {\r\n promise.then = function (onResolve) {\r\n if (typeof onResolve === 'function') {\r\n return PromiseStub.resolve(onResolve(val));\r\n }\r\n return promise;\r\n };\r\n}\r\nfunction attachImmediatelyRejectingThen(promise) {\r\n promise.then = function (onResolve, onReject) {\r\n if (typeof onReject === 'function') {\r\n onReject();\r\n }\r\n return promise;\r\n };\r\n}\r\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar Theme = /** @class */ (function () {\r\n function Theme(optionsManager) {\r\n this.optionsManager = optionsManager;\r\n this.processIconOverride();\r\n }\r\n Theme.prototype.processIconOverride = function () {\r\n if (this.iconOverrideOption) {\r\n this.setIconOverride(this.optionsManager.get(this.iconOverrideOption));\r\n }\r\n };\r\n Theme.prototype.setIconOverride = function (iconOverrideHash) {\r\n var iconClassesCopy;\r\n var buttonName;\r\n if ($.isPlainObject(iconOverrideHash)) {\r\n iconClassesCopy = $.extend({}, this.iconClasses);\r\n for (buttonName in iconOverrideHash) {\r\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\r\n }\r\n this.iconClasses = iconClassesCopy;\r\n }\r\n else if (iconOverrideHash === false) {\r\n this.iconClasses = {};\r\n }\r\n };\r\n Theme.prototype.applyIconOverridePrefix = function (className) {\r\n var prefix = this.iconOverridePrefix;\r\n if (prefix && className.indexOf(prefix) !== 0) { // if not already present\r\n className = prefix + className;\r\n }\r\n return className;\r\n };\r\n Theme.prototype.getClass = function (key) {\r\n return this.classes[key] || '';\r\n };\r\n Theme.prototype.getIconClass = function (buttonName) {\r\n var className = this.iconClasses[buttonName];\r\n if (className) {\r\n return this.baseIconClass + ' ' + className;\r\n }\r\n return '';\r\n };\r\n Theme.prototype.getCustomButtonIconClass = function (customButtonProps) {\r\n var className;\r\n if (this.iconOverrideCustomButtonOption) {\r\n className = customButtonProps[this.iconOverrideCustomButtonOption];\r\n if (className) {\r\n return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className);\r\n }\r\n }\r\n return '';\r\n };\r\n return Theme;\r\n}());\r\nexports.default = Theme;\r\nTheme.prototype.classes = {};\r\nTheme.prototype.iconClasses = {};\r\nTheme.prototype.baseIconClass = '';\r\nTheme.prototype.iconOverridePrefix = '';\r\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar exportHooks = __webpack_require__(18);\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nexportHooks.touchMouseIgnoreWait = 500;\r\nvar globalEmitter = null;\r\nvar neededCount = 0;\r\n/*\r\nListens to document and window-level user-interaction events, like touch events and mouse events,\r\nand fires these events as-is to whoever is observing a GlobalEmitter.\r\nBest when used as a singleton via GlobalEmitter.get()\r\n\nNormalizes mouse/touch events. For examples:\r\n- ignores the the simulated mouse events that happen after a quick tap: mousemove+mousedown+mouseup+click\r\n- compensates for various buggy scenarios where a touchend does not fire\r\n*/\r\nvar GlobalEmitter = /** @class */ (function () {\r\n function GlobalEmitter() {\r\n this.isTouching = false;\r\n this.mouseIgnoreDepth = 0;\r\n }\r\n // gets the singleton\r\n GlobalEmitter.get = function () {\r\n if (!globalEmitter) {\r\n globalEmitter = new GlobalEmitter();\r\n globalEmitter.bind();\r\n }\r\n return globalEmitter;\r\n };\r\n // called when an object knows it will need a GlobalEmitter in the near future.\r\n GlobalEmitter.needed = function () {\r\n GlobalEmitter.get(); // ensures globalEmitter\r\n neededCount++;\r\n };\r\n // called when the object that originally called needed() doesn't need a GlobalEmitter anymore.\r\n GlobalEmitter.unneeded = function () {\r\n neededCount--;\r\n if (!neededCount) { // nobody else needs it\r\n globalEmitter.unbind();\r\n globalEmitter = null;\r\n }\r\n };\r\n GlobalEmitter.prototype.bind = function () {\r\n var _this = this;\r\n this.listenTo($(document), {\r\n touchstart: this.handleTouchStart,\r\n touchcancel: this.handleTouchCancel,\r\n touchend: this.handleTouchEnd,\r\n mousedown: this.handleMouseDown,\r\n mousemove: this.handleMouseMove,\r\n mouseup: this.handleMouseUp,\r\n click: this.handleClick,\r\n selectstart: this.handleSelectStart,\r\n contextmenu: this.handleContextMenu\r\n });\r\n // because we need to call preventDefault\r\n // because https://www.chromestatus.com/features/5093566007214080\r\n // TODO: investigate performance because this is a global handler\r\n window.addEventListener('touchmove', this.handleTouchMoveProxy = function (ev) {\r\n _this.handleTouchMove($.Event(ev));\r\n }, { passive: false } // allows preventDefault()\r\n );\r\n // attach a handler to get called when ANY scroll action happens on the page.\r\n // this was impossible to do with normal on/off because 'scroll' doesn't bubble.\r\n // http://stackoverflow.com/a/32954565/96342\r\n window.addEventListener('scroll', this.handleScrollProxy = function (ev) {\r\n _this.handleScroll($.Event(ev));\r\n }, true // useCapture\r\n );\r\n };\r\n GlobalEmitter.prototype.unbind = function () {\r\n this.stopListeningTo($(document));\r\n window.removeEventListener('touchmove', this.handleTouchMoveProxy, { passive: false } // use same options as addEventListener\r\n );\r\n window.removeEventListener('scroll', this.handleScrollProxy, true // useCapture\r\n );\r\n };\r\n // Touch Handlers\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.handleTouchStart = function (ev) {\r\n // if a previous touch interaction never ended with a touchend, then implicitly end it,\r\n // but since a new touch interaction is about to begin, don't start the mouse ignore period.\r\n this.stopTouch(ev, true); // skipMouseIgnore=true\r\n this.isTouching = true;\r\n this.trigger('touchstart', ev);\r\n };\r\n GlobalEmitter.prototype.handleTouchMove = function (ev) {\r\n if (this.isTouching) {\r\n this.trigger('touchmove', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleTouchCancel = function (ev) {\r\n if (this.isTouching) {\r\n this.trigger('touchcancel', ev);\r\n // Have touchcancel fire an artificial touchend. That way, handlers won't need to listen to both.\r\n // If touchend fires later, it won't have any effect b/c isTouching will be false.\r\n this.stopTouch(ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleTouchEnd = function (ev) {\r\n this.stopTouch(ev);\r\n };\r\n // Mouse Handlers\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.handleMouseDown = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('mousedown', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleMouseMove = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('mousemove', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleMouseUp = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('mouseup', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleClick = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('click', ev);\r\n }\r\n };\r\n // Misc Handlers\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.handleSelectStart = function (ev) {\r\n this.trigger('selectstart', ev);\r\n };\r\n GlobalEmitter.prototype.handleContextMenu = function (ev) {\r\n this.trigger('contextmenu', ev);\r\n };\r\n GlobalEmitter.prototype.handleScroll = function (ev) {\r\n this.trigger('scroll', ev);\r\n };\r\n // Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.stopTouch = function (ev, skipMouseIgnore) {\r\n if (skipMouseIgnore === void 0) { skipMouseIgnore = false; }\r\n if (this.isTouching) {\r\n this.isTouching = false;\r\n this.trigger('touchend', ev);\r\n if (!skipMouseIgnore) {\r\n this.startTouchMouseIgnore();\r\n }\r\n }\r\n };\r\n GlobalEmitter.prototype.startTouchMouseIgnore = function () {\r\n var _this = this;\r\n var wait = exportHooks.touchMouseIgnoreWait;\r\n if (wait) {\r\n this.mouseIgnoreDepth++;\r\n setTimeout(function () {\r\n _this.mouseIgnoreDepth--;\r\n }, wait);\r\n }\r\n };\r\n GlobalEmitter.prototype.shouldIgnoreMouse = function () {\r\n return this.isTouching || Boolean(this.mouseIgnoreDepth);\r\n };\r\n return GlobalEmitter;\r\n}());\r\nexports.default = GlobalEmitter;\r\nListenerMixin_1.default.mixInto(GlobalEmitter);\r\nEmitterMixin_1.default.mixInto(GlobalEmitter);\r\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar exportHooks = __webpack_require__(18);\r\nexports.viewHash = {};\r\nexportHooks.views = exports.viewHash;\r\nfunction defineView(viewName, viewConfig) {\r\n exports.viewHash[viewName] = viewConfig;\r\n}\r\nexports.defineView = defineView;\r\nfunction getViewConfig(viewName) {\r\n return exports.viewHash[viewName];\r\n}\r\nexports.getViewConfig = getViewConfig;\r\n\n\n/***/ }),\n/* 25 */,\n/* 26 */,\n/* 27 */,\n/* 28 */,\n/* 29 */,\n/* 30 */,\n/* 31 */,\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar exportHooks = __webpack_require__(18);\r\nvar options_1 = __webpack_require__(33);\r\nvar util_1 = __webpack_require__(4);\r\nexports.localeOptionHash = {};\r\nexportHooks.locales = exports.localeOptionHash;\r\n// NOTE: can't guarantee any of these computations will run because not every locale has datepicker\r\n// configs, so make sure there are English fallbacks for these in the defaults file.\r\nvar dpComputableOptions = {\r\n buttonText: function (dpOptions) {\r\n return {\r\n // the translations sometimes wrongly contain HTML entities\r\n prev: util_1.stripHtmlEntities(dpOptions.prevText),\r\n next: util_1.stripHtmlEntities(dpOptions.nextText),\r\n today: util_1.stripHtmlEntities(dpOptions.currentText)\r\n };\r\n },\r\n // Produces format strings like \"MMMM YYYY\" -> \"September 2014\"\r\n monthYearFormat: function (dpOptions) {\r\n return dpOptions.showMonthAfterYear ?\r\n 'YYYY[' + dpOptions.yearSuffix + '] MMMM' :\r\n 'MMMM YYYY[' + dpOptions.yearSuffix + ']';\r\n }\r\n};\r\nvar momComputableOptions = {\r\n // Produces format strings like \"ddd M/D\" -> \"Fri 9/15\"\r\n dayOfMonthFormat: function (momOptions, fcOptions) {\r\n var format = momOptions.longDateFormat('l'); // for the format like \"M/D/YYYY\"\r\n // strip the year off the edge, as well as other misc non-whitespace chars\r\n format = format.replace(/^Y+[^\\w\\s]*|[^\\w\\s]*Y+$/g, '');\r\n if (fcOptions.isRTL) {\r\n format += ' ddd'; // for RTL, add day-of-week to end\r\n }\r\n else {\r\n format = 'ddd ' + format; // for LTR, add day-of-week to beginning\r\n }\r\n return format;\r\n },\r\n // Produces format strings like \"h:mma\" -> \"6:00pm\"\r\n mediumTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(/\\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"h(:mm)a\" -> \"6pm\" / \"6:30pm\"\r\n smallTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(':mm', '(:mm)')\r\n .replace(/(\\Wmm)$/, '($1)') // like above, but for foreign locales\r\n .replace(/\\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"h(:mm)t\" -> \"6p\" / \"6:30p\"\r\n extraSmallTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(':mm', '(:mm)')\r\n .replace(/(\\Wmm)$/, '($1)') // like above, but for foreign locales\r\n .replace(/\\s*a$/i, 't'); // convert to AM/PM/am/pm to lowercase one-letter. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"ha\" / \"H\" -> \"6pm\" / \"18\"\r\n hourFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(':mm', '')\r\n .replace(/(\\Wmm)$/, '') // like above, but for foreign locales\r\n .replace(/\\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"h:mm\" -> \"6:30\" (with no AM/PM)\r\n noMeridiemTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(/\\s*a$/i, ''); // remove trailing AM/PM\r\n }\r\n};\r\n// options that should be computed off live calendar options (considers override options)\r\n// TODO: best place for this? related to locale?\r\n// TODO: flipping text based on isRTL is a bad idea because the CSS `direction` might want to handle it\r\nvar instanceComputableOptions = {\r\n // Produces format strings for results like \"Mo 16\"\r\n smallDayDateFormat: function (options) {\r\n return options.isRTL ?\r\n 'D dd' :\r\n 'dd D';\r\n },\r\n // Produces format strings for results like \"Wk 5\"\r\n weekFormat: function (options) {\r\n return options.isRTL ?\r\n 'w[ ' + options.weekNumberTitle + ']' :\r\n '[' + options.weekNumberTitle + ' ]w';\r\n },\r\n // Produces format strings for results like \"Wk5\"\r\n smallWeekFormat: function (options) {\r\n return options.isRTL ?\r\n 'w[' + options.weekNumberTitle + ']' :\r\n '[' + options.weekNumberTitle + ']w';\r\n }\r\n};\r\n// TODO: make these computable properties in optionsManager\r\nfunction populateInstanceComputableOptions(options) {\r\n $.each(instanceComputableOptions, function (name, func) {\r\n if (options[name] == null) {\r\n options[name] = func(options);\r\n }\r\n });\r\n}\r\nexports.populateInstanceComputableOptions = populateInstanceComputableOptions;\r\n// Initialize jQuery UI datepicker translations while using some of the translations\r\n// Will set this as the default locales for datepicker.\r\nfunction datepickerLocale(localeCode, dpLocaleCode, dpOptions) {\r\n // get the FullCalendar internal option hash for this locale. create if necessary\r\n var fcOptions = exports.localeOptionHash[localeCode] || (exports.localeOptionHash[localeCode] = {});\r\n // transfer some simple options from datepicker to fc\r\n fcOptions.isRTL = dpOptions.isRTL;\r\n fcOptions.weekNumberTitle = dpOptions.weekHeader;\r\n // compute some more complex options from datepicker\r\n $.each(dpComputableOptions, function (name, func) {\r\n fcOptions[name] = func(dpOptions);\r\n });\r\n var jqDatePicker = $.datepicker;\r\n // is jQuery UI Datepicker is on the page?\r\n if (jqDatePicker) {\r\n // Register the locale data.\r\n // FullCalendar and MomentJS use locale codes like \"pt-br\" but Datepicker\r\n // does it like \"pt-BR\" or if it doesn't have the locale, maybe just \"pt\".\r\n // Make an alias so the locale can be referenced either way.\r\n jqDatePicker.regional[dpLocaleCode] =\r\n jqDatePicker.regional[localeCode] = // alias\r\n dpOptions;\r\n // Alias 'en' to the default locale data. Do this every time.\r\n jqDatePicker.regional.en = jqDatePicker.regional[''];\r\n // Set as Datepicker's global defaults.\r\n jqDatePicker.setDefaults(dpOptions);\r\n }\r\n}\r\nexports.datepickerLocale = datepickerLocale;\r\n// Sets FullCalendar-specific translations. Will set the locales as the global default.\r\nfunction locale(localeCode, newFcOptions) {\r\n var fcOptions;\r\n var momOptions;\r\n // get the FullCalendar internal option hash for this locale. create if necessary\r\n fcOptions = exports.localeOptionHash[localeCode] || (exports.localeOptionHash[localeCode] = {});\r\n // provided new options for this locales? merge them in\r\n if (newFcOptions) {\r\n fcOptions = exports.localeOptionHash[localeCode] = options_1.mergeOptions([fcOptions, newFcOptions]);\r\n }\r\n // compute locale options that weren't defined.\r\n // always do this. newFcOptions can be undefined when initializing from i18n file,\r\n // so no way to tell if this is an initialization or a default-setting.\r\n momOptions = getMomentLocaleData(localeCode); // will fall back to en\r\n $.each(momComputableOptions, function (name, func) {\r\n if (fcOptions[name] == null) {\r\n fcOptions[name] = (func)(momOptions, fcOptions);\r\n }\r\n });\r\n // set it as the default locale for FullCalendar\r\n options_1.globalDefaults.locale = localeCode;\r\n}\r\nexports.locale = locale;\r\n// Returns moment's internal locale data. If doesn't exist, returns English.\r\nfunction getMomentLocaleData(localeCode) {\r\n return moment.localeData(localeCode) || moment.localeData('en');\r\n}\r\nexports.getMomentLocaleData = getMomentLocaleData;\r\n// Initialize English by forcing computation of moment-derived options.\r\n// Also, sets it as the default.\r\nlocale('en', options_1.englishDefaults);\r\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = __webpack_require__(4);\r\nexports.globalDefaults = {\r\n titleRangeSeparator: ' \\u2013 ',\r\n monthYearFormat: 'MMMM YYYY',\r\n defaultTimedEventDuration: '02:00:00',\r\n defaultAllDayEventDuration: { days: 1 },\r\n forceEventDuration: false,\r\n nextDayThreshold: '09:00:00',\r\n // display\r\n columnHeader: true,\r\n defaultView: 'month',\r\n aspectRatio: 1.35,\r\n header: {\r\n left: 'title',\r\n center: '',\r\n right: 'today prev,next'\r\n },\r\n weekends: true,\r\n weekNumbers: false,\r\n weekNumberTitle: 'W',\r\n weekNumberCalculation: 'local',\r\n // editable: false,\r\n // nowIndicator: false,\r\n scrollTime: '06:00:00',\r\n minTime: '00:00:00',\r\n maxTime: '24:00:00',\r\n showNonCurrentDates: true,\r\n // event ajax\r\n lazyFetching: true,\r\n startParam: 'start',\r\n endParam: 'end',\r\n timezoneParam: 'timezone',\r\n timezone: false,\r\n // allDayDefault: undefined,\r\n // locale\r\n locale: null,\r\n isRTL: false,\r\n buttonText: {\r\n prev: 'prev',\r\n next: 'next',\r\n prevYear: 'prev year',\r\n nextYear: 'next year',\r\n year: 'year',\r\n today: 'today',\r\n month: 'month',\r\n week: 'week',\r\n day: 'day'\r\n },\r\n // buttonIcons: null,\r\n allDayText: 'all-day',\r\n // allows setting a min-height to the event segment to prevent short events overlapping each other\r\n agendaEventMinHeight: 0,\r\n // jquery-ui theming\r\n theme: false,\r\n // themeButtonIcons: null,\r\n // eventResizableFromStart: false,\r\n dragOpacity: .75,\r\n dragRevertDuration: 500,\r\n dragScroll: true,\r\n // selectable: false,\r\n unselectAuto: true,\r\n // selectMinDistance: 0,\r\n dropAccept: '*',\r\n eventOrder: 'title',\r\n // eventRenderWait: null,\r\n eventLimit: false,\r\n eventLimitText: 'more',\r\n eventLimitClick: 'popover',\r\n dayPopoverFormat: 'LL',\r\n handleWindowResize: true,\r\n windowResizeDelay: 100,\r\n longPressDelay: 1000\r\n};\r\nexports.englishDefaults = {\r\n dayPopoverFormat: 'dddd, MMMM D'\r\n};\r\nexports.rtlDefaults = {\r\n header: {\r\n left: 'next,prev today',\r\n center: '',\r\n right: 'title'\r\n },\r\n buttonIcons: {\r\n prev: 'right-single-arrow',\r\n next: 'left-single-arrow',\r\n prevYear: 'right-double-arrow',\r\n nextYear: 'left-double-arrow'\r\n },\r\n themeButtonIcons: {\r\n prev: 'circle-triangle-e',\r\n next: 'circle-triangle-w',\r\n nextYear: 'seek-prev',\r\n prevYear: 'seek-next'\r\n }\r\n};\r\nvar complexOptions = [\r\n 'header',\r\n 'footer',\r\n 'buttonText',\r\n 'buttonIcons',\r\n 'themeButtonIcons'\r\n];\r\n// Merges an array of option objects into a single object\r\nfunction mergeOptions(optionObjs) {\r\n return util_1.mergeProps(optionObjs, complexOptions);\r\n}\r\nexports.mergeOptions = mergeOptions;\r\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventFootprint = /** @class */ (function () {\r\n function EventFootprint(componentFootprint, eventDef, eventInstance) {\r\n this.componentFootprint = componentFootprint;\r\n this.eventDef = eventDef;\r\n if (eventInstance) {\r\n this.eventInstance = eventInstance;\r\n }\r\n }\r\n EventFootprint.prototype.getEventLegacy = function () {\r\n return (this.eventInstance || this.eventDef).toLegacy();\r\n };\r\n return EventFootprint;\r\n}());\r\nexports.default = EventFootprint;\r\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\n// Class that all other classes will inherit from\r\nvar Class = /** @class */ (function () {\r\n function Class() {\r\n }\r\n // Called on a class to create a subclass.\r\n // LIMITATION: cannot provide a constructor!\r\n Class.extend = function (members) {\r\n var SubClass = /** @class */ (function (_super) {\r\n tslib_1.__extends(SubClass, _super);\r\n function SubClass() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return SubClass;\r\n }(this));\r\n util_1.copyOwnProps(members, SubClass.prototype);\r\n return SubClass;\r\n };\r\n // Adds new member variables/methods to the class's prototype.\r\n // Can be called with another class, or a plain object hash containing new members.\r\n Class.mixin = function (members) {\r\n util_1.copyOwnProps(members, this.prototype);\r\n };\r\n return Class;\r\n}());\r\nexports.default = Class;\r\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar RecurringEventDef_1 = __webpack_require__(54);\r\nexports.default = {\r\n parse: function (eventInput, source) {\r\n if (util_1.isTimeString(eventInput.start) || moment.isDuration(eventInput.start) ||\r\n util_1.isTimeString(eventInput.end) || moment.isDuration(eventInput.end)) {\r\n return RecurringEventDef_1.default.parse(eventInput, source);\r\n }\r\n else {\r\n return SingleEventDef_1.default.parse(eventInput, source);\r\n }\r\n }\r\n};\r\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar ParsableModelMixin_1 = __webpack_require__(52);\r\nvar EventDef = /** @class */ (function () {\r\n function EventDef(source) {\r\n this.source = source;\r\n this.className = [];\r\n this.miscProps = {};\r\n }\r\n EventDef.parse = function (rawInput, source) {\r\n var def = new this(source);\r\n if (def.applyProps(rawInput)) {\r\n return def;\r\n }\r\n return false;\r\n };\r\n EventDef.normalizeId = function (id) {\r\n return String(id);\r\n };\r\n EventDef.generateId = function () {\r\n return '_fc' + (EventDef.uuid++);\r\n };\r\n EventDef.prototype.clone = function () {\r\n var copy = new this.constructor(this.source);\r\n copy.id = this.id;\r\n copy.rawId = this.rawId;\r\n copy.uid = this.uid; // not really unique anymore :(\r\n EventDef.copyVerbatimStandardProps(this, copy);\r\n copy.className = this.className.slice(); // copy\r\n copy.miscProps = $.extend({}, this.miscProps);\r\n return copy;\r\n };\r\n EventDef.prototype.hasInverseRendering = function () {\r\n return this.getRendering() === 'inverse-background';\r\n };\r\n EventDef.prototype.hasBgRendering = function () {\r\n var rendering = this.getRendering();\r\n return rendering === 'inverse-background' || rendering === 'background';\r\n };\r\n EventDef.prototype.getRendering = function () {\r\n if (this.rendering != null) {\r\n return this.rendering;\r\n }\r\n return this.source.rendering;\r\n };\r\n EventDef.prototype.getConstraint = function () {\r\n if (this.constraint != null) {\r\n return this.constraint;\r\n }\r\n if (this.source.constraint != null) {\r\n return this.source.constraint;\r\n }\r\n return this.source.calendar.opt('eventConstraint'); // what about View option?\r\n };\r\n EventDef.prototype.getOverlap = function () {\r\n if (this.overlap != null) {\r\n return this.overlap;\r\n }\r\n if (this.source.overlap != null) {\r\n return this.source.overlap;\r\n }\r\n return this.source.calendar.opt('eventOverlap'); // what about View option?\r\n };\r\n EventDef.prototype.isStartExplicitlyEditable = function () {\r\n if (this.startEditable != null) {\r\n return this.startEditable;\r\n }\r\n return this.source.startEditable;\r\n };\r\n EventDef.prototype.isDurationExplicitlyEditable = function () {\r\n if (this.durationEditable != null) {\r\n return this.durationEditable;\r\n }\r\n return this.source.durationEditable;\r\n };\r\n EventDef.prototype.isExplicitlyEditable = function () {\r\n if (this.editable != null) {\r\n return this.editable;\r\n }\r\n return this.source.editable;\r\n };\r\n EventDef.prototype.toLegacy = function () {\r\n var obj = $.extend({}, this.miscProps);\r\n obj._id = this.uid;\r\n obj.source = this.source;\r\n obj.className = this.className.slice(); // copy\r\n obj.allDay = this.isAllDay();\r\n if (this.rawId != null) {\r\n obj.id = this.rawId;\r\n }\r\n EventDef.copyVerbatimStandardProps(this, obj);\r\n return obj;\r\n };\r\n EventDef.prototype.applyManualStandardProps = function (rawProps) {\r\n if (rawProps.id != null) {\r\n this.id = EventDef.normalizeId((this.rawId = rawProps.id));\r\n }\r\n else {\r\n this.id = EventDef.generateId();\r\n }\r\n if (rawProps._id != null) { // accept this prop, even tho somewhat internal\r\n this.uid = String(rawProps._id);\r\n }\r\n else {\r\n this.uid = EventDef.generateId();\r\n }\r\n // TODO: converge with EventSource\r\n if ($.isArray(rawProps.className)) {\r\n this.className = rawProps.className;\r\n }\r\n if (typeof rawProps.className === 'string') {\r\n this.className = rawProps.className.split(/\\s+/);\r\n }\r\n return true;\r\n };\r\n EventDef.prototype.applyMiscProps = function (rawProps) {\r\n $.extend(this.miscProps, rawProps);\r\n };\r\n EventDef.uuid = 0;\r\n EventDef.defineStandardProps = ParsableModelMixin_1.default.defineStandardProps;\r\n EventDef.copyVerbatimStandardProps = ParsableModelMixin_1.default.copyVerbatimStandardProps;\r\n return EventDef;\r\n}());\r\nexports.default = EventDef;\r\nParsableModelMixin_1.default.mixInto(EventDef);\r\nEventDef.defineStandardProps({\r\n // not automatically assigned (`false`)\r\n _id: false,\r\n id: false,\r\n className: false,\r\n source: false,\r\n // automatically assigned (`true`)\r\n title: true,\r\n url: true,\r\n rendering: true,\r\n constraint: true,\r\n overlap: true,\r\n editable: true,\r\n startEditable: true,\r\n durationEditable: true,\r\n color: true,\r\n backgroundColor: true,\r\n borderColor: true,\r\n textColor: true\r\n});\r\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = {\r\n sourceClasses: [],\r\n registerClass: function (EventSourceClass) {\r\n this.sourceClasses.unshift(EventSourceClass); // give highest priority\r\n },\r\n parse: function (rawInput, calendar) {\r\n var sourceClasses = this.sourceClasses;\r\n var i;\r\n var eventSource;\r\n for (i = 0; i < sourceClasses.length; i++) {\r\n eventSource = sourceClasses[i].parse(rawInput, calendar);\r\n if (eventSource) {\r\n return eventSource;\r\n }\r\n }\r\n }\r\n};\r\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDateProfile_1 = __webpack_require__(16);\r\nvar EventDef_1 = __webpack_require__(37);\r\nvar EventDefDateMutation_1 = __webpack_require__(40);\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar EventDefMutation = /** @class */ (function () {\r\n function EventDefMutation() {\r\n }\r\n EventDefMutation.createFromRawProps = function (eventInstance, rawProps, largeUnit) {\r\n var eventDef = eventInstance.def;\r\n var dateProps = {};\r\n var standardProps = {};\r\n var miscProps = {};\r\n var verbatimStandardProps = {};\r\n var eventDefId = null;\r\n var className = null;\r\n var propName;\r\n var dateProfile;\r\n var dateMutation;\r\n var defMutation;\r\n for (propName in rawProps) {\r\n if (EventDateProfile_1.default.isStandardProp(propName)) {\r\n dateProps[propName] = rawProps[propName];\r\n }\r\n else if (eventDef.isStandardProp(propName)) {\r\n standardProps[propName] = rawProps[propName];\r\n }\r\n else if (eventDef.miscProps[propName] !== rawProps[propName]) { // only if changed\r\n miscProps[propName] = rawProps[propName];\r\n }\r\n }\r\n dateProfile = EventDateProfile_1.default.parse(dateProps, eventDef.source);\r\n if (dateProfile) { // no failure?\r\n dateMutation = EventDefDateMutation_1.default.createFromDiff(eventInstance.dateProfile, dateProfile, largeUnit);\r\n }\r\n if (standardProps.id !== eventDef.id) {\r\n eventDefId = standardProps.id; // only apply if there's a change\r\n }\r\n if (!util_1.isArraysEqual(standardProps.className, eventDef.className)) {\r\n className = standardProps.className; // only apply if there's a change\r\n }\r\n EventDef_1.default.copyVerbatimStandardProps(standardProps, // src\r\n verbatimStandardProps // dest\r\n );\r\n defMutation = new EventDefMutation();\r\n defMutation.eventDefId = eventDefId;\r\n defMutation.className = className;\r\n defMutation.verbatimStandardProps = verbatimStandardProps;\r\n defMutation.miscProps = miscProps;\r\n if (dateMutation) {\r\n defMutation.dateMutation = dateMutation;\r\n }\r\n return defMutation;\r\n };\r\n /*\r\n eventDef assumed to be a SingleEventDef.\r\n returns an undo function.\r\n */\r\n EventDefMutation.prototype.mutateSingle = function (eventDef) {\r\n var origDateProfile;\r\n if (this.dateMutation) {\r\n origDateProfile = eventDef.dateProfile;\r\n eventDef.dateProfile = this.dateMutation.buildNewDateProfile(origDateProfile, eventDef.source.calendar);\r\n }\r\n // can't undo\r\n // TODO: more DRY with EventDef::applyManualStandardProps\r\n if (this.eventDefId != null) {\r\n eventDef.id = EventDef_1.default.normalizeId((eventDef.rawId = this.eventDefId));\r\n }\r\n // can't undo\r\n // TODO: more DRY with EventDef::applyManualStandardProps\r\n if (this.className) {\r\n eventDef.className = this.className;\r\n }\r\n // can't undo\r\n if (this.verbatimStandardProps) {\r\n SingleEventDef_1.default.copyVerbatimStandardProps(this.verbatimStandardProps, // src\r\n eventDef // dest\r\n );\r\n }\r\n // can't undo\r\n if (this.miscProps) {\r\n eventDef.applyMiscProps(this.miscProps);\r\n }\r\n if (origDateProfile) {\r\n return function () {\r\n eventDef.dateProfile = origDateProfile;\r\n };\r\n }\r\n else {\r\n return function () { };\r\n }\r\n };\r\n EventDefMutation.prototype.setDateMutation = function (dateMutation) {\r\n if (dateMutation && !dateMutation.isEmpty()) {\r\n this.dateMutation = dateMutation;\r\n }\r\n else {\r\n this.dateMutation = null;\r\n }\r\n };\r\n EventDefMutation.prototype.isEmpty = function () {\r\n return !this.dateMutation;\r\n };\r\n return EventDefMutation;\r\n}());\r\nexports.default = EventDefMutation;\r\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDateProfile_1 = __webpack_require__(16);\r\nvar EventDefDateMutation = /** @class */ (function () {\r\n function EventDefDateMutation() {\r\n this.clearEnd = false;\r\n this.forceTimed = false;\r\n this.forceAllDay = false;\r\n }\r\n EventDefDateMutation.createFromDiff = function (dateProfile0, dateProfile1, largeUnit) {\r\n var clearEnd = dateProfile0.end && !dateProfile1.end;\r\n var forceTimed = dateProfile0.isAllDay() && !dateProfile1.isAllDay();\r\n var forceAllDay = !dateProfile0.isAllDay() && dateProfile1.isAllDay();\r\n var dateDelta;\r\n var endDiff;\r\n var endDelta;\r\n var mutation;\r\n // subtracts the dates in the appropriate way, returning a duration\r\n function subtractDates(date1, date0) {\r\n if (largeUnit) {\r\n return util_1.diffByUnit(date1, date0, largeUnit); // poorly named\r\n }\r\n else if (dateProfile1.isAllDay()) {\r\n return util_1.diffDay(date1, date0); // poorly named\r\n }\r\n else {\r\n return util_1.diffDayTime(date1, date0); // poorly named\r\n }\r\n }\r\n dateDelta = subtractDates(dateProfile1.start, dateProfile0.start);\r\n if (dateProfile1.end) {\r\n // use unzonedRanges because dateProfile0.end might be null\r\n endDiff = subtractDates(dateProfile1.unzonedRange.getEnd(), dateProfile0.unzonedRange.getEnd());\r\n endDelta = endDiff.subtract(dateDelta);\r\n }\r\n mutation = new EventDefDateMutation();\r\n mutation.clearEnd = clearEnd;\r\n mutation.forceTimed = forceTimed;\r\n mutation.forceAllDay = forceAllDay;\r\n mutation.setDateDelta(dateDelta);\r\n mutation.setEndDelta(endDelta);\r\n return mutation;\r\n };\r\n /*\r\n returns an undo function.\r\n */\r\n EventDefDateMutation.prototype.buildNewDateProfile = function (eventDateProfile, calendar) {\r\n var start = eventDateProfile.start.clone();\r\n var end = null;\r\n var shouldRezone = false;\r\n if (eventDateProfile.end && !this.clearEnd) {\r\n end = eventDateProfile.end.clone();\r\n }\r\n else if (this.endDelta && !end) {\r\n end = calendar.getDefaultEventEnd(eventDateProfile.isAllDay(), start);\r\n }\r\n if (this.forceTimed) {\r\n shouldRezone = true;\r\n if (!start.hasTime()) {\r\n start.time(0);\r\n }\r\n if (end && !end.hasTime()) {\r\n end.time(0);\r\n }\r\n }\r\n else if (this.forceAllDay) {\r\n if (start.hasTime()) {\r\n start.stripTime();\r\n }\r\n if (end && end.hasTime()) {\r\n end.stripTime();\r\n }\r\n }\r\n if (this.dateDelta) {\r\n shouldRezone = true;\r\n start.add(this.dateDelta);\r\n if (end) {\r\n end.add(this.dateDelta);\r\n }\r\n }\r\n // do this before adding startDelta to start, so we can work off of start\r\n if (this.endDelta) {\r\n shouldRezone = true;\r\n end.add(this.endDelta);\r\n }\r\n if (this.startDelta) {\r\n shouldRezone = true;\r\n start.add(this.startDelta);\r\n }\r\n if (shouldRezone) {\r\n start = calendar.applyTimezone(start);\r\n if (end) {\r\n end = calendar.applyTimezone(end);\r\n }\r\n }\r\n // TODO: okay to access calendar option?\r\n if (!end && calendar.opt('forceEventDuration')) {\r\n end = calendar.getDefaultEventEnd(eventDateProfile.isAllDay(), start);\r\n }\r\n return new EventDateProfile_1.default(start, end, calendar);\r\n };\r\n EventDefDateMutation.prototype.setDateDelta = function (dateDelta) {\r\n if (dateDelta && dateDelta.valueOf()) {\r\n this.dateDelta = dateDelta;\r\n }\r\n else {\r\n this.dateDelta = null;\r\n }\r\n };\r\n EventDefDateMutation.prototype.setStartDelta = function (startDelta) {\r\n if (startDelta && startDelta.valueOf()) {\r\n this.startDelta = startDelta;\r\n }\r\n else {\r\n this.startDelta = null;\r\n }\r\n };\r\n EventDefDateMutation.prototype.setEndDelta = function (endDelta) {\r\n if (endDelta && endDelta.valueOf()) {\r\n this.endDelta = endDelta;\r\n }\r\n else {\r\n this.endDelta = null;\r\n }\r\n };\r\n EventDefDateMutation.prototype.isEmpty = function () {\r\n return !this.clearEnd && !this.forceTimed && !this.forceAllDay &&\r\n !this.dateDelta && !this.startDelta && !this.endDelta;\r\n };\r\n return EventDefDateMutation;\r\n}());\r\nexports.default = EventDefDateMutation;\r\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Class_1 = __webpack_require__(35);\r\n/*\r\nEmbodies a div that has potential scrollbars\r\n*/\r\nvar Scroller = /** @class */ (function (_super) {\r\n tslib_1.__extends(Scroller, _super);\r\n function Scroller(options) {\r\n var _this = _super.call(this) || this;\r\n options = options || {};\r\n _this.overflowX = options.overflowX || options.overflow || 'auto';\r\n _this.overflowY = options.overflowY || options.overflow || 'auto';\r\n return _this;\r\n }\r\n Scroller.prototype.render = function () {\r\n this.el = this.renderEl();\r\n this.applyOverflow();\r\n };\r\n Scroller.prototype.renderEl = function () {\r\n return (this.scrollEl = $('<div class=\"fc-scroller\"></div>'));\r\n };\r\n // sets to natural height, unlocks overflow\r\n Scroller.prototype.clear = function () {\r\n this.setHeight('auto');\r\n this.applyOverflow();\r\n };\r\n Scroller.prototype.destroy = function () {\r\n this.el.remove();\r\n };\r\n // Overflow\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Scroller.prototype.applyOverflow = function () {\r\n this.scrollEl.css({\r\n 'overflow-x': this.overflowX,\r\n 'overflow-y': this.overflowY\r\n });\r\n };\r\n // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'.\r\n // Useful for preserving scrollbar widths regardless of future resizes.\r\n // Can pass in scrollbarWidths for optimization.\r\n Scroller.prototype.lockOverflow = function (scrollbarWidths) {\r\n var overflowX = this.overflowX;\r\n var overflowY = this.overflowY;\r\n scrollbarWidths = scrollbarWidths || this.getScrollbarWidths();\r\n if (overflowX === 'auto') {\r\n overflowX = (scrollbarWidths.top || scrollbarWidths.bottom || // horizontal scrollbars?\r\n // OR scrolling pane with massless scrollbars?\r\n this.scrollEl[0].scrollWidth - 1 > this.scrollEl[0].clientWidth\r\n // subtract 1 because of IE off-by-one issue\r\n ) ? 'scroll' : 'hidden';\r\n }\r\n if (overflowY === 'auto') {\r\n overflowY = (scrollbarWidths.left || scrollbarWidths.right || // vertical scrollbars?\r\n // OR scrolling pane with massless scrollbars?\r\n this.scrollEl[0].scrollHeight - 1 > this.scrollEl[0].clientHeight\r\n // subtract 1 because of IE off-by-one issue\r\n ) ? 'scroll' : 'hidden';\r\n }\r\n this.scrollEl.css({ 'overflow-x': overflowX, 'overflow-y': overflowY });\r\n };\r\n // Getters / Setters\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Scroller.prototype.setHeight = function (height) {\r\n this.scrollEl.height(height);\r\n };\r\n Scroller.prototype.getScrollTop = function () {\r\n return this.scrollEl.scrollTop();\r\n };\r\n Scroller.prototype.setScrollTop = function (top) {\r\n this.scrollEl.scrollTop(top);\r\n };\r\n Scroller.prototype.getClientWidth = function () {\r\n return this.scrollEl[0].clientWidth;\r\n };\r\n Scroller.prototype.getClientHeight = function () {\r\n return this.scrollEl[0].clientHeight;\r\n };\r\n Scroller.prototype.getScrollbarWidths = function () {\r\n return util_1.getScrollbarWidths(this.scrollEl);\r\n };\r\n return Scroller;\r\n}(Class_1.default));\r\nexports.default = Scroller;\r\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar DateComponent_1 = __webpack_require__(231);\r\nvar GlobalEmitter_1 = __webpack_require__(23);\r\nvar InteractiveDateComponent = /** @class */ (function (_super) {\r\n tslib_1.__extends(InteractiveDateComponent, _super);\r\n function InteractiveDateComponent(_view, _options) {\r\n var _this = _super.call(this, _view, _options) || this;\r\n // self-config, overridable by subclasses\r\n _this.segSelector = '.fc-event-container > *'; // what constitutes an event element?\r\n if (_this.dateSelectingClass) {\r\n _this.dateClicking = new _this.dateClickingClass(_this);\r\n }\r\n if (_this.dateSelectingClass) {\r\n _this.dateSelecting = new _this.dateSelectingClass(_this);\r\n }\r\n if (_this.eventPointingClass) {\r\n _this.eventPointing = new _this.eventPointingClass(_this);\r\n }\r\n if (_this.eventDraggingClass && _this.eventPointing) {\r\n _this.eventDragging = new _this.eventDraggingClass(_this, _this.eventPointing);\r\n }\r\n if (_this.eventResizingClass && _this.eventPointing) {\r\n _this.eventResizing = new _this.eventResizingClass(_this, _this.eventPointing);\r\n }\r\n if (_this.externalDroppingClass) {\r\n _this.externalDropping = new _this.externalDroppingClass(_this);\r\n }\r\n return _this;\r\n }\r\n // Sets the container element that the view should render inside of, does global DOM-related initializations,\r\n // and renders all the non-date-related content inside.\r\n InteractiveDateComponent.prototype.setElement = function (el) {\r\n _super.prototype.setElement.call(this, el);\r\n if (this.dateClicking) {\r\n this.dateClicking.bindToEl(el);\r\n }\r\n if (this.dateSelecting) {\r\n this.dateSelecting.bindToEl(el);\r\n }\r\n this.bindAllSegHandlersToEl(el);\r\n };\r\n InteractiveDateComponent.prototype.removeElement = function () {\r\n this.endInteractions();\r\n _super.prototype.removeElement.call(this);\r\n };\r\n InteractiveDateComponent.prototype.executeEventUnrender = function () {\r\n this.endInteractions();\r\n _super.prototype.executeEventUnrender.call(this);\r\n };\r\n InteractiveDateComponent.prototype.bindGlobalHandlers = function () {\r\n _super.prototype.bindGlobalHandlers.call(this);\r\n if (this.externalDropping) {\r\n this.externalDropping.bindToDocument();\r\n }\r\n };\r\n InteractiveDateComponent.prototype.unbindGlobalHandlers = function () {\r\n _super.prototype.unbindGlobalHandlers.call(this);\r\n if (this.externalDropping) {\r\n this.externalDropping.unbindFromDocument();\r\n }\r\n };\r\n InteractiveDateComponent.prototype.bindDateHandlerToEl = function (el, name, handler) {\r\n var _this = this;\r\n // attach a handler to the grid's root element.\r\n // jQuery will take care of unregistering them when removeElement gets called.\r\n this.el.on(name, function (ev) {\r\n if (!$(ev.target).is(_this.segSelector + ':not(.fc-helper),' + // directly on an event element\r\n _this.segSelector + ':not(.fc-helper) *,' + // within an event element\r\n '.fc-more,' + // a \"more..\" link\r\n 'a[data-goto]' // a clickable nav link\r\n )) {\r\n return handler.call(_this, ev);\r\n }\r\n });\r\n };\r\n InteractiveDateComponent.prototype.bindAllSegHandlersToEl = function (el) {\r\n [\r\n this.eventPointing,\r\n this.eventDragging,\r\n this.eventResizing\r\n ].forEach(function (eventInteraction) {\r\n if (eventInteraction) {\r\n eventInteraction.bindToEl(el);\r\n }\r\n });\r\n };\r\n InteractiveDateComponent.prototype.bindSegHandlerToEl = function (el, name, handler) {\r\n var _this = this;\r\n el.on(name, this.segSelector, function (ev) {\r\n var segEl = $(ev.currentTarget);\r\n if (!segEl.is('.fc-helper')) {\r\n var seg = segEl.data('fc-seg'); // grab segment data. put there by View::renderEventsPayload\r\n if (seg && !_this.shouldIgnoreEventPointing()) {\r\n return handler.call(_this, seg, ev); // context will be the Grid\r\n }\r\n }\r\n });\r\n };\r\n InteractiveDateComponent.prototype.shouldIgnoreMouse = function () {\r\n // HACK\r\n // This will still work even though bindDateHandlerToEl doesn't use GlobalEmitter.\r\n return GlobalEmitter_1.default.get().shouldIgnoreMouse();\r\n };\r\n InteractiveDateComponent.prototype.shouldIgnoreTouch = function () {\r\n var view = this._getView();\r\n // On iOS (and Android?) when a new selection is initiated overtop another selection,\r\n // the touchend never fires because the elements gets removed mid-touch-interaction (my theory).\r\n // HACK: simply don't allow this to happen.\r\n // ALSO: prevent selection when an *event* is already raised.\r\n return view.isSelected || view.selectedEvent;\r\n };\r\n InteractiveDateComponent.prototype.shouldIgnoreEventPointing = function () {\r\n // only call the handlers if there is not a drag/resize in progress\r\n return (this.eventDragging && this.eventDragging.isDragging) ||\r\n (this.eventResizing && this.eventResizing.isResizing);\r\n };\r\n InteractiveDateComponent.prototype.canStartSelection = function (seg, ev) {\r\n return util_1.getEvIsTouch(ev) &&\r\n !this.canStartResize(seg, ev) &&\r\n (this.isEventDefDraggable(seg.footprint.eventDef) ||\r\n this.isEventDefResizable(seg.footprint.eventDef));\r\n };\r\n InteractiveDateComponent.prototype.canStartDrag = function (seg, ev) {\r\n return !this.canStartResize(seg, ev) &&\r\n this.isEventDefDraggable(seg.footprint.eventDef);\r\n };\r\n InteractiveDateComponent.prototype.canStartResize = function (seg, ev) {\r\n var view = this._getView();\r\n var eventDef = seg.footprint.eventDef;\r\n return (!util_1.getEvIsTouch(ev) || view.isEventDefSelected(eventDef)) &&\r\n this.isEventDefResizable(eventDef) &&\r\n $(ev.target).is('.fc-resizer');\r\n };\r\n // Kills all in-progress dragging.\r\n // Useful for when public API methods that result in re-rendering are invoked during a drag.\r\n // Also useful for when touch devices misbehave and don't fire their touchend.\r\n InteractiveDateComponent.prototype.endInteractions = function () {\r\n [\r\n this.dateClicking,\r\n this.dateSelecting,\r\n this.eventPointing,\r\n this.eventDragging,\r\n this.eventResizing\r\n ].forEach(function (interaction) {\r\n if (interaction) {\r\n interaction.end();\r\n }\r\n });\r\n };\r\n // Event Drag-n-Drop\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Computes if the given event is allowed to be dragged by the user\r\n InteractiveDateComponent.prototype.isEventDefDraggable = function (eventDef) {\r\n return this.isEventDefStartEditable(eventDef);\r\n };\r\n InteractiveDateComponent.prototype.isEventDefStartEditable = function (eventDef) {\r\n var isEditable = eventDef.isStartExplicitlyEditable();\r\n if (isEditable == null) {\r\n isEditable = this.opt('eventStartEditable');\r\n if (isEditable == null) {\r\n isEditable = this.isEventDefGenerallyEditable(eventDef);\r\n }\r\n }\r\n return isEditable;\r\n };\r\n InteractiveDateComponent.prototype.isEventDefGenerallyEditable = function (eventDef) {\r\n var isEditable = eventDef.isExplicitlyEditable();\r\n if (isEditable == null) {\r\n isEditable = this.opt('editable');\r\n }\r\n return isEditable;\r\n };\r\n // Event Resizing\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Computes if the given event is allowed to be resized from its starting edge\r\n InteractiveDateComponent.prototype.isEventDefResizableFromStart = function (eventDef) {\r\n return this.opt('eventResizableFromStart') && this.isEventDefResizable(eventDef);\r\n };\r\n // Computes if the given event is allowed to be resized from its ending edge\r\n InteractiveDateComponent.prototype.isEventDefResizableFromEnd = function (eventDef) {\r\n return this.isEventDefResizable(eventDef);\r\n };\r\n // Computes if the given event is allowed to be resized by the user at all\r\n InteractiveDateComponent.prototype.isEventDefResizable = function (eventDef) {\r\n var isResizable = eventDef.isDurationExplicitlyEditable();\r\n if (isResizable == null) {\r\n isResizable = this.opt('eventDurationEditable');\r\n if (isResizable == null) {\r\n isResizable = this.isEventDefGenerallyEditable(eventDef);\r\n }\r\n }\r\n return isResizable;\r\n };\r\n // Event Mutation / Constraints\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Diffs the two dates, returning a duration, based on granularity of the grid\r\n // TODO: port isTimeScale into this system?\r\n InteractiveDateComponent.prototype.diffDates = function (a, b) {\r\n if (this.largeUnit) {\r\n return util_1.diffByUnit(a, b, this.largeUnit);\r\n }\r\n else {\r\n return util_1.diffDayTime(a, b);\r\n }\r\n };\r\n // is it allowed, in relation to the view's validRange?\r\n // NOTE: very similar to isExternalInstanceGroupAllowed\r\n InteractiveDateComponent.prototype.isEventInstanceGroupAllowed = function (eventInstanceGroup) {\r\n var view = this._getView();\r\n var dateProfile = this.dateProfile;\r\n var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges());\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n // TODO: just use getAllEventRanges directly\r\n if (!dateProfile.validUnzonedRange.containsRange(eventFootprints[i].componentFootprint.unzonedRange)) {\r\n return false;\r\n }\r\n }\r\n return view.calendar.constraints.isEventInstanceGroupAllowed(eventInstanceGroup);\r\n };\r\n // NOTE: very similar to isEventInstanceGroupAllowed\r\n // when it's a completely anonymous external drag, no event.\r\n InteractiveDateComponent.prototype.isExternalInstanceGroupAllowed = function (eventInstanceGroup) {\r\n var view = this._getView();\r\n var dateProfile = this.dateProfile;\r\n var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges());\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (!dateProfile.validUnzonedRange.containsRange(eventFootprints[i].componentFootprint.unzonedRange)) {\r\n return false;\r\n }\r\n }\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n // treat it as a selection\r\n // TODO: pass in eventInstanceGroup instead\r\n // because we don't want calendar's constraint system to depend on a component's\r\n // determination of footprints.\r\n if (!view.calendar.constraints.isSelectionFootprintAllowed(eventFootprints[i].componentFootprint)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return InteractiveDateComponent;\r\n}(DateComponent_1.default));\r\nexports.default = InteractiveDateComponent;\r\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar RenderQueue_1 = __webpack_require__(229);\r\nvar DateProfileGenerator_1 = __webpack_require__(55);\r\nvar InteractiveDateComponent_1 = __webpack_require__(42);\r\nvar GlobalEmitter_1 = __webpack_require__(23);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\n/* An abstract class from which other views inherit from\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar View = /** @class */ (function (_super) {\r\n tslib_1.__extends(View, _super);\r\n function View(calendar, viewSpec) {\r\n var _this = _super.call(this, null, viewSpec.options) || this;\r\n _this.batchRenderDepth = 0;\r\n _this.isSelected = false; // boolean whether a range of time is user-selected or not\r\n _this.calendar = calendar;\r\n _this.viewSpec = viewSpec;\r\n // shortcuts\r\n _this.type = viewSpec.type;\r\n // .name is deprecated\r\n _this.name = _this.type;\r\n _this.initRenderQueue();\r\n _this.initHiddenDays();\r\n _this.dateProfileGenerator = new _this.dateProfileGeneratorClass(_this);\r\n _this.bindBaseRenderHandlers();\r\n _this.eventOrderSpecs = util_1.parseFieldSpecs(_this.opt('eventOrder'));\r\n // legacy\r\n if (_this['initialize']) {\r\n _this['initialize']();\r\n }\r\n return _this;\r\n }\r\n View.prototype._getView = function () {\r\n return this;\r\n };\r\n // Retrieves an option with the given name\r\n View.prototype.opt = function (name) {\r\n return this.options[name];\r\n };\r\n /* Render Queue\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.initRenderQueue = function () {\r\n this.renderQueue = new RenderQueue_1.default({\r\n event: this.opt('eventRenderWait')\r\n });\r\n this.renderQueue.on('start', this.onRenderQueueStart.bind(this));\r\n this.renderQueue.on('stop', this.onRenderQueueStop.bind(this));\r\n this.on('before:change', this.startBatchRender);\r\n this.on('change', this.stopBatchRender);\r\n };\r\n View.prototype.onRenderQueueStart = function () {\r\n this.calendar.freezeContentHeight();\r\n this.addScroll(this.queryScroll());\r\n };\r\n View.prototype.onRenderQueueStop = function () {\r\n if (this.calendar.updateViewSize()) { // success?\r\n this.popScroll();\r\n }\r\n this.calendar.thawContentHeight();\r\n };\r\n View.prototype.startBatchRender = function () {\r\n if (!(this.batchRenderDepth++)) {\r\n this.renderQueue.pause();\r\n }\r\n };\r\n View.prototype.stopBatchRender = function () {\r\n if (!(--this.batchRenderDepth)) {\r\n this.renderQueue.resume();\r\n }\r\n };\r\n View.prototype.requestRender = function (func, namespace, actionType) {\r\n this.renderQueue.queue(func, namespace, actionType);\r\n };\r\n // given func will auto-bind to `this`\r\n View.prototype.whenSizeUpdated = function (func) {\r\n if (this.renderQueue.isRunning) {\r\n this.renderQueue.one('stop', func.bind(this));\r\n }\r\n else {\r\n func.call(this);\r\n }\r\n };\r\n /* Title and Date Formatting\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Computes what the title at the top of the calendar should be for this view\r\n View.prototype.computeTitle = function (dateProfile) {\r\n var unzonedRange;\r\n // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\r\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\r\n unzonedRange = dateProfile.currentUnzonedRange;\r\n }\r\n else { // for day units or smaller, use the actual day range\r\n unzonedRange = dateProfile.activeUnzonedRange;\r\n }\r\n return this.formatRange({\r\n start: this.calendar.msToMoment(unzonedRange.startMs, dateProfile.isRangeAllDay),\r\n end: this.calendar.msToMoment(unzonedRange.endMs, dateProfile.isRangeAllDay)\r\n }, dateProfile.isRangeAllDay, this.opt('titleFormat') || this.computeTitleFormat(dateProfile), this.opt('titleRangeSeparator'));\r\n };\r\n // Generates the format string that should be used to generate the title for the current date range.\r\n // Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\r\n View.prototype.computeTitleFormat = function (dateProfile) {\r\n var currentRangeUnit = dateProfile.currentRangeUnit;\r\n if (currentRangeUnit === 'year') {\r\n return 'YYYY';\r\n }\r\n else if (currentRangeUnit === 'month') {\r\n return this.opt('monthYearFormat'); // like \"September 2014\"\r\n }\r\n else if (dateProfile.currentUnzonedRange.as('days') > 1) {\r\n return 'll'; // multi-day range. shorter, like \"Sep 9 - 10 2014\"\r\n }\r\n else {\r\n return 'LL'; // one day. longer, like \"September 9 2014\"\r\n }\r\n };\r\n // Date Setting/Unsetting\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.setDate = function (date) {\r\n var currentDateProfile = this.get('dateProfile');\r\n var newDateProfile = this.dateProfileGenerator.build(date, undefined, true); // forceToValid=true\r\n if (!currentDateProfile ||\r\n !currentDateProfile.activeUnzonedRange.equals(newDateProfile.activeUnzonedRange)) {\r\n this.set('dateProfile', newDateProfile);\r\n }\r\n };\r\n View.prototype.unsetDate = function () {\r\n this.unset('dateProfile');\r\n };\r\n // Event Data\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.fetchInitialEvents = function (dateProfile) {\r\n var calendar = this.calendar;\r\n var forceAllDay = dateProfile.isRangeAllDay && !this.usesMinMaxTime;\r\n return calendar.requestEvents(calendar.msToMoment(dateProfile.activeUnzonedRange.startMs, forceAllDay), calendar.msToMoment(dateProfile.activeUnzonedRange.endMs, forceAllDay));\r\n };\r\n View.prototype.bindEventChanges = function () {\r\n this.listenTo(this.calendar, 'eventsReset', this.resetEvents); // TODO: make this a real event\r\n };\r\n View.prototype.unbindEventChanges = function () {\r\n this.stopListeningTo(this.calendar, 'eventsReset');\r\n };\r\n View.prototype.setEvents = function (eventsPayload) {\r\n this.set('currentEvents', eventsPayload);\r\n this.set('hasEvents', true);\r\n };\r\n View.prototype.unsetEvents = function () {\r\n this.unset('currentEvents');\r\n this.unset('hasEvents');\r\n };\r\n View.prototype.resetEvents = function (eventsPayload) {\r\n this.startBatchRender();\r\n this.unsetEvents();\r\n this.setEvents(eventsPayload);\r\n this.stopBatchRender();\r\n };\r\n // Date High-level Rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.requestDateRender = function (dateProfile) {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.executeDateRender(dateProfile);\r\n }, 'date', 'init');\r\n };\r\n View.prototype.requestDateUnrender = function () {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.executeDateUnrender();\r\n }, 'date', 'destroy');\r\n };\r\n // if dateProfile not specified, uses current\r\n View.prototype.executeDateRender = function (dateProfile) {\r\n _super.prototype.executeDateRender.call(this, dateProfile);\r\n if (this['render']) {\r\n this['render'](); // TODO: deprecate\r\n }\r\n this.trigger('datesRendered');\r\n this.addScroll({ isDateInit: true });\r\n this.startNowIndicator(); // shouldn't render yet because updateSize will be called soon\r\n };\r\n View.prototype.executeDateUnrender = function () {\r\n this.unselect();\r\n this.stopNowIndicator();\r\n this.trigger('before:datesUnrendered');\r\n if (this['destroy']) {\r\n this['destroy'](); // TODO: deprecate\r\n }\r\n _super.prototype.executeDateUnrender.call(this);\r\n };\r\n // \"Base\" rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.bindBaseRenderHandlers = function () {\r\n var _this = this;\r\n this.on('datesRendered', function () {\r\n _this.whenSizeUpdated(_this.triggerViewRender);\r\n });\r\n this.on('before:datesUnrendered', function () {\r\n _this.triggerViewDestroy();\r\n });\r\n };\r\n View.prototype.triggerViewRender = function () {\r\n this.publiclyTrigger('viewRender', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n View.prototype.triggerViewDestroy = function () {\r\n this.publiclyTrigger('viewDestroy', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n // Event High-level Rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.requestEventsRender = function (eventsPayload) {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.executeEventRender(eventsPayload);\r\n _this.whenSizeUpdated(_this.triggerAfterEventsRendered);\r\n }, 'event', 'init');\r\n };\r\n View.prototype.requestEventsUnrender = function () {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.triggerBeforeEventsDestroyed();\r\n _this.executeEventUnrender();\r\n }, 'event', 'destroy');\r\n };\r\n // Business Hour High-level Rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.requestBusinessHoursRender = function (businessHourGenerator) {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.renderBusinessHours(businessHourGenerator);\r\n }, 'businessHours', 'init');\r\n };\r\n View.prototype.requestBusinessHoursUnrender = function () {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.unrenderBusinessHours();\r\n }, 'businessHours', 'destroy');\r\n };\r\n // Misc view rendering utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Binds DOM handlers to elements that reside outside the view container, such as the document\r\n View.prototype.bindGlobalHandlers = function () {\r\n _super.prototype.bindGlobalHandlers.call(this);\r\n this.listenTo(GlobalEmitter_1.default.get(), {\r\n touchstart: this.processUnselect,\r\n mousedown: this.handleDocumentMousedown\r\n });\r\n };\r\n // Unbinds DOM handlers from elements that reside outside the view container\r\n View.prototype.unbindGlobalHandlers = function () {\r\n _super.prototype.unbindGlobalHandlers.call(this);\r\n this.stopListeningTo(GlobalEmitter_1.default.get());\r\n };\r\n /* Now Indicator\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Immediately render the current time indicator and begins re-rendering it at an interval,\r\n // which is defined by this.getNowIndicatorUnit().\r\n // TODO: somehow do this for the current whole day's background too\r\n View.prototype.startNowIndicator = function () {\r\n var _this = this;\r\n var unit;\r\n var update;\r\n var delay; // ms wait value\r\n if (this.opt('nowIndicator')) {\r\n unit = this.getNowIndicatorUnit();\r\n if (unit) {\r\n update = util_1.proxy(this, 'updateNowIndicator'); // bind to `this`\r\n this.initialNowDate = this.calendar.getNow();\r\n this.initialNowQueriedMs = new Date().valueOf();\r\n // wait until the beginning of the next interval\r\n delay = this.initialNowDate.clone().startOf(unit).add(1, unit).valueOf() - this.initialNowDate.valueOf();\r\n this.nowIndicatorTimeoutID = setTimeout(function () {\r\n _this.nowIndicatorTimeoutID = null;\r\n update();\r\n delay = +moment.duration(1, unit);\r\n delay = Math.max(100, delay); // prevent too frequent\r\n _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval\r\n }, delay);\r\n }\r\n // rendering will be initiated in updateSize\r\n }\r\n };\r\n // rerenders the now indicator, computing the new current time from the amount of time that has passed\r\n // since the initial getNow call.\r\n View.prototype.updateNowIndicator = function () {\r\n if (this.isDatesRendered &&\r\n this.initialNowDate // activated before?\r\n ) {\r\n this.unrenderNowIndicator(); // won't unrender if unnecessary\r\n this.renderNowIndicator(this.initialNowDate.clone().add(new Date().valueOf() - this.initialNowQueriedMs) // add ms\r\n );\r\n this.isNowIndicatorRendered = true;\r\n }\r\n };\r\n // Immediately unrenders the view's current time indicator and stops any re-rendering timers.\r\n // Won't cause side effects if indicator isn't rendered.\r\n View.prototype.stopNowIndicator = function () {\r\n if (this.isNowIndicatorRendered) {\r\n if (this.nowIndicatorTimeoutID) {\r\n clearTimeout(this.nowIndicatorTimeoutID);\r\n this.nowIndicatorTimeoutID = null;\r\n }\r\n if (this.nowIndicatorIntervalID) {\r\n clearInterval(this.nowIndicatorIntervalID);\r\n this.nowIndicatorIntervalID = null;\r\n }\r\n this.unrenderNowIndicator();\r\n this.isNowIndicatorRendered = false;\r\n }\r\n };\r\n /* Dimensions\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n if (this['setHeight']) { // for legacy API\r\n this['setHeight'](totalHeight, isAuto);\r\n }\r\n else {\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n }\r\n this.updateNowIndicator();\r\n };\r\n /* Scroller\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.addScroll = function (scroll) {\r\n var queuedScroll = this.queuedScroll || (this.queuedScroll = {});\r\n $.extend(queuedScroll, scroll);\r\n };\r\n View.prototype.popScroll = function () {\r\n this.applyQueuedScroll();\r\n this.queuedScroll = null;\r\n };\r\n View.prototype.applyQueuedScroll = function () {\r\n if (this.queuedScroll) {\r\n this.applyScroll(this.queuedScroll);\r\n }\r\n };\r\n View.prototype.queryScroll = function () {\r\n var scroll = {};\r\n if (this.isDatesRendered) {\r\n $.extend(scroll, this.queryDateScroll());\r\n }\r\n return scroll;\r\n };\r\n View.prototype.applyScroll = function (scroll) {\r\n if (scroll.isDateInit && this.isDatesRendered) {\r\n $.extend(scroll, this.computeInitialDateScroll());\r\n }\r\n if (this.isDatesRendered) {\r\n this.applyDateScroll(scroll);\r\n }\r\n };\r\n View.prototype.computeInitialDateScroll = function () {\r\n return {}; // subclasses must implement\r\n };\r\n View.prototype.queryDateScroll = function () {\r\n return {}; // subclasses must implement\r\n };\r\n View.prototype.applyDateScroll = function (scroll) {\r\n // subclasses must implement\r\n };\r\n /* Event Drag-n-Drop\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.reportEventDrop = function (eventInstance, eventMutation, el, ev) {\r\n var eventManager = this.calendar.eventManager;\r\n var undoFunc = eventManager.mutateEventsWithId(eventInstance.def.id, eventMutation);\r\n var dateMutation = eventMutation.dateMutation;\r\n // update the EventInstance, for handlers\r\n if (dateMutation) {\r\n eventInstance.dateProfile = dateMutation.buildNewDateProfile(eventInstance.dateProfile, this.calendar);\r\n }\r\n this.triggerEventDrop(eventInstance, \r\n // a drop doesn't necessarily mean a date mutation (ex: resource change)\r\n (dateMutation && dateMutation.dateDelta) || moment.duration(), undoFunc, el, ev);\r\n };\r\n // Triggers event-drop handlers that have subscribed via the API\r\n View.prototype.triggerEventDrop = function (eventInstance, dateDelta, undoFunc, el, ev) {\r\n this.publiclyTrigger('eventDrop', {\r\n context: el[0],\r\n args: [\r\n eventInstance.toLegacy(),\r\n dateDelta,\r\n undoFunc,\r\n ev,\r\n {},\r\n this\r\n ]\r\n });\r\n };\r\n /* External Element Drag-n-Drop\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Must be called when an external element, via jQuery UI, has been dropped onto the calendar.\r\n // `meta` is the parsed data that has been embedded into the dragging event.\r\n // `dropLocation` is an object that contains the new zoned start/end/allDay values for the event.\r\n View.prototype.reportExternalDrop = function (singleEventDef, isEvent, isSticky, el, ev, ui) {\r\n if (isEvent) {\r\n this.calendar.eventManager.addEventDef(singleEventDef, isSticky);\r\n }\r\n this.triggerExternalDrop(singleEventDef, isEvent, el, ev, ui);\r\n };\r\n // Triggers external-drop handlers that have subscribed via the API\r\n View.prototype.triggerExternalDrop = function (singleEventDef, isEvent, el, ev, ui) {\r\n // trigger 'drop' regardless of whether element represents an event\r\n this.publiclyTrigger('drop', {\r\n context: el[0],\r\n args: [\r\n singleEventDef.dateProfile.start.clone(),\r\n ev,\r\n ui,\r\n this\r\n ]\r\n });\r\n if (isEvent) {\r\n // signal an external event landed\r\n this.publiclyTrigger('eventReceive', {\r\n context: this,\r\n args: [\r\n singleEventDef.buildInstance().toLegacy(),\r\n this\r\n ]\r\n });\r\n }\r\n };\r\n /* Event Resizing\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Must be called when an event in the view has been resized to a new length\r\n View.prototype.reportEventResize = function (eventInstance, eventMutation, el, ev) {\r\n var eventManager = this.calendar.eventManager;\r\n var undoFunc = eventManager.mutateEventsWithId(eventInstance.def.id, eventMutation);\r\n // update the EventInstance, for handlers\r\n eventInstance.dateProfile = eventMutation.dateMutation.buildNewDateProfile(eventInstance.dateProfile, this.calendar);\r\n var resizeDelta = eventMutation.dateMutation.endDelta || eventMutation.dateMutation.startDelta;\r\n this.triggerEventResize(eventInstance, resizeDelta, undoFunc, el, ev);\r\n };\r\n // Triggers event-resize handlers that have subscribed via the API\r\n View.prototype.triggerEventResize = function (eventInstance, resizeDelta, undoFunc, el, ev) {\r\n this.publiclyTrigger('eventResize', {\r\n context: el[0],\r\n args: [\r\n eventInstance.toLegacy(),\r\n resizeDelta,\r\n undoFunc,\r\n ev,\r\n {},\r\n this\r\n ]\r\n });\r\n };\r\n /* Selection (time range)\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Selects a date span on the view. `start` and `end` are both Moments.\r\n // `ev` is the native mouse event that begin the interaction.\r\n View.prototype.select = function (footprint, ev) {\r\n this.unselect(ev);\r\n this.renderSelectionFootprint(footprint);\r\n this.reportSelection(footprint, ev);\r\n };\r\n View.prototype.renderSelectionFootprint = function (footprint) {\r\n if (this['renderSelection']) { // legacy method in custom view classes\r\n this['renderSelection'](footprint.toLegacy(this.calendar));\r\n }\r\n else {\r\n _super.prototype.renderSelectionFootprint.call(this, footprint);\r\n }\r\n };\r\n // Called when a new selection is made. Updates internal state and triggers handlers.\r\n View.prototype.reportSelection = function (footprint, ev) {\r\n this.isSelected = true;\r\n this.triggerSelect(footprint, ev);\r\n };\r\n // Triggers handlers to 'select'\r\n View.prototype.triggerSelect = function (footprint, ev) {\r\n var dateProfile = this.calendar.footprintToDateProfile(footprint); // abuse of \"Event\"DateProfile?\r\n this.publiclyTrigger('select', {\r\n context: this,\r\n args: [\r\n dateProfile.start,\r\n dateProfile.end,\r\n ev,\r\n this\r\n ]\r\n });\r\n };\r\n // Undoes a selection. updates in the internal state and triggers handlers.\r\n // `ev` is the native mouse event that began the interaction.\r\n View.prototype.unselect = function (ev) {\r\n if (this.isSelected) {\r\n this.isSelected = false;\r\n if (this['destroySelection']) {\r\n this['destroySelection'](); // TODO: deprecate\r\n }\r\n this.unrenderSelection();\r\n this.publiclyTrigger('unselect', {\r\n context: this,\r\n args: [ev, this]\r\n });\r\n }\r\n };\r\n /* Event Selection\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.selectEventInstance = function (eventInstance) {\r\n if (!this.selectedEventInstance ||\r\n this.selectedEventInstance !== eventInstance) {\r\n this.unselectEventInstance();\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.footprint.eventInstance === eventInstance &&\r\n seg.el // necessary?\r\n ) {\r\n seg.el.addClass('fc-selected');\r\n }\r\n });\r\n this.selectedEventInstance = eventInstance;\r\n }\r\n };\r\n View.prototype.unselectEventInstance = function () {\r\n if (this.selectedEventInstance) {\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.el) { // necessary?\r\n seg.el.removeClass('fc-selected');\r\n }\r\n });\r\n this.selectedEventInstance = null;\r\n }\r\n };\r\n View.prototype.isEventDefSelected = function (eventDef) {\r\n // event references might change on refetchEvents(), while selectedEventInstance doesn't,\r\n // so compare IDs\r\n return this.selectedEventInstance && this.selectedEventInstance.def.id === eventDef.id;\r\n };\r\n /* Mouse / Touch Unselecting (time range & event unselection)\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // TODO: move consistently to down/start or up/end?\r\n // TODO: don't kill previous selection if touch scrolling\r\n View.prototype.handleDocumentMousedown = function (ev) {\r\n if (util_1.isPrimaryMouseButton(ev)) {\r\n this.processUnselect(ev);\r\n }\r\n };\r\n View.prototype.processUnselect = function (ev) {\r\n this.processRangeUnselect(ev);\r\n this.processEventUnselect(ev);\r\n };\r\n View.prototype.processRangeUnselect = function (ev) {\r\n var ignore;\r\n // is there a time-range selection?\r\n if (this.isSelected && this.opt('unselectAuto')) {\r\n // only unselect if the clicked element is not identical to or inside of an 'unselectCancel' element\r\n ignore = this.opt('unselectCancel');\r\n if (!ignore || !$(ev.target).closest(ignore).length) {\r\n this.unselect(ev);\r\n }\r\n }\r\n };\r\n View.prototype.processEventUnselect = function (ev) {\r\n if (this.selectedEventInstance) {\r\n if (!$(ev.target).closest('.fc-selected').length) {\r\n this.unselectEventInstance();\r\n }\r\n }\r\n };\r\n /* Triggers\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.triggerBaseRendered = function () {\r\n this.publiclyTrigger('viewRender', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n View.prototype.triggerBaseUnrendered = function () {\r\n this.publiclyTrigger('viewDestroy', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n // Triggers handlers to 'dayClick'\r\n // Span has start/end of the clicked area. Only the start is useful.\r\n View.prototype.triggerDayClick = function (footprint, dayEl, ev) {\r\n var dateProfile = this.calendar.footprintToDateProfile(footprint); // abuse of \"Event\"DateProfile?\r\n this.publiclyTrigger('dayClick', {\r\n context: dayEl,\r\n args: [dateProfile.start, ev, this]\r\n });\r\n };\r\n /* Date Utils\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // For DateComponent::getDayClasses\r\n View.prototype.isDateInOtherMonth = function (date, dateProfile) {\r\n return false;\r\n };\r\n // Arguments after name will be forwarded to a hypothetical function value\r\n // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects.\r\n // Always clone your objects if you fear mutation.\r\n View.prototype.getUnzonedRangeOption = function (name) {\r\n var val = this.opt(name);\r\n if (typeof val === 'function') {\r\n val = val.apply(null, Array.prototype.slice.call(arguments, 1));\r\n }\r\n if (val) {\r\n return this.calendar.parseUnzonedRange(val);\r\n }\r\n };\r\n /* Hidden Days\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Initializes internal variables related to calculating hidden days-of-week\r\n View.prototype.initHiddenDays = function () {\r\n var hiddenDays = this.opt('hiddenDays') || []; // array of day-of-week indices that are hidden\r\n var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\r\n var dayCnt = 0;\r\n var i;\r\n if (this.opt('weekends') === false) {\r\n hiddenDays.push(0, 6); // 0=sunday, 6=saturday\r\n }\r\n for (i = 0; i < 7; i++) {\r\n if (!(isHiddenDayHash[i] = $.inArray(i, hiddenDays) !== -1)) {\r\n dayCnt++;\r\n }\r\n }\r\n if (!dayCnt) {\r\n throw new Error('invalid hiddenDays'); // all days were hidden? bad.\r\n }\r\n this.isHiddenDayHash = isHiddenDayHash;\r\n };\r\n // Remove days from the beginning and end of the range that are computed as hidden.\r\n // If the whole range is trimmed off, returns null\r\n View.prototype.trimHiddenDays = function (inputUnzonedRange) {\r\n var start = inputUnzonedRange.getStart();\r\n var end = inputUnzonedRange.getEnd();\r\n if (start) {\r\n start = this.skipHiddenDays(start);\r\n }\r\n if (end) {\r\n end = this.skipHiddenDays(end, -1, true);\r\n }\r\n if (start === null || end === null || start < end) {\r\n return new UnzonedRange_1.default(start, end);\r\n }\r\n return null;\r\n };\r\n // Is the current day hidden?\r\n // `day` is a day-of-week index (0-6), or a Moment\r\n View.prototype.isHiddenDay = function (day) {\r\n if (moment.isMoment(day)) {\r\n day = day.day();\r\n }\r\n return this.isHiddenDayHash[day];\r\n };\r\n // Incrementing the current day until it is no longer a hidden day, returning a copy.\r\n // DOES NOT CONSIDER validUnzonedRange!\r\n // If the initial value of `date` is not a hidden day, don't do anything.\r\n // Pass `isExclusive` as `true` if you are dealing with an end date.\r\n // `inc` defaults to `1` (increment one day forward each time)\r\n View.prototype.skipHiddenDays = function (date, inc, isExclusive) {\r\n if (inc === void 0) { inc = 1; }\r\n if (isExclusive === void 0) { isExclusive = false; }\r\n var out = date.clone();\r\n while (this.isHiddenDayHash[(out.day() + (isExclusive ? inc : 0) + 7) % 7]) {\r\n out.add(inc, 'days');\r\n }\r\n return out;\r\n };\r\n return View;\r\n}(InteractiveDateComponent_1.default));\r\nexports.default = View;\r\nView.prototype.usesMinMaxTime = false;\r\nView.prototype.dateProfileGeneratorClass = DateProfileGenerator_1.default;\r\nView.watch('displayingDates', ['isInDom', 'dateProfile'], function (deps) {\r\n this.requestDateRender(deps.dateProfile);\r\n}, function () {\r\n this.requestDateUnrender();\r\n});\r\nView.watch('displayingBusinessHours', ['displayingDates', 'businessHourGenerator'], function (deps) {\r\n this.requestBusinessHoursRender(deps.businessHourGenerator);\r\n}, function () {\r\n this.requestBusinessHoursUnrender();\r\n});\r\nView.watch('initialEvents', ['dateProfile'], function (deps) {\r\n return this.fetchInitialEvents(deps.dateProfile);\r\n});\r\nView.watch('bindingEvents', ['initialEvents'], function (deps) {\r\n this.setEvents(deps.initialEvents);\r\n this.bindEventChanges();\r\n}, function () {\r\n this.unbindEventChanges();\r\n this.unsetEvents();\r\n});\r\nView.watch('displayingEvents', ['displayingDates', 'hasEvents'], function () {\r\n this.requestEventsRender(this.get('currentEvents'));\r\n}, function () {\r\n this.requestEventsUnrender();\r\n});\r\nView.watch('title', ['dateProfile'], function (deps) {\r\n return (this.title = this.computeTitle(deps.dateProfile)); // assign to View for legacy reasons\r\n});\r\nView.watch('legacyDateProps', ['dateProfile'], function (deps) {\r\n var calendar = this.calendar;\r\n var dateProfile = deps.dateProfile;\r\n // DEPRECATED, but we need to keep it updated...\r\n this.start = calendar.msToMoment(dateProfile.activeUnzonedRange.startMs, dateProfile.isRangeAllDay);\r\n this.end = calendar.msToMoment(dateProfile.activeUnzonedRange.endMs, dateProfile.isRangeAllDay);\r\n this.intervalStart = calendar.msToMoment(dateProfile.currentUnzonedRange.startMs, dateProfile.isRangeAllDay);\r\n this.intervalEnd = calendar.msToMoment(dateProfile.currentUnzonedRange.endMs, dateProfile.isRangeAllDay);\r\n});\r\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer = /** @class */ (function () {\r\n function EventRenderer(component, fillRenderer) {\r\n this.view = component._getView();\r\n this.component = component;\r\n this.fillRenderer = fillRenderer;\r\n }\r\n EventRenderer.prototype.opt = function (name) {\r\n return this.view.opt(name);\r\n };\r\n // Updates values that rely on options and also relate to range\r\n EventRenderer.prototype.rangeUpdated = function () {\r\n var displayEventTime;\r\n var displayEventEnd;\r\n this.eventTimeFormat =\r\n this.opt('eventTimeFormat') ||\r\n this.opt('timeFormat') || // deprecated\r\n this.computeEventTimeFormat();\r\n displayEventTime = this.opt('displayEventTime');\r\n if (displayEventTime == null) {\r\n displayEventTime = this.computeDisplayEventTime(); // might be based off of range\r\n }\r\n displayEventEnd = this.opt('displayEventEnd');\r\n if (displayEventEnd == null) {\r\n displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range\r\n }\r\n this.displayEventTime = displayEventTime;\r\n this.displayEventEnd = displayEventEnd;\r\n };\r\n EventRenderer.prototype.render = function (eventsPayload) {\r\n var dateProfile = this.component._getDateProfile();\r\n var eventDefId;\r\n var instanceGroup;\r\n var eventRanges;\r\n var bgRanges = [];\r\n var fgRanges = [];\r\n for (eventDefId in eventsPayload) {\r\n instanceGroup = eventsPayload[eventDefId];\r\n eventRanges = instanceGroup.sliceRenderRanges(dateProfile.activeUnzonedRange);\r\n if (instanceGroup.getEventDef().hasBgRendering()) {\r\n bgRanges.push.apply(bgRanges, eventRanges);\r\n }\r\n else {\r\n fgRanges.push.apply(fgRanges, eventRanges);\r\n }\r\n }\r\n this.renderBgRanges(bgRanges);\r\n this.renderFgRanges(fgRanges);\r\n };\r\n EventRenderer.prototype.unrender = function () {\r\n this.unrenderBgRanges();\r\n this.unrenderFgRanges();\r\n };\r\n EventRenderer.prototype.renderFgRanges = function (eventRanges) {\r\n var eventFootprints = this.component.eventRangesToEventFootprints(eventRanges);\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n // render an `.el` on each seg\r\n // returns a subset of the segs. segs that were actually rendered\r\n segs = this.renderFgSegEls(segs);\r\n if (this.renderFgSegs(segs) !== false) { // no failure?\r\n this.fgSegs = segs;\r\n }\r\n };\r\n EventRenderer.prototype.unrenderFgRanges = function () {\r\n this.unrenderFgSegs(this.fgSegs || []);\r\n this.fgSegs = null;\r\n };\r\n EventRenderer.prototype.renderBgRanges = function (eventRanges) {\r\n var eventFootprints = this.component.eventRangesToEventFootprints(eventRanges);\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n if (this.renderBgSegs(segs) !== false) { // no failure?\r\n this.bgSegs = segs;\r\n }\r\n };\r\n EventRenderer.prototype.unrenderBgRanges = function () {\r\n this.unrenderBgSegs();\r\n this.bgSegs = null;\r\n };\r\n EventRenderer.prototype.getSegs = function () {\r\n return (this.bgSegs || []).concat(this.fgSegs || []);\r\n };\r\n // Renders foreground event segments onto the grid\r\n EventRenderer.prototype.renderFgSegs = function (segs) {\r\n // subclasses must implement\r\n // segs already has rendered els, and has been filtered.\r\n return false; // signal failure if not implemented\r\n };\r\n // Unrenders all currently rendered foreground segments\r\n EventRenderer.prototype.unrenderFgSegs = function (segs) {\r\n // subclasses must implement\r\n };\r\n EventRenderer.prototype.renderBgSegs = function (segs) {\r\n var _this = this;\r\n if (this.fillRenderer) {\r\n this.fillRenderer.renderSegs('bgEvent', segs, {\r\n getClasses: function (seg) {\r\n return _this.getBgClasses(seg.footprint.eventDef);\r\n },\r\n getCss: function (seg) {\r\n return {\r\n 'background-color': _this.getBgColor(seg.footprint.eventDef)\r\n };\r\n },\r\n filterEl: function (seg, el) {\r\n return _this.filterEventRenderEl(seg.footprint, el);\r\n }\r\n });\r\n }\r\n else {\r\n return false; // signal failure if no fillRenderer\r\n }\r\n };\r\n EventRenderer.prototype.unrenderBgSegs = function () {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.unrender('bgEvent');\r\n }\r\n };\r\n // Renders and assigns an `el` property for each foreground event segment.\r\n // Only returns segments that successfully rendered.\r\n EventRenderer.prototype.renderFgSegEls = function (segs, disableResizing) {\r\n var _this = this;\r\n if (disableResizing === void 0) { disableResizing = false; }\r\n var hasEventRenderHandlers = this.view.hasPublicHandlers('eventRender');\r\n var html = '';\r\n var renderedSegs = [];\r\n var i;\r\n if (segs.length) { // don't build an empty html string\r\n // build a large concatenation of event segment HTML\r\n for (i = 0; i < segs.length; i++) {\r\n this.beforeFgSegHtml(segs[i]);\r\n html += this.fgSegHtml(segs[i], disableResizing);\r\n }\r\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\r\n // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false.\r\n $(html).each(function (i, node) {\r\n var seg = segs[i];\r\n var el = $(node);\r\n if (hasEventRenderHandlers) { // optimization\r\n el = _this.filterEventRenderEl(seg.footprint, el);\r\n }\r\n if (el) {\r\n el.data('fc-seg', seg); // used by handlers\r\n seg.el = el;\r\n renderedSegs.push(seg);\r\n }\r\n });\r\n }\r\n return renderedSegs;\r\n };\r\n EventRenderer.prototype.beforeFgSegHtml = function (seg) {\r\n };\r\n // Generates the HTML for the default rendering of a foreground event segment. Used by renderFgSegEls()\r\n EventRenderer.prototype.fgSegHtml = function (seg, disableResizing) {\r\n // subclasses should implement\r\n };\r\n // Generic utility for generating the HTML classNames for an event segment's element\r\n EventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable) {\r\n var classes = [\r\n 'fc-event',\r\n seg.isStart ? 'fc-start' : 'fc-not-start',\r\n seg.isEnd ? 'fc-end' : 'fc-not-end'\r\n ].concat(this.getClasses(seg.footprint.eventDef));\r\n if (isDraggable) {\r\n classes.push('fc-draggable');\r\n }\r\n if (isResizable) {\r\n classes.push('fc-resizable');\r\n }\r\n // event is currently selected? attach a className.\r\n if (this.view.isEventDefSelected(seg.footprint.eventDef)) {\r\n classes.push('fc-selected');\r\n }\r\n return classes;\r\n };\r\n // Given an event and the default element used for rendering, returns the element that should actually be used.\r\n // Basically runs events and elements through the eventRender hook.\r\n EventRenderer.prototype.filterEventRenderEl = function (eventFootprint, el) {\r\n var legacy = eventFootprint.getEventLegacy();\r\n var custom = this.view.publiclyTrigger('eventRender', {\r\n context: legacy,\r\n args: [legacy, el, this.view]\r\n });\r\n if (custom === false) { // means don't render at all\r\n el = null;\r\n }\r\n else if (custom && custom !== true) {\r\n el = $(custom);\r\n }\r\n return el;\r\n };\r\n // Compute the text that should be displayed on an event's element.\r\n // `range` can be the Event object itself, or something range-like, with at least a `start`.\r\n // If event times are disabled, or the event has no time, will return a blank string.\r\n // If not specified, formatStr will default to the eventTimeFormat setting,\r\n // and displayEnd will default to the displayEventEnd setting.\r\n EventRenderer.prototype.getTimeText = function (eventFootprint, formatStr, displayEnd) {\r\n return this._getTimeText(eventFootprint.eventInstance.dateProfile.start, eventFootprint.eventInstance.dateProfile.end, eventFootprint.componentFootprint.isAllDay, formatStr, displayEnd);\r\n };\r\n EventRenderer.prototype._getTimeText = function (start, end, isAllDay, formatStr, displayEnd) {\r\n if (formatStr == null) {\r\n formatStr = this.eventTimeFormat;\r\n }\r\n if (displayEnd == null) {\r\n displayEnd = this.displayEventEnd;\r\n }\r\n if (this.displayEventTime && !isAllDay) {\r\n if (displayEnd && end) {\r\n return this.view.formatRange({ start: start, end: end }, false, // allDay\r\n formatStr);\r\n }\r\n else {\r\n return start.format(formatStr);\r\n }\r\n }\r\n return '';\r\n };\r\n EventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('smallTimeFormat');\r\n };\r\n EventRenderer.prototype.computeDisplayEventTime = function () {\r\n return true;\r\n };\r\n EventRenderer.prototype.computeDisplayEventEnd = function () {\r\n return true;\r\n };\r\n EventRenderer.prototype.getBgClasses = function (eventDef) {\r\n var classNames = this.getClasses(eventDef);\r\n classNames.push('fc-bgevent');\r\n return classNames;\r\n };\r\n EventRenderer.prototype.getClasses = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var classNames = [];\r\n for (i = 0; i < objs.length; i++) {\r\n classNames.push.apply(// append\r\n classNames, objs[i].eventClassName || objs[i].className || []);\r\n }\r\n return classNames;\r\n };\r\n // Utility for generating event skin-related CSS properties\r\n EventRenderer.prototype.getSkinCss = function (eventDef) {\r\n return {\r\n 'background-color': this.getBgColor(eventDef),\r\n 'border-color': this.getBorderColor(eventDef),\r\n color: this.getTextColor(eventDef)\r\n };\r\n };\r\n // Queries for caller-specified color, then falls back to default\r\n EventRenderer.prototype.getBgColor = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var val;\r\n for (i = 0; i < objs.length && !val; i++) {\r\n val = objs[i].eventBackgroundColor || objs[i].eventColor ||\r\n objs[i].backgroundColor || objs[i].color;\r\n }\r\n if (!val) {\r\n val = this.opt('eventBackgroundColor') || this.opt('eventColor');\r\n }\r\n return val;\r\n };\r\n // Queries for caller-specified color, then falls back to default\r\n EventRenderer.prototype.getBorderColor = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var val;\r\n for (i = 0; i < objs.length && !val; i++) {\r\n val = objs[i].eventBorderColor || objs[i].eventColor ||\r\n objs[i].borderColor || objs[i].color;\r\n }\r\n if (!val) {\r\n val = this.opt('eventBorderColor') || this.opt('eventColor');\r\n }\r\n return val;\r\n };\r\n // Queries for caller-specified color, then falls back to default\r\n EventRenderer.prototype.getTextColor = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var val;\r\n for (i = 0; i < objs.length && !val; i++) {\r\n val = objs[i].eventTextColor ||\r\n objs[i].textColor;\r\n }\r\n if (!val) {\r\n val = this.opt('eventTextColor');\r\n }\r\n return val;\r\n };\r\n EventRenderer.prototype.getStylingObjs = function (eventDef) {\r\n var objs = this.getFallbackStylingObjs(eventDef);\r\n objs.unshift(eventDef);\r\n return objs;\r\n };\r\n EventRenderer.prototype.getFallbackStylingObjs = function (eventDef) {\r\n return [eventDef.source];\r\n };\r\n EventRenderer.prototype.sortEventSegs = function (segs) {\r\n segs.sort(util_1.proxy(this, 'compareEventSegs'));\r\n };\r\n // A cmp function for determining which segments should take visual priority\r\n EventRenderer.prototype.compareEventSegs = function (seg1, seg2) {\r\n var f1 = seg1.footprint;\r\n var f2 = seg2.footprint;\r\n var cf1 = f1.componentFootprint;\r\n var cf2 = f2.componentFootprint;\r\n var r1 = cf1.unzonedRange;\r\n var r2 = cf2.unzonedRange;\r\n return r1.startMs - r2.startMs || // earlier events go first\r\n (r2.endMs - r2.startMs) - (r1.endMs - r1.startMs) || // tie? longer events go first\r\n cf2.isAllDay - cf1.isAllDay || // tie? put all-day events first (booleans cast to 0/1)\r\n util_1.compareByFieldSpecs(f1.eventDef, f2.eventDef, this.view.eventOrderSpecs, f1.eventDef.miscProps, f2.eventDef.miscProps);\r\n };\r\n return EventRenderer;\r\n}());\r\nexports.default = EventRenderer;\r\n\n\n/***/ }),\n/* 45 */,\n/* 46 */,\n/* 47 */,\n/* 48 */,\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment_ext_1 = __webpack_require__(11);\r\n// Plugin\r\n// -------------------------------------------------------------------------------------------------\r\nmoment_ext_1.newMomentProto.format = function () {\r\n if (this._fullCalendar && arguments[0]) { // an enhanced moment? and a format string provided?\r\n return formatDate(this, arguments[0]); // our extended formatting\r\n }\r\n if (this._ambigTime) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD');\r\n }\r\n if (this._ambigZone) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD[T]HH:mm:ss');\r\n }\r\n if (this._fullCalendar) { // enhanced non-ambig moment?\r\n // moment.format() doesn't ensure english, but we want to.\r\n return moment_ext_1.oldMomentFormat(englishMoment(this));\r\n }\r\n return moment_ext_1.oldMomentProto.format.apply(this, arguments);\r\n};\r\nmoment_ext_1.newMomentProto.toISOString = function () {\r\n if (this._ambigTime) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD');\r\n }\r\n if (this._ambigZone) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD[T]HH:mm:ss');\r\n }\r\n if (this._fullCalendar) { // enhanced non-ambig moment?\r\n // depending on browser, moment might not output english. ensure english.\r\n // https://github.com/moment/moment/blob/2.18.1/src/lib/moment/format.js#L22\r\n return moment_ext_1.oldMomentProto.toISOString.apply(englishMoment(this), arguments);\r\n }\r\n return moment_ext_1.oldMomentProto.toISOString.apply(this, arguments);\r\n};\r\nfunction englishMoment(mom) {\r\n if (mom.locale() !== 'en') {\r\n return mom.clone().locale('en');\r\n }\r\n return mom;\r\n}\r\n// Config\r\n// ---------------------------------------------------------------------------------------------------------------------\r\n/*\r\nInserted between chunks in the fake (\"intermediate\") formatting string.\r\nImportant that it passes as whitespace (\\s) because moment often identifies non-standalone months\r\nvia a regexp with an \\s.\r\n*/\r\nvar PART_SEPARATOR = '\\u000b'; // vertical tab\r\n/*\r\nInserted as the first character of a literal-text chunk to indicate that the literal text is not actually literal text,\r\nbut rather, a \"special\" token that has custom rendering (see specialTokens map).\r\n*/\r\nvar SPECIAL_TOKEN_MARKER = '\\u001f'; // information separator 1\r\n/*\r\nInserted at the beginning and end of a span of text that must have non-zero numeric characters.\r\nHandling of these markers is done in a post-processing step at the very end of text rendering.\r\n*/\r\nvar MAYBE_MARKER = '\\u001e'; // information separator 2\r\nvar MAYBE_REGEXP = new RegExp(MAYBE_MARKER + '([^' + MAYBE_MARKER + ']*)' + MAYBE_MARKER, 'g'); // must be global\r\n/*\r\nAddition formatting tokens we want recognized\r\n*/\r\nvar specialTokens = {\r\n t: function (date) {\r\n return moment_ext_1.oldMomentFormat(date, 'a').charAt(0);\r\n },\r\n T: function (date) {\r\n return moment_ext_1.oldMomentFormat(date, 'A').charAt(0);\r\n }\r\n};\r\n/*\r\nThe first characters of formatting tokens for units that are 1 day or larger.\r\n`value` is for ranking relative size (lower means bigger).\r\n`unit` is a normalized unit, used for comparing moments.\r\n*/\r\nvar largeTokenMap = {\r\n Y: { value: 1, unit: 'year' },\r\n M: { value: 2, unit: 'month' },\r\n W: { value: 3, unit: 'week' },\r\n w: { value: 3, unit: 'week' },\r\n D: { value: 4, unit: 'day' },\r\n d: { value: 4, unit: 'day' } // day of week\r\n};\r\n// Single Date Formatting\r\n// ---------------------------------------------------------------------------------------------------------------------\r\n/*\r\nFormats `date` with a Moment formatting string, but allow our non-zero areas and special token\r\n*/\r\nfunction formatDate(date, formatStr) {\r\n return renderFakeFormatString(getParsedFormatString(formatStr).fakeFormatString, date);\r\n}\r\nexports.formatDate = formatDate;\r\n// Date Range Formatting\r\n// -------------------------------------------------------------------------------------------------\r\n// TODO: make it work with timezone offset\r\n/*\r\nUsing a formatting string meant for a single date, generate a range string, like\r\n\"Sep 2 - 9 2013\", that intelligently inserts a separator where the dates differ.\r\nIf the dates are the same as far as the format string is concerned, just return a single\r\nrendering of one date, without any separator.\r\n*/\r\nfunction formatRange(date1, date2, formatStr, separator, isRTL) {\r\n var localeData;\r\n date1 = moment_ext_1.default.parseZone(date1);\r\n date2 = moment_ext_1.default.parseZone(date2);\r\n localeData = date1.localeData();\r\n // Expand localized format strings, like \"LL\" -> \"MMMM D YYYY\".\r\n // BTW, this is not important for `formatDate` because it is impossible to put custom tokens\r\n // or non-zero areas in Moment's localized format strings.\r\n formatStr = localeData.longDateFormat(formatStr) || formatStr;\r\n return renderParsedFormat(getParsedFormatString(formatStr), date1, date2, separator || ' - ', isRTL);\r\n}\r\nexports.formatRange = formatRange;\r\n/*\r\nRenders a range with an already-parsed format string.\r\n*/\r\nfunction renderParsedFormat(parsedFormat, date1, date2, separator, isRTL) {\r\n var sameUnits = parsedFormat.sameUnits;\r\n var unzonedDate1 = date1.clone().stripZone(); // for same-unit comparisons\r\n var unzonedDate2 = date2.clone().stripZone(); // \"\r\n var renderedParts1 = renderFakeFormatStringParts(parsedFormat.fakeFormatString, date1);\r\n var renderedParts2 = renderFakeFormatStringParts(parsedFormat.fakeFormatString, date2);\r\n var leftI;\r\n var leftStr = '';\r\n var rightI;\r\n var rightStr = '';\r\n var middleI;\r\n var middleStr1 = '';\r\n var middleStr2 = '';\r\n var middleStr = '';\r\n // Start at the leftmost side of the formatting string and continue until you hit a token\r\n // that is not the same between dates.\r\n for (leftI = 0; leftI < sameUnits.length && (!sameUnits[leftI] || unzonedDate1.isSame(unzonedDate2, sameUnits[leftI])); leftI++) {\r\n leftStr += renderedParts1[leftI];\r\n }\r\n // Similarly, start at the rightmost side of the formatting string and move left\r\n for (rightI = sameUnits.length - 1; rightI > leftI && (!sameUnits[rightI] || unzonedDate1.isSame(unzonedDate2, sameUnits[rightI])); rightI--) {\r\n // If current chunk is on the boundary of unique date-content, and is a special-case\r\n // date-formatting postfix character, then don't consume it. Consider it unique date-content.\r\n // TODO: make configurable\r\n if (rightI - 1 === leftI && renderedParts1[rightI] === '.') {\r\n break;\r\n }\r\n rightStr = renderedParts1[rightI] + rightStr;\r\n }\r\n // The area in the middle is different for both of the dates.\r\n // Collect them distinctly so we can jam them together later.\r\n for (middleI = leftI; middleI <= rightI; middleI++) {\r\n middleStr1 += renderedParts1[middleI];\r\n middleStr2 += renderedParts2[middleI];\r\n }\r\n if (middleStr1 || middleStr2) {\r\n if (isRTL) {\r\n middleStr = middleStr2 + separator + middleStr1;\r\n }\r\n else {\r\n middleStr = middleStr1 + separator + middleStr2;\r\n }\r\n }\r\n return processMaybeMarkers(leftStr + middleStr + rightStr);\r\n}\r\n// Format String Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nvar parsedFormatStrCache = {};\r\n/*\r\nReturns a parsed format string, leveraging a cache.\r\n*/\r\nfunction getParsedFormatString(formatStr) {\r\n return parsedFormatStrCache[formatStr] ||\r\n (parsedFormatStrCache[formatStr] = parseFormatString(formatStr));\r\n}\r\n/*\r\nParses a format string into the following:\r\n- fakeFormatString: a momentJS formatting string, littered with special control characters that get post-processed.\r\n- sameUnits: for every part in fakeFormatString, if the part is a token, the value will be a unit string (like \"day\"),\r\n that indicates how similar a range's start & end must be in order to share the same formatted text.\r\n If not a token, then the value is null.\r\n Always a flat array (not nested liked \"chunks\").\r\n*/\r\nfunction parseFormatString(formatStr) {\r\n var chunks = chunkFormatString(formatStr);\r\n return {\r\n fakeFormatString: buildFakeFormatString(chunks),\r\n sameUnits: buildSameUnits(chunks)\r\n };\r\n}\r\n/*\r\nBreak the formatting string into an array of chunks.\r\nA 'maybe' chunk will have nested chunks.\r\n*/\r\nfunction chunkFormatString(formatStr) {\r\n var chunks = [];\r\n var match;\r\n // TODO: more descrimination\r\n // \\4 is a backreference to the first character of a multi-character set.\r\n var chunker = /\\[([^\\]]*)\\]|\\(([^\\)]*)\\)|(LTS|LT|(\\w)\\4*o?)|([^\\w\\[\\(]+)/g;\r\n while ((match = chunker.exec(formatStr))) {\r\n if (match[1]) { // a literal string inside [ ... ]\r\n chunks.push.apply(chunks, // append\r\n splitStringLiteral(match[1]));\r\n }\r\n else if (match[2]) { // non-zero formatting inside ( ... )\r\n chunks.push({ maybe: chunkFormatString(match[2]) });\r\n }\r\n else if (match[3]) { // a formatting token\r\n chunks.push({ token: match[3] });\r\n }\r\n else if (match[5]) { // an unenclosed literal string\r\n chunks.push.apply(chunks, // append\r\n splitStringLiteral(match[5]));\r\n }\r\n }\r\n return chunks;\r\n}\r\n/*\r\nPotentially splits a literal-text string into multiple parts. For special cases.\r\n*/\r\nfunction splitStringLiteral(s) {\r\n if (s === '. ') {\r\n return ['.', ' ']; // for locales with periods bound to the end of each year/month/date\r\n }\r\n else {\r\n return [s];\r\n }\r\n}\r\n/*\r\nGiven chunks parsed from a real format string, generate a fake (aka \"intermediate\") format string with special control\r\ncharacters that will eventually be given to moment for formatting, and then post-processed.\r\n*/\r\nfunction buildFakeFormatString(chunks) {\r\n var parts = [];\r\n var i;\r\n var chunk;\r\n for (i = 0; i < chunks.length; i++) {\r\n chunk = chunks[i];\r\n if (typeof chunk === 'string') {\r\n parts.push('[' + chunk + ']');\r\n }\r\n else if (chunk.token) {\r\n if (chunk.token in specialTokens) {\r\n parts.push(SPECIAL_TOKEN_MARKER + // useful during post-processing\r\n '[' + chunk.token + ']' // preserve as literal text\r\n );\r\n }\r\n else {\r\n parts.push(chunk.token); // unprotected text implies a format string\r\n }\r\n }\r\n else if (chunk.maybe) {\r\n parts.push(MAYBE_MARKER + // useful during post-processing\r\n buildFakeFormatString(chunk.maybe) +\r\n MAYBE_MARKER);\r\n }\r\n }\r\n return parts.join(PART_SEPARATOR);\r\n}\r\n/*\r\nGiven parsed chunks from a real formatting string, generates an array of unit strings (like \"day\") that indicate\r\nin which regard two dates must be similar in order to share range formatting text.\r\nThe `chunks` can be nested (because of \"maybe\" chunks), however, the returned array will be flat.\r\n*/\r\nfunction buildSameUnits(chunks) {\r\n var units = [];\r\n var i;\r\n var chunk;\r\n var tokenInfo;\r\n for (i = 0; i < chunks.length; i++) {\r\n chunk = chunks[i];\r\n if (chunk.token) {\r\n tokenInfo = largeTokenMap[chunk.token.charAt(0)];\r\n units.push(tokenInfo ? tokenInfo.unit : 'second'); // default to a very strict same-second\r\n }\r\n else if (chunk.maybe) {\r\n units.push.apply(units, // append\r\n buildSameUnits(chunk.maybe));\r\n }\r\n else {\r\n units.push(null);\r\n }\r\n }\r\n return units;\r\n}\r\n// Rendering to text\r\n// ---------------------------------------------------------------------------------------------------------------------\r\n/*\r\nFormats a date with a fake format string, post-processes the control characters, then returns.\r\n*/\r\nfunction renderFakeFormatString(fakeFormatString, date) {\r\n return processMaybeMarkers(renderFakeFormatStringParts(fakeFormatString, date).join(''));\r\n}\r\n/*\r\nFormats a date into parts that will have been post-processed, EXCEPT for the \"maybe\" markers.\r\n*/\r\nfunction renderFakeFormatStringParts(fakeFormatString, date) {\r\n var parts = [];\r\n var fakeRender = moment_ext_1.oldMomentFormat(date, fakeFormatString);\r\n var fakeParts = fakeRender.split(PART_SEPARATOR);\r\n var i;\r\n var fakePart;\r\n for (i = 0; i < fakeParts.length; i++) {\r\n fakePart = fakeParts[i];\r\n if (fakePart.charAt(0) === SPECIAL_TOKEN_MARKER) {\r\n parts.push(\r\n // the literal string IS the token's name.\r\n // call special token's registered function.\r\n specialTokens[fakePart.substring(1)](date));\r\n }\r\n else {\r\n parts.push(fakePart);\r\n }\r\n }\r\n return parts;\r\n}\r\n/*\r\nAccepts an almost-finally-formatted string and processes the \"maybe\" control characters, returning a new string.\r\n*/\r\nfunction processMaybeMarkers(s) {\r\n return s.replace(MAYBE_REGEXP, function (m0, m1) {\r\n if (m1.match(/[1-9]/)) { // any non-zero numeric characters?\r\n return m1;\r\n }\r\n else {\r\n return '';\r\n }\r\n });\r\n}\r\n// Misc Utils\r\n// -------------------------------------------------------------------------------------------------\r\n/*\r\nReturns a unit string, either 'year', 'month', 'day', or null for the most granular formatting token in the string.\r\n*/\r\nfunction queryMostGranularFormatUnit(formatStr) {\r\n var chunks = chunkFormatString(formatStr);\r\n var i;\r\n var chunk;\r\n var candidate;\r\n var best;\r\n for (i = 0; i < chunks.length; i++) {\r\n chunk = chunks[i];\r\n if (chunk.token) {\r\n candidate = largeTokenMap[chunk.token.charAt(0)];\r\n if (candidate) {\r\n if (!best || candidate.value > best.value) {\r\n best = candidate;\r\n }\r\n }\r\n }\r\n }\r\n if (best) {\r\n return best.unit;\r\n }\r\n return null;\r\n}\r\nexports.queryMostGranularFormatUnit = queryMostGranularFormatUnit;\r\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventRange = /** @class */ (function () {\r\n function EventRange(unzonedRange, eventDef, eventInstance) {\r\n this.unzonedRange = unzonedRange;\r\n this.eventDef = eventDef;\r\n if (eventInstance) {\r\n this.eventInstance = eventInstance;\r\n }\r\n }\r\n return EventRange;\r\n}());\r\nexports.default = EventRange;\r\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Class_1 = __webpack_require__(35);\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar Model = /** @class */ (function (_super) {\r\n tslib_1.__extends(Model, _super);\r\n function Model() {\r\n var _this = _super.call(this) || this;\r\n _this._watchers = {};\r\n _this._props = {};\r\n _this.applyGlobalWatchers();\r\n _this.constructed();\r\n return _this;\r\n }\r\n Model.watch = function (name) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n // subclasses should make a masked-copy of the superclass's map\r\n // TODO: write test\r\n if (!this.prototype.hasOwnProperty('_globalWatchArgs')) {\r\n this.prototype._globalWatchArgs = Object.create(this.prototype._globalWatchArgs);\r\n }\r\n this.prototype._globalWatchArgs[name] = args;\r\n };\r\n Model.prototype.constructed = function () {\r\n // useful for monkeypatching. TODO: BaseClass?\r\n };\r\n Model.prototype.applyGlobalWatchers = function () {\r\n var map = this._globalWatchArgs;\r\n var name;\r\n for (name in map) {\r\n this.watch.apply(this, [name].concat(map[name]));\r\n }\r\n };\r\n Model.prototype.has = function (name) {\r\n return name in this._props;\r\n };\r\n Model.prototype.get = function (name) {\r\n if (name === undefined) {\r\n return this._props;\r\n }\r\n return this._props[name];\r\n };\r\n Model.prototype.set = function (name, val) {\r\n var newProps;\r\n if (typeof name === 'string') {\r\n newProps = {};\r\n newProps[name] = val === undefined ? null : val;\r\n }\r\n else {\r\n newProps = name;\r\n }\r\n this.setProps(newProps);\r\n };\r\n Model.prototype.reset = function (newProps) {\r\n var oldProps = this._props;\r\n var changeset = {}; // will have undefined's to signal unsets\r\n var name;\r\n for (name in oldProps) {\r\n changeset[name] = undefined;\r\n }\r\n for (name in newProps) {\r\n changeset[name] = newProps[name];\r\n }\r\n this.setProps(changeset);\r\n };\r\n Model.prototype.unset = function (name) {\r\n var newProps = {};\r\n var names;\r\n var i;\r\n if (typeof name === 'string') {\r\n names = [name];\r\n }\r\n else {\r\n names = name;\r\n }\r\n for (i = 0; i < names.length; i++) {\r\n newProps[names[i]] = undefined;\r\n }\r\n this.setProps(newProps);\r\n };\r\n Model.prototype.setProps = function (newProps) {\r\n var changedProps = {};\r\n var changedCnt = 0;\r\n var name;\r\n var val;\r\n for (name in newProps) {\r\n val = newProps[name];\r\n // a change in value?\r\n // if an object, don't check equality, because might have been mutated internally.\r\n // TODO: eventually enforce immutability.\r\n if (typeof val === 'object' ||\r\n val !== this._props[name]) {\r\n changedProps[name] = val;\r\n changedCnt++;\r\n }\r\n }\r\n if (changedCnt) {\r\n this.trigger('before:batchChange', changedProps);\r\n for (name in changedProps) {\r\n val = changedProps[name];\r\n this.trigger('before:change', name, val);\r\n this.trigger('before:change:' + name, val);\r\n }\r\n for (name in changedProps) {\r\n val = changedProps[name];\r\n if (val === undefined) {\r\n delete this._props[name];\r\n }\r\n else {\r\n this._props[name] = val;\r\n }\r\n this.trigger('change:' + name, val);\r\n this.trigger('change', name, val);\r\n }\r\n this.trigger('batchChange', changedProps);\r\n }\r\n };\r\n Model.prototype.watch = function (name, depList, startFunc, stopFunc) {\r\n var _this = this;\r\n this.unwatch(name);\r\n this._watchers[name] = this._watchDeps(depList, function (deps) {\r\n var res = startFunc.call(_this, deps);\r\n if (res && res.then) {\r\n _this.unset(name); // put in an unset state while resolving\r\n res.then(function (val) {\r\n _this.set(name, val);\r\n });\r\n }\r\n else {\r\n _this.set(name, res);\r\n }\r\n }, function (deps) {\r\n _this.unset(name);\r\n if (stopFunc) {\r\n stopFunc.call(_this, deps);\r\n }\r\n });\r\n };\r\n Model.prototype.unwatch = function (name) {\r\n var watcher = this._watchers[name];\r\n if (watcher) {\r\n delete this._watchers[name];\r\n watcher.teardown();\r\n }\r\n };\r\n Model.prototype._watchDeps = function (depList, startFunc, stopFunc) {\r\n var _this = this;\r\n var queuedChangeCnt = 0;\r\n var depCnt = depList.length;\r\n var satisfyCnt = 0;\r\n var values = {}; // what's passed as the `deps` arguments\r\n var bindTuples = []; // array of [ eventName, handlerFunc ] arrays\r\n var isCallingStop = false;\r\n var onBeforeDepChange = function (depName, val, isOptional) {\r\n queuedChangeCnt++;\r\n if (queuedChangeCnt === 1) { // first change to cause a \"stop\" ?\r\n if (satisfyCnt === depCnt) { // all deps previously satisfied?\r\n isCallingStop = true;\r\n stopFunc(values);\r\n isCallingStop = false;\r\n }\r\n }\r\n };\r\n var onDepChange = function (depName, val, isOptional) {\r\n if (val === undefined) { // unsetting a value?\r\n // required dependency that was previously set?\r\n if (!isOptional && values[depName] !== undefined) {\r\n satisfyCnt--;\r\n }\r\n delete values[depName];\r\n }\r\n else { // setting a value?\r\n // required dependency that was previously unset?\r\n if (!isOptional && values[depName] === undefined) {\r\n satisfyCnt++;\r\n }\r\n values[depName] = val;\r\n }\r\n queuedChangeCnt--;\r\n if (!queuedChangeCnt) { // last change to cause a \"start\"?\r\n // now finally satisfied or satisfied all along?\r\n if (satisfyCnt === depCnt) {\r\n // if the stopFunc initiated another value change, ignore it.\r\n // it will be processed by another change event anyway.\r\n if (!isCallingStop) {\r\n startFunc(values);\r\n }\r\n }\r\n }\r\n };\r\n // intercept for .on() that remembers handlers\r\n var bind = function (eventName, handler) {\r\n _this.on(eventName, handler);\r\n bindTuples.push([eventName, handler]);\r\n };\r\n // listen to dependency changes\r\n depList.forEach(function (depName) {\r\n var isOptional = false;\r\n if (depName.charAt(0) === '?') { // TODO: more DRY\r\n depName = depName.substring(1);\r\n isOptional = true;\r\n }\r\n bind('before:change:' + depName, function (val) {\r\n onBeforeDepChange(depName, val, isOptional);\r\n });\r\n bind('change:' + depName, function (val) {\r\n onDepChange(depName, val, isOptional);\r\n });\r\n });\r\n // process current dependency values\r\n depList.forEach(function (depName) {\r\n var isOptional = false;\r\n if (depName.charAt(0) === '?') { // TODO: more DRY\r\n depName = depName.substring(1);\r\n isOptional = true;\r\n }\r\n if (_this.has(depName)) {\r\n values[depName] = _this.get(depName);\r\n satisfyCnt++;\r\n }\r\n else if (isOptional) {\r\n satisfyCnt++;\r\n }\r\n });\r\n // initially satisfied\r\n if (satisfyCnt === depCnt) {\r\n startFunc(values);\r\n }\r\n return {\r\n teardown: function () {\r\n // remove all handlers\r\n for (var i = 0; i < bindTuples.length; i++) {\r\n _this.off(bindTuples[i][0], bindTuples[i][1]);\r\n }\r\n bindTuples = null;\r\n // was satisfied, so call stopFunc\r\n if (satisfyCnt === depCnt) {\r\n stopFunc();\r\n }\r\n },\r\n flash: function () {\r\n if (satisfyCnt === depCnt) {\r\n stopFunc();\r\n startFunc(values);\r\n }\r\n }\r\n };\r\n };\r\n Model.prototype.flash = function (name) {\r\n var watcher = this._watchers[name];\r\n if (watcher) {\r\n watcher.flash();\r\n }\r\n };\r\n return Model;\r\n}(Class_1.default));\r\nexports.default = Model;\r\nModel.prototype._globalWatchArgs = {}; // mutation protection in Model.watch\r\nEmitterMixin_1.default.mixInto(Model);\r\nListenerMixin_1.default.mixInto(Model);\r\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\r\nUSAGE:\r\n import { default as ParsableModelMixin, ParsableModelInterface } from './ParsableModelMixin'\r\nin class:\r\n applyProps: ParsableModelInterface['applyProps']\r\n applyManualStandardProps: ParsableModelInterface['applyManualStandardProps']\r\n applyMiscProps: ParsableModelInterface['applyMiscProps']\r\n isStandardProp: ParsableModelInterface['isStandardProp']\r\n static defineStandardProps = ParsableModelMixin.defineStandardProps\r\n static copyVerbatimStandardProps = ParsableModelMixin.copyVerbatimStandardProps\r\nafter class:\r\n ParsableModelMixin.mixInto(TheClass)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar Mixin_1 = __webpack_require__(15);\r\nvar ParsableModelMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(ParsableModelMixin, _super);\r\n function ParsableModelMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ParsableModelMixin.defineStandardProps = function (propDefs) {\r\n var proto = this.prototype;\r\n if (!proto.hasOwnProperty('standardPropMap')) {\r\n proto.standardPropMap = Object.create(proto.standardPropMap);\r\n }\r\n util_1.copyOwnProps(propDefs, proto.standardPropMap);\r\n };\r\n ParsableModelMixin.copyVerbatimStandardProps = function (src, dest) {\r\n var map = this.prototype.standardPropMap;\r\n var propName;\r\n for (propName in map) {\r\n if (src[propName] != null && // in the src object?\r\n map[propName] === true // false means \"copy verbatim\"\r\n ) {\r\n dest[propName] = src[propName];\r\n }\r\n }\r\n };\r\n /*\r\n Returns true/false for success.\r\n Meant to be only called ONCE, at object creation.\r\n */\r\n ParsableModelMixin.prototype.applyProps = function (rawProps) {\r\n var standardPropMap = this.standardPropMap;\r\n var manualProps = {};\r\n var miscProps = {};\r\n var propName;\r\n for (propName in rawProps) {\r\n if (standardPropMap[propName] === true) { // copy verbatim\r\n this[propName] = rawProps[propName];\r\n }\r\n else if (standardPropMap[propName] === false) {\r\n manualProps[propName] = rawProps[propName];\r\n }\r\n else {\r\n miscProps[propName] = rawProps[propName];\r\n }\r\n }\r\n this.applyMiscProps(miscProps);\r\n return this.applyManualStandardProps(manualProps);\r\n };\r\n /*\r\n If subclasses override, they must call this supermethod and return the boolean response.\r\n Meant to be only called ONCE, at object creation.\r\n */\r\n ParsableModelMixin.prototype.applyManualStandardProps = function (rawProps) {\r\n return true;\r\n };\r\n /*\r\n Can be called even after initial object creation.\r\n */\r\n ParsableModelMixin.prototype.applyMiscProps = function (rawProps) {\r\n // subclasses can implement\r\n };\r\n /*\r\n TODO: why is this a method when defineStandardProps is static\r\n */\r\n ParsableModelMixin.prototype.isStandardProp = function (propName) {\r\n return propName in this.standardPropMap;\r\n };\r\n return ParsableModelMixin;\r\n}(Mixin_1.default));\r\nexports.default = ParsableModelMixin;\r\nParsableModelMixin.prototype.standardPropMap = {}; // will be cloned by defineStandardProps\r\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventInstance = /** @class */ (function () {\r\n function EventInstance(def, dateProfile) {\r\n this.def = def;\r\n this.dateProfile = dateProfile;\r\n }\r\n EventInstance.prototype.toLegacy = function () {\r\n var dateProfile = this.dateProfile;\r\n var obj = this.def.toLegacy();\r\n obj.start = dateProfile.start.clone();\r\n obj.end = dateProfile.end ? dateProfile.end.clone() : null;\r\n return obj;\r\n };\r\n return EventInstance;\r\n}());\r\nexports.default = EventInstance;\r\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar EventDef_1 = __webpack_require__(37);\r\nvar EventInstance_1 = __webpack_require__(53);\r\nvar EventDateProfile_1 = __webpack_require__(16);\r\nvar RecurringEventDef = /** @class */ (function (_super) {\r\n tslib_1.__extends(RecurringEventDef, _super);\r\n function RecurringEventDef() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RecurringEventDef.prototype.isAllDay = function () {\r\n return !this.startTime && !this.endTime;\r\n };\r\n RecurringEventDef.prototype.buildInstances = function (unzonedRange) {\r\n var calendar = this.source.calendar;\r\n var unzonedDate = unzonedRange.getStart();\r\n var unzonedEnd = unzonedRange.getEnd();\r\n var zonedDayStart;\r\n var instanceStart;\r\n var instanceEnd;\r\n var instances = [];\r\n while (unzonedDate.isBefore(unzonedEnd)) {\r\n // if everyday, or this particular day-of-week\r\n if (!this.dowHash || this.dowHash[unzonedDate.day()]) {\r\n zonedDayStart = calendar.applyTimezone(unzonedDate);\r\n instanceStart = zonedDayStart.clone();\r\n instanceEnd = null;\r\n if (this.startTime) {\r\n instanceStart.time(this.startTime);\r\n }\r\n else {\r\n instanceStart.stripTime();\r\n }\r\n if (this.endTime) {\r\n instanceEnd = zonedDayStart.clone().time(this.endTime);\r\n }\r\n instances.push(new EventInstance_1.default(this, // definition\r\n new EventDateProfile_1.default(instanceStart, instanceEnd, calendar)));\r\n }\r\n unzonedDate.add(1, 'days');\r\n }\r\n return instances;\r\n };\r\n RecurringEventDef.prototype.setDow = function (dowNumbers) {\r\n if (!this.dowHash) {\r\n this.dowHash = {};\r\n }\r\n for (var i = 0; i < dowNumbers.length; i++) {\r\n this.dowHash[dowNumbers[i]] = true;\r\n }\r\n };\r\n RecurringEventDef.prototype.clone = function () {\r\n var def = _super.prototype.clone.call(this);\r\n if (def.startTime) {\r\n def.startTime = moment.duration(this.startTime);\r\n }\r\n if (def.endTime) {\r\n def.endTime = moment.duration(this.endTime);\r\n }\r\n if (this.dowHash) {\r\n def.dowHash = $.extend({}, this.dowHash);\r\n }\r\n return def;\r\n };\r\n return RecurringEventDef;\r\n}(EventDef_1.default));\r\nexports.default = RecurringEventDef;\r\n/*\r\nHACK to work with TypeScript mixins\r\nNOTE: if super-method fails, should still attempt to apply\r\n*/\r\nRecurringEventDef.prototype.applyProps = function (rawProps) {\r\n var superSuccess = EventDef_1.default.prototype.applyProps.call(this, rawProps);\r\n if (rawProps.start) {\r\n this.startTime = moment.duration(rawProps.start);\r\n }\r\n if (rawProps.end) {\r\n this.endTime = moment.duration(rawProps.end);\r\n }\r\n if (rawProps.dow) {\r\n this.setDow(rawProps.dow);\r\n }\r\n return superSuccess;\r\n};\r\n// Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nRecurringEventDef.defineStandardProps({\r\n start: false,\r\n end: false,\r\n dow: false\r\n});\r\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar DateProfileGenerator = /** @class */ (function () {\r\n function DateProfileGenerator(_view) {\r\n this._view = _view;\r\n }\r\n DateProfileGenerator.prototype.opt = function (name) {\r\n return this._view.opt(name);\r\n };\r\n DateProfileGenerator.prototype.trimHiddenDays = function (unzonedRange) {\r\n return this._view.trimHiddenDays(unzonedRange);\r\n };\r\n DateProfileGenerator.prototype.msToUtcMoment = function (ms, forceAllDay) {\r\n return this._view.calendar.msToUtcMoment(ms, forceAllDay);\r\n };\r\n /* Date Range Computation\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\r\n DateProfileGenerator.prototype.buildPrev = function (currentDateProfile) {\r\n var prevDate = currentDateProfile.date.clone()\r\n .startOf(currentDateProfile.currentRangeUnit)\r\n .subtract(currentDateProfile.dateIncrement);\r\n return this.build(prevDate, -1);\r\n };\r\n // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\r\n DateProfileGenerator.prototype.buildNext = function (currentDateProfile) {\r\n var nextDate = currentDateProfile.date.clone()\r\n .startOf(currentDateProfile.currentRangeUnit)\r\n .add(currentDateProfile.dateIncrement);\r\n return this.build(nextDate, 1);\r\n };\r\n // Builds a structure holding dates/ranges for rendering around the given date.\r\n // Optional direction param indicates whether the date is being incremented/decremented\r\n // from its previous value. decremented = -1, incremented = 1 (default).\r\n DateProfileGenerator.prototype.build = function (date, direction, forceToValid) {\r\n if (forceToValid === void 0) { forceToValid = false; }\r\n var isDateAllDay = !date.hasTime();\r\n var validUnzonedRange;\r\n var minTime = null;\r\n var maxTime = null;\r\n var currentInfo;\r\n var isRangeAllDay;\r\n var renderUnzonedRange;\r\n var activeUnzonedRange;\r\n var isValid;\r\n validUnzonedRange = this.buildValidRange();\r\n validUnzonedRange = this.trimHiddenDays(validUnzonedRange);\r\n if (forceToValid) {\r\n date = this.msToUtcMoment(validUnzonedRange.constrainDate(date), // returns MS\r\n isDateAllDay);\r\n }\r\n currentInfo = this.buildCurrentRangeInfo(date, direction);\r\n isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\r\n renderUnzonedRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.unzonedRange), currentInfo.unit, isRangeAllDay);\r\n renderUnzonedRange = this.trimHiddenDays(renderUnzonedRange);\r\n activeUnzonedRange = renderUnzonedRange.clone();\r\n if (!this.opt('showNonCurrentDates')) {\r\n activeUnzonedRange = activeUnzonedRange.intersect(currentInfo.unzonedRange);\r\n }\r\n minTime = moment.duration(this.opt('minTime'));\r\n maxTime = moment.duration(this.opt('maxTime'));\r\n activeUnzonedRange = this.adjustActiveRange(activeUnzonedRange, minTime, maxTime);\r\n activeUnzonedRange = activeUnzonedRange.intersect(validUnzonedRange); // might return null\r\n if (activeUnzonedRange) {\r\n date = this.msToUtcMoment(activeUnzonedRange.constrainDate(date), // returns MS\r\n isDateAllDay);\r\n }\r\n // it's invalid if the originally requested date is not contained,\r\n // or if the range is completely outside of the valid range.\r\n isValid = currentInfo.unzonedRange.intersectsWith(validUnzonedRange);\r\n return {\r\n // constraint for where prev/next operations can go and where events can be dragged/resized to.\r\n // an object with optional start and end properties.\r\n validUnzonedRange: validUnzonedRange,\r\n // range the view is formally responsible for.\r\n // for example, a month view might have 1st-31st, excluding padded dates\r\n currentUnzonedRange: currentInfo.unzonedRange,\r\n // name of largest unit being displayed, like \"month\" or \"week\"\r\n currentRangeUnit: currentInfo.unit,\r\n isRangeAllDay: isRangeAllDay,\r\n // dates that display events and accept drag-n-drop\r\n // will be `null` if no dates accept events\r\n activeUnzonedRange: activeUnzonedRange,\r\n // date range with a rendered skeleton\r\n // includes not-active days that need some sort of DOM\r\n renderUnzonedRange: renderUnzonedRange,\r\n // Duration object that denotes the first visible time of any given day\r\n minTime: minTime,\r\n // Duration object that denotes the exclusive visible end time of any given day\r\n maxTime: maxTime,\r\n isValid: isValid,\r\n date: date,\r\n // how far the current date will move for a prev/next operation\r\n dateIncrement: this.buildDateIncrement(currentInfo.duration)\r\n // pass a fallback (might be null) ^\r\n };\r\n };\r\n // Builds an object with optional start/end properties.\r\n // Indicates the minimum/maximum dates to display.\r\n // not responsible for trimming hidden days.\r\n DateProfileGenerator.prototype.buildValidRange = function () {\r\n return this._view.getUnzonedRangeOption('validRange', this._view.calendar.getNow()) ||\r\n new UnzonedRange_1.default(); // completely open-ended\r\n };\r\n // Builds a structure with info about the \"current\" range, the range that is\r\n // highlighted as being the current month for example.\r\n // See build() for a description of `direction`.\r\n // Guaranteed to have `range` and `unit` properties. `duration` is optional.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) {\r\n var viewSpec = this._view.viewSpec;\r\n var duration = null;\r\n var unit = null;\r\n var unzonedRange = null;\r\n var dayCount;\r\n if (viewSpec.duration) {\r\n duration = viewSpec.duration;\r\n unit = viewSpec.durationUnit;\r\n unzonedRange = this.buildRangeFromDuration(date, direction, duration, unit);\r\n }\r\n else if ((dayCount = this.opt('dayCount'))) {\r\n unit = 'day';\r\n unzonedRange = this.buildRangeFromDayCount(date, direction, dayCount);\r\n }\r\n else if ((unzonedRange = this.buildCustomVisibleRange(date))) {\r\n unit = util_1.computeGreatestUnit(unzonedRange.getStart(), unzonedRange.getEnd());\r\n }\r\n else {\r\n duration = this.getFallbackDuration();\r\n unit = util_1.computeGreatestUnit(duration);\r\n unzonedRange = this.buildRangeFromDuration(date, direction, duration, unit);\r\n }\r\n return { duration: duration, unit: unit, unzonedRange: unzonedRange };\r\n };\r\n DateProfileGenerator.prototype.getFallbackDuration = function () {\r\n return moment.duration({ days: 1 });\r\n };\r\n // Returns a new activeUnzonedRange to have time values (un-ambiguate)\r\n // minTime or maxTime causes the range to expand.\r\n DateProfileGenerator.prototype.adjustActiveRange = function (unzonedRange, minTime, maxTime) {\r\n var start = unzonedRange.getStart();\r\n var end = unzonedRange.getEnd();\r\n if (this._view.usesMinMaxTime) {\r\n if (minTime < 0) {\r\n start.time(0).add(minTime);\r\n }\r\n if (maxTime > 24 * 60 * 60 * 1000) { // beyond 24 hours?\r\n end.time(maxTime - (24 * 60 * 60 * 1000));\r\n }\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n // Builds the \"current\" range when it is specified as an explicit duration.\r\n // `unit` is the already-computed computeGreatestUnit value of duration.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) {\r\n var alignment = this.opt('dateAlignment');\r\n var dateIncrementInput;\r\n var dateIncrementDuration;\r\n var start;\r\n var end;\r\n var res;\r\n // compute what the alignment should be\r\n if (!alignment) {\r\n dateIncrementInput = this.opt('dateIncrement');\r\n if (dateIncrementInput) {\r\n dateIncrementDuration = moment.duration(dateIncrementInput);\r\n // use the smaller of the two units\r\n if (dateIncrementDuration < duration) {\r\n alignment = util_1.computeDurationGreatestUnit(dateIncrementDuration, dateIncrementInput);\r\n }\r\n else {\r\n alignment = unit;\r\n }\r\n }\r\n else {\r\n alignment = unit;\r\n }\r\n }\r\n // if the view displays a single day or smaller\r\n if (duration.as('days') <= 1) {\r\n if (this._view.isHiddenDay(start)) {\r\n start = this._view.skipHiddenDays(start, direction);\r\n start.startOf('day');\r\n }\r\n }\r\n function computeRes() {\r\n start = date.clone().startOf(alignment);\r\n end = start.clone().add(duration);\r\n res = new UnzonedRange_1.default(start, end);\r\n }\r\n computeRes();\r\n // if range is completely enveloped by hidden days, go past the hidden days\r\n if (!this.trimHiddenDays(res)) {\r\n date = this._view.skipHiddenDays(date, direction);\r\n computeRes();\r\n }\r\n return res;\r\n };\r\n // Builds the \"current\" range when a dayCount is specified.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) {\r\n var customAlignment = this.opt('dateAlignment');\r\n var runningCount = 0;\r\n var start;\r\n var end;\r\n if (customAlignment || direction !== -1) {\r\n start = date.clone();\r\n if (customAlignment) {\r\n start.startOf(customAlignment);\r\n }\r\n start.startOf('day');\r\n start = this._view.skipHiddenDays(start);\r\n end = start.clone();\r\n do {\r\n end.add(1, 'day');\r\n if (!this._view.isHiddenDay(end)) {\r\n runningCount++;\r\n }\r\n } while (runningCount < dayCount);\r\n }\r\n else {\r\n end = date.clone().startOf('day').add(1, 'day');\r\n end = this._view.skipHiddenDays(end, -1, true);\r\n start = end.clone();\r\n do {\r\n start.add(-1, 'day');\r\n if (!this._view.isHiddenDay(start)) {\r\n runningCount++;\r\n }\r\n } while (runningCount < dayCount);\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n // Builds a normalized range object for the \"visible\" range,\r\n // which is a way to define the currentUnzonedRange and activeUnzonedRange at the same time.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) {\r\n var visibleUnzonedRange = this._view.getUnzonedRangeOption('visibleRange', this._view.calendar.applyTimezone(date) // correct zone. also generates new obj that avoids mutations\r\n );\r\n if (visibleUnzonedRange && (visibleUnzonedRange.startMs == null || visibleUnzonedRange.endMs == null)) {\r\n return null;\r\n }\r\n return visibleUnzonedRange;\r\n };\r\n // Computes the range that will represent the element/cells for *rendering*,\r\n // but which may have voided days/times.\r\n // not responsible for trimming hidden days.\r\n DateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) {\r\n return currentUnzonedRange.clone();\r\n };\r\n // Compute the duration value that should be added/substracted to the current date\r\n // when a prev/next operation happens.\r\n DateProfileGenerator.prototype.buildDateIncrement = function (fallback) {\r\n var dateIncrementInput = this.opt('dateIncrement');\r\n var customAlignment;\r\n if (dateIncrementInput) {\r\n return moment.duration(dateIncrementInput);\r\n }\r\n else if ((customAlignment = this.opt('dateAlignment'))) {\r\n return moment.duration(1, customAlignment);\r\n }\r\n else if (fallback) {\r\n return fallback;\r\n }\r\n else {\r\n return moment.duration({ days: 1 });\r\n }\r\n };\r\n return DateProfileGenerator;\r\n}());\r\nexports.default = DateProfileGenerator;\r\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Promise_1 = __webpack_require__(21);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar ArrayEventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(ArrayEventSource, _super);\r\n function ArrayEventSource(calendar) {\r\n var _this = _super.call(this, calendar) || this;\r\n _this.eventDefs = []; // for if setRawEventDefs is never called\r\n return _this;\r\n }\r\n ArrayEventSource.parse = function (rawInput, calendar) {\r\n var rawProps;\r\n // normalize raw input\r\n if ($.isArray(rawInput.events)) { // extended form\r\n rawProps = rawInput;\r\n }\r\n else if ($.isArray(rawInput)) { // short form\r\n rawProps = { events: rawInput };\r\n }\r\n if (rawProps) {\r\n return EventSource_1.default.parse.call(this, rawProps, calendar);\r\n }\r\n return false;\r\n };\r\n ArrayEventSource.prototype.setRawEventDefs = function (rawEventDefs) {\r\n this.rawEventDefs = rawEventDefs;\r\n this.eventDefs = this.parseEventDefs(rawEventDefs);\r\n };\r\n ArrayEventSource.prototype.fetch = function (start, end, timezone) {\r\n var eventDefs = this.eventDefs;\r\n var i;\r\n if (this.currentTimezone != null &&\r\n this.currentTimezone !== timezone) {\r\n for (i = 0; i < eventDefs.length; i++) {\r\n if (eventDefs[i] instanceof SingleEventDef_1.default) {\r\n eventDefs[i].rezone();\r\n }\r\n }\r\n }\r\n this.currentTimezone = timezone;\r\n return Promise_1.default.resolve(eventDefs);\r\n };\r\n ArrayEventSource.prototype.addEventDef = function (eventDef) {\r\n this.eventDefs.push(eventDef);\r\n };\r\n /*\r\n eventDefId already normalized to a string\r\n */\r\n ArrayEventSource.prototype.removeEventDefsById = function (eventDefId) {\r\n return util_1.removeMatching(this.eventDefs, function (eventDef) {\r\n return eventDef.id === eventDefId;\r\n });\r\n };\r\n ArrayEventSource.prototype.removeAllEventDefs = function () {\r\n this.eventDefs = [];\r\n };\r\n ArrayEventSource.prototype.getPrimitive = function () {\r\n return this.rawEventDefs;\r\n };\r\n ArrayEventSource.prototype.applyManualStandardProps = function (rawProps) {\r\n var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps);\r\n this.setRawEventDefs(rawProps.events);\r\n return superSuccess;\r\n };\r\n return ArrayEventSource;\r\n}(EventSource_1.default));\r\nexports.default = ArrayEventSource;\r\nArrayEventSource.defineStandardProps({\r\n events: false // don't automatically transfer\r\n});\r\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StandardTheme_1 = __webpack_require__(221);\r\nvar JqueryUiTheme_1 = __webpack_require__(222);\r\nvar themeClassHash = {};\r\nfunction defineThemeSystem(themeName, themeClass) {\r\n themeClassHash[themeName] = themeClass;\r\n}\r\nexports.defineThemeSystem = defineThemeSystem;\r\nfunction getThemeSystemClass(themeSetting) {\r\n if (!themeSetting) {\r\n return StandardTheme_1.default;\r\n }\r\n else if (themeSetting === true) {\r\n return JqueryUiTheme_1.default;\r\n }\r\n else {\r\n return themeClassHash[themeSetting];\r\n }\r\n}\r\nexports.getThemeSystemClass = getThemeSystemClass;\r\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\n/*\r\nA cache for the left/right/top/bottom/width/height values for one or more elements.\r\nWorks with both offset (from topleft document) and position (from offsetParent).\r\n\noptions:\r\n- els\r\n- isHorizontal\r\n- isVertical\r\n*/\r\nvar CoordCache = /** @class */ (function () {\r\n function CoordCache(options) {\r\n this.isHorizontal = false; // whether to query for left/right/width\r\n this.isVertical = false; // whether to query for top/bottom/height\r\n this.els = $(options.els);\r\n this.isHorizontal = options.isHorizontal;\r\n this.isVertical = options.isVertical;\r\n this.forcedOffsetParentEl = options.offsetParent ? $(options.offsetParent) : null;\r\n }\r\n // Queries the els for coordinates and stores them.\r\n // Call this method before using and of the get* methods below.\r\n CoordCache.prototype.build = function () {\r\n var offsetParentEl = this.forcedOffsetParentEl;\r\n if (!offsetParentEl && this.els.length > 0) {\r\n offsetParentEl = this.els.eq(0).offsetParent();\r\n }\r\n this.origin = offsetParentEl ?\r\n offsetParentEl.offset() :\r\n null;\r\n this.boundingRect = this.queryBoundingRect();\r\n if (this.isHorizontal) {\r\n this.buildElHorizontals();\r\n }\r\n if (this.isVertical) {\r\n this.buildElVerticals();\r\n }\r\n };\r\n // Destroys all internal data about coordinates, freeing memory\r\n CoordCache.prototype.clear = function () {\r\n this.origin = null;\r\n this.boundingRect = null;\r\n this.lefts = null;\r\n this.rights = null;\r\n this.tops = null;\r\n this.bottoms = null;\r\n };\r\n // When called, if coord caches aren't built, builds them\r\n CoordCache.prototype.ensureBuilt = function () {\r\n if (!this.origin) {\r\n this.build();\r\n }\r\n };\r\n // Populates the left/right internal coordinate arrays\r\n CoordCache.prototype.buildElHorizontals = function () {\r\n var lefts = [];\r\n var rights = [];\r\n this.els.each(function (i, node) {\r\n var el = $(node);\r\n var left = el.offset().left;\r\n var width = el.outerWidth();\r\n lefts.push(left);\r\n rights.push(left + width);\r\n });\r\n this.lefts = lefts;\r\n this.rights = rights;\r\n };\r\n // Populates the top/bottom internal coordinate arrays\r\n CoordCache.prototype.buildElVerticals = function () {\r\n var tops = [];\r\n var bottoms = [];\r\n this.els.each(function (i, node) {\r\n var el = $(node);\r\n var top = el.offset().top;\r\n var height = el.outerHeight();\r\n tops.push(top);\r\n bottoms.push(top + height);\r\n });\r\n this.tops = tops;\r\n this.bottoms = bottoms;\r\n };\r\n // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\r\n // If no intersection is made, returns undefined.\r\n CoordCache.prototype.getHorizontalIndex = function (leftOffset) {\r\n this.ensureBuilt();\r\n var lefts = this.lefts;\r\n var rights = this.rights;\r\n var len = lefts.length;\r\n var i;\r\n for (i = 0; i < len; i++) {\r\n if (leftOffset >= lefts[i] && leftOffset < rights[i]) {\r\n return i;\r\n }\r\n }\r\n };\r\n // Given a top offset (from document top), returns the index of the el that it vertically intersects.\r\n // If no intersection is made, returns undefined.\r\n CoordCache.prototype.getVerticalIndex = function (topOffset) {\r\n this.ensureBuilt();\r\n var tops = this.tops;\r\n var bottoms = this.bottoms;\r\n var len = tops.length;\r\n var i;\r\n for (i = 0; i < len; i++) {\r\n if (topOffset >= tops[i] && topOffset < bottoms[i]) {\r\n return i;\r\n }\r\n }\r\n };\r\n // Gets the left offset (from document left) of the element at the given index\r\n CoordCache.prototype.getLeftOffset = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.lefts[leftIndex];\r\n };\r\n // Gets the left position (from offsetParent left) of the element at the given index\r\n CoordCache.prototype.getLeftPosition = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.lefts[leftIndex] - this.origin.left;\r\n };\r\n // Gets the right offset (from document left) of the element at the given index.\r\n // This value is NOT relative to the document's right edge, like the CSS concept of \"right\" would be.\r\n CoordCache.prototype.getRightOffset = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.rights[leftIndex];\r\n };\r\n // Gets the right position (from offsetParent left) of the element at the given index.\r\n // This value is NOT relative to the offsetParent's right edge, like the CSS concept of \"right\" would be.\r\n CoordCache.prototype.getRightPosition = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.rights[leftIndex] - this.origin.left;\r\n };\r\n // Gets the width of the element at the given index\r\n CoordCache.prototype.getWidth = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.rights[leftIndex] - this.lefts[leftIndex];\r\n };\r\n // Gets the top offset (from document top) of the element at the given index\r\n CoordCache.prototype.getTopOffset = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.tops[topIndex];\r\n };\r\n // Gets the top position (from offsetParent top) of the element at the given position\r\n CoordCache.prototype.getTopPosition = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.tops[topIndex] - this.origin.top;\r\n };\r\n // Gets the bottom offset (from the document top) of the element at the given index.\r\n // This value is NOT relative to the offsetParent's bottom edge, like the CSS concept of \"bottom\" would be.\r\n CoordCache.prototype.getBottomOffset = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.bottoms[topIndex];\r\n };\r\n // Gets the bottom position (from the offsetParent top) of the element at the given index.\r\n // This value is NOT relative to the offsetParent's bottom edge, like the CSS concept of \"bottom\" would be.\r\n CoordCache.prototype.getBottomPosition = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.bottoms[topIndex] - this.origin.top;\r\n };\r\n // Gets the height of the element at the given index\r\n CoordCache.prototype.getHeight = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.bottoms[topIndex] - this.tops[topIndex];\r\n };\r\n // Bounding Rect\r\n // TODO: decouple this from CoordCache\r\n // Compute and return what the elements' bounding rectangle is, from the user's perspective.\r\n // Right now, only returns a rectangle if constrained by an overflow:scroll element.\r\n // Returns null if there are no elements\r\n CoordCache.prototype.queryBoundingRect = function () {\r\n var scrollParentEl;\r\n if (this.els.length > 0) {\r\n scrollParentEl = util_1.getScrollParent(this.els.eq(0));\r\n if (!scrollParentEl.is(document) &&\r\n !scrollParentEl.is('html,body') // don't consider these bounding rects. solves issue 3615\r\n ) {\r\n return util_1.getClientRect(scrollParentEl);\r\n }\r\n }\r\n return null;\r\n };\r\n CoordCache.prototype.isPointInBounds = function (leftOffset, topOffset) {\r\n return this.isLeftInBounds(leftOffset) && this.isTopInBounds(topOffset);\r\n };\r\n CoordCache.prototype.isLeftInBounds = function (leftOffset) {\r\n return !this.boundingRect || (leftOffset >= this.boundingRect.left && leftOffset < this.boundingRect.right);\r\n };\r\n CoordCache.prototype.isTopInBounds = function (topOffset) {\r\n return !this.boundingRect || (topOffset >= this.boundingRect.top && topOffset < this.boundingRect.bottom);\r\n };\r\n return CoordCache;\r\n}());\r\nexports.default = CoordCache;\r\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar GlobalEmitter_1 = __webpack_require__(23);\r\n/* Tracks a drag's mouse movement, firing various handlers\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// TODO: use Emitter\r\nvar DragListener = /** @class */ (function () {\r\n function DragListener(options) {\r\n this.isInteracting = false;\r\n this.isDistanceSurpassed = false;\r\n this.isDelayEnded = false;\r\n this.isDragging = false;\r\n this.isTouch = false;\r\n this.isGeneric = false; // initiated by 'dragstart' (jqui)\r\n this.shouldCancelTouchScroll = true;\r\n this.scrollAlwaysKills = false;\r\n this.isAutoScroll = false;\r\n // defaults\r\n this.scrollSensitivity = 30; // pixels from edge for scrolling to start\r\n this.scrollSpeed = 200; // pixels per second, at maximum speed\r\n this.scrollIntervalMs = 50; // millisecond wait between scroll increment\r\n this.options = options || {};\r\n }\r\n // Interaction (high-level)\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.startInteraction = function (ev, extraOptions) {\r\n if (extraOptions === void 0) { extraOptions = {}; }\r\n if (ev.type === 'mousedown') {\r\n if (GlobalEmitter_1.default.get().shouldIgnoreMouse()) {\r\n return;\r\n }\r\n else if (!util_1.isPrimaryMouseButton(ev)) {\r\n return;\r\n }\r\n else {\r\n ev.preventDefault(); // prevents native selection in most browsers\r\n }\r\n }\r\n if (!this.isInteracting) {\r\n // process options\r\n this.delay = util_1.firstDefined(extraOptions.delay, this.options.delay, 0);\r\n this.minDistance = util_1.firstDefined(extraOptions.distance, this.options.distance, 0);\r\n this.subjectEl = this.options.subjectEl;\r\n util_1.preventSelection($('body'));\r\n this.isInteracting = true;\r\n this.isTouch = util_1.getEvIsTouch(ev);\r\n this.isGeneric = ev.type === 'dragstart';\r\n this.isDelayEnded = false;\r\n this.isDistanceSurpassed = false;\r\n this.originX = util_1.getEvX(ev);\r\n this.originY = util_1.getEvY(ev);\r\n this.scrollEl = util_1.getScrollParent($(ev.target));\r\n this.bindHandlers();\r\n this.initAutoScroll();\r\n this.handleInteractionStart(ev);\r\n this.startDelay(ev);\r\n if (!this.minDistance) {\r\n this.handleDistanceSurpassed(ev);\r\n }\r\n }\r\n };\r\n DragListener.prototype.handleInteractionStart = function (ev) {\r\n this.trigger('interactionStart', ev);\r\n };\r\n DragListener.prototype.endInteraction = function (ev, isCancelled) {\r\n if (this.isInteracting) {\r\n this.endDrag(ev);\r\n if (this.delayTimeoutId) {\r\n clearTimeout(this.delayTimeoutId);\r\n this.delayTimeoutId = null;\r\n }\r\n this.destroyAutoScroll();\r\n this.unbindHandlers();\r\n this.isInteracting = false;\r\n this.handleInteractionEnd(ev, isCancelled);\r\n util_1.allowSelection($('body'));\r\n }\r\n };\r\n DragListener.prototype.handleInteractionEnd = function (ev, isCancelled) {\r\n this.trigger('interactionEnd', ev, isCancelled || false);\r\n };\r\n // Binding To DOM\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.bindHandlers = function () {\r\n // some browsers (Safari in iOS 10) don't allow preventDefault on touch events that are bound after touchstart,\r\n // so listen to the GlobalEmitter singleton, which is always bound, instead of the document directly.\r\n var globalEmitter = GlobalEmitter_1.default.get();\r\n if (this.isGeneric) {\r\n this.listenTo($(document), {\r\n drag: this.handleMove,\r\n dragstop: this.endInteraction\r\n });\r\n }\r\n else if (this.isTouch) {\r\n this.listenTo(globalEmitter, {\r\n touchmove: this.handleTouchMove,\r\n touchend: this.endInteraction,\r\n scroll: this.handleTouchScroll\r\n });\r\n }\r\n else {\r\n this.listenTo(globalEmitter, {\r\n mousemove: this.handleMouseMove,\r\n mouseup: this.endInteraction\r\n });\r\n }\r\n this.listenTo(globalEmitter, {\r\n selectstart: util_1.preventDefault,\r\n contextmenu: util_1.preventDefault // long taps would open menu on Chrome dev tools\r\n });\r\n };\r\n DragListener.prototype.unbindHandlers = function () {\r\n this.stopListeningTo(GlobalEmitter_1.default.get());\r\n this.stopListeningTo($(document)); // for isGeneric\r\n };\r\n // Drag (high-level)\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // extraOptions ignored if drag already started\r\n DragListener.prototype.startDrag = function (ev, extraOptions) {\r\n this.startInteraction(ev, extraOptions); // ensure interaction began\r\n if (!this.isDragging) {\r\n this.isDragging = true;\r\n this.handleDragStart(ev);\r\n }\r\n };\r\n DragListener.prototype.handleDragStart = function (ev) {\r\n this.trigger('dragStart', ev);\r\n };\r\n DragListener.prototype.handleMove = function (ev) {\r\n var dx = util_1.getEvX(ev) - this.originX;\r\n var dy = util_1.getEvY(ev) - this.originY;\r\n var minDistance = this.minDistance;\r\n var distanceSq; // current distance from the origin, squared\r\n if (!this.isDistanceSurpassed) {\r\n distanceSq = dx * dx + dy * dy;\r\n if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem\r\n this.handleDistanceSurpassed(ev);\r\n }\r\n }\r\n if (this.isDragging) {\r\n this.handleDrag(dx, dy, ev);\r\n }\r\n };\r\n // Called while the mouse is being moved and when we know a legitimate drag is taking place\r\n DragListener.prototype.handleDrag = function (dx, dy, ev) {\r\n this.trigger('drag', dx, dy, ev);\r\n this.updateAutoScroll(ev); // will possibly cause scrolling\r\n };\r\n DragListener.prototype.endDrag = function (ev) {\r\n if (this.isDragging) {\r\n this.isDragging = false;\r\n this.handleDragEnd(ev);\r\n }\r\n };\r\n DragListener.prototype.handleDragEnd = function (ev) {\r\n this.trigger('dragEnd', ev);\r\n };\r\n // Delay\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.startDelay = function (initialEv) {\r\n var _this = this;\r\n if (this.delay) {\r\n this.delayTimeoutId = setTimeout(function () {\r\n _this.handleDelayEnd(initialEv);\r\n }, this.delay);\r\n }\r\n else {\r\n this.handleDelayEnd(initialEv);\r\n }\r\n };\r\n DragListener.prototype.handleDelayEnd = function (initialEv) {\r\n this.isDelayEnded = true;\r\n if (this.isDistanceSurpassed) {\r\n this.startDrag(initialEv);\r\n }\r\n };\r\n // Distance\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.handleDistanceSurpassed = function (ev) {\r\n this.isDistanceSurpassed = true;\r\n if (this.isDelayEnded) {\r\n this.startDrag(ev);\r\n }\r\n };\r\n // Mouse / Touch\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.handleTouchMove = function (ev) {\r\n // prevent inertia and touchmove-scrolling while dragging\r\n if (this.isDragging && this.shouldCancelTouchScroll) {\r\n ev.preventDefault();\r\n }\r\n this.handleMove(ev);\r\n };\r\n DragListener.prototype.handleMouseMove = function (ev) {\r\n this.handleMove(ev);\r\n };\r\n // Scrolling (unrelated to auto-scroll)\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.handleTouchScroll = function (ev) {\r\n // if the drag is being initiated by touch, but a scroll happens before\r\n // the drag-initiating delay is over, cancel the drag\r\n if (!this.isDragging || this.scrollAlwaysKills) {\r\n this.endInteraction(ev, true); // isCancelled=true\r\n }\r\n };\r\n // Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Triggers a callback. Calls a function in the option hash of the same name.\r\n // Arguments beyond the first `name` are forwarded on.\r\n DragListener.prototype.trigger = function (name) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (this.options[name]) {\r\n this.options[name].apply(this, args);\r\n }\r\n // makes _methods callable by event name. TODO: kill this\r\n if (this['_' + name]) {\r\n this['_' + name].apply(this, args);\r\n }\r\n };\r\n // Auto-scroll\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.initAutoScroll = function () {\r\n var scrollEl = this.scrollEl;\r\n this.isAutoScroll =\r\n this.options.scroll &&\r\n scrollEl &&\r\n !scrollEl.is(window) &&\r\n !scrollEl.is(document);\r\n if (this.isAutoScroll) {\r\n // debounce makes sure rapid calls don't happen\r\n this.listenTo(scrollEl, 'scroll', util_1.debounce(this.handleDebouncedScroll, 100));\r\n }\r\n };\r\n DragListener.prototype.destroyAutoScroll = function () {\r\n this.endAutoScroll(); // kill any animation loop\r\n // remove the scroll handler if there is a scrollEl\r\n if (this.isAutoScroll) {\r\n this.stopListeningTo(this.scrollEl, 'scroll'); // will probably get removed by unbindHandlers too :(\r\n }\r\n };\r\n // Computes and stores the bounding rectangle of scrollEl\r\n DragListener.prototype.computeScrollBounds = function () {\r\n if (this.isAutoScroll) {\r\n this.scrollBounds = util_1.getOuterRect(this.scrollEl);\r\n // TODO: use getClientRect in future. but prevents auto scrolling when on top of scrollbars\r\n }\r\n };\r\n // Called when the dragging is in progress and scrolling should be updated\r\n DragListener.prototype.updateAutoScroll = function (ev) {\r\n var sensitivity = this.scrollSensitivity;\r\n var bounds = this.scrollBounds;\r\n var topCloseness;\r\n var bottomCloseness;\r\n var leftCloseness;\r\n var rightCloseness;\r\n var topVel = 0;\r\n var leftVel = 0;\r\n if (bounds) { // only scroll if scrollEl exists\r\n // compute closeness to edges. valid range is from 0.0 - 1.0\r\n topCloseness = (sensitivity - (util_1.getEvY(ev) - bounds.top)) / sensitivity;\r\n bottomCloseness = (sensitivity - (bounds.bottom - util_1.getEvY(ev))) / sensitivity;\r\n leftCloseness = (sensitivity - (util_1.getEvX(ev) - bounds.left)) / sensitivity;\r\n rightCloseness = (sensitivity - (bounds.right - util_1.getEvX(ev))) / sensitivity;\r\n // translate vertical closeness into velocity.\r\n // mouse must be completely in bounds for velocity to happen.\r\n if (topCloseness >= 0 && topCloseness <= 1) {\r\n topVel = topCloseness * this.scrollSpeed * -1; // negative. for scrolling up\r\n }\r\n else if (bottomCloseness >= 0 && bottomCloseness <= 1) {\r\n topVel = bottomCloseness * this.scrollSpeed;\r\n }\r\n // translate horizontal closeness into velocity\r\n if (leftCloseness >= 0 && leftCloseness <= 1) {\r\n leftVel = leftCloseness * this.scrollSpeed * -1; // negative. for scrolling left\r\n }\r\n else if (rightCloseness >= 0 && rightCloseness <= 1) {\r\n leftVel = rightCloseness * this.scrollSpeed;\r\n }\r\n }\r\n this.setScrollVel(topVel, leftVel);\r\n };\r\n // Sets the speed-of-scrolling for the scrollEl\r\n DragListener.prototype.setScrollVel = function (topVel, leftVel) {\r\n this.scrollTopVel = topVel;\r\n this.scrollLeftVel = leftVel;\r\n this.constrainScrollVel(); // massages into realistic values\r\n // if there is non-zero velocity, and an animation loop hasn't already started, then START\r\n if ((this.scrollTopVel || this.scrollLeftVel) && !this.scrollIntervalId) {\r\n this.scrollIntervalId = setInterval(util_1.proxy(this, 'scrollIntervalFunc'), // scope to `this`\r\n this.scrollIntervalMs);\r\n }\r\n };\r\n // Forces scrollTopVel and scrollLeftVel to be zero if scrolling has already gone all the way\r\n DragListener.prototype.constrainScrollVel = function () {\r\n var el = this.scrollEl;\r\n if (this.scrollTopVel < 0) { // scrolling up?\r\n if (el.scrollTop() <= 0) { // already scrolled all the way up?\r\n this.scrollTopVel = 0;\r\n }\r\n }\r\n else if (this.scrollTopVel > 0) { // scrolling down?\r\n if (el.scrollTop() + el[0].clientHeight >= el[0].scrollHeight) { // already scrolled all the way down?\r\n this.scrollTopVel = 0;\r\n }\r\n }\r\n if (this.scrollLeftVel < 0) { // scrolling left?\r\n if (el.scrollLeft() <= 0) { // already scrolled all the left?\r\n this.scrollLeftVel = 0;\r\n }\r\n }\r\n else if (this.scrollLeftVel > 0) { // scrolling right?\r\n if (el.scrollLeft() + el[0].clientWidth >= el[0].scrollWidth) { // already scrolled all the way right?\r\n this.scrollLeftVel = 0;\r\n }\r\n }\r\n };\r\n // This function gets called during every iteration of the scrolling animation loop\r\n DragListener.prototype.scrollIntervalFunc = function () {\r\n var el = this.scrollEl;\r\n var frac = this.scrollIntervalMs / 1000; // considering animation frequency, what the vel should be mult'd by\r\n // change the value of scrollEl's scroll\r\n if (this.scrollTopVel) {\r\n el.scrollTop(el.scrollTop() + this.scrollTopVel * frac);\r\n }\r\n if (this.scrollLeftVel) {\r\n el.scrollLeft(el.scrollLeft() + this.scrollLeftVel * frac);\r\n }\r\n this.constrainScrollVel(); // since the scroll values changed, recompute the velocities\r\n // if scrolled all the way, which causes the vels to be zero, stop the animation loop\r\n if (!this.scrollTopVel && !this.scrollLeftVel) {\r\n this.endAutoScroll();\r\n }\r\n };\r\n // Kills any existing scrolling animation loop\r\n DragListener.prototype.endAutoScroll = function () {\r\n if (this.scrollIntervalId) {\r\n clearInterval(this.scrollIntervalId);\r\n this.scrollIntervalId = null;\r\n this.handleScrollEnd();\r\n }\r\n };\r\n // Get called when the scrollEl is scrolled (NOTE: this is delayed via debounce)\r\n DragListener.prototype.handleDebouncedScroll = function () {\r\n // recompute all coordinates, but *only* if this is *not* part of our scrolling animation\r\n if (!this.scrollIntervalId) {\r\n this.handleScrollEnd();\r\n }\r\n };\r\n DragListener.prototype.handleScrollEnd = function () {\r\n // Called when scrolling has stopped, whether through auto scroll, or the user scrolling\r\n };\r\n return DragListener;\r\n}());\r\nexports.default = DragListener;\r\nListenerMixin_1.default.mixInto(DragListener);\r\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar Mixin_1 = __webpack_require__(15);\r\n/*\r\nA set of rendering and date-related methods for a visual component comprised of one or more rows of day columns.\r\nPrerequisite: the object being mixed into needs to be a *Grid*\r\n*/\r\nvar DayTableMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayTableMixin, _super);\r\n function DayTableMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Populates internal variables used for date calculation and rendering\r\n DayTableMixin.prototype.updateDayTable = function () {\r\n var t = this;\r\n var view = t.view;\r\n var calendar = view.calendar;\r\n var date = calendar.msToUtcMoment(t.dateProfile.renderUnzonedRange.startMs, true);\r\n var end = calendar.msToUtcMoment(t.dateProfile.renderUnzonedRange.endMs, true);\r\n var dayIndex = -1;\r\n var dayIndices = [];\r\n var dayDates = [];\r\n var daysPerRow;\r\n var firstDay;\r\n var rowCnt;\r\n while (date.isBefore(end)) { // loop each day from start to end\r\n if (view.isHiddenDay(date)) {\r\n dayIndices.push(dayIndex + 0.5); // mark that it's between indices\r\n }\r\n else {\r\n dayIndex++;\r\n dayIndices.push(dayIndex);\r\n dayDates.push(date.clone());\r\n }\r\n date.add(1, 'days');\r\n }\r\n if (this.breakOnWeeks) {\r\n // count columns until the day-of-week repeats\r\n firstDay = dayDates[0].day();\r\n for (daysPerRow = 1; daysPerRow < dayDates.length; daysPerRow++) {\r\n if (dayDates[daysPerRow].day() === firstDay) {\r\n break;\r\n }\r\n }\r\n rowCnt = Math.ceil(dayDates.length / daysPerRow);\r\n }\r\n else {\r\n rowCnt = 1;\r\n daysPerRow = dayDates.length;\r\n }\r\n this.dayDates = dayDates;\r\n this.dayIndices = dayIndices;\r\n this.daysPerRow = daysPerRow;\r\n this.rowCnt = rowCnt;\r\n this.updateDayTableCols();\r\n };\r\n // Computes and assigned the colCnt property and updates any options that may be computed from it\r\n DayTableMixin.prototype.updateDayTableCols = function () {\r\n this.colCnt = this.computeColCnt();\r\n this.colHeadFormat =\r\n this.opt('columnHeaderFormat') ||\r\n this.opt('columnFormat') || // deprecated\r\n this.computeColHeadFormat();\r\n };\r\n // Determines how many columns there should be in the table\r\n DayTableMixin.prototype.computeColCnt = function () {\r\n return this.daysPerRow;\r\n };\r\n // Computes the ambiguously-timed moment for the given cell\r\n DayTableMixin.prototype.getCellDate = function (row, col) {\r\n return this.dayDates[this.getCellDayIndex(row, col)].clone();\r\n };\r\n // Computes the ambiguously-timed date range for the given cell\r\n DayTableMixin.prototype.getCellRange = function (row, col) {\r\n var start = this.getCellDate(row, col);\r\n var end = start.clone().add(1, 'days');\r\n return { start: start, end: end };\r\n };\r\n // Returns the number of day cells, chronologically, from the first of the grid (0-based)\r\n DayTableMixin.prototype.getCellDayIndex = function (row, col) {\r\n return row * this.daysPerRow + this.getColDayIndex(col);\r\n };\r\n // Returns the numner of day cells, chronologically, from the first cell in *any given row*\r\n DayTableMixin.prototype.getColDayIndex = function (col) {\r\n if (this.isRTL) {\r\n return this.colCnt - 1 - col;\r\n }\r\n else {\r\n return col;\r\n }\r\n };\r\n // Given a date, returns its chronolocial cell-index from the first cell of the grid.\r\n // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\r\n // If before the first offset, returns a negative number.\r\n // If after the last offset, returns an offset past the last cell offset.\r\n // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\r\n DayTableMixin.prototype.getDateDayIndex = function (date) {\r\n var dayIndices = this.dayIndices;\r\n var dayOffset = date.diff(this.dayDates[0], 'days');\r\n if (dayOffset < 0) {\r\n return dayIndices[0] - 1;\r\n }\r\n else if (dayOffset >= dayIndices.length) {\r\n return dayIndices[dayIndices.length - 1] + 1;\r\n }\r\n else {\r\n return dayIndices[dayOffset];\r\n }\r\n };\r\n /* Options\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Computes a default column header formatting string if `colFormat` is not explicitly defined\r\n DayTableMixin.prototype.computeColHeadFormat = function () {\r\n // if more than one week row, or if there are a lot of columns with not much space,\r\n // put just the day numbers will be in each cell\r\n if (this.rowCnt > 1 || this.colCnt > 10) {\r\n return 'ddd'; // \"Sat\"\r\n }\r\n else if (this.colCnt > 1) {\r\n return this.opt('dayOfMonthFormat'); // \"Sat 12/10\"\r\n }\r\n else {\r\n return 'dddd'; // \"Saturday\"\r\n }\r\n };\r\n /* Slicing\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Slices up a date range into a segment for every week-row it intersects with\r\n DayTableMixin.prototype.sliceRangeByRow = function (unzonedRange) {\r\n var daysPerRow = this.daysPerRow;\r\n var normalRange = this.view.computeDayRange(unzonedRange); // make whole-day range, considering nextDayThreshold\r\n var rangeFirst = this.getDateDayIndex(normalRange.start); // inclusive first index\r\n var rangeLast = this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); // inclusive last index\r\n var segs = [];\r\n var row;\r\n var rowFirst;\r\n var rowLast; // inclusive day-index range for current row\r\n var segFirst;\r\n var segLast; // inclusive day-index range for segment\r\n for (row = 0; row < this.rowCnt; row++) {\r\n rowFirst = row * daysPerRow;\r\n rowLast = rowFirst + daysPerRow - 1;\r\n // intersect segment's offset range with the row's\r\n segFirst = Math.max(rangeFirst, rowFirst);\r\n segLast = Math.min(rangeLast, rowLast);\r\n // deal with in-between indices\r\n segFirst = Math.ceil(segFirst); // in-between starts round to next cell\r\n segLast = Math.floor(segLast); // in-between ends round to prev cell\r\n if (segFirst <= segLast) { // was there any intersection with the current row?\r\n segs.push({\r\n row: row,\r\n // normalize to start of row\r\n firstRowDayIndex: segFirst - rowFirst,\r\n lastRowDayIndex: segLast - rowFirst,\r\n // must be matching integers to be the segment's start/end\r\n isStart: segFirst === rangeFirst,\r\n isEnd: segLast === rangeLast\r\n });\r\n }\r\n }\r\n return segs;\r\n };\r\n // Slices up a date range into a segment for every day-cell it intersects with.\r\n // TODO: make more DRY with sliceRangeByRow somehow.\r\n DayTableMixin.prototype.sliceRangeByDay = function (unzonedRange) {\r\n var daysPerRow = this.daysPerRow;\r\n var normalRange = this.view.computeDayRange(unzonedRange); // make whole-day range, considering nextDayThreshold\r\n var rangeFirst = this.getDateDayIndex(normalRange.start); // inclusive first index\r\n var rangeLast = this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); // inclusive last index\r\n var segs = [];\r\n var row;\r\n var rowFirst;\r\n var rowLast; // inclusive day-index range for current row\r\n var i;\r\n var segFirst;\r\n var segLast; // inclusive day-index range for segment\r\n for (row = 0; row < this.rowCnt; row++) {\r\n rowFirst = row * daysPerRow;\r\n rowLast = rowFirst + daysPerRow - 1;\r\n for (i = rowFirst; i <= rowLast; i++) {\r\n // intersect segment's offset range with the row's\r\n segFirst = Math.max(rangeFirst, i);\r\n segLast = Math.min(rangeLast, i);\r\n // deal with in-between indices\r\n segFirst = Math.ceil(segFirst); // in-between starts round to next cell\r\n segLast = Math.floor(segLast); // in-between ends round to prev cell\r\n if (segFirst <= segLast) { // was there any intersection with the current row?\r\n segs.push({\r\n row: row,\r\n // normalize to start of row\r\n firstRowDayIndex: segFirst - rowFirst,\r\n lastRowDayIndex: segLast - rowFirst,\r\n // must be matching integers to be the segment's start/end\r\n isStart: segFirst === rangeFirst,\r\n isEnd: segLast === rangeLast\r\n });\r\n }\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Header Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayTableMixin.prototype.renderHeadHtml = function () {\r\n var theme = this.view.calendar.theme;\r\n return '' +\r\n '<div class=\"fc-row ' + theme.getClass('headerRow') + '\">' +\r\n '<table class=\"' + theme.getClass('tableGrid') + '\">' +\r\n '<thead>' +\r\n this.renderHeadTrHtml() +\r\n '</thead>' +\r\n '</table>' +\r\n '</div>';\r\n };\r\n DayTableMixin.prototype.renderHeadIntroHtml = function () {\r\n return this.renderIntroHtml(); // fall back to generic\r\n };\r\n DayTableMixin.prototype.renderHeadTrHtml = function () {\r\n return '' +\r\n '<tr>' +\r\n (this.isRTL ? '' : this.renderHeadIntroHtml()) +\r\n this.renderHeadDateCellsHtml() +\r\n (this.isRTL ? this.renderHeadIntroHtml() : '') +\r\n '</tr>';\r\n };\r\n DayTableMixin.prototype.renderHeadDateCellsHtml = function () {\r\n var htmls = [];\r\n var col;\r\n var date;\r\n for (col = 0; col < this.colCnt; col++) {\r\n date = this.getCellDate(0, col);\r\n htmls.push(this.renderHeadDateCellHtml(date));\r\n }\r\n return htmls.join('');\r\n };\r\n // TODO: when internalApiVersion, accept an object for HTML attributes\r\n // (colspan should be no different)\r\n DayTableMixin.prototype.renderHeadDateCellHtml = function (date, colspan, otherAttrs) {\r\n var t = this;\r\n var view = t.view;\r\n var isDateValid = t.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.\r\n var classNames = [\r\n 'fc-day-header',\r\n view.calendar.theme.getClass('widgetHeader')\r\n ];\r\n var innerHtml;\r\n if (typeof t.opt('columnHeaderHtml') === 'function') {\r\n innerHtml = t.opt('columnHeaderHtml')(date);\r\n }\r\n else if (typeof t.opt('columnHeaderText') === 'function') {\r\n innerHtml = util_1.htmlEscape(t.opt('columnHeaderText')(date));\r\n }\r\n else {\r\n innerHtml = util_1.htmlEscape(date.format(t.colHeadFormat));\r\n }\r\n // if only one row of days, the classNames on the header can represent the specific days beneath\r\n if (t.rowCnt === 1) {\r\n classNames = classNames.concat(\r\n // includes the day-of-week class\r\n // noThemeHighlight=true (don't highlight the header)\r\n t.getDayClasses(date, true));\r\n }\r\n else {\r\n classNames.push('fc-' + util_1.dayIDs[date.day()]); // only add the day-of-week class\r\n }\r\n return '' +\r\n '<th class=\"' + classNames.join(' ') + '\"' +\r\n ((isDateValid && t.rowCnt) === 1 ?\r\n ' data-date=\"' + date.format('YYYY-MM-DD') + '\"' :\r\n '') +\r\n (colspan > 1 ?\r\n ' colspan=\"' + colspan + '\"' :\r\n '') +\r\n (otherAttrs ?\r\n ' ' + otherAttrs :\r\n '') +\r\n '>' +\r\n (isDateValid ?\r\n // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff)\r\n view.buildGotoAnchorHtml({ date: date, forceOff: t.rowCnt > 1 || t.colCnt === 1 }, innerHtml) :\r\n // if not valid, display text, but no link\r\n innerHtml) +\r\n '</th>';\r\n };\r\n /* Background Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayTableMixin.prototype.renderBgTrHtml = function (row) {\r\n return '' +\r\n '<tr>' +\r\n (this.isRTL ? '' : this.renderBgIntroHtml(row)) +\r\n this.renderBgCellsHtml(row) +\r\n (this.isRTL ? this.renderBgIntroHtml(row) : '') +\r\n '</tr>';\r\n };\r\n DayTableMixin.prototype.renderBgIntroHtml = function (row) {\r\n return this.renderIntroHtml(); // fall back to generic\r\n };\r\n DayTableMixin.prototype.renderBgCellsHtml = function (row) {\r\n var htmls = [];\r\n var col;\r\n var date;\r\n for (col = 0; col < this.colCnt; col++) {\r\n date = this.getCellDate(row, col);\r\n htmls.push(this.renderBgCellHtml(date));\r\n }\r\n return htmls.join('');\r\n };\r\n DayTableMixin.prototype.renderBgCellHtml = function (date, otherAttrs) {\r\n var t = this;\r\n var view = t.view;\r\n var isDateValid = t.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.\r\n var classes = t.getDayClasses(date);\r\n classes.unshift('fc-day', view.calendar.theme.getClass('widgetContent'));\r\n return '<td class=\"' + classes.join(' ') + '\"' +\r\n (isDateValid ?\r\n ' data-date=\"' + date.format('YYYY-MM-DD') + '\"' : // if date has a time, won't format it\r\n '') +\r\n (otherAttrs ?\r\n ' ' + otherAttrs :\r\n '') +\r\n '></td>';\r\n };\r\n /* Generic\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayTableMixin.prototype.renderIntroHtml = function () {\r\n // Generates the default HTML intro for any row. User classes should override\r\n };\r\n // TODO: a generic method for dealing with <tr>, RTL, intro\r\n // when increment internalApiVersion\r\n // wrapTr (scheduler)\r\n /* Utils\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Applies the generic \"intro\" and \"outro\" HTML to the given cells.\r\n // Intro means the leftmost cell when the calendar is LTR and the rightmost cell when RTL. Vice-versa for outro.\r\n DayTableMixin.prototype.bookendCells = function (trEl) {\r\n var introHtml = this.renderIntroHtml();\r\n if (introHtml) {\r\n if (this.isRTL) {\r\n trEl.append(introHtml);\r\n }\r\n else {\r\n trEl.prepend(introHtml);\r\n }\r\n }\r\n };\r\n return DayTableMixin;\r\n}(Mixin_1.default));\r\nexports.default = DayTableMixin;\r\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BusinessHourRenderer = /** @class */ (function () {\r\n /*\r\n component implements:\r\n - eventRangesToEventFootprints\r\n - eventFootprintsToSegs\r\n */\r\n function BusinessHourRenderer(component, fillRenderer) {\r\n this.component = component;\r\n this.fillRenderer = fillRenderer;\r\n }\r\n BusinessHourRenderer.prototype.render = function (businessHourGenerator) {\r\n var component = this.component;\r\n var unzonedRange = component._getDateProfile().activeUnzonedRange;\r\n var eventInstanceGroup = businessHourGenerator.buildEventInstanceGroup(component.hasAllDayBusinessHours, unzonedRange);\r\n var eventFootprints = eventInstanceGroup ?\r\n component.eventRangesToEventFootprints(eventInstanceGroup.sliceRenderRanges(unzonedRange)) :\r\n [];\r\n this.renderEventFootprints(eventFootprints);\r\n };\r\n BusinessHourRenderer.prototype.renderEventFootprints = function (eventFootprints) {\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n this.renderSegs(segs);\r\n this.segs = segs;\r\n };\r\n BusinessHourRenderer.prototype.renderSegs = function (segs) {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.renderSegs('businessHours', segs, {\r\n getClasses: function (seg) {\r\n return ['fc-nonbusiness', 'fc-bgevent'];\r\n }\r\n });\r\n }\r\n };\r\n BusinessHourRenderer.prototype.unrender = function () {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.unrender('businessHours');\r\n }\r\n this.segs = null;\r\n };\r\n BusinessHourRenderer.prototype.getSegs = function () {\r\n return this.segs || [];\r\n };\r\n return BusinessHourRenderer;\r\n}());\r\nexports.default = BusinessHourRenderer;\r\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar FillRenderer = /** @class */ (function () {\r\n function FillRenderer(component) {\r\n this.fillSegTag = 'div';\r\n this.component = component;\r\n this.elsByFill = {};\r\n }\r\n FillRenderer.prototype.renderFootprint = function (type, componentFootprint, props) {\r\n this.renderSegs(type, this.component.componentFootprintToSegs(componentFootprint), props);\r\n };\r\n FillRenderer.prototype.renderSegs = function (type, segs, props) {\r\n var els;\r\n segs = this.buildSegEls(type, segs, props); // assignes `.el` to each seg. returns successfully rendered segs\r\n els = this.attachSegEls(type, segs);\r\n if (els) {\r\n this.reportEls(type, els);\r\n }\r\n return segs;\r\n };\r\n // Unrenders a specific type of fill that is currently rendered on the grid\r\n FillRenderer.prototype.unrender = function (type) {\r\n var el = this.elsByFill[type];\r\n if (el) {\r\n el.remove();\r\n delete this.elsByFill[type];\r\n }\r\n };\r\n // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types.\r\n // Only returns segments that successfully rendered.\r\n FillRenderer.prototype.buildSegEls = function (type, segs, props) {\r\n var _this = this;\r\n var html = '';\r\n var renderedSegs = [];\r\n var i;\r\n if (segs.length) {\r\n // build a large concatenation of segment HTML\r\n for (i = 0; i < segs.length; i++) {\r\n html += this.buildSegHtml(type, segs[i], props);\r\n }\r\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\r\n // Then, compute the 'el' for each segment.\r\n $(html).each(function (i, node) {\r\n var seg = segs[i];\r\n var el = $(node);\r\n // allow custom filter methods per-type\r\n if (props.filterEl) {\r\n el = props.filterEl(seg, el);\r\n }\r\n if (el) { // custom filters did not cancel the render\r\n el = $(el); // allow custom filter to return raw DOM node\r\n // correct element type? (would be bad if a non-TD were inserted into a table for example)\r\n if (el.is(_this.fillSegTag)) {\r\n seg.el = el;\r\n renderedSegs.push(seg);\r\n }\r\n }\r\n });\r\n }\r\n return renderedSegs;\r\n };\r\n // Builds the HTML needed for one fill segment. Generic enough to work with different types.\r\n FillRenderer.prototype.buildSegHtml = function (type, seg, props) {\r\n // custom hooks per-type\r\n var classes = props.getClasses ? props.getClasses(seg) : [];\r\n var css = util_1.cssToStr(props.getCss ? props.getCss(seg) : {});\r\n return '<' + this.fillSegTag +\r\n (classes.length ? ' class=\"' + classes.join(' ') + '\"' : '') +\r\n (css ? ' style=\"' + css + '\"' : '') +\r\n ' />';\r\n };\r\n // Should return wrapping DOM structure\r\n FillRenderer.prototype.attachSegEls = function (type, segs) {\r\n // subclasses must implement\r\n };\r\n FillRenderer.prototype.reportEls = function (type, nodes) {\r\n if (this.elsByFill[type]) {\r\n this.elsByFill[type] = this.elsByFill[type].add(nodes);\r\n }\r\n else {\r\n this.elsByFill[type] = $(nodes);\r\n }\r\n };\r\n return FillRenderer;\r\n}());\r\nexports.default = FillRenderer;\r\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar EventFootprint_1 = __webpack_require__(34);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar HelperRenderer = /** @class */ (function () {\r\n function HelperRenderer(component, eventRenderer) {\r\n this.view = component._getView();\r\n this.component = component;\r\n this.eventRenderer = eventRenderer;\r\n }\r\n HelperRenderer.prototype.renderComponentFootprint = function (componentFootprint) {\r\n this.renderEventFootprints([\r\n this.fabricateEventFootprint(componentFootprint)\r\n ]);\r\n };\r\n HelperRenderer.prototype.renderEventDraggingFootprints = function (eventFootprints, sourceSeg, isTouch) {\r\n this.renderEventFootprints(eventFootprints, sourceSeg, 'fc-dragging', isTouch ? null : this.view.opt('dragOpacity'));\r\n };\r\n HelperRenderer.prototype.renderEventResizingFootprints = function (eventFootprints, sourceSeg, isTouch) {\r\n this.renderEventFootprints(eventFootprints, sourceSeg, 'fc-resizing');\r\n };\r\n HelperRenderer.prototype.renderEventFootprints = function (eventFootprints, sourceSeg, extraClassNames, opacity) {\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n var classNames = 'fc-helper ' + (extraClassNames || '');\r\n var i;\r\n // assigns each seg's el and returns a subset of segs that were rendered\r\n segs = this.eventRenderer.renderFgSegEls(segs);\r\n for (i = 0; i < segs.length; i++) {\r\n segs[i].el.addClass(classNames);\r\n }\r\n if (opacity != null) {\r\n for (i = 0; i < segs.length; i++) {\r\n segs[i].el.css('opacity', opacity);\r\n }\r\n }\r\n this.helperEls = this.renderSegs(segs, sourceSeg);\r\n };\r\n /*\r\n Must return all mock event elements\r\n */\r\n HelperRenderer.prototype.renderSegs = function (segs, sourceSeg) {\r\n // Subclasses must implement\r\n };\r\n HelperRenderer.prototype.unrender = function () {\r\n if (this.helperEls) {\r\n this.helperEls.remove();\r\n this.helperEls = null;\r\n }\r\n };\r\n HelperRenderer.prototype.fabricateEventFootprint = function (componentFootprint) {\r\n var calendar = this.view.calendar;\r\n var eventDateProfile = calendar.footprintToDateProfile(componentFootprint);\r\n var dummyEvent = new SingleEventDef_1.default(new EventSource_1.default(calendar));\r\n var dummyInstance;\r\n dummyEvent.dateProfile = eventDateProfile;\r\n dummyInstance = dummyEvent.buildInstance();\r\n return new EventFootprint_1.default(componentFootprint, dummyEvent, dummyInstance);\r\n };\r\n return HelperRenderer;\r\n}());\r\nexports.default = HelperRenderer;\r\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar GlobalEmitter_1 = __webpack_require__(23);\r\nvar Interaction_1 = __webpack_require__(14);\r\nvar EventPointing = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventPointing, _super);\r\n function EventPointing() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /*\r\n component must implement:\r\n - publiclyTrigger\r\n */\r\n EventPointing.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n component.bindSegHandlerToEl(el, 'click', this.handleClick.bind(this));\r\n component.bindSegHandlerToEl(el, 'mouseenter', this.handleMouseover.bind(this));\r\n component.bindSegHandlerToEl(el, 'mouseleave', this.handleMouseout.bind(this));\r\n };\r\n EventPointing.prototype.handleClick = function (seg, ev) {\r\n var res = this.component.publiclyTrigger('eventClick', {\r\n context: seg.el[0],\r\n args: [seg.footprint.getEventLegacy(), ev, this.view]\r\n });\r\n if (res === false) {\r\n ev.preventDefault();\r\n }\r\n };\r\n // Updates internal state and triggers handlers for when an event element is moused over\r\n EventPointing.prototype.handleMouseover = function (seg, ev) {\r\n if (!GlobalEmitter_1.default.get().shouldIgnoreMouse() &&\r\n !this.mousedOverSeg) {\r\n this.mousedOverSeg = seg;\r\n // TODO: move to EventSelecting's responsibility\r\n if (this.view.isEventDefResizable(seg.footprint.eventDef)) {\r\n seg.el.addClass('fc-allow-mouse-resize');\r\n }\r\n this.component.publiclyTrigger('eventMouseover', {\r\n context: seg.el[0],\r\n args: [seg.footprint.getEventLegacy(), ev, this.view]\r\n });\r\n }\r\n };\r\n // Updates internal state and triggers handlers for when an event element is moused out.\r\n // Can be given no arguments, in which case it will mouseout the segment that was previously moused over.\r\n EventPointing.prototype.handleMouseout = function (seg, ev) {\r\n if (this.mousedOverSeg) {\r\n this.mousedOverSeg = null;\r\n // TODO: move to EventSelecting's responsibility\r\n if (this.view.isEventDefResizable(seg.footprint.eventDef)) {\r\n seg.el.removeClass('fc-allow-mouse-resize');\r\n }\r\n this.component.publiclyTrigger('eventMouseout', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev || {},\r\n this.view\r\n ]\r\n });\r\n }\r\n };\r\n EventPointing.prototype.end = function () {\r\n if (this.mousedOverSeg) {\r\n this.handleMouseout(this.mousedOverSeg);\r\n }\r\n };\r\n return EventPointing;\r\n}(Interaction_1.default));\r\nexports.default = EventPointing;\r\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Mixin_1 = __webpack_require__(15);\r\nvar DateClicking_1 = __webpack_require__(237);\r\nvar DateSelecting_1 = __webpack_require__(236);\r\nvar EventPointing_1 = __webpack_require__(64);\r\nvar EventDragging_1 = __webpack_require__(235);\r\nvar EventResizing_1 = __webpack_require__(234);\r\nvar ExternalDropping_1 = __webpack_require__(233);\r\nvar StandardInteractionsMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(StandardInteractionsMixin, _super);\r\n function StandardInteractionsMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return StandardInteractionsMixin;\r\n}(Mixin_1.default));\r\nexports.default = StandardInteractionsMixin;\r\nStandardInteractionsMixin.prototype.dateClickingClass = DateClicking_1.default;\r\nStandardInteractionsMixin.prototype.dateSelectingClass = DateSelecting_1.default;\r\nStandardInteractionsMixin.prototype.eventPointingClass = EventPointing_1.default;\r\nStandardInteractionsMixin.prototype.eventDraggingClass = EventDragging_1.default;\r\nStandardInteractionsMixin.prototype.eventResizingClass = EventResizing_1.default;\r\nStandardInteractionsMixin.prototype.externalDroppingClass = ExternalDropping_1.default;\r\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar CoordCache_1 = __webpack_require__(58);\r\nvar Popover_1 = __webpack_require__(227);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventFootprint_1 = __webpack_require__(34);\r\nvar BusinessHourRenderer_1 = __webpack_require__(61);\r\nvar StandardInteractionsMixin_1 = __webpack_require__(65);\r\nvar InteractiveDateComponent_1 = __webpack_require__(42);\r\nvar DayTableMixin_1 = __webpack_require__(60);\r\nvar DayGridEventRenderer_1 = __webpack_require__(243);\r\nvar DayGridHelperRenderer_1 = __webpack_require__(244);\r\nvar DayGridFillRenderer_1 = __webpack_require__(245);\r\n/* A component that renders a grid of whole-days that runs horizontally. There can be multiple rows, one per week.\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar DayGrid = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGrid, _super);\r\n function DayGrid(view) {\r\n var _this = _super.call(this, view) || this;\r\n _this.cellWeekNumbersVisible = false; // display week numbers in day cell?\r\n _this.bottomCoordPadding = 0; // hack for extending the hit area for the last row of the coordinate grid\r\n // isRigid determines whether the individual rows should ignore the contents and be a constant height.\r\n // Relies on the view's colCnt and rowCnt. In the future, this component should probably be self-sufficient.\r\n _this.isRigid = false;\r\n _this.hasAllDayBusinessHours = true;\r\n return _this;\r\n }\r\n // Slices up the given span (unzoned start/end with other misc data) into an array of segments\r\n DayGrid.prototype.componentFootprintToSegs = function (componentFootprint) {\r\n var segs = this.sliceRangeByRow(componentFootprint.unzonedRange);\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n if (this.isRTL) {\r\n seg.leftCol = this.daysPerRow - 1 - seg.lastRowDayIndex;\r\n seg.rightCol = this.daysPerRow - 1 - seg.firstRowDayIndex;\r\n }\r\n else {\r\n seg.leftCol = seg.firstRowDayIndex;\r\n seg.rightCol = seg.lastRowDayIndex;\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Date Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.renderDates = function (dateProfile) {\r\n this.dateProfile = dateProfile;\r\n this.updateDayTable();\r\n this.renderGrid();\r\n };\r\n DayGrid.prototype.unrenderDates = function () {\r\n this.removeSegPopover();\r\n };\r\n // Renders the rows and columns into the component's `this.el`, which should already be assigned.\r\n DayGrid.prototype.renderGrid = function () {\r\n var view = this.view;\r\n var rowCnt = this.rowCnt;\r\n var colCnt = this.colCnt;\r\n var html = '';\r\n var row;\r\n var col;\r\n if (this.headContainerEl) {\r\n this.headContainerEl.html(this.renderHeadHtml());\r\n }\r\n for (row = 0; row < rowCnt; row++) {\r\n html += this.renderDayRowHtml(row, this.isRigid);\r\n }\r\n this.el.html(html);\r\n this.rowEls = this.el.find('.fc-row');\r\n this.cellEls = this.el.find('.fc-day, .fc-disabled-day');\r\n this.rowCoordCache = new CoordCache_1.default({\r\n els: this.rowEls,\r\n isVertical: true\r\n });\r\n this.colCoordCache = new CoordCache_1.default({\r\n els: this.cellEls.slice(0, this.colCnt),\r\n isHorizontal: true\r\n });\r\n // trigger dayRender with each cell's element\r\n for (row = 0; row < rowCnt; row++) {\r\n for (col = 0; col < colCnt; col++) {\r\n this.publiclyTrigger('dayRender', {\r\n context: view,\r\n args: [\r\n this.getCellDate(row, col),\r\n this.getCellEl(row, col),\r\n view\r\n ]\r\n });\r\n }\r\n }\r\n };\r\n // Generates the HTML for a single row, which is a div that wraps a table.\r\n // `row` is the row number.\r\n DayGrid.prototype.renderDayRowHtml = function (row, isRigid) {\r\n var theme = this.view.calendar.theme;\r\n var classes = ['fc-row', 'fc-week', theme.getClass('dayRow')];\r\n if (isRigid) {\r\n classes.push('fc-rigid');\r\n }\r\n return '' +\r\n '<div class=\"' + classes.join(' ') + '\">' +\r\n '<div class=\"fc-bg\">' +\r\n '<table class=\"' + theme.getClass('tableGrid') + '\">' +\r\n this.renderBgTrHtml(row) +\r\n '</table>' +\r\n '</div>' +\r\n '<div class=\"fc-content-skeleton\">' +\r\n '<table>' +\r\n (this.getIsNumbersVisible() ?\r\n '<thead>' +\r\n this.renderNumberTrHtml(row) +\r\n '</thead>' :\r\n '') +\r\n '</table>' +\r\n '</div>' +\r\n '</div>';\r\n };\r\n DayGrid.prototype.getIsNumbersVisible = function () {\r\n return this.getIsDayNumbersVisible() || this.cellWeekNumbersVisible;\r\n };\r\n DayGrid.prototype.getIsDayNumbersVisible = function () {\r\n return this.rowCnt > 1;\r\n };\r\n /* Grid Number Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.renderNumberTrHtml = function (row) {\r\n return '' +\r\n '<tr>' +\r\n (this.isRTL ? '' : this.renderNumberIntroHtml(row)) +\r\n this.renderNumberCellsHtml(row) +\r\n (this.isRTL ? this.renderNumberIntroHtml(row) : '') +\r\n '</tr>';\r\n };\r\n DayGrid.prototype.renderNumberIntroHtml = function (row) {\r\n return this.renderIntroHtml();\r\n };\r\n DayGrid.prototype.renderNumberCellsHtml = function (row) {\r\n var htmls = [];\r\n var col;\r\n var date;\r\n for (col = 0; col < this.colCnt; col++) {\r\n date = this.getCellDate(row, col);\r\n htmls.push(this.renderNumberCellHtml(date));\r\n }\r\n return htmls.join('');\r\n };\r\n // Generates the HTML for the <td>s of the \"number\" row in the DayGrid's content skeleton.\r\n // The number row will only exist if either day numbers or week numbers are turned on.\r\n DayGrid.prototype.renderNumberCellHtml = function (date) {\r\n var view = this.view;\r\n var html = '';\r\n var isDateValid = this.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.\r\n var isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid;\r\n var classes;\r\n var weekCalcFirstDoW;\r\n if (!isDayNumberVisible && !this.cellWeekNumbersVisible) {\r\n // no numbers in day cell (week number must be along the side)\r\n return '<td/>'; // will create an empty space above events :(\r\n }\r\n classes = this.getDayClasses(date);\r\n classes.unshift('fc-day-top');\r\n if (this.cellWeekNumbersVisible) {\r\n // To determine the day of week number change under ISO, we cannot\r\n // rely on moment.js methods such as firstDayOfWeek() or weekday(),\r\n // because they rely on the locale's dow (possibly overridden by\r\n // our firstDay option), which may not be Monday. We cannot change\r\n // dow, because that would affect the calendar start day as well.\r\n if (date._locale._fullCalendar_weekCalc === 'ISO') {\r\n weekCalcFirstDoW = 1; // Monday by ISO 8601 definition\r\n }\r\n else {\r\n weekCalcFirstDoW = date._locale.firstDayOfWeek();\r\n }\r\n }\r\n html += '<td class=\"' + classes.join(' ') + '\"' +\r\n (isDateValid ?\r\n ' data-date=\"' + date.format() + '\"' :\r\n '') +\r\n '>';\r\n if (this.cellWeekNumbersVisible && (date.day() === weekCalcFirstDoW)) {\r\n html += view.buildGotoAnchorHtml({ date: date, type: 'week' }, { 'class': 'fc-week-number' }, date.format('w') // inner HTML\r\n );\r\n }\r\n if (isDayNumberVisible) {\r\n html += view.buildGotoAnchorHtml(date, { 'class': 'fc-day-number' }, date.format('D') // inner HTML\r\n );\r\n }\r\n html += '</td>';\r\n return html;\r\n };\r\n /* Hit System\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.prepareHits = function () {\r\n this.colCoordCache.build();\r\n this.rowCoordCache.build();\r\n this.rowCoordCache.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack\r\n };\r\n DayGrid.prototype.releaseHits = function () {\r\n this.colCoordCache.clear();\r\n this.rowCoordCache.clear();\r\n };\r\n DayGrid.prototype.queryHit = function (leftOffset, topOffset) {\r\n if (this.colCoordCache.isLeftInBounds(leftOffset) && this.rowCoordCache.isTopInBounds(topOffset)) {\r\n var col = this.colCoordCache.getHorizontalIndex(leftOffset);\r\n var row = this.rowCoordCache.getVerticalIndex(topOffset);\r\n if (row != null && col != null) {\r\n return this.getCellHit(row, col);\r\n }\r\n }\r\n };\r\n DayGrid.prototype.getHitFootprint = function (hit) {\r\n var range = this.getCellRange(hit.row, hit.col);\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(range.start, range.end), true // all-day?\r\n );\r\n };\r\n DayGrid.prototype.getHitEl = function (hit) {\r\n return this.getCellEl(hit.row, hit.col);\r\n };\r\n /* Cell System\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // FYI: the first column is the leftmost column, regardless of date\r\n DayGrid.prototype.getCellHit = function (row, col) {\r\n return {\r\n row: row,\r\n col: col,\r\n component: this,\r\n left: this.colCoordCache.getLeftOffset(col),\r\n right: this.colCoordCache.getRightOffset(col),\r\n top: this.rowCoordCache.getTopOffset(row),\r\n bottom: this.rowCoordCache.getBottomOffset(row)\r\n };\r\n };\r\n DayGrid.prototype.getCellEl = function (row, col) {\r\n return this.cellEls.eq(row * this.colCnt + col);\r\n };\r\n /* Event Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Unrenders all events currently rendered on the grid\r\n DayGrid.prototype.executeEventUnrender = function () {\r\n this.removeSegPopover(); // removes the \"more..\" events popover\r\n _super.prototype.executeEventUnrender.call(this);\r\n };\r\n // Retrieves all rendered segment objects currently rendered on the grid\r\n DayGrid.prototype.getOwnEventSegs = function () {\r\n // append the segments from the \"more...\" popover\r\n return _super.prototype.getOwnEventSegs.call(this).concat(this.popoverSegs || []);\r\n };\r\n /* Event Drag Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event or external element being dragged.\r\n // `eventLocation` has zoned start and end (optional)\r\n DayGrid.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n this.renderHighlight(eventFootprints[i].componentFootprint);\r\n }\r\n // render drags from OTHER components as helpers\r\n if (eventFootprints.length && seg && seg.component !== this) {\r\n this.helperRenderer.renderEventDraggingFootprints(eventFootprints, seg, isTouch);\r\n return true; // signal helpers rendered\r\n }\r\n };\r\n // Unrenders any visual indication of a hovering event\r\n DayGrid.prototype.unrenderDrag = function () {\r\n this.unrenderHighlight();\r\n this.helperRenderer.unrender();\r\n };\r\n /* Event Resize Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event being resized\r\n DayGrid.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n this.renderHighlight(eventFootprints[i].componentFootprint);\r\n }\r\n this.helperRenderer.renderEventResizingFootprints(eventFootprints, seg, isTouch);\r\n };\r\n // Unrenders a visual indication of an event being resized\r\n DayGrid.prototype.unrenderEventResize = function () {\r\n this.unrenderHighlight();\r\n this.helperRenderer.unrender();\r\n };\r\n /* More+ Link Popover\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.removeSegPopover = function () {\r\n if (this.segPopover) {\r\n this.segPopover.hide(); // in handler, will call segPopover's removeElement\r\n }\r\n };\r\n // Limits the number of \"levels\" (vertically stacking layers of events) for each row of the grid.\r\n // `levelLimit` can be false (don't limit), a number, or true (should be computed).\r\n DayGrid.prototype.limitRows = function (levelLimit) {\r\n var rowStructs = this.eventRenderer.rowStructs || [];\r\n var row; // row #\r\n var rowLevelLimit;\r\n for (row = 0; row < rowStructs.length; row++) {\r\n this.unlimitRow(row);\r\n if (!levelLimit) {\r\n rowLevelLimit = false;\r\n }\r\n else if (typeof levelLimit === 'number') {\r\n rowLevelLimit = levelLimit;\r\n }\r\n else {\r\n rowLevelLimit = this.computeRowLevelLimit(row);\r\n }\r\n if (rowLevelLimit !== false) {\r\n this.limitRow(row, rowLevelLimit);\r\n }\r\n }\r\n };\r\n // Computes the number of levels a row will accomodate without going outside its bounds.\r\n // Assumes the row is \"rigid\" (maintains a constant height regardless of what is inside).\r\n // `row` is the row number.\r\n DayGrid.prototype.computeRowLevelLimit = function (row) {\r\n var rowEl = this.rowEls.eq(row); // the containing \"fake\" row div\r\n var rowHeight = rowEl.height(); // TODO: cache somehow?\r\n var trEls = this.eventRenderer.rowStructs[row].tbodyEl.children();\r\n var i;\r\n var trEl;\r\n var trHeight;\r\n function iterInnerHeights(i, childNode) {\r\n trHeight = Math.max(trHeight, $(childNode).outerHeight());\r\n }\r\n // Reveal one level <tr> at a time and stop when we find one out of bounds\r\n for (i = 0; i < trEls.length; i++) {\r\n trEl = trEls.eq(i).removeClass('fc-limited'); // reset to original state (reveal)\r\n // with rowspans>1 and IE8, trEl.outerHeight() would return the height of the largest cell,\r\n // so instead, find the tallest inner content element.\r\n trHeight = 0;\r\n trEl.find('> td > :first-child').each(iterInnerHeights);\r\n if (trEl.position().top + trHeight > rowHeight) {\r\n return i;\r\n }\r\n }\r\n return false; // should not limit at all\r\n };\r\n // Limits the given grid row to the maximum number of levels and injects \"more\" links if necessary.\r\n // `row` is the row number.\r\n // `levelLimit` is a number for the maximum (inclusive) number of levels allowed.\r\n DayGrid.prototype.limitRow = function (row, levelLimit) {\r\n var _this = this;\r\n var rowStruct = this.eventRenderer.rowStructs[row];\r\n var moreNodes = []; // array of \"more\" <a> links and <td> DOM nodes\r\n var col = 0; // col #, left-to-right (not chronologically)\r\n var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right\r\n var cellMatrix; // a matrix (by level, then column) of all <td> jQuery elements in the row\r\n var limitedNodes; // array of temporarily hidden level <tr> and segment <td> DOM nodes\r\n var i;\r\n var seg;\r\n var segsBelow; // array of segment objects below `seg` in the current `col`\r\n var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies\r\n var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column)\r\n var td;\r\n var rowspan;\r\n var segMoreNodes; // array of \"more\" <td> cells that will stand-in for the current seg's cell\r\n var j;\r\n var moreTd;\r\n var moreWrap;\r\n var moreLink;\r\n // Iterates through empty level cells and places \"more\" links inside if need be\r\n var emptyCellsUntil = function (endCol) {\r\n while (col < endCol) {\r\n segsBelow = _this.getCellSegs(row, col, levelLimit);\r\n if (segsBelow.length) {\r\n td = cellMatrix[levelLimit - 1][col];\r\n moreLink = _this.renderMoreLink(row, col, segsBelow);\r\n moreWrap = $('<div/>').append(moreLink);\r\n td.append(moreWrap);\r\n moreNodes.push(moreWrap[0]);\r\n }\r\n col++;\r\n }\r\n };\r\n if (levelLimit && levelLimit < rowStruct.segLevels.length) { // is it actually over the limit?\r\n levelSegs = rowStruct.segLevels[levelLimit - 1];\r\n cellMatrix = rowStruct.cellMatrix;\r\n limitedNodes = rowStruct.tbodyEl.children().slice(levelLimit) // get level <tr> elements past the limit\r\n .addClass('fc-limited').get(); // hide elements and get a simple DOM-nodes array\r\n // iterate though segments in the last allowable level\r\n for (i = 0; i < levelSegs.length; i++) {\r\n seg = levelSegs[i];\r\n emptyCellsUntil(seg.leftCol); // process empty cells before the segment\r\n // determine *all* segments below `seg` that occupy the same columns\r\n colSegsBelow = [];\r\n totalSegsBelow = 0;\r\n while (col <= seg.rightCol) {\r\n segsBelow = this.getCellSegs(row, col, levelLimit);\r\n colSegsBelow.push(segsBelow);\r\n totalSegsBelow += segsBelow.length;\r\n col++;\r\n }\r\n if (totalSegsBelow) { // do we need to replace this segment with one or many \"more\" links?\r\n td = cellMatrix[levelLimit - 1][seg.leftCol]; // the segment's parent cell\r\n rowspan = td.attr('rowspan') || 1;\r\n segMoreNodes = [];\r\n // make a replacement <td> for each column the segment occupies. will be one for each colspan\r\n for (j = 0; j < colSegsBelow.length; j++) {\r\n moreTd = $('<td class=\"fc-more-cell\"/>').attr('rowspan', rowspan);\r\n segsBelow = colSegsBelow[j];\r\n moreLink = this.renderMoreLink(row, seg.leftCol + j, [seg].concat(segsBelow) // count seg as hidden too\r\n );\r\n moreWrap = $('<div/>').append(moreLink);\r\n moreTd.append(moreWrap);\r\n segMoreNodes.push(moreTd[0]);\r\n moreNodes.push(moreTd[0]);\r\n }\r\n td.addClass('fc-limited').after($(segMoreNodes)); // hide original <td> and inject replacements\r\n limitedNodes.push(td[0]);\r\n }\r\n }\r\n emptyCellsUntil(this.colCnt); // finish off the level\r\n rowStruct.moreEls = $(moreNodes); // for easy undoing later\r\n rowStruct.limitedEls = $(limitedNodes); // for easy undoing later\r\n }\r\n };\r\n // Reveals all levels and removes all \"more\"-related elements for a grid's row.\r\n // `row` is a row number.\r\n DayGrid.prototype.unlimitRow = function (row) {\r\n var rowStruct = this.eventRenderer.rowStructs[row];\r\n if (rowStruct.moreEls) {\r\n rowStruct.moreEls.remove();\r\n rowStruct.moreEls = null;\r\n }\r\n if (rowStruct.limitedEls) {\r\n rowStruct.limitedEls.removeClass('fc-limited');\r\n rowStruct.limitedEls = null;\r\n }\r\n };\r\n // Renders an <a> element that represents hidden event element for a cell.\r\n // Responsible for attaching click handler as well.\r\n DayGrid.prototype.renderMoreLink = function (row, col, hiddenSegs) {\r\n var _this = this;\r\n var view = this.view;\r\n return $('<a class=\"fc-more\"/>')\r\n .text(this.getMoreLinkText(hiddenSegs.length))\r\n .on('click', function (ev) {\r\n var clickOption = _this.opt('eventLimitClick');\r\n var date = _this.getCellDate(row, col);\r\n var moreEl = $(ev.currentTarget);\r\n var dayEl = _this.getCellEl(row, col);\r\n var allSegs = _this.getCellSegs(row, col);\r\n // rescope the segments to be within the cell's date\r\n var reslicedAllSegs = _this.resliceDaySegs(allSegs, date);\r\n var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date);\r\n if (typeof clickOption === 'function') {\r\n // the returned value can be an atomic option\r\n clickOption = _this.publiclyTrigger('eventLimitClick', {\r\n context: view,\r\n args: [\r\n {\r\n date: date.clone(),\r\n dayEl: dayEl,\r\n moreEl: moreEl,\r\n segs: reslicedAllSegs,\r\n hiddenSegs: reslicedHiddenSegs\r\n },\r\n ev,\r\n view\r\n ]\r\n });\r\n }\r\n if (clickOption === 'popover') {\r\n _this.showSegPopover(row, col, moreEl, reslicedAllSegs);\r\n }\r\n else if (typeof clickOption === 'string') { // a view name\r\n view.calendar.zoomTo(date, clickOption);\r\n }\r\n });\r\n };\r\n // Reveals the popover that displays all events within a cell\r\n DayGrid.prototype.showSegPopover = function (row, col, moreLink, segs) {\r\n var _this = this;\r\n var view = this.view;\r\n var moreWrap = moreLink.parent(); // the <div> wrapper around the <a>\r\n var topEl; // the element we want to match the top coordinate of\r\n var options;\r\n if (this.rowCnt === 1) {\r\n topEl = view.el; // will cause the popover to cover any sort of header\r\n }\r\n else {\r\n topEl = this.rowEls.eq(row); // will align with top of row\r\n }\r\n options = {\r\n className: 'fc-more-popover ' + view.calendar.theme.getClass('popover'),\r\n content: this.renderSegPopoverContent(row, col, segs),\r\n parentEl: view.el,\r\n top: topEl.offset().top,\r\n autoHide: true,\r\n viewportConstrain: this.opt('popoverViewportConstrain'),\r\n hide: function () {\r\n // kill everything when the popover is hidden\r\n // notify events to be removed\r\n if (_this.popoverSegs) {\r\n _this.triggerBeforeEventSegsDestroyed(_this.popoverSegs);\r\n }\r\n _this.segPopover.removeElement();\r\n _this.segPopover = null;\r\n _this.popoverSegs = null;\r\n }\r\n };\r\n // Determine horizontal coordinate.\r\n // We use the moreWrap instead of the <td> to avoid border confusion.\r\n if (this.isRTL) {\r\n options.right = moreWrap.offset().left + moreWrap.outerWidth() + 1; // +1 to be over cell border\r\n }\r\n else {\r\n options.left = moreWrap.offset().left - 1; // -1 to be over cell border\r\n }\r\n this.segPopover = new Popover_1.default(options);\r\n this.segPopover.show();\r\n // the popover doesn't live within the grid's container element, and thus won't get the event\r\n // delegated-handlers for free. attach event-related handlers to the popover.\r\n this.bindAllSegHandlersToEl(this.segPopover.el);\r\n this.triggerAfterEventSegsRendered(segs);\r\n };\r\n // Builds the inner DOM contents of the segment popover\r\n DayGrid.prototype.renderSegPopoverContent = function (row, col, segs) {\r\n var view = this.view;\r\n var theme = view.calendar.theme;\r\n var title = this.getCellDate(row, col).format(this.opt('dayPopoverFormat'));\r\n var content = $('<div class=\"fc-header ' + theme.getClass('popoverHeader') + '\">' +\r\n '<span class=\"fc-close ' + theme.getIconClass('close') + '\"></span>' +\r\n '<span class=\"fc-title\">' +\r\n util_1.htmlEscape(title) +\r\n '</span>' +\r\n '<div class=\"fc-clear\"/>' +\r\n '</div>' +\r\n '<div class=\"fc-body ' + theme.getClass('popoverContent') + '\">' +\r\n '<div class=\"fc-event-container\"></div>' +\r\n '</div>');\r\n var segContainer = content.find('.fc-event-container');\r\n var i;\r\n // render each seg's `el` and only return the visible segs\r\n segs = this.eventRenderer.renderFgSegEls(segs, true); // disableResizing=true\r\n this.popoverSegs = segs;\r\n for (i = 0; i < segs.length; i++) {\r\n // because segments in the popover are not part of a grid coordinate system, provide a hint to any\r\n // grids that want to do drag-n-drop about which cell it came from\r\n this.hitsNeeded();\r\n segs[i].hit = this.getCellHit(row, col);\r\n this.hitsNotNeeded();\r\n segContainer.append(segs[i].el);\r\n }\r\n return content;\r\n };\r\n // Given the events within an array of segment objects, reslice them to be in a single day\r\n DayGrid.prototype.resliceDaySegs = function (segs, dayDate) {\r\n var dayStart = dayDate.clone();\r\n var dayEnd = dayStart.clone().add(1, 'days');\r\n var dayRange = new UnzonedRange_1.default(dayStart, dayEnd);\r\n var newSegs = [];\r\n var i;\r\n var seg;\r\n var slicedRange;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n slicedRange = seg.footprint.componentFootprint.unzonedRange.intersect(dayRange);\r\n if (slicedRange) {\r\n newSegs.push($.extend({}, seg, {\r\n footprint: new EventFootprint_1.default(new ComponentFootprint_1.default(slicedRange, seg.footprint.componentFootprint.isAllDay), seg.footprint.eventDef, seg.footprint.eventInstance),\r\n isStart: seg.isStart && slicedRange.isStart,\r\n isEnd: seg.isEnd && slicedRange.isEnd\r\n }));\r\n }\r\n }\r\n // force an order because eventsToSegs doesn't guarantee one\r\n // TODO: research if still needed\r\n this.eventRenderer.sortEventSegs(newSegs);\r\n return newSegs;\r\n };\r\n // Generates the text that should be inside a \"more\" link, given the number of events it represents\r\n DayGrid.prototype.getMoreLinkText = function (num) {\r\n var opt = this.opt('eventLimitText');\r\n if (typeof opt === 'function') {\r\n return opt(num);\r\n }\r\n else {\r\n return '+' + num + ' ' + opt;\r\n }\r\n };\r\n // Returns segments within a given cell.\r\n // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs.\r\n DayGrid.prototype.getCellSegs = function (row, col, startLevel) {\r\n var segMatrix = this.eventRenderer.rowStructs[row].segMatrix;\r\n var level = startLevel || 0;\r\n var segs = [];\r\n var seg;\r\n while (level < segMatrix.length) {\r\n seg = segMatrix[level][col];\r\n if (seg) {\r\n segs.push(seg);\r\n }\r\n level++;\r\n }\r\n return segs;\r\n };\r\n return DayGrid;\r\n}(InteractiveDateComponent_1.default));\r\nexports.default = DayGrid;\r\nDayGrid.prototype.eventRendererClass = DayGridEventRenderer_1.default;\r\nDayGrid.prototype.businessHourRendererClass = BusinessHourRenderer_1.default;\r\nDayGrid.prototype.helperRendererClass = DayGridHelperRenderer_1.default;\r\nDayGrid.prototype.fillRendererClass = DayGridFillRenderer_1.default;\r\nStandardInteractionsMixin_1.default.mixInto(DayGrid);\r\nDayTableMixin_1.default.mixInto(DayGrid);\r\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Scroller_1 = __webpack_require__(41);\r\nvar View_1 = __webpack_require__(43);\r\nvar BasicViewDateProfileGenerator_1 = __webpack_require__(68);\r\nvar DayGrid_1 = __webpack_require__(66);\r\n/* An abstract class for the \"basic\" views, as well as month view. Renders one or more rows of day cells.\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// It is a manager for a DayGrid subcomponent, which does most of the heavy lifting.\r\n// It is responsible for managing width/height.\r\nvar BasicView = /** @class */ (function (_super) {\r\n tslib_1.__extends(BasicView, _super);\r\n function BasicView(calendar, viewSpec) {\r\n var _this = _super.call(this, calendar, viewSpec) || this;\r\n _this.dayGrid = _this.instantiateDayGrid();\r\n _this.dayGrid.isRigid = _this.hasRigidRows();\r\n if (_this.opt('weekNumbers')) {\r\n if (_this.opt('weekNumbersWithinDays')) {\r\n _this.dayGrid.cellWeekNumbersVisible = true;\r\n _this.dayGrid.colWeekNumbersVisible = false;\r\n }\r\n else {\r\n _this.dayGrid.cellWeekNumbersVisible = false;\r\n _this.dayGrid.colWeekNumbersVisible = true;\r\n }\r\n }\r\n _this.addChild(_this.dayGrid);\r\n _this.scroller = new Scroller_1.default({\r\n overflowX: 'hidden',\r\n overflowY: 'auto'\r\n });\r\n return _this;\r\n }\r\n // Generates the DayGrid object this view needs. Draws from this.dayGridClass\r\n BasicView.prototype.instantiateDayGrid = function () {\r\n // generate a subclass on the fly with BasicView-specific behavior\r\n // TODO: cache this subclass\r\n var subclass = makeDayGridSubclass(this.dayGridClass);\r\n return new subclass(this);\r\n };\r\n BasicView.prototype.executeDateRender = function (dateProfile) {\r\n this.dayGrid.breakOnWeeks = /year|month|week/.test(dateProfile.currentRangeUnit);\r\n _super.prototype.executeDateRender.call(this, dateProfile);\r\n };\r\n BasicView.prototype.renderSkeleton = function () {\r\n var dayGridContainerEl;\r\n var dayGridEl;\r\n this.el.addClass('fc-basic-view').html(this.renderSkeletonHtml());\r\n this.scroller.render();\r\n dayGridContainerEl = this.scroller.el.addClass('fc-day-grid-container');\r\n dayGridEl = $('<div class=\"fc-day-grid\" />').appendTo(dayGridContainerEl);\r\n this.el.find('.fc-body > tr > td').append(dayGridContainerEl);\r\n this.dayGrid.headContainerEl = this.el.find('.fc-head-container');\r\n this.dayGrid.setElement(dayGridEl);\r\n };\r\n BasicView.prototype.unrenderSkeleton = function () {\r\n this.dayGrid.removeElement();\r\n this.scroller.destroy();\r\n };\r\n // Builds the HTML skeleton for the view.\r\n // The day-grid component will render inside of a container defined by this HTML.\r\n BasicView.prototype.renderSkeletonHtml = function () {\r\n var theme = this.calendar.theme;\r\n return '' +\r\n '<table class=\"' + theme.getClass('tableGrid') + '\">' +\r\n (this.opt('columnHeader') ?\r\n '<thead class=\"fc-head\">' +\r\n '<tr>' +\r\n '<td class=\"fc-head-container ' + theme.getClass('widgetHeader') + '\"> </td>' +\r\n '</tr>' +\r\n '</thead>' :\r\n '') +\r\n '<tbody class=\"fc-body\">' +\r\n '<tr>' +\r\n '<td class=\"' + theme.getClass('widgetContent') + '\"></td>' +\r\n '</tr>' +\r\n '</tbody>' +\r\n '</table>';\r\n };\r\n // Generates an HTML attribute string for setting the width of the week number column, if it is known\r\n BasicView.prototype.weekNumberStyleAttr = function () {\r\n if (this.weekNumberWidth != null) {\r\n return 'style=\"width:' + this.weekNumberWidth + 'px\"';\r\n }\r\n return '';\r\n };\r\n // Determines whether each row should have a constant height\r\n BasicView.prototype.hasRigidRows = function () {\r\n var eventLimit = this.opt('eventLimit');\r\n return eventLimit && typeof eventLimit !== 'number';\r\n };\r\n /* Dimensions\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Refreshes the horizontal dimensions of the view\r\n BasicView.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n var eventLimit = this.opt('eventLimit');\r\n var headRowEl = this.dayGrid.headContainerEl.find('.fc-row');\r\n var scrollerHeight;\r\n var scrollbarWidths;\r\n // hack to give the view some height prior to dayGrid's columns being rendered\r\n // TODO: separate setting height from scroller VS dayGrid.\r\n if (!this.dayGrid.rowEls) {\r\n if (!isAuto) {\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n return;\r\n }\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n if (this.dayGrid.colWeekNumbersVisible) {\r\n // Make sure all week number cells running down the side have the same width.\r\n // Record the width for cells created later.\r\n this.weekNumberWidth = util_1.matchCellWidths(this.el.find('.fc-week-number'));\r\n }\r\n // reset all heights to be natural\r\n this.scroller.clear();\r\n util_1.uncompensateScroll(headRowEl);\r\n this.dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\r\n // is the event limit a constant level number?\r\n if (eventLimit && typeof eventLimit === 'number') {\r\n this.dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after\r\n }\r\n // distribute the height to the rows\r\n // (totalHeight is a \"recommended\" value if isAuto)\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.setGridHeight(scrollerHeight, isAuto);\r\n // is the event limit dynamically calculated?\r\n if (eventLimit && typeof eventLimit !== 'number') {\r\n this.dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set\r\n }\r\n if (!isAuto) { // should we force dimensions of the scroll container?\r\n this.scroller.setHeight(scrollerHeight);\r\n scrollbarWidths = this.scroller.getScrollbarWidths();\r\n if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars?\r\n util_1.compensateScroll(headRowEl, scrollbarWidths);\r\n // doing the scrollbar compensation might have created text overflow which created more height. redo\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n // guarantees the same scrollbar widths\r\n this.scroller.lockOverflow(scrollbarWidths);\r\n }\r\n };\r\n // given a desired total height of the view, returns what the height of the scroller should be\r\n BasicView.prototype.computeScrollerHeight = function (totalHeight) {\r\n return totalHeight -\r\n util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\r\n };\r\n // Sets the height of just the DayGrid component in this view\r\n BasicView.prototype.setGridHeight = function (height, isAuto) {\r\n if (isAuto) {\r\n util_1.undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding\r\n }\r\n else {\r\n util_1.distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows\r\n }\r\n };\r\n /* Scroll\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n BasicView.prototype.computeInitialDateScroll = function () {\r\n return { top: 0 };\r\n };\r\n BasicView.prototype.queryDateScroll = function () {\r\n return { top: this.scroller.getScrollTop() };\r\n };\r\n BasicView.prototype.applyDateScroll = function (scroll) {\r\n if (scroll.top !== undefined) {\r\n this.scroller.setScrollTop(scroll.top);\r\n }\r\n };\r\n return BasicView;\r\n}(View_1.default));\r\nexports.default = BasicView;\r\nBasicView.prototype.dateProfileGeneratorClass = BasicViewDateProfileGenerator_1.default;\r\nBasicView.prototype.dayGridClass = DayGrid_1.default;\r\n// customize the rendering behavior of BasicView's dayGrid\r\nfunction makeDayGridSubclass(SuperClass) {\r\n return /** @class */ (function (_super) {\r\n tslib_1.__extends(SubClass, _super);\r\n function SubClass() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.colWeekNumbersVisible = false; // display week numbers along the side?\r\n return _this;\r\n }\r\n // Generates the HTML that will go before the day-of week header cells\r\n SubClass.prototype.renderHeadIntroHtml = function () {\r\n var view = this.view;\r\n if (this.colWeekNumbersVisible) {\r\n return '' +\r\n '<th class=\"fc-week-number ' + view.calendar.theme.getClass('widgetHeader') + '\" ' + view.weekNumberStyleAttr() + '>' +\r\n '<span>' + // needed for matchCellWidths\r\n util_1.htmlEscape(this.opt('weekNumberTitle')) +\r\n '</span>' +\r\n '</th>';\r\n }\r\n return '';\r\n };\r\n // Generates the HTML that will go before content-skeleton cells that display the day/week numbers\r\n SubClass.prototype.renderNumberIntroHtml = function (row) {\r\n var view = this.view;\r\n var weekStart = this.getCellDate(row, 0);\r\n if (this.colWeekNumbersVisible) {\r\n return '' +\r\n '<td class=\"fc-week-number\" ' + view.weekNumberStyleAttr() + '>' +\r\n view.buildGotoAnchorHtml(// aside from link, important for matchCellWidths\r\n { date: weekStart, type: 'week', forceOff: this.colCnt === 1 }, weekStart.format('w') // inner HTML\r\n ) +\r\n '</td>';\r\n }\r\n return '';\r\n };\r\n // Generates the HTML that goes before the day bg cells for each day-row\r\n SubClass.prototype.renderBgIntroHtml = function () {\r\n var view = this.view;\r\n if (this.colWeekNumbersVisible) {\r\n return '<td class=\"fc-week-number ' + view.calendar.theme.getClass('widgetContent') + '\" ' +\r\n view.weekNumberStyleAttr() + '></td>';\r\n }\r\n return '';\r\n };\r\n // Generates the HTML that goes before every other type of row generated by DayGrid.\r\n // Affects helper-skeleton and highlight-skeleton rows.\r\n SubClass.prototype.renderIntroHtml = function () {\r\n var view = this.view;\r\n if (this.colWeekNumbersVisible) {\r\n return '<td class=\"fc-week-number\" ' + view.weekNumberStyleAttr() + '></td>';\r\n }\r\n return '';\r\n };\r\n SubClass.prototype.getIsNumbersVisible = function () {\r\n return DayGrid_1.default.prototype.getIsNumbersVisible.apply(this, arguments) || this.colWeekNumbersVisible;\r\n };\r\n return SubClass;\r\n }(SuperClass));\r\n}\r\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar DateProfileGenerator_1 = __webpack_require__(55);\r\nvar BasicViewDateProfileGenerator = /** @class */ (function (_super) {\r\n tslib_1.__extends(BasicViewDateProfileGenerator, _super);\r\n function BasicViewDateProfileGenerator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Computes the date range that will be rendered.\r\n BasicViewDateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) {\r\n var renderUnzonedRange = _super.prototype.buildRenderRange.call(this, currentUnzonedRange, currentRangeUnit, isRangeAllDay); // an UnzonedRange\r\n var start = this.msToUtcMoment(renderUnzonedRange.startMs, isRangeAllDay);\r\n var end = this.msToUtcMoment(renderUnzonedRange.endMs, isRangeAllDay);\r\n // year and month views should be aligned with weeks. this is already done for week\r\n if (/^(year|month)$/.test(currentRangeUnit)) {\r\n start.startOf('week');\r\n // make end-of-week if not already\r\n if (end.weekday()) {\r\n end.add(1, 'week').startOf('week'); // exclusively move backwards\r\n }\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n return BasicViewDateProfileGenerator;\r\n}(DateProfileGenerator_1.default));\r\nexports.default = BasicViewDateProfileGenerator;\r\n\n\n/***/ }),\n/* 69 */,\n/* 70 */,\n/* 71 */,\n/* 72 */,\n/* 73 */,\n/* 74 */,\n/* 75 */,\n/* 76 */,\n/* 77 */,\n/* 78 */,\n/* 79 */,\n/* 80 */,\n/* 81 */,\n/* 82 */,\n/* 83 */,\n/* 84 */,\n/* 85 */,\n/* 86 */,\n/* 87 */,\n/* 88 */,\n/* 89 */,\n/* 90 */,\n/* 91 */,\n/* 92 */,\n/* 93 */,\n/* 94 */,\n/* 95 */,\n/* 96 */,\n/* 97 */,\n/* 98 */,\n/* 99 */,\n/* 100 */,\n/* 101 */,\n/* 102 */,\n/* 103 */,\n/* 104 */,\n/* 105 */,\n/* 106 */,\n/* 107 */,\n/* 108 */,\n/* 109 */,\n/* 110 */,\n/* 111 */,\n/* 112 */,\n/* 113 */,\n/* 114 */,\n/* 115 */,\n/* 116 */,\n/* 117 */,\n/* 118 */,\n/* 119 */,\n/* 120 */,\n/* 121 */,\n/* 122 */,\n/* 123 */,\n/* 124 */,\n/* 125 */,\n/* 126 */,\n/* 127 */,\n/* 128 */,\n/* 129 */,\n/* 130 */,\n/* 131 */,\n/* 132 */,\n/* 133 */,\n/* 134 */,\n/* 135 */,\n/* 136 */,\n/* 137 */,\n/* 138 */,\n/* 139 */,\n/* 140 */,\n/* 141 */,\n/* 142 */,\n/* 143 */,\n/* 144 */,\n/* 145 */,\n/* 146 */,\n/* 147 */,\n/* 148 */,\n/* 149 */,\n/* 150 */,\n/* 151 */,\n/* 152 */,\n/* 153 */,\n/* 154 */,\n/* 155 */,\n/* 156 */,\n/* 157 */,\n/* 158 */,\n/* 159 */,\n/* 160 */,\n/* 161 */,\n/* 162 */,\n/* 163 */,\n/* 164 */,\n/* 165 */,\n/* 166 */,\n/* 167 */,\n/* 168 */,\n/* 169 */,\n/* 170 */,\n/* 171 */,\n/* 172 */,\n/* 173 */,\n/* 174 */,\n/* 175 */,\n/* 176 */,\n/* 177 */,\n/* 178 */,\n/* 179 */,\n/* 180 */,\n/* 181 */,\n/* 182 */,\n/* 183 */,\n/* 184 */,\n/* 185 */,\n/* 186 */,\n/* 187 */,\n/* 188 */,\n/* 189 */,\n/* 190 */,\n/* 191 */,\n/* 192 */,\n/* 193 */,\n/* 194 */,\n/* 195 */,\n/* 196 */,\n/* 197 */,\n/* 198 */,\n/* 199 */,\n/* 200 */,\n/* 201 */,\n/* 202 */,\n/* 203 */,\n/* 204 */,\n/* 205 */,\n/* 206 */,\n/* 207 */,\n/* 208 */,\n/* 209 */,\n/* 210 */,\n/* 211 */,\n/* 212 */,\n/* 213 */,\n/* 214 */,\n/* 215 */,\n/* 216 */,\n/* 217 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventDefParser_1 = __webpack_require__(36);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar util_1 = __webpack_require__(19);\r\nvar Constraints = /** @class */ (function () {\r\n function Constraints(eventManager, _calendar) {\r\n this.eventManager = eventManager;\r\n this._calendar = _calendar;\r\n }\r\n Constraints.prototype.opt = function (name) {\r\n return this._calendar.opt(name);\r\n };\r\n /*\r\n determines if eventInstanceGroup is allowed,\r\n in relation to other EVENTS and business hours.\r\n */\r\n Constraints.prototype.isEventInstanceGroupAllowed = function (eventInstanceGroup) {\r\n var eventDef = eventInstanceGroup.getEventDef();\r\n var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges());\r\n var i;\r\n var peerEventInstances = this.getPeerEventInstances(eventDef);\r\n var peerEventRanges = peerEventInstances.map(util_1.eventInstanceToEventRange);\r\n var peerEventFootprints = this.eventRangesToEventFootprints(peerEventRanges);\r\n var constraintVal = eventDef.getConstraint();\r\n var overlapVal = eventDef.getOverlap();\r\n var eventAllowFunc = this.opt('eventAllow');\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (!this.isFootprintAllowed(eventFootprints[i].componentFootprint, peerEventFootprints, constraintVal, overlapVal, eventFootprints[i].eventInstance)) {\r\n return false;\r\n }\r\n }\r\n if (eventAllowFunc) {\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (eventAllowFunc(eventFootprints[i].componentFootprint.toLegacy(this._calendar), eventFootprints[i].getEventLegacy()) === false) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n Constraints.prototype.getPeerEventInstances = function (eventDef) {\r\n return this.eventManager.getEventInstancesWithoutId(eventDef.id);\r\n };\r\n Constraints.prototype.isSelectionFootprintAllowed = function (componentFootprint) {\r\n var peerEventInstances = this.eventManager.getEventInstances();\r\n var peerEventRanges = peerEventInstances.map(util_1.eventInstanceToEventRange);\r\n var peerEventFootprints = this.eventRangesToEventFootprints(peerEventRanges);\r\n var selectAllowFunc;\r\n if (this.isFootprintAllowed(componentFootprint, peerEventFootprints, this.opt('selectConstraint'), this.opt('selectOverlap'))) {\r\n selectAllowFunc = this.opt('selectAllow');\r\n if (selectAllowFunc) {\r\n return selectAllowFunc(componentFootprint.toLegacy(this._calendar)) !== false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Constraints.prototype.isFootprintAllowed = function (componentFootprint, peerEventFootprints, constraintVal, overlapVal, subjectEventInstance // optional\r\n ) {\r\n var constraintFootprints; // ComponentFootprint[]\r\n var overlapEventFootprints; // EventFootprint[]\r\n if (constraintVal != null) {\r\n constraintFootprints = this.constraintValToFootprints(constraintVal, componentFootprint.isAllDay);\r\n if (!this.isFootprintWithinConstraints(componentFootprint, constraintFootprints)) {\r\n return false;\r\n }\r\n }\r\n overlapEventFootprints = this.collectOverlapEventFootprints(peerEventFootprints, componentFootprint);\r\n if (overlapVal === false) {\r\n if (overlapEventFootprints.length) {\r\n return false;\r\n }\r\n }\r\n else if (typeof overlapVal === 'function') {\r\n if (!isOverlapsAllowedByFunc(overlapEventFootprints, overlapVal, subjectEventInstance)) {\r\n return false;\r\n }\r\n }\r\n if (subjectEventInstance) {\r\n if (!isOverlapEventInstancesAllowed(overlapEventFootprints, subjectEventInstance)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n // Constraint\r\n // ------------------------------------------------------------------------------------------------\r\n Constraints.prototype.isFootprintWithinConstraints = function (componentFootprint, constraintFootprints) {\r\n var i;\r\n for (i = 0; i < constraintFootprints.length; i++) {\r\n if (this.footprintContainsFootprint(constraintFootprints[i], componentFootprint)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Constraints.prototype.constraintValToFootprints = function (constraintVal, isAllDay) {\r\n var eventInstances;\r\n if (constraintVal === 'businessHours') {\r\n return this.buildCurrentBusinessFootprints(isAllDay);\r\n }\r\n else if (typeof constraintVal === 'object') {\r\n eventInstances = this.parseEventDefToInstances(constraintVal); // handles recurring events\r\n if (!eventInstances) { // invalid input. fallback to parsing footprint directly\r\n return this.parseFootprints(constraintVal);\r\n }\r\n else {\r\n return this.eventInstancesToFootprints(eventInstances);\r\n }\r\n }\r\n else if (constraintVal != null) { // an ID\r\n eventInstances = this.eventManager.getEventInstancesWithId(constraintVal);\r\n return this.eventInstancesToFootprints(eventInstances);\r\n }\r\n };\r\n // returns ComponentFootprint[]\r\n // uses current view's range\r\n Constraints.prototype.buildCurrentBusinessFootprints = function (isAllDay) {\r\n var view = this._calendar.view;\r\n var businessHourGenerator = view.get('businessHourGenerator');\r\n var unzonedRange = view.dateProfile.activeUnzonedRange;\r\n var eventInstanceGroup = businessHourGenerator.buildEventInstanceGroup(isAllDay, unzonedRange);\r\n if (eventInstanceGroup) {\r\n return this.eventInstancesToFootprints(eventInstanceGroup.eventInstances);\r\n }\r\n else {\r\n return [];\r\n }\r\n };\r\n // conversion util\r\n Constraints.prototype.eventInstancesToFootprints = function (eventInstances) {\r\n var eventRanges = eventInstances.map(util_1.eventInstanceToEventRange);\r\n var eventFootprints = this.eventRangesToEventFootprints(eventRanges);\r\n return eventFootprints.map(util_1.eventFootprintToComponentFootprint);\r\n };\r\n // Overlap\r\n // ------------------------------------------------------------------------------------------------\r\n Constraints.prototype.collectOverlapEventFootprints = function (peerEventFootprints, targetFootprint) {\r\n var overlapEventFootprints = [];\r\n var i;\r\n for (i = 0; i < peerEventFootprints.length; i++) {\r\n if (this.footprintsIntersect(targetFootprint, peerEventFootprints[i].componentFootprint)) {\r\n overlapEventFootprints.push(peerEventFootprints[i]);\r\n }\r\n }\r\n return overlapEventFootprints;\r\n };\r\n // Conversion: eventDefs -> eventInstances -> eventRanges -> eventFootprints -> componentFootprints\r\n // ------------------------------------------------------------------------------------------------\r\n // NOTE: this might seem like repetitive code with the Grid class, however, this code is related to\r\n // constraints whereas the Grid code is related to rendering. Each approach might want to convert\r\n // eventRanges -> eventFootprints in a different way. Regardless, there are opportunities to make\r\n // this more DRY.\r\n /*\r\n Returns false on invalid input.\r\n */\r\n Constraints.prototype.parseEventDefToInstances = function (eventInput) {\r\n var eventManager = this.eventManager;\r\n var eventDef = EventDefParser_1.default.parse(eventInput, new EventSource_1.default(this._calendar));\r\n if (!eventDef) { // invalid\r\n return false;\r\n }\r\n return eventDef.buildInstances(eventManager.currentPeriod.unzonedRange);\r\n };\r\n Constraints.prototype.eventRangesToEventFootprints = function (eventRanges) {\r\n var i;\r\n var eventFootprints = [];\r\n for (i = 0; i < eventRanges.length; i++) {\r\n eventFootprints.push.apply(// footprints\r\n eventFootprints, this.eventRangeToEventFootprints(eventRanges[i]));\r\n }\r\n return eventFootprints;\r\n };\r\n Constraints.prototype.eventRangeToEventFootprints = function (eventRange) {\r\n return [util_1.eventRangeToEventFootprint(eventRange)];\r\n };\r\n /*\r\n Parses footprints directly.\r\n Very similar to EventDateProfile::parse :(\r\n */\r\n Constraints.prototype.parseFootprints = function (rawInput) {\r\n var start;\r\n var end;\r\n if (rawInput.start) {\r\n start = this._calendar.moment(rawInput.start);\r\n if (!start.isValid()) {\r\n start = null;\r\n }\r\n }\r\n if (rawInput.end) {\r\n end = this._calendar.moment(rawInput.end);\r\n if (!end.isValid()) {\r\n end = null;\r\n }\r\n }\r\n return [\r\n new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), (start && !start.hasTime()) || (end && !end.hasTime()) // isAllDay\r\n )\r\n ];\r\n };\r\n // Footprint Utils\r\n // ----------------------------------------------------------------------------------------\r\n Constraints.prototype.footprintContainsFootprint = function (outerFootprint, innerFootprint) {\r\n return outerFootprint.unzonedRange.containsRange(innerFootprint.unzonedRange);\r\n };\r\n Constraints.prototype.footprintsIntersect = function (footprint0, footprint1) {\r\n return footprint0.unzonedRange.intersectsWith(footprint1.unzonedRange);\r\n };\r\n return Constraints;\r\n}());\r\nexports.default = Constraints;\r\n// optional subjectEventInstance\r\nfunction isOverlapsAllowedByFunc(overlapEventFootprints, overlapFunc, subjectEventInstance) {\r\n var i;\r\n for (i = 0; i < overlapEventFootprints.length; i++) {\r\n if (!overlapFunc(overlapEventFootprints[i].eventInstance.toLegacy(), subjectEventInstance ? subjectEventInstance.toLegacy() : null)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isOverlapEventInstancesAllowed(overlapEventFootprints, subjectEventInstance) {\r\n var subjectLegacyInstance = subjectEventInstance.toLegacy();\r\n var i;\r\n var overlapEventInstance;\r\n var overlapEventDef;\r\n var overlapVal;\r\n for (i = 0; i < overlapEventFootprints.length; i++) {\r\n overlapEventInstance = overlapEventFootprints[i].eventInstance;\r\n overlapEventDef = overlapEventInstance.def;\r\n // don't need to pass in calendar, because don't want to consider global eventOverlap property,\r\n // because we already considered that earlier in the process.\r\n overlapVal = overlapEventDef.getOverlap();\r\n if (overlapVal === false) {\r\n return false;\r\n }\r\n else if (typeof overlapVal === 'function') {\r\n if (!overlapVal(overlapEventInstance.toLegacy(), subjectLegacyInstance)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n\n\n/***/ }),\n/* 218 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(19);\r\nvar EventInstanceGroup_1 = __webpack_require__(20);\r\nvar RecurringEventDef_1 = __webpack_require__(54);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar BUSINESS_HOUR_EVENT_DEFAULTS = {\r\n start: '09:00',\r\n end: '17:00',\r\n dow: [1, 2, 3, 4, 5],\r\n rendering: 'inverse-background'\r\n // classNames are defined in businessHoursSegClasses\r\n};\r\nvar BusinessHourGenerator = /** @class */ (function () {\r\n function BusinessHourGenerator(rawComplexDef, calendar) {\r\n this.rawComplexDef = rawComplexDef;\r\n this.calendar = calendar;\r\n }\r\n BusinessHourGenerator.prototype.buildEventInstanceGroup = function (isAllDay, unzonedRange) {\r\n var eventDefs = this.buildEventDefs(isAllDay);\r\n var eventInstanceGroup;\r\n if (eventDefs.length) {\r\n eventInstanceGroup = new EventInstanceGroup_1.default(util_1.eventDefsToEventInstances(eventDefs, unzonedRange));\r\n // so that inverse-background rendering can happen even when no eventRanges in view\r\n eventInstanceGroup.explicitEventDef = eventDefs[0];\r\n return eventInstanceGroup;\r\n }\r\n };\r\n BusinessHourGenerator.prototype.buildEventDefs = function (isAllDay) {\r\n var rawComplexDef = this.rawComplexDef;\r\n var rawDefs = [];\r\n var requireDow = false;\r\n var i;\r\n var defs = [];\r\n if (rawComplexDef === true) {\r\n rawDefs = [{}]; // will get BUSINESS_HOUR_EVENT_DEFAULTS verbatim\r\n }\r\n else if ($.isPlainObject(rawComplexDef)) {\r\n rawDefs = [rawComplexDef];\r\n }\r\n else if ($.isArray(rawComplexDef)) {\r\n rawDefs = rawComplexDef;\r\n requireDow = true; // every sub-definition NEEDS a day-of-week\r\n }\r\n for (i = 0; i < rawDefs.length; i++) {\r\n if (!requireDow || rawDefs[i].dow) {\r\n defs.push(this.buildEventDef(isAllDay, rawDefs[i]));\r\n }\r\n }\r\n return defs;\r\n };\r\n BusinessHourGenerator.prototype.buildEventDef = function (isAllDay, rawDef) {\r\n var fullRawDef = $.extend({}, BUSINESS_HOUR_EVENT_DEFAULTS, rawDef);\r\n if (isAllDay) {\r\n fullRawDef.start = null;\r\n fullRawDef.end = null;\r\n }\r\n return RecurringEventDef_1.default.parse(fullRawDef, new EventSource_1.default(this.calendar) // dummy source\r\n );\r\n };\r\n return BusinessHourGenerator;\r\n}());\r\nexports.default = BusinessHourGenerator;\r\n\n\n/***/ }),\n/* 219 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Promise_1 = __webpack_require__(21);\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar EventInstanceGroup_1 = __webpack_require__(20);\r\nvar EventPeriod = /** @class */ (function () {\r\n function EventPeriod(start, end, timezone) {\r\n this.pendingCnt = 0;\r\n this.freezeDepth = 0;\r\n this.stuntedReleaseCnt = 0;\r\n this.releaseCnt = 0;\r\n this.start = start;\r\n this.end = end;\r\n this.timezone = timezone;\r\n this.unzonedRange = new UnzonedRange_1.default(start.clone().stripZone(), end.clone().stripZone());\r\n this.requestsByUid = {};\r\n this.eventDefsByUid = {};\r\n this.eventDefsById = {};\r\n this.eventInstanceGroupsById = {};\r\n }\r\n EventPeriod.prototype.isWithinRange = function (start, end) {\r\n // TODO: use a range util function?\r\n return !start.isBefore(this.start) && !end.isAfter(this.end);\r\n };\r\n // Requesting and Purging\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.requestSources = function (sources) {\r\n this.freeze();\r\n for (var i = 0; i < sources.length; i++) {\r\n this.requestSource(sources[i]);\r\n }\r\n this.thaw();\r\n };\r\n EventPeriod.prototype.requestSource = function (source) {\r\n var _this = this;\r\n var request = { source: source, status: 'pending', eventDefs: null };\r\n this.requestsByUid[source.uid] = request;\r\n this.pendingCnt += 1;\r\n source.fetch(this.start, this.end, this.timezone).then(function (eventDefs) {\r\n if (request.status !== 'cancelled') {\r\n request.status = 'completed';\r\n request.eventDefs = eventDefs;\r\n _this.addEventDefs(eventDefs);\r\n _this.pendingCnt--;\r\n _this.tryRelease();\r\n }\r\n }, function () {\r\n if (request.status !== 'cancelled') {\r\n request.status = 'failed';\r\n _this.pendingCnt--;\r\n _this.tryRelease();\r\n }\r\n });\r\n };\r\n EventPeriod.prototype.purgeSource = function (source) {\r\n var request = this.requestsByUid[source.uid];\r\n if (request) {\r\n delete this.requestsByUid[source.uid];\r\n if (request.status === 'pending') {\r\n request.status = 'cancelled';\r\n this.pendingCnt--;\r\n this.tryRelease();\r\n }\r\n else if (request.status === 'completed') {\r\n request.eventDefs.forEach(this.removeEventDef.bind(this));\r\n }\r\n }\r\n };\r\n EventPeriod.prototype.purgeAllSources = function () {\r\n var requestsByUid = this.requestsByUid;\r\n var uid;\r\n var request;\r\n var completedCnt = 0;\r\n for (uid in requestsByUid) {\r\n request = requestsByUid[uid];\r\n if (request.status === 'pending') {\r\n request.status = 'cancelled';\r\n }\r\n else if (request.status === 'completed') {\r\n completedCnt++;\r\n }\r\n }\r\n this.requestsByUid = {};\r\n this.pendingCnt = 0;\r\n if (completedCnt) {\r\n this.removeAllEventDefs(); // might release\r\n }\r\n };\r\n // Event Definitions\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.getEventDefByUid = function (eventDefUid) {\r\n return this.eventDefsByUid[eventDefUid];\r\n };\r\n EventPeriod.prototype.getEventDefsById = function (eventDefId) {\r\n var a = this.eventDefsById[eventDefId];\r\n if (a) {\r\n return a.slice(); // clone\r\n }\r\n return [];\r\n };\r\n EventPeriod.prototype.addEventDefs = function (eventDefs) {\r\n for (var i = 0; i < eventDefs.length; i++) {\r\n this.addEventDef(eventDefs[i]);\r\n }\r\n };\r\n EventPeriod.prototype.addEventDef = function (eventDef) {\r\n var eventDefsById = this.eventDefsById;\r\n var eventDefId = eventDef.id;\r\n var eventDefs = eventDefsById[eventDefId] || (eventDefsById[eventDefId] = []);\r\n var eventInstances = eventDef.buildInstances(this.unzonedRange);\r\n var i;\r\n eventDefs.push(eventDef);\r\n this.eventDefsByUid[eventDef.uid] = eventDef;\r\n for (i = 0; i < eventInstances.length; i++) {\r\n this.addEventInstance(eventInstances[i], eventDefId);\r\n }\r\n };\r\n EventPeriod.prototype.removeEventDefsById = function (eventDefId) {\r\n var _this = this;\r\n this.getEventDefsById(eventDefId).forEach(function (eventDef) {\r\n _this.removeEventDef(eventDef);\r\n });\r\n };\r\n EventPeriod.prototype.removeAllEventDefs = function () {\r\n var isEmpty = $.isEmptyObject(this.eventDefsByUid);\r\n this.eventDefsByUid = {};\r\n this.eventDefsById = {};\r\n this.eventInstanceGroupsById = {};\r\n if (!isEmpty) {\r\n this.tryRelease();\r\n }\r\n };\r\n EventPeriod.prototype.removeEventDef = function (eventDef) {\r\n var eventDefsById = this.eventDefsById;\r\n var eventDefs = eventDefsById[eventDef.id];\r\n delete this.eventDefsByUid[eventDef.uid];\r\n if (eventDefs) {\r\n util_1.removeExact(eventDefs, eventDef);\r\n if (!eventDefs.length) {\r\n delete eventDefsById[eventDef.id];\r\n }\r\n this.removeEventInstancesForDef(eventDef);\r\n }\r\n };\r\n // Event Instances\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.getEventInstances = function () {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var eventInstances = [];\r\n var id;\r\n for (id in eventInstanceGroupsById) {\r\n eventInstances.push.apply(eventInstances, // append\r\n eventInstanceGroupsById[id].eventInstances);\r\n }\r\n return eventInstances;\r\n };\r\n EventPeriod.prototype.getEventInstancesWithId = function (eventDefId) {\r\n var eventInstanceGroup = this.eventInstanceGroupsById[eventDefId];\r\n if (eventInstanceGroup) {\r\n return eventInstanceGroup.eventInstances.slice(); // clone\r\n }\r\n return [];\r\n };\r\n EventPeriod.prototype.getEventInstancesWithoutId = function (eventDefId) {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var matchingInstances = [];\r\n var id;\r\n for (id in eventInstanceGroupsById) {\r\n if (id !== eventDefId) {\r\n matchingInstances.push.apply(matchingInstances, // append\r\n eventInstanceGroupsById[id].eventInstances);\r\n }\r\n }\r\n return matchingInstances;\r\n };\r\n EventPeriod.prototype.addEventInstance = function (eventInstance, eventDefId) {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var eventInstanceGroup = eventInstanceGroupsById[eventDefId] ||\r\n (eventInstanceGroupsById[eventDefId] = new EventInstanceGroup_1.default());\r\n eventInstanceGroup.eventInstances.push(eventInstance);\r\n this.tryRelease();\r\n };\r\n EventPeriod.prototype.removeEventInstancesForDef = function (eventDef) {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var eventInstanceGroup = eventInstanceGroupsById[eventDef.id];\r\n var removeCnt;\r\n if (eventInstanceGroup) {\r\n removeCnt = util_1.removeMatching(eventInstanceGroup.eventInstances, function (currentEventInstance) {\r\n return currentEventInstance.def === eventDef;\r\n });\r\n if (!eventInstanceGroup.eventInstances.length) {\r\n delete eventInstanceGroupsById[eventDef.id];\r\n }\r\n if (removeCnt) {\r\n this.tryRelease();\r\n }\r\n }\r\n };\r\n // Releasing and Freezing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.tryRelease = function () {\r\n if (!this.pendingCnt) {\r\n if (!this.freezeDepth) {\r\n this.release();\r\n }\r\n else {\r\n this.stuntedReleaseCnt++;\r\n }\r\n }\r\n };\r\n EventPeriod.prototype.release = function () {\r\n this.releaseCnt++;\r\n this.trigger('release', this.eventInstanceGroupsById);\r\n };\r\n EventPeriod.prototype.whenReleased = function () {\r\n var _this = this;\r\n if (this.releaseCnt) {\r\n return Promise_1.default.resolve(this.eventInstanceGroupsById);\r\n }\r\n else {\r\n return Promise_1.default.construct(function (onResolve) {\r\n _this.one('release', onResolve);\r\n });\r\n }\r\n };\r\n EventPeriod.prototype.freeze = function () {\r\n if (!(this.freezeDepth++)) {\r\n this.stuntedReleaseCnt = 0;\r\n }\r\n };\r\n EventPeriod.prototype.thaw = function () {\r\n if (!(--this.freezeDepth) && this.stuntedReleaseCnt && !this.pendingCnt) {\r\n this.release();\r\n }\r\n };\r\n return EventPeriod;\r\n}());\r\nexports.default = EventPeriod;\r\nEmitterMixin_1.default.mixInto(EventPeriod);\r\n\n\n/***/ }),\n/* 220 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventPeriod_1 = __webpack_require__(219);\r\nvar ArrayEventSource_1 = __webpack_require__(56);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar EventInstanceGroup_1 = __webpack_require__(20);\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar EventManager = /** @class */ (function () {\r\n function EventManager(calendar) {\r\n this.calendar = calendar;\r\n this.stickySource = new ArrayEventSource_1.default(calendar);\r\n this.otherSources = [];\r\n }\r\n EventManager.prototype.requestEvents = function (start, end, timezone, force) {\r\n if (force ||\r\n !this.currentPeriod ||\r\n !this.currentPeriod.isWithinRange(start, end) ||\r\n timezone !== this.currentPeriod.timezone) {\r\n this.setPeriod(// will change this.currentPeriod\r\n new EventPeriod_1.default(start, end, timezone));\r\n }\r\n return this.currentPeriod.whenReleased();\r\n };\r\n // Source Adding/Removing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.addSource = function (eventSource) {\r\n this.otherSources.push(eventSource);\r\n if (this.currentPeriod) {\r\n this.currentPeriod.requestSource(eventSource); // might release\r\n }\r\n };\r\n EventManager.prototype.removeSource = function (doomedSource) {\r\n util_1.removeExact(this.otherSources, doomedSource);\r\n if (this.currentPeriod) {\r\n this.currentPeriod.purgeSource(doomedSource); // might release\r\n }\r\n };\r\n EventManager.prototype.removeAllSources = function () {\r\n this.otherSources = [];\r\n if (this.currentPeriod) {\r\n this.currentPeriod.purgeAllSources(); // might release\r\n }\r\n };\r\n // Source Refetching\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.refetchSource = function (eventSource) {\r\n var currentPeriod = this.currentPeriod;\r\n if (currentPeriod) {\r\n currentPeriod.freeze();\r\n currentPeriod.purgeSource(eventSource);\r\n currentPeriod.requestSource(eventSource);\r\n currentPeriod.thaw();\r\n }\r\n };\r\n EventManager.prototype.refetchAllSources = function () {\r\n var currentPeriod = this.currentPeriod;\r\n if (currentPeriod) {\r\n currentPeriod.freeze();\r\n currentPeriod.purgeAllSources();\r\n currentPeriod.requestSources(this.getSources());\r\n currentPeriod.thaw();\r\n }\r\n };\r\n // Source Querying\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.getSources = function () {\r\n return [this.stickySource].concat(this.otherSources);\r\n };\r\n // like querySources, but accepts multple match criteria (like multiple IDs)\r\n EventManager.prototype.multiQuerySources = function (matchInputs) {\r\n // coerce into an array\r\n if (!matchInputs) {\r\n matchInputs = [];\r\n }\r\n else if (!$.isArray(matchInputs)) {\r\n matchInputs = [matchInputs];\r\n }\r\n var matchingSources = [];\r\n var i;\r\n // resolve raw inputs to real event source objects\r\n for (i = 0; i < matchInputs.length; i++) {\r\n matchingSources.push.apply(// append\r\n matchingSources, this.querySources(matchInputs[i]));\r\n }\r\n return matchingSources;\r\n };\r\n // matchInput can either by a real event source object, an ID, or the function/URL for the source.\r\n // returns an array of matching source objects.\r\n EventManager.prototype.querySources = function (matchInput) {\r\n var sources = this.otherSources;\r\n var i;\r\n var source;\r\n // given a proper event source object\r\n for (i = 0; i < sources.length; i++) {\r\n source = sources[i];\r\n if (source === matchInput) {\r\n return [source];\r\n }\r\n }\r\n // an ID match\r\n source = this.getSourceById(EventSource_1.default.normalizeId(matchInput));\r\n if (source) {\r\n return [source];\r\n }\r\n // parse as an event source\r\n matchInput = EventSourceParser_1.default.parse(matchInput, this.calendar);\r\n if (matchInput) {\r\n return $.grep(sources, function (source) {\r\n return isSourcesEquivalent(matchInput, source);\r\n });\r\n }\r\n };\r\n /*\r\n ID assumed to already be normalized\r\n */\r\n EventManager.prototype.getSourceById = function (id) {\r\n return $.grep(this.otherSources, function (source) {\r\n return source.id && source.id === id;\r\n })[0];\r\n };\r\n // Event-Period\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.setPeriod = function (eventPeriod) {\r\n if (this.currentPeriod) {\r\n this.unbindPeriod(this.currentPeriod);\r\n this.currentPeriod = null;\r\n }\r\n this.currentPeriod = eventPeriod;\r\n this.bindPeriod(eventPeriod);\r\n eventPeriod.requestSources(this.getSources());\r\n };\r\n EventManager.prototype.bindPeriod = function (eventPeriod) {\r\n this.listenTo(eventPeriod, 'release', function (eventsPayload) {\r\n this.trigger('release', eventsPayload);\r\n });\r\n };\r\n EventManager.prototype.unbindPeriod = function (eventPeriod) {\r\n this.stopListeningTo(eventPeriod);\r\n };\r\n // Event Getting/Adding/Removing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.getEventDefByUid = function (uid) {\r\n if (this.currentPeriod) {\r\n return this.currentPeriod.getEventDefByUid(uid);\r\n }\r\n };\r\n EventManager.prototype.addEventDef = function (eventDef, isSticky) {\r\n if (isSticky) {\r\n this.stickySource.addEventDef(eventDef);\r\n }\r\n if (this.currentPeriod) {\r\n this.currentPeriod.addEventDef(eventDef); // might release\r\n }\r\n };\r\n EventManager.prototype.removeEventDefsById = function (eventId) {\r\n this.getSources().forEach(function (eventSource) {\r\n eventSource.removeEventDefsById(eventId);\r\n });\r\n if (this.currentPeriod) {\r\n this.currentPeriod.removeEventDefsById(eventId); // might release\r\n }\r\n };\r\n EventManager.prototype.removeAllEventDefs = function () {\r\n this.getSources().forEach(function (eventSource) {\r\n eventSource.removeAllEventDefs();\r\n });\r\n if (this.currentPeriod) {\r\n this.currentPeriod.removeAllEventDefs();\r\n }\r\n };\r\n // Event Mutating\r\n // -----------------------------------------------------------------------------------------------------------------\r\n /*\r\n Returns an undo function.\r\n */\r\n EventManager.prototype.mutateEventsWithId = function (eventDefId, eventDefMutation) {\r\n var currentPeriod = this.currentPeriod;\r\n var eventDefs;\r\n var undoFuncs = [];\r\n if (currentPeriod) {\r\n currentPeriod.freeze();\r\n eventDefs = currentPeriod.getEventDefsById(eventDefId);\r\n eventDefs.forEach(function (eventDef) {\r\n // add/remove esp because id might change\r\n currentPeriod.removeEventDef(eventDef);\r\n undoFuncs.push(eventDefMutation.mutateSingle(eventDef));\r\n currentPeriod.addEventDef(eventDef);\r\n });\r\n currentPeriod.thaw();\r\n return function () {\r\n currentPeriod.freeze();\r\n for (var i = 0; i < eventDefs.length; i++) {\r\n currentPeriod.removeEventDef(eventDefs[i]);\r\n undoFuncs[i]();\r\n currentPeriod.addEventDef(eventDefs[i]);\r\n }\r\n currentPeriod.thaw();\r\n };\r\n }\r\n return function () { };\r\n };\r\n /*\r\n copies and then mutates\r\n */\r\n EventManager.prototype.buildMutatedEventInstanceGroup = function (eventDefId, eventDefMutation) {\r\n var eventDefs = this.getEventDefsById(eventDefId);\r\n var i;\r\n var defCopy;\r\n var allInstances = [];\r\n for (i = 0; i < eventDefs.length; i++) {\r\n defCopy = eventDefs[i].clone();\r\n if (defCopy instanceof SingleEventDef_1.default) {\r\n eventDefMutation.mutateSingle(defCopy);\r\n allInstances.push.apply(allInstances, // append\r\n defCopy.buildInstances());\r\n }\r\n }\r\n return new EventInstanceGroup_1.default(allInstances);\r\n };\r\n // Freezing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.freeze = function () {\r\n if (this.currentPeriod) {\r\n this.currentPeriod.freeze();\r\n }\r\n };\r\n EventManager.prototype.thaw = function () {\r\n if (this.currentPeriod) {\r\n this.currentPeriod.thaw();\r\n }\r\n };\r\n // methods that simply forward to EventPeriod\r\n EventManager.prototype.getEventDefsById = function (eventDefId) {\r\n return this.currentPeriod.getEventDefsById(eventDefId);\r\n };\r\n EventManager.prototype.getEventInstances = function () {\r\n return this.currentPeriod.getEventInstances();\r\n };\r\n EventManager.prototype.getEventInstancesWithId = function (eventDefId) {\r\n return this.currentPeriod.getEventInstancesWithId(eventDefId);\r\n };\r\n EventManager.prototype.getEventInstancesWithoutId = function (eventDefId) {\r\n return this.currentPeriod.getEventInstancesWithoutId(eventDefId);\r\n };\r\n return EventManager;\r\n}());\r\nexports.default = EventManager;\r\nEmitterMixin_1.default.mixInto(EventManager);\r\nListenerMixin_1.default.mixInto(EventManager);\r\nfunction isSourcesEquivalent(source0, source1) {\r\n return source0.getPrimitive() === source1.getPrimitive();\r\n}\r\n\n\n/***/ }),\n/* 221 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(22);\r\nvar StandardTheme = /** @class */ (function (_super) {\r\n tslib_1.__extends(StandardTheme, _super);\r\n function StandardTheme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return StandardTheme;\r\n}(Theme_1.default));\r\nexports.default = StandardTheme;\r\nStandardTheme.prototype.classes = {\r\n widget: 'fc-unthemed',\r\n widgetHeader: 'fc-widget-header',\r\n widgetContent: 'fc-widget-content',\r\n buttonGroup: 'fc-button-group',\r\n button: 'fc-button',\r\n cornerLeft: 'fc-corner-left',\r\n cornerRight: 'fc-corner-right',\r\n stateDefault: 'fc-state-default',\r\n stateActive: 'fc-state-active',\r\n stateDisabled: 'fc-state-disabled',\r\n stateHover: 'fc-state-hover',\r\n stateDown: 'fc-state-down',\r\n popoverHeader: 'fc-widget-header',\r\n popoverContent: 'fc-widget-content',\r\n // day grid\r\n headerRow: 'fc-widget-header',\r\n dayRow: 'fc-widget-content',\r\n // list view\r\n listView: 'fc-widget-content'\r\n};\r\nStandardTheme.prototype.baseIconClass = 'fc-icon';\r\nStandardTheme.prototype.iconClasses = {\r\n close: 'fc-icon-x',\r\n prev: 'fc-icon-left-single-arrow',\r\n next: 'fc-icon-right-single-arrow',\r\n prevYear: 'fc-icon-left-double-arrow',\r\n nextYear: 'fc-icon-right-double-arrow'\r\n};\r\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons';\r\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\r\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\r\n\n\n/***/ }),\n/* 222 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(22);\r\nvar JqueryUiTheme = /** @class */ (function (_super) {\r\n tslib_1.__extends(JqueryUiTheme, _super);\r\n function JqueryUiTheme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return JqueryUiTheme;\r\n}(Theme_1.default));\r\nexports.default = JqueryUiTheme;\r\nJqueryUiTheme.prototype.classes = {\r\n widget: 'ui-widget',\r\n widgetHeader: 'ui-widget-header',\r\n widgetContent: 'ui-widget-content',\r\n buttonGroup: 'fc-button-group',\r\n button: 'ui-button',\r\n cornerLeft: 'ui-corner-left',\r\n cornerRight: 'ui-corner-right',\r\n stateDefault: 'ui-state-default',\r\n stateActive: 'ui-state-active',\r\n stateDisabled: 'ui-state-disabled',\r\n stateHover: 'ui-state-hover',\r\n stateDown: 'ui-state-down',\r\n today: 'ui-state-highlight',\r\n popoverHeader: 'ui-widget-header',\r\n popoverContent: 'ui-widget-content',\r\n // day grid\r\n headerRow: 'ui-widget-header',\r\n dayRow: 'ui-widget-content',\r\n // list view\r\n listView: 'ui-widget-content'\r\n};\r\nJqueryUiTheme.prototype.baseIconClass = 'ui-icon';\r\nJqueryUiTheme.prototype.iconClasses = {\r\n close: 'ui-icon-closethick',\r\n prev: 'ui-icon-circle-triangle-w',\r\n next: 'ui-icon-circle-triangle-e',\r\n prevYear: 'ui-icon-seek-prev',\r\n nextYear: 'ui-icon-seek-next'\r\n};\r\nJqueryUiTheme.prototype.iconOverrideOption = 'themeButtonIcons';\r\nJqueryUiTheme.prototype.iconOverrideCustomButtonOption = 'themeIcon';\r\nJqueryUiTheme.prototype.iconOverridePrefix = 'ui-icon-';\r\n\n\n/***/ }),\n/* 223 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar Promise_1 = __webpack_require__(21);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar FuncEventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(FuncEventSource, _super);\r\n function FuncEventSource() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n FuncEventSource.parse = function (rawInput, calendar) {\r\n var rawProps;\r\n // normalize raw input\r\n if ($.isFunction(rawInput.events)) { // extended form\r\n rawProps = rawInput;\r\n }\r\n else if ($.isFunction(rawInput)) { // short form\r\n rawProps = { events: rawInput };\r\n }\r\n if (rawProps) {\r\n return EventSource_1.default.parse.call(this, rawProps, calendar);\r\n }\r\n return false;\r\n };\r\n FuncEventSource.prototype.fetch = function (start, end, timezone) {\r\n var _this = this;\r\n this.calendar.pushLoading();\r\n return Promise_1.default.construct(function (onResolve) {\r\n _this.func.call(_this.calendar, start.clone(), end.clone(), timezone, function (rawEventDefs) {\r\n _this.calendar.popLoading();\r\n onResolve(_this.parseEventDefs(rawEventDefs));\r\n });\r\n });\r\n };\r\n FuncEventSource.prototype.getPrimitive = function () {\r\n return this.func;\r\n };\r\n FuncEventSource.prototype.applyManualStandardProps = function (rawProps) {\r\n var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps);\r\n this.func = rawProps.events;\r\n return superSuccess;\r\n };\r\n return FuncEventSource;\r\n}(EventSource_1.default));\r\nexports.default = FuncEventSource;\r\nFuncEventSource.defineStandardProps({\r\n events: false // don't automatically transfer\r\n});\r\n\n\n/***/ }),\n/* 224 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Promise_1 = __webpack_require__(21);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar JsonFeedEventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(JsonFeedEventSource, _super);\r\n function JsonFeedEventSource() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n JsonFeedEventSource.parse = function (rawInput, calendar) {\r\n var rawProps;\r\n // normalize raw input\r\n if (typeof rawInput.url === 'string') { // extended form\r\n rawProps = rawInput;\r\n }\r\n else if (typeof rawInput === 'string') { // short form\r\n rawProps = { url: rawInput };\r\n }\r\n if (rawProps) {\r\n return EventSource_1.default.parse.call(this, rawProps, calendar);\r\n }\r\n return false;\r\n };\r\n JsonFeedEventSource.prototype.fetch = function (start, end, timezone) {\r\n var _this = this;\r\n var ajaxSettings = this.ajaxSettings;\r\n var onSuccess = ajaxSettings.success;\r\n var onError = ajaxSettings.error;\r\n var requestParams = this.buildRequestParams(start, end, timezone);\r\n // todo: eventually handle the promise's then,\r\n // don't intercept success/error\r\n // tho will be a breaking API change\r\n this.calendar.pushLoading();\r\n return Promise_1.default.construct(function (onResolve, onReject) {\r\n $.ajax($.extend({}, // destination\r\n JsonFeedEventSource.AJAX_DEFAULTS, ajaxSettings, {\r\n url: _this.url,\r\n data: requestParams,\r\n success: function (rawEventDefs, status, xhr) {\r\n var callbackRes;\r\n _this.calendar.popLoading();\r\n if (rawEventDefs) {\r\n callbackRes = util_1.applyAll(onSuccess, _this, [rawEventDefs, status, xhr]); // redirect `this`\r\n if ($.isArray(callbackRes)) {\r\n rawEventDefs = callbackRes;\r\n }\r\n onResolve(_this.parseEventDefs(rawEventDefs));\r\n }\r\n else {\r\n onReject();\r\n }\r\n },\r\n error: function (xhr, statusText, errorThrown) {\r\n _this.calendar.popLoading();\r\n util_1.applyAll(onError, _this, [xhr, statusText, errorThrown]); // redirect `this`\r\n onReject();\r\n }\r\n }));\r\n });\r\n };\r\n JsonFeedEventSource.prototype.buildRequestParams = function (start, end, timezone) {\r\n var calendar = this.calendar;\r\n var ajaxSettings = this.ajaxSettings;\r\n var startParam;\r\n var endParam;\r\n var timezoneParam;\r\n var customRequestParams;\r\n var params = {};\r\n startParam = this.startParam;\r\n if (startParam == null) {\r\n startParam = calendar.opt('startParam');\r\n }\r\n endParam = this.endParam;\r\n if (endParam == null) {\r\n endParam = calendar.opt('endParam');\r\n }\r\n timezoneParam = this.timezoneParam;\r\n if (timezoneParam == null) {\r\n timezoneParam = calendar.opt('timezoneParam');\r\n }\r\n // retrieve any outbound GET/POST $.ajax data from the options\r\n if ($.isFunction(ajaxSettings.data)) {\r\n // supplied as a function that returns a key/value object\r\n customRequestParams = ajaxSettings.data();\r\n }\r\n else {\r\n // probably supplied as a straight key/value object\r\n customRequestParams = ajaxSettings.data || {};\r\n }\r\n $.extend(params, customRequestParams);\r\n params[startParam] = start.format();\r\n params[endParam] = end.format();\r\n if (timezone && timezone !== 'local') {\r\n params[timezoneParam] = timezone;\r\n }\r\n return params;\r\n };\r\n JsonFeedEventSource.prototype.getPrimitive = function () {\r\n return this.url;\r\n };\r\n JsonFeedEventSource.prototype.applyMiscProps = function (rawProps) {\r\n this.ajaxSettings = rawProps;\r\n };\r\n JsonFeedEventSource.AJAX_DEFAULTS = {\r\n dataType: 'json',\r\n cache: false\r\n };\r\n return JsonFeedEventSource;\r\n}(EventSource_1.default));\r\nexports.default = JsonFeedEventSource;\r\nJsonFeedEventSource.defineStandardProps({\r\n // automatically transfer (true)...\r\n url: true,\r\n startParam: true,\r\n endParam: true,\r\n timezoneParam: true\r\n});\r\n\n\n/***/ }),\n/* 225 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Iterator = /** @class */ (function () {\r\n function Iterator(items) {\r\n this.items = items || [];\r\n }\r\n /* Calls a method on every item passing the arguments through */\r\n Iterator.prototype.proxyCall = function (methodName) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var results = [];\r\n this.items.forEach(function (item) {\r\n results.push(item[methodName].apply(item, args));\r\n });\r\n return results;\r\n };\r\n return Iterator;\r\n}());\r\nexports.default = Iterator;\r\n\n\n/***/ }),\n/* 226 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\n/* Creates a clone of an element and lets it track the mouse as it moves\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar MouseFollower = /** @class */ (function () {\r\n function MouseFollower(sourceEl, options) {\r\n this.isFollowing = false;\r\n this.isHidden = false;\r\n this.isAnimating = false; // doing the revert animation?\r\n this.options = options = options || {};\r\n this.sourceEl = sourceEl;\r\n this.parentEl = options.parentEl ? $(options.parentEl) : sourceEl.parent(); // default to sourceEl's parent\r\n }\r\n // Causes the element to start following the mouse\r\n MouseFollower.prototype.start = function (ev) {\r\n if (!this.isFollowing) {\r\n this.isFollowing = true;\r\n this.y0 = util_1.getEvY(ev);\r\n this.x0 = util_1.getEvX(ev);\r\n this.topDelta = 0;\r\n this.leftDelta = 0;\r\n if (!this.isHidden) {\r\n this.updatePosition();\r\n }\r\n if (util_1.getEvIsTouch(ev)) {\r\n this.listenTo($(document), 'touchmove', this.handleMove);\r\n }\r\n else {\r\n this.listenTo($(document), 'mousemove', this.handleMove);\r\n }\r\n }\r\n };\r\n // Causes the element to stop following the mouse. If shouldRevert is true, will animate back to original position.\r\n // `callback` gets invoked when the animation is complete. If no animation, it is invoked immediately.\r\n MouseFollower.prototype.stop = function (shouldRevert, callback) {\r\n var _this = this;\r\n var revertDuration = this.options.revertDuration;\r\n var complete = function () {\r\n _this.isAnimating = false;\r\n _this.removeElement();\r\n _this.top0 = _this.left0 = null; // reset state for future updatePosition calls\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n if (this.isFollowing && !this.isAnimating) { // disallow more than one stop animation at a time\r\n this.isFollowing = false;\r\n this.stopListeningTo($(document));\r\n if (shouldRevert && revertDuration && !this.isHidden) { // do a revert animation?\r\n this.isAnimating = true;\r\n this.el.animate({\r\n top: this.top0,\r\n left: this.left0\r\n }, {\r\n duration: revertDuration,\r\n complete: complete\r\n });\r\n }\r\n else {\r\n complete();\r\n }\r\n }\r\n };\r\n // Gets the tracking element. Create it if necessary\r\n MouseFollower.prototype.getEl = function () {\r\n var el = this.el;\r\n if (!el) {\r\n el = this.el = this.sourceEl.clone()\r\n .addClass(this.options.additionalClass || '')\r\n .css({\r\n position: 'absolute',\r\n visibility: '',\r\n display: this.isHidden ? 'none' : '',\r\n margin: 0,\r\n right: 'auto',\r\n bottom: 'auto',\r\n width: this.sourceEl.width(),\r\n height: this.sourceEl.height(),\r\n opacity: this.options.opacity || '',\r\n zIndex: this.options.zIndex\r\n });\r\n // we don't want long taps or any mouse interaction causing selection/menus.\r\n // would use preventSelection(), but that prevents selectstart, causing problems.\r\n el.addClass('fc-unselectable');\r\n el.appendTo(this.parentEl);\r\n }\r\n return el;\r\n };\r\n // Removes the tracking element if it has already been created\r\n MouseFollower.prototype.removeElement = function () {\r\n if (this.el) {\r\n this.el.remove();\r\n this.el = null;\r\n }\r\n };\r\n // Update the CSS position of the tracking element\r\n MouseFollower.prototype.updatePosition = function () {\r\n var sourceOffset;\r\n var origin;\r\n this.getEl(); // ensure this.el\r\n // make sure origin info was computed\r\n if (this.top0 == null) {\r\n sourceOffset = this.sourceEl.offset();\r\n origin = this.el.offsetParent().offset();\r\n this.top0 = sourceOffset.top - origin.top;\r\n this.left0 = sourceOffset.left - origin.left;\r\n }\r\n this.el.css({\r\n top: this.top0 + this.topDelta,\r\n left: this.left0 + this.leftDelta\r\n });\r\n };\r\n // Gets called when the user moves the mouse\r\n MouseFollower.prototype.handleMove = function (ev) {\r\n this.topDelta = util_1.getEvY(ev) - this.y0;\r\n this.leftDelta = util_1.getEvX(ev) - this.x0;\r\n if (!this.isHidden) {\r\n this.updatePosition();\r\n }\r\n };\r\n // Temporarily makes the tracking element invisible. Can be called before following starts\r\n MouseFollower.prototype.hide = function () {\r\n if (!this.isHidden) {\r\n this.isHidden = true;\r\n if (this.el) {\r\n this.el.hide();\r\n }\r\n }\r\n };\r\n // Show the tracking element after it has been temporarily hidden\r\n MouseFollower.prototype.show = function () {\r\n if (this.isHidden) {\r\n this.isHidden = false;\r\n this.updatePosition();\r\n this.getEl().show();\r\n }\r\n };\r\n return MouseFollower;\r\n}());\r\nexports.default = MouseFollower;\r\nListenerMixin_1.default.mixInto(MouseFollower);\r\n\n\n/***/ }),\n/* 227 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* A rectangular panel that is absolutely positioned over other content\r\n------------------------------------------------------------------------------------------------------------------------\r\nOptions:\r\n - className (string)\r\n - content (HTML string or jQuery element set)\r\n - parentEl\r\n - top\r\n - left\r\n - right (the x coord of where the right edge should be. not a \"CSS\" right)\r\n - autoHide (boolean)\r\n - show (callback)\r\n - hide (callback)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar Popover = /** @class */ (function () {\r\n function Popover(options) {\r\n this.isHidden = true;\r\n this.margin = 10; // the space required between the popover and the edges of the scroll container\r\n this.options = options || {};\r\n }\r\n // Shows the popover on the specified position. Renders it if not already\r\n Popover.prototype.show = function () {\r\n if (this.isHidden) {\r\n if (!this.el) {\r\n this.render();\r\n }\r\n this.el.show();\r\n this.position();\r\n this.isHidden = false;\r\n this.trigger('show');\r\n }\r\n };\r\n // Hides the popover, through CSS, but does not remove it from the DOM\r\n Popover.prototype.hide = function () {\r\n if (!this.isHidden) {\r\n this.el.hide();\r\n this.isHidden = true;\r\n this.trigger('hide');\r\n }\r\n };\r\n // Creates `this.el` and renders content inside of it\r\n Popover.prototype.render = function () {\r\n var _this = this;\r\n var options = this.options;\r\n this.el = $('<div class=\"fc-popover\"/>')\r\n .addClass(options.className || '')\r\n .css({\r\n // position initially to the top left to avoid creating scrollbars\r\n top: 0,\r\n left: 0\r\n })\r\n .append(options.content)\r\n .appendTo(options.parentEl);\r\n // when a click happens on anything inside with a 'fc-close' className, hide the popover\r\n this.el.on('click', '.fc-close', function () {\r\n _this.hide();\r\n });\r\n if (options.autoHide) {\r\n this.listenTo($(document), 'mousedown', this.documentMousedown);\r\n }\r\n };\r\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\r\n Popover.prototype.documentMousedown = function (ev) {\r\n // only hide the popover if the click happened outside the popover\r\n if (this.el && !$(ev.target).closest(this.el).length) {\r\n this.hide();\r\n }\r\n };\r\n // Hides and unregisters any handlers\r\n Popover.prototype.removeElement = function () {\r\n this.hide();\r\n if (this.el) {\r\n this.el.remove();\r\n this.el = null;\r\n }\r\n this.stopListeningTo($(document), 'mousedown');\r\n };\r\n // Positions the popover optimally, using the top/left/right options\r\n Popover.prototype.position = function () {\r\n var options = this.options;\r\n var origin = this.el.offsetParent().offset();\r\n var width = this.el.outerWidth();\r\n var height = this.el.outerHeight();\r\n var windowEl = $(window);\r\n var viewportEl = util_1.getScrollParent(this.el);\r\n var viewportTop;\r\n var viewportLeft;\r\n var viewportOffset;\r\n var top; // the \"position\" (not \"offset\") values for the popover\r\n var left; //\r\n // compute top and left\r\n top = options.top || 0;\r\n if (options.left !== undefined) {\r\n left = options.left;\r\n }\r\n else if (options.right !== undefined) {\r\n left = options.right - width; // derive the left value from the right value\r\n }\r\n else {\r\n left = 0;\r\n }\r\n if (viewportEl.is(window) || viewportEl.is(document)) { // normalize getScrollParent's result\r\n viewportEl = windowEl;\r\n viewportTop = 0; // the window is always at the top left\r\n viewportLeft = 0; // (and .offset() won't work if called here)\r\n }\r\n else {\r\n viewportOffset = viewportEl.offset();\r\n viewportTop = viewportOffset.top;\r\n viewportLeft = viewportOffset.left;\r\n }\r\n // if the window is scrolled, it causes the visible area to be further down\r\n viewportTop += windowEl.scrollTop();\r\n viewportLeft += windowEl.scrollLeft();\r\n // constrain to the view port. if constrained by two edges, give precedence to top/left\r\n if (options.viewportConstrain !== false) {\r\n top = Math.min(top, viewportTop + viewportEl.outerHeight() - height - this.margin);\r\n top = Math.max(top, viewportTop + this.margin);\r\n left = Math.min(left, viewportLeft + viewportEl.outerWidth() - width - this.margin);\r\n left = Math.max(left, viewportLeft + this.margin);\r\n }\r\n this.el.css({\r\n top: top - origin.top,\r\n left: left - origin.left\r\n });\r\n };\r\n // Triggers a callback. Calls a function in the option hash of the same name.\r\n // Arguments beyond the first `name` are forwarded on.\r\n // TODO: better code reuse for this. Repeat code\r\n Popover.prototype.trigger = function (name) {\r\n if (this.options[name]) {\r\n this.options[name].apply(this, Array.prototype.slice.call(arguments, 1));\r\n }\r\n };\r\n return Popover;\r\n}());\r\nexports.default = Popover;\r\nListenerMixin_1.default.mixInto(Popover);\r\n\n\n/***/ }),\n/* 228 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nvar TaskQueue = /** @class */ (function () {\r\n function TaskQueue() {\r\n this.q = [];\r\n this.isPaused = false;\r\n this.isRunning = false;\r\n }\r\n TaskQueue.prototype.queue = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n this.q.push.apply(this.q, args); // append\r\n this.tryStart();\r\n };\r\n TaskQueue.prototype.pause = function () {\r\n this.isPaused = true;\r\n };\r\n TaskQueue.prototype.resume = function () {\r\n this.isPaused = false;\r\n this.tryStart();\r\n };\r\n TaskQueue.prototype.getIsIdle = function () {\r\n return !this.isRunning && !this.isPaused;\r\n };\r\n TaskQueue.prototype.tryStart = function () {\r\n if (!this.isRunning && this.canRunNext()) {\r\n this.isRunning = true;\r\n this.trigger('start');\r\n this.runRemaining();\r\n }\r\n };\r\n TaskQueue.prototype.canRunNext = function () {\r\n return !this.isPaused && this.q.length;\r\n };\r\n TaskQueue.prototype.runRemaining = function () {\r\n var _this = this;\r\n var task;\r\n var res;\r\n do {\r\n task = this.q.shift(); // always freshly reference q. might have been reassigned.\r\n res = this.runTask(task);\r\n if (res && res.then) {\r\n res.then(function () {\r\n if (_this.canRunNext()) {\r\n _this.runRemaining();\r\n }\r\n });\r\n return; // prevent marking as stopped\r\n }\r\n } while (this.canRunNext());\r\n this.trigger('stop'); // not really a 'stop' ... more of a 'drained'\r\n this.isRunning = false;\r\n // if 'stop' handler added more tasks.... TODO: write test for this\r\n this.tryStart();\r\n };\r\n TaskQueue.prototype.runTask = function (task) {\r\n return task(); // task *is* the function, but subclasses can change the format of a task\r\n };\r\n return TaskQueue;\r\n}());\r\nexports.default = TaskQueue;\r\nEmitterMixin_1.default.mixInto(TaskQueue);\r\n\n\n/***/ }),\n/* 229 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar TaskQueue_1 = __webpack_require__(228);\r\nvar RenderQueue = /** @class */ (function (_super) {\r\n tslib_1.__extends(RenderQueue, _super);\r\n function RenderQueue(waitsByNamespace) {\r\n var _this = _super.call(this) || this;\r\n _this.waitsByNamespace = waitsByNamespace || {};\r\n return _this;\r\n }\r\n RenderQueue.prototype.queue = function (taskFunc, namespace, type) {\r\n var task = {\r\n func: taskFunc,\r\n namespace: namespace,\r\n type: type\r\n };\r\n var waitMs;\r\n if (namespace) {\r\n waitMs = this.waitsByNamespace[namespace];\r\n }\r\n if (this.waitNamespace) {\r\n if (namespace === this.waitNamespace && waitMs != null) {\r\n this.delayWait(waitMs);\r\n }\r\n else {\r\n this.clearWait();\r\n this.tryStart();\r\n }\r\n }\r\n if (this.compoundTask(task)) { // appended to queue?\r\n if (!this.waitNamespace && waitMs != null) {\r\n this.startWait(namespace, waitMs);\r\n }\r\n else {\r\n this.tryStart();\r\n }\r\n }\r\n };\r\n RenderQueue.prototype.startWait = function (namespace, waitMs) {\r\n this.waitNamespace = namespace;\r\n this.spawnWait(waitMs);\r\n };\r\n RenderQueue.prototype.delayWait = function (waitMs) {\r\n clearTimeout(this.waitId);\r\n this.spawnWait(waitMs);\r\n };\r\n RenderQueue.prototype.spawnWait = function (waitMs) {\r\n var _this = this;\r\n this.waitId = setTimeout(function () {\r\n _this.waitNamespace = null;\r\n _this.tryStart();\r\n }, waitMs);\r\n };\r\n RenderQueue.prototype.clearWait = function () {\r\n if (this.waitNamespace) {\r\n clearTimeout(this.waitId);\r\n this.waitId = null;\r\n this.waitNamespace = null;\r\n }\r\n };\r\n RenderQueue.prototype.canRunNext = function () {\r\n if (!_super.prototype.canRunNext.call(this)) {\r\n return false;\r\n }\r\n // waiting for a certain namespace to stop receiving tasks?\r\n if (this.waitNamespace) {\r\n var q = this.q;\r\n // if there was a different namespace task in the meantime,\r\n // that forces all previously-waiting tasks to suddenly execute.\r\n // TODO: find a way to do this in constant time.\r\n for (var i = 0; i < q.length; i++) {\r\n if (q[i].namespace !== this.waitNamespace) {\r\n return true; // allow execution\r\n }\r\n }\r\n return false;\r\n }\r\n return true;\r\n };\r\n RenderQueue.prototype.runTask = function (task) {\r\n task.func();\r\n };\r\n RenderQueue.prototype.compoundTask = function (newTask) {\r\n var q = this.q;\r\n var shouldAppend = true;\r\n var i;\r\n var task;\r\n if (newTask.namespace && newTask.type === 'destroy') {\r\n // remove all init/add/remove ops with same namespace, regardless of order\r\n for (i = q.length - 1; i >= 0; i--) {\r\n task = q[i];\r\n if (task.namespace === newTask.namespace) {\r\n switch (task.type) {\r\n case 'init':\r\n shouldAppend = false;\r\n // the latest destroy is cancelled out by not doing the init\r\n /* falls through */\r\n case 'add':\r\n /* falls through */\r\n case 'remove':\r\n q.splice(i, 1); // remove task\r\n }\r\n }\r\n }\r\n }\r\n if (shouldAppend) {\r\n q.push(newTask);\r\n }\r\n return shouldAppend;\r\n };\r\n return RenderQueue;\r\n}(TaskQueue_1.default));\r\nexports.default = RenderQueue;\r\n\n\n/***/ }),\n/* 230 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Model_1 = __webpack_require__(51);\r\nvar Component = /** @class */ (function (_super) {\r\n tslib_1.__extends(Component, _super);\r\n function Component() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Component.prototype.setElement = function (el) {\r\n this.el = el;\r\n this.bindGlobalHandlers();\r\n this.renderSkeleton();\r\n this.set('isInDom', true);\r\n };\r\n Component.prototype.removeElement = function () {\r\n this.unset('isInDom');\r\n this.unrenderSkeleton();\r\n this.unbindGlobalHandlers();\r\n this.el.remove();\r\n // NOTE: don't null-out this.el in case the View was destroyed within an API callback.\r\n // We don't null-out the View's other jQuery element references upon destroy,\r\n // so we shouldn't kill this.el either.\r\n };\r\n Component.prototype.bindGlobalHandlers = function () {\r\n // subclasses can override\r\n };\r\n Component.prototype.unbindGlobalHandlers = function () {\r\n // subclasses can override\r\n };\r\n /*\r\n NOTE: Can't have a `render` method. Read the deprecation notice in View::executeDateRender\r\n */\r\n // Renders the basic structure of the view before any content is rendered\r\n Component.prototype.renderSkeleton = function () {\r\n // subclasses should implement\r\n };\r\n // Unrenders the basic structure of the view\r\n Component.prototype.unrenderSkeleton = function () {\r\n // subclasses should implement\r\n };\r\n return Component;\r\n}(Model_1.default));\r\nexports.default = Component;\r\n\n\n/***/ }),\n/* 231 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar moment_ext_1 = __webpack_require__(11);\r\nvar date_formatting_1 = __webpack_require__(49);\r\nvar Component_1 = __webpack_require__(230);\r\nvar util_2 = __webpack_require__(19);\r\nvar DateComponent = /** @class */ (function (_super) {\r\n tslib_1.__extends(DateComponent, _super);\r\n function DateComponent(_view, _options) {\r\n var _this = _super.call(this) || this;\r\n _this.isRTL = false; // frequently accessed options\r\n _this.hitsNeededDepth = 0; // necessary because multiple callers might need the same hits\r\n _this.hasAllDayBusinessHours = false; // TODO: unify with largeUnit and isTimeScale?\r\n _this.isDatesRendered = false;\r\n // hack to set options prior to the this.opt calls\r\n if (_view) {\r\n _this['view'] = _view;\r\n }\r\n if (_options) {\r\n _this['options'] = _options;\r\n }\r\n _this.uid = String(DateComponent.guid++);\r\n _this.childrenByUid = {};\r\n _this.nextDayThreshold = moment.duration(_this.opt('nextDayThreshold'));\r\n _this.isRTL = _this.opt('isRTL');\r\n if (_this.fillRendererClass) {\r\n _this.fillRenderer = new _this.fillRendererClass(_this);\r\n }\r\n if (_this.eventRendererClass) { // fillRenderer is optional -----v\r\n _this.eventRenderer = new _this.eventRendererClass(_this, _this.fillRenderer);\r\n }\r\n if (_this.helperRendererClass && _this.eventRenderer) {\r\n _this.helperRenderer = new _this.helperRendererClass(_this, _this.eventRenderer);\r\n }\r\n if (_this.businessHourRendererClass && _this.fillRenderer) {\r\n _this.businessHourRenderer = new _this.businessHourRendererClass(_this, _this.fillRenderer);\r\n }\r\n return _this;\r\n }\r\n DateComponent.prototype.addChild = function (child) {\r\n if (!this.childrenByUid[child.uid]) {\r\n this.childrenByUid[child.uid] = child;\r\n return true;\r\n }\r\n return false;\r\n };\r\n DateComponent.prototype.removeChild = function (child) {\r\n if (this.childrenByUid[child.uid]) {\r\n delete this.childrenByUid[child.uid];\r\n return true;\r\n }\r\n return false;\r\n };\r\n // TODO: only do if isInDom?\r\n // TODO: make part of Component, along with children/batch-render system?\r\n DateComponent.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n this.callChildren('updateSize', arguments);\r\n };\r\n // Options\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.opt = function (name) {\r\n return this._getView().opt(name); // default implementation\r\n };\r\n DateComponent.prototype.publiclyTrigger = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var calendar = this._getCalendar();\r\n return calendar.publiclyTrigger.apply(calendar, args);\r\n };\r\n DateComponent.prototype.hasPublicHandlers = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var calendar = this._getCalendar();\r\n return calendar.hasPublicHandlers.apply(calendar, args);\r\n };\r\n // Date\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.executeDateRender = function (dateProfile) {\r\n this.dateProfile = dateProfile; // for rendering\r\n this.renderDates(dateProfile);\r\n this.isDatesRendered = true;\r\n this.callChildren('executeDateRender', arguments);\r\n };\r\n DateComponent.prototype.executeDateUnrender = function () {\r\n this.callChildren('executeDateUnrender', arguments);\r\n this.dateProfile = null;\r\n this.unrenderDates();\r\n this.isDatesRendered = false;\r\n };\r\n // date-cell content only\r\n DateComponent.prototype.renderDates = function (dateProfile) {\r\n // subclasses should implement\r\n };\r\n // date-cell content only\r\n DateComponent.prototype.unrenderDates = function () {\r\n // subclasses should override\r\n };\r\n // Now-Indicator\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Returns a string unit, like 'second' or 'minute' that defined how often the current time indicator\r\n // should be refreshed. If something falsy is returned, no time indicator is rendered at all.\r\n DateComponent.prototype.getNowIndicatorUnit = function () {\r\n // subclasses should implement\r\n };\r\n // Renders a current time indicator at the given datetime\r\n DateComponent.prototype.renderNowIndicator = function (date) {\r\n this.callChildren('renderNowIndicator', arguments);\r\n };\r\n // Undoes the rendering actions from renderNowIndicator\r\n DateComponent.prototype.unrenderNowIndicator = function () {\r\n this.callChildren('unrenderNowIndicator', arguments);\r\n };\r\n // Business Hours\r\n // ---------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.renderBusinessHours = function (businessHourGenerator) {\r\n if (this.businessHourRenderer) {\r\n this.businessHourRenderer.render(businessHourGenerator);\r\n }\r\n this.callChildren('renderBusinessHours', arguments);\r\n };\r\n // Unrenders previously-rendered business-hours\r\n DateComponent.prototype.unrenderBusinessHours = function () {\r\n this.callChildren('unrenderBusinessHours', arguments);\r\n if (this.businessHourRenderer) {\r\n this.businessHourRenderer.unrender();\r\n }\r\n };\r\n // Event Displaying\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.executeEventRender = function (eventsPayload) {\r\n if (this.eventRenderer) {\r\n this.eventRenderer.rangeUpdated(); // poorly named now\r\n this.eventRenderer.render(eventsPayload);\r\n }\r\n else if (this['renderEvents']) { // legacy\r\n this['renderEvents'](convertEventsPayloadToLegacyArray(eventsPayload));\r\n }\r\n this.callChildren('executeEventRender', arguments);\r\n };\r\n DateComponent.prototype.executeEventUnrender = function () {\r\n this.callChildren('executeEventUnrender', arguments);\r\n if (this.eventRenderer) {\r\n this.eventRenderer.unrender();\r\n }\r\n else if (this['destroyEvents']) { // legacy\r\n this['destroyEvents']();\r\n }\r\n };\r\n DateComponent.prototype.getBusinessHourSegs = function () {\r\n var segs = this.getOwnBusinessHourSegs();\r\n this.iterChildren(function (child) {\r\n segs.push.apply(segs, child.getBusinessHourSegs());\r\n });\r\n return segs;\r\n };\r\n DateComponent.prototype.getOwnBusinessHourSegs = function () {\r\n if (this.businessHourRenderer) {\r\n return this.businessHourRenderer.getSegs();\r\n }\r\n return [];\r\n };\r\n DateComponent.prototype.getEventSegs = function () {\r\n var segs = this.getOwnEventSegs();\r\n this.iterChildren(function (child) {\r\n segs.push.apply(segs, child.getEventSegs());\r\n });\r\n return segs;\r\n };\r\n DateComponent.prototype.getOwnEventSegs = function () {\r\n if (this.eventRenderer) {\r\n return this.eventRenderer.getSegs();\r\n }\r\n return [];\r\n };\r\n // Event Rendering Triggering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.triggerAfterEventsRendered = function () {\r\n this.triggerAfterEventSegsRendered(this.getEventSegs());\r\n this.publiclyTrigger('eventAfterAllRender', {\r\n context: this,\r\n args: [this]\r\n });\r\n };\r\n DateComponent.prototype.triggerAfterEventSegsRendered = function (segs) {\r\n var _this = this;\r\n // an optimization, because getEventLegacy is expensive\r\n if (this.hasPublicHandlers('eventAfterRender')) {\r\n segs.forEach(function (seg) {\r\n var legacy;\r\n if (seg.el) { // necessary?\r\n legacy = seg.footprint.getEventLegacy();\r\n _this.publiclyTrigger('eventAfterRender', {\r\n context: legacy,\r\n args: [legacy, seg.el, _this]\r\n });\r\n }\r\n });\r\n }\r\n };\r\n DateComponent.prototype.triggerBeforeEventsDestroyed = function () {\r\n this.triggerBeforeEventSegsDestroyed(this.getEventSegs());\r\n };\r\n DateComponent.prototype.triggerBeforeEventSegsDestroyed = function (segs) {\r\n var _this = this;\r\n if (this.hasPublicHandlers('eventDestroy')) {\r\n segs.forEach(function (seg) {\r\n var legacy;\r\n if (seg.el) { // necessary?\r\n legacy = seg.footprint.getEventLegacy();\r\n _this.publiclyTrigger('eventDestroy', {\r\n context: legacy,\r\n args: [legacy, seg.el, _this]\r\n });\r\n }\r\n });\r\n }\r\n };\r\n // Event Rendering Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Hides all rendered event segments linked to the given event\r\n // RECURSIVE with subcomponents\r\n DateComponent.prototype.showEventsWithId = function (eventDefId) {\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.footprint.eventDef.id === eventDefId &&\r\n seg.el // necessary?\r\n ) {\r\n seg.el.css('visibility', '');\r\n }\r\n });\r\n this.callChildren('showEventsWithId', arguments);\r\n };\r\n // Shows all rendered event segments linked to the given event\r\n // RECURSIVE with subcomponents\r\n DateComponent.prototype.hideEventsWithId = function (eventDefId) {\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.footprint.eventDef.id === eventDefId &&\r\n seg.el // necessary?\r\n ) {\r\n seg.el.css('visibility', 'hidden');\r\n }\r\n });\r\n this.callChildren('hideEventsWithId', arguments);\r\n };\r\n // Drag-n-Drop Rendering (for both events and external elements)\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders a visual indication of a event or external-element drag over the given drop zone.\r\n // If an external-element, seg will be `null`.\r\n // Must return elements used for any mock events.\r\n DateComponent.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var renderedHelper = false;\r\n this.iterChildren(function (child) {\r\n if (child.renderDrag(eventFootprints, seg, isTouch)) {\r\n renderedHelper = true;\r\n }\r\n });\r\n return renderedHelper;\r\n };\r\n // Unrenders a visual indication of an event or external-element being dragged.\r\n DateComponent.prototype.unrenderDrag = function () {\r\n this.callChildren('unrenderDrag', arguments);\r\n };\r\n // Event Resizing\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders a visual indication of an event being resized.\r\n DateComponent.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n this.callChildren('renderEventResize', arguments);\r\n };\r\n // Unrenders a visual indication of an event being resized.\r\n DateComponent.prototype.unrenderEventResize = function () {\r\n this.callChildren('unrenderEventResize', arguments);\r\n };\r\n // Selection\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders a visual indication of the selection\r\n // TODO: rename to `renderSelection` after legacy is gone\r\n DateComponent.prototype.renderSelectionFootprint = function (componentFootprint) {\r\n this.renderHighlight(componentFootprint);\r\n this.callChildren('renderSelectionFootprint', arguments);\r\n };\r\n // Unrenders a visual indication of selection\r\n DateComponent.prototype.unrenderSelection = function () {\r\n this.unrenderHighlight();\r\n this.callChildren('unrenderSelection', arguments);\r\n };\r\n // Highlight\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders an emphasis on the given date range. Given a span (unzoned start/end and other misc data)\r\n DateComponent.prototype.renderHighlight = function (componentFootprint) {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.renderFootprint('highlight', componentFootprint, {\r\n getClasses: function () {\r\n return ['fc-highlight'];\r\n }\r\n });\r\n }\r\n this.callChildren('renderHighlight', arguments);\r\n };\r\n // Unrenders the emphasis on a date range\r\n DateComponent.prototype.unrenderHighlight = function () {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.unrender('highlight');\r\n }\r\n this.callChildren('unrenderHighlight', arguments);\r\n };\r\n // Hit Areas\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // just because all DateComponents support this interface\r\n // doesn't mean they need to have their own internal coord system. they can defer to sub-components.\r\n DateComponent.prototype.hitsNeeded = function () {\r\n if (!(this.hitsNeededDepth++)) {\r\n this.prepareHits();\r\n }\r\n this.callChildren('hitsNeeded', arguments);\r\n };\r\n DateComponent.prototype.hitsNotNeeded = function () {\r\n if (this.hitsNeededDepth && !(--this.hitsNeededDepth)) {\r\n this.releaseHits();\r\n }\r\n this.callChildren('hitsNotNeeded', arguments);\r\n };\r\n DateComponent.prototype.prepareHits = function () {\r\n // subclasses can implement\r\n };\r\n DateComponent.prototype.releaseHits = function () {\r\n // subclasses can implement\r\n };\r\n // Given coordinates from the topleft of the document, return data about the date-related area underneath.\r\n // Can return an object with arbitrary properties (although top/right/left/bottom are encouraged).\r\n // Must have a `grid` property, a reference to this current grid. TODO: avoid this\r\n // The returned object will be processed by getHitFootprint and getHitEl.\r\n DateComponent.prototype.queryHit = function (leftOffset, topOffset) {\r\n var childrenByUid = this.childrenByUid;\r\n var uid;\r\n var hit;\r\n for (uid in childrenByUid) {\r\n hit = childrenByUid[uid].queryHit(leftOffset, topOffset);\r\n if (hit) {\r\n break;\r\n }\r\n }\r\n return hit;\r\n };\r\n DateComponent.prototype.getSafeHitFootprint = function (hit) {\r\n var footprint = this.getHitFootprint(hit);\r\n if (!this.dateProfile.activeUnzonedRange.containsRange(footprint.unzonedRange)) {\r\n return null;\r\n }\r\n return footprint;\r\n };\r\n DateComponent.prototype.getHitFootprint = function (hit) {\r\n // what about being abstract!?\r\n };\r\n // Given position-level information about a date-related area within the grid,\r\n // should return a jQuery element that best represents it. passed to dayClick callback.\r\n DateComponent.prototype.getHitEl = function (hit) {\r\n // what about being abstract!?\r\n };\r\n /* Converting eventRange -> eventFootprint\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DateComponent.prototype.eventRangesToEventFootprints = function (eventRanges) {\r\n var eventFootprints = [];\r\n var i;\r\n for (i = 0; i < eventRanges.length; i++) {\r\n eventFootprints.push.apply(// append\r\n eventFootprints, this.eventRangeToEventFootprints(eventRanges[i]));\r\n }\r\n return eventFootprints;\r\n };\r\n DateComponent.prototype.eventRangeToEventFootprints = function (eventRange) {\r\n return [util_2.eventRangeToEventFootprint(eventRange)];\r\n };\r\n /* Converting componentFootprint/eventFootprint -> segs\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DateComponent.prototype.eventFootprintsToSegs = function (eventFootprints) {\r\n var segs = [];\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n segs.push.apply(segs, this.eventFootprintToSegs(eventFootprints[i]));\r\n }\r\n return segs;\r\n };\r\n // Given an event's span (unzoned start/end and other misc data), and the event itself,\r\n // slices into segments and attaches event-derived properties to them.\r\n // eventSpan - { start, end, isStart, isEnd, otherthings... }\r\n DateComponent.prototype.eventFootprintToSegs = function (eventFootprint) {\r\n var unzonedRange = eventFootprint.componentFootprint.unzonedRange;\r\n var segs;\r\n var i;\r\n var seg;\r\n segs = this.componentFootprintToSegs(eventFootprint.componentFootprint);\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n if (!unzonedRange.isStart) {\r\n seg.isStart = false;\r\n }\r\n if (!unzonedRange.isEnd) {\r\n seg.isEnd = false;\r\n }\r\n seg.footprint = eventFootprint;\r\n // TODO: rename to seg.eventFootprint\r\n }\r\n return segs;\r\n };\r\n DateComponent.prototype.componentFootprintToSegs = function (componentFootprint) {\r\n return [];\r\n };\r\n // Utils\r\n // ---------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.callChildren = function (methodName, args) {\r\n this.iterChildren(function (child) {\r\n child[methodName].apply(child, args);\r\n });\r\n };\r\n DateComponent.prototype.iterChildren = function (func) {\r\n var childrenByUid = this.childrenByUid;\r\n var uid;\r\n for (uid in childrenByUid) {\r\n func(childrenByUid[uid]);\r\n }\r\n };\r\n DateComponent.prototype._getCalendar = function () {\r\n var t = this;\r\n return t.calendar || t.view.calendar;\r\n };\r\n DateComponent.prototype._getView = function () {\r\n return this.view;\r\n };\r\n DateComponent.prototype._getDateProfile = function () {\r\n return this._getView().get('dateProfile');\r\n };\r\n // Generates HTML for an anchor to another view into the calendar.\r\n // Will either generate an <a> tag or a non-clickable <span> tag, depending on enabled settings.\r\n // `gotoOptions` can either be a moment input, or an object with the form:\r\n // { date, type, forceOff }\r\n // `type` is a view-type like \"day\" or \"week\". default value is \"day\".\r\n // `attrs` and `innerHtml` are use to generate the rest of the HTML tag.\r\n DateComponent.prototype.buildGotoAnchorHtml = function (gotoOptions, attrs, innerHtml) {\r\n var date;\r\n var type;\r\n var forceOff;\r\n var finalOptions;\r\n if ($.isPlainObject(gotoOptions)) {\r\n date = gotoOptions.date;\r\n type = gotoOptions.type;\r\n forceOff = gotoOptions.forceOff;\r\n }\r\n else {\r\n date = gotoOptions; // a single moment input\r\n }\r\n date = moment_ext_1.default(date); // if a string, parse it\r\n finalOptions = {\r\n date: date.format('YYYY-MM-DD'),\r\n type: type || 'day'\r\n };\r\n if (typeof attrs === 'string') {\r\n innerHtml = attrs;\r\n attrs = null;\r\n }\r\n attrs = attrs ? ' ' + util_1.attrsToStr(attrs) : ''; // will have a leading space\r\n innerHtml = innerHtml || '';\r\n if (!forceOff && this.opt('navLinks')) {\r\n return '<a' + attrs +\r\n ' data-goto=\"' + util_1.htmlEscape(JSON.stringify(finalOptions)) + '\">' +\r\n innerHtml +\r\n '</a>';\r\n }\r\n else {\r\n return '<span' + attrs + '>' +\r\n innerHtml +\r\n '</span>';\r\n }\r\n };\r\n DateComponent.prototype.getAllDayHtml = function () {\r\n return this.opt('allDayHtml') || util_1.htmlEscape(this.opt('allDayText'));\r\n };\r\n // Computes HTML classNames for a single-day element\r\n DateComponent.prototype.getDayClasses = function (date, noThemeHighlight) {\r\n var view = this._getView();\r\n var classes = [];\r\n var today;\r\n if (!this.dateProfile.activeUnzonedRange.containsDate(date)) {\r\n classes.push('fc-disabled-day'); // TODO: jQuery UI theme?\r\n }\r\n else {\r\n classes.push('fc-' + util_1.dayIDs[date.day()]);\r\n if (view.isDateInOtherMonth(date, this.dateProfile)) { // TODO: use DateComponent subclass somehow\r\n classes.push('fc-other-month');\r\n }\r\n today = view.calendar.getNow();\r\n if (date.isSame(today, 'day')) {\r\n classes.push('fc-today');\r\n if (noThemeHighlight !== true) {\r\n classes.push(view.calendar.theme.getClass('today'));\r\n }\r\n }\r\n else if (date < today) {\r\n classes.push('fc-past');\r\n }\r\n else {\r\n classes.push('fc-future');\r\n }\r\n }\r\n return classes;\r\n };\r\n // Utility for formatting a range. Accepts a range object, formatting string, and optional separator.\r\n // Displays all-day ranges naturally, with an inclusive end. Takes the current isRTL into account.\r\n // The timezones of the dates within `range` will be respected.\r\n DateComponent.prototype.formatRange = function (range, isAllDay, formatStr, separator) {\r\n var end = range.end;\r\n if (isAllDay) {\r\n end = end.clone().subtract(1); // convert to inclusive. last ms of previous day\r\n }\r\n return date_formatting_1.formatRange(range.start, end, formatStr, separator, this.isRTL);\r\n };\r\n // Compute the number of the give units in the \"current\" range.\r\n // Will return a floating-point number. Won't round.\r\n DateComponent.prototype.currentRangeAs = function (unit) {\r\n return this._getDateProfile().currentUnzonedRange.as(unit);\r\n };\r\n // Returns the date range of the full days the given range visually appears to occupy.\r\n // Returns a plain object with start/end, NOT an UnzonedRange!\r\n DateComponent.prototype.computeDayRange = function (unzonedRange) {\r\n var calendar = this._getCalendar();\r\n var startDay = calendar.msToUtcMoment(unzonedRange.startMs, true); // the beginning of the day the range starts\r\n var end = calendar.msToUtcMoment(unzonedRange.endMs);\r\n var endTimeMS = +end.time(); // # of milliseconds into `endDay`\r\n var endDay = end.clone().stripTime(); // the beginning of the day the range exclusively ends\r\n // If the end time is actually inclusively part of the next day and is equal to or\r\n // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\r\n // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\r\n if (endTimeMS && endTimeMS >= this.nextDayThreshold) {\r\n endDay.add(1, 'days');\r\n }\r\n // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\r\n if (endDay <= startDay) {\r\n endDay = startDay.clone().add(1, 'days');\r\n }\r\n return { start: startDay, end: endDay };\r\n };\r\n // Does the given range visually appear to occupy more than one day?\r\n DateComponent.prototype.isMultiDayRange = function (unzonedRange) {\r\n var dayRange = this.computeDayRange(unzonedRange);\r\n return dayRange.end.diff(dayRange.start, 'days') > 1;\r\n };\r\n DateComponent.guid = 0; // TODO: better system for this?\r\n return DateComponent;\r\n}(Component_1.default));\r\nexports.default = DateComponent;\r\n// legacy\r\nfunction convertEventsPayloadToLegacyArray(eventsPayload) {\r\n var eventDefId;\r\n var eventInstances;\r\n var legacyEvents = [];\r\n var i;\r\n for (eventDefId in eventsPayload) {\r\n eventInstances = eventsPayload[eventDefId].eventInstances;\r\n for (i = 0; i < eventInstances.length; i++) {\r\n legacyEvents.push(eventInstances[i].toLegacy());\r\n }\r\n }\r\n return legacyEvents;\r\n}\r\n\n\n/***/ }),\n/* 232 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar options_1 = __webpack_require__(33);\r\nvar Iterator_1 = __webpack_require__(225);\r\nvar GlobalEmitter_1 = __webpack_require__(23);\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar Toolbar_1 = __webpack_require__(257);\r\nvar OptionsManager_1 = __webpack_require__(258);\r\nvar ViewSpecManager_1 = __webpack_require__(259);\r\nvar Constraints_1 = __webpack_require__(217);\r\nvar locale_1 = __webpack_require__(32);\r\nvar moment_ext_1 = __webpack_require__(11);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventDateProfile_1 = __webpack_require__(16);\r\nvar EventManager_1 = __webpack_require__(220);\r\nvar BusinessHourGenerator_1 = __webpack_require__(218);\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar EventDefParser_1 = __webpack_require__(36);\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar EventDefMutation_1 = __webpack_require__(39);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar ThemeRegistry_1 = __webpack_require__(57);\r\nvar Calendar = /** @class */ (function () {\r\n function Calendar(el, overrides) {\r\n this.loadingLevel = 0; // number of simultaneous loading tasks\r\n this.ignoreUpdateViewSize = 0;\r\n this.freezeContentHeightDepth = 0;\r\n // declare the current calendar instance relies on GlobalEmitter. needed for garbage collection.\r\n // unneeded() is called in destroy.\r\n GlobalEmitter_1.default.needed();\r\n this.el = el;\r\n this.viewsByType = {};\r\n this.optionsManager = new OptionsManager_1.default(this, overrides);\r\n this.viewSpecManager = new ViewSpecManager_1.default(this.optionsManager, this);\r\n this.initMomentInternals(); // needs to happen after options hash initialized\r\n this.initCurrentDate();\r\n this.initEventManager();\r\n this.constraints = new Constraints_1.default(this.eventManager, this);\r\n this.constructed();\r\n }\r\n Calendar.prototype.constructed = function () {\r\n // useful for monkeypatching. used?\r\n };\r\n Calendar.prototype.getView = function () {\r\n return this.view;\r\n };\r\n Calendar.prototype.publiclyTrigger = function (name, triggerInfo) {\r\n var optHandler = this.opt(name);\r\n var context;\r\n var args;\r\n if ($.isPlainObject(triggerInfo)) {\r\n context = triggerInfo.context;\r\n args = triggerInfo.args;\r\n }\r\n else if ($.isArray(triggerInfo)) {\r\n args = triggerInfo;\r\n }\r\n if (context == null) {\r\n context = this.el[0]; // fallback context\r\n }\r\n if (!args) {\r\n args = [];\r\n }\r\n this.triggerWith(name, context, args); // Emitter's method\r\n if (optHandler) {\r\n return optHandler.apply(context, args);\r\n }\r\n };\r\n Calendar.prototype.hasPublicHandlers = function (name) {\r\n return this.hasHandlers(name) ||\r\n this.opt(name); // handler specified in options\r\n };\r\n // Options Public API\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // public getter/setter\r\n Calendar.prototype.option = function (name, value) {\r\n var newOptionHash;\r\n if (typeof name === 'string') {\r\n if (value === undefined) { // getter\r\n return this.optionsManager.get(name);\r\n }\r\n else { // setter for individual option\r\n newOptionHash = {};\r\n newOptionHash[name] = value;\r\n this.optionsManager.add(newOptionHash);\r\n }\r\n }\r\n else if (typeof name === 'object') { // compound setter with object input\r\n this.optionsManager.add(name);\r\n }\r\n };\r\n // private getter\r\n Calendar.prototype.opt = function (name) {\r\n return this.optionsManager.get(name);\r\n };\r\n // View\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Given a view name for a custom view or a standard view, creates a ready-to-go View object\r\n Calendar.prototype.instantiateView = function (viewType) {\r\n var spec = this.viewSpecManager.getViewSpec(viewType);\r\n if (!spec) {\r\n throw new Error(\"View type \\\"\" + viewType + \"\\\" is not valid\");\r\n }\r\n return new spec['class'](this, spec);\r\n };\r\n // Returns a boolean about whether the view is okay to instantiate at some point\r\n Calendar.prototype.isValidViewType = function (viewType) {\r\n return Boolean(this.viewSpecManager.getViewSpec(viewType));\r\n };\r\n Calendar.prototype.changeView = function (viewName, dateOrRange) {\r\n if (dateOrRange) {\r\n if (dateOrRange.start && dateOrRange.end) { // a range\r\n this.optionsManager.recordOverrides({\r\n visibleRange: dateOrRange\r\n });\r\n }\r\n else { // a date\r\n this.currentDate = this.moment(dateOrRange).stripZone(); // just like gotoDate\r\n }\r\n }\r\n this.renderView(viewName);\r\n };\r\n // Forces navigation to a view for the given date.\r\n // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\r\n Calendar.prototype.zoomTo = function (newDate, viewType) {\r\n var spec;\r\n viewType = viewType || 'day'; // day is default zoom\r\n spec = this.viewSpecManager.getViewSpec(viewType) ||\r\n this.viewSpecManager.getUnitViewSpec(viewType);\r\n this.currentDate = newDate.clone();\r\n this.renderView(spec ? spec.type : null);\r\n };\r\n // Current Date\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initCurrentDate = function () {\r\n var defaultDateInput = this.opt('defaultDate');\r\n // compute the initial ambig-timezone date\r\n if (defaultDateInput != null) {\r\n this.currentDate = this.moment(defaultDateInput).stripZone();\r\n }\r\n else {\r\n this.currentDate = this.getNow(); // getNow already returns unzoned\r\n }\r\n };\r\n Calendar.prototype.prev = function () {\r\n var view = this.view;\r\n var prevInfo = view.dateProfileGenerator.buildPrev(view.get('dateProfile'));\r\n if (prevInfo.isValid) {\r\n this.currentDate = prevInfo.date;\r\n this.renderView();\r\n }\r\n };\r\n Calendar.prototype.next = function () {\r\n var view = this.view;\r\n var nextInfo = view.dateProfileGenerator.buildNext(view.get('dateProfile'));\r\n if (nextInfo.isValid) {\r\n this.currentDate = nextInfo.date;\r\n this.renderView();\r\n }\r\n };\r\n Calendar.prototype.prevYear = function () {\r\n this.currentDate.add(-1, 'years');\r\n this.renderView();\r\n };\r\n Calendar.prototype.nextYear = function () {\r\n this.currentDate.add(1, 'years');\r\n this.renderView();\r\n };\r\n Calendar.prototype.today = function () {\r\n this.currentDate = this.getNow(); // should deny like prev/next?\r\n this.renderView();\r\n };\r\n Calendar.prototype.gotoDate = function (zonedDateInput) {\r\n this.currentDate = this.moment(zonedDateInput).stripZone();\r\n this.renderView();\r\n };\r\n Calendar.prototype.incrementDate = function (delta) {\r\n this.currentDate.add(moment.duration(delta));\r\n this.renderView();\r\n };\r\n // for external API\r\n Calendar.prototype.getDate = function () {\r\n return this.applyTimezone(this.currentDate); // infuse the calendar's timezone\r\n };\r\n // Loading Triggering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Should be called when any type of async data fetching begins\r\n Calendar.prototype.pushLoading = function () {\r\n if (!(this.loadingLevel++)) {\r\n this.publiclyTrigger('loading', [true, this.view]);\r\n }\r\n };\r\n // Should be called when any type of async data fetching completes\r\n Calendar.prototype.popLoading = function () {\r\n if (!(--this.loadingLevel)) {\r\n this.publiclyTrigger('loading', [false, this.view]);\r\n }\r\n };\r\n // High-level Rendering\r\n // -----------------------------------------------------------------------------------\r\n Calendar.prototype.render = function () {\r\n if (!this.contentEl) {\r\n this.initialRender();\r\n }\r\n else if (this.elementVisible()) {\r\n // mainly for the public API\r\n this.calcSize();\r\n this.updateViewSize();\r\n }\r\n };\r\n Calendar.prototype.initialRender = function () {\r\n var _this = this;\r\n var el = this.el;\r\n el.addClass('fc');\r\n // event delegation for nav links\r\n el.on('click.fc', 'a[data-goto]', function (ev) {\r\n var anchorEl = $(ev.currentTarget);\r\n var gotoOptions = anchorEl.data('goto'); // will automatically parse JSON\r\n var date = _this.moment(gotoOptions.date);\r\n var viewType = gotoOptions.type;\r\n // property like \"navLinkDayClick\". might be a string or a function\r\n var customAction = _this.view.opt('navLink' + util_1.capitaliseFirstLetter(viewType) + 'Click');\r\n if (typeof customAction === 'function') {\r\n customAction(date, ev);\r\n }\r\n else {\r\n if (typeof customAction === 'string') {\r\n viewType = customAction;\r\n }\r\n _this.zoomTo(date, viewType);\r\n }\r\n });\r\n // called immediately, and upon option change\r\n this.optionsManager.watch('settingTheme', ['?theme', '?themeSystem'], function (opts) {\r\n var themeClass = ThemeRegistry_1.getThemeSystemClass(opts.themeSystem || opts.theme);\r\n var theme = new themeClass(_this.optionsManager);\r\n var widgetClass = theme.getClass('widget');\r\n _this.theme = theme;\r\n if (widgetClass) {\r\n el.addClass(widgetClass);\r\n }\r\n }, function () {\r\n var widgetClass = _this.theme.getClass('widget');\r\n _this.theme = null;\r\n if (widgetClass) {\r\n el.removeClass(widgetClass);\r\n }\r\n });\r\n this.optionsManager.watch('settingBusinessHourGenerator', ['?businessHours'], function (deps) {\r\n _this.businessHourGenerator = new BusinessHourGenerator_1.default(deps.businessHours, _this);\r\n if (_this.view) {\r\n _this.view.set('businessHourGenerator', _this.businessHourGenerator);\r\n }\r\n }, function () {\r\n _this.businessHourGenerator = null;\r\n });\r\n // called immediately, and upon option change.\r\n // HACK: locale often affects isRTL, so we explicitly listen to that too.\r\n this.optionsManager.watch('applyingDirClasses', ['?isRTL', '?locale'], function (opts) {\r\n el.toggleClass('fc-ltr', !opts.isRTL);\r\n el.toggleClass('fc-rtl', opts.isRTL);\r\n });\r\n this.contentEl = $(\"<div class='fc-view-container'/>\").prependTo(el);\r\n this.initToolbars();\r\n this.renderHeader();\r\n this.renderFooter();\r\n this.renderView(this.opt('defaultView'));\r\n if (this.opt('handleWindowResize')) {\r\n $(window).resize(this.windowResizeProxy = util_1.debounce(// prevents rapid calls\r\n this.windowResize.bind(this), this.opt('windowResizeDelay')));\r\n }\r\n };\r\n Calendar.prototype.destroy = function () {\r\n if (this.view) {\r\n this.clearView();\r\n }\r\n this.toolbarsManager.proxyCall('removeElement');\r\n this.contentEl.remove();\r\n this.el.removeClass('fc fc-ltr fc-rtl');\r\n // removes theme-related root className\r\n this.optionsManager.unwatch('settingTheme');\r\n this.optionsManager.unwatch('settingBusinessHourGenerator');\r\n this.el.off('.fc'); // unbind nav link handlers\r\n if (this.windowResizeProxy) {\r\n $(window).unbind('resize', this.windowResizeProxy);\r\n this.windowResizeProxy = null;\r\n }\r\n GlobalEmitter_1.default.unneeded();\r\n };\r\n Calendar.prototype.elementVisible = function () {\r\n return this.el.is(':visible');\r\n };\r\n // Render Queue\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.bindViewHandlers = function (view) {\r\n var _this = this;\r\n view.watch('titleForCalendar', ['title'], function (deps) {\r\n if (view === _this.view) { // hack\r\n _this.setToolbarsTitle(deps.title);\r\n }\r\n });\r\n view.watch('dateProfileForCalendar', ['dateProfile'], function (deps) {\r\n if (view === _this.view) { // hack\r\n _this.currentDate = deps.dateProfile.date; // might have been constrained by view dates\r\n _this.updateToolbarButtons(deps.dateProfile);\r\n }\r\n });\r\n };\r\n Calendar.prototype.unbindViewHandlers = function (view) {\r\n view.unwatch('titleForCalendar');\r\n view.unwatch('dateProfileForCalendar');\r\n };\r\n // View Rendering\r\n // -----------------------------------------------------------------------------------\r\n // Renders a view because of a date change, view-type change, or for the first time.\r\n // If not given a viewType, keep the current view but render different dates.\r\n // Accepts an optional scroll state to restore to.\r\n Calendar.prototype.renderView = function (viewType) {\r\n var oldView = this.view;\r\n var newView;\r\n this.freezeContentHeight();\r\n if (oldView && viewType && oldView.type !== viewType) {\r\n this.clearView();\r\n }\r\n // if viewType changed, or the view was never created, create a fresh view\r\n if (!this.view && viewType) {\r\n newView = this.view =\r\n this.viewsByType[viewType] ||\r\n (this.viewsByType[viewType] = this.instantiateView(viewType));\r\n this.bindViewHandlers(newView);\r\n newView.startBatchRender(); // so that setElement+setDate rendering are joined\r\n newView.setElement($(\"<div class='fc-view fc-\" + viewType + \"-view' />\").appendTo(this.contentEl));\r\n this.toolbarsManager.proxyCall('activateButton', viewType);\r\n }\r\n if (this.view) {\r\n // prevent unnecessary change firing\r\n if (this.view.get('businessHourGenerator') !== this.businessHourGenerator) {\r\n this.view.set('businessHourGenerator', this.businessHourGenerator);\r\n }\r\n this.view.setDate(this.currentDate);\r\n if (newView) {\r\n newView.stopBatchRender();\r\n }\r\n }\r\n this.thawContentHeight();\r\n };\r\n // Unrenders the current view and reflects this change in the Header.\r\n // Unregsiters the `view`, but does not remove from viewByType hash.\r\n Calendar.prototype.clearView = function () {\r\n var currentView = this.view;\r\n this.toolbarsManager.proxyCall('deactivateButton', currentView.type);\r\n this.unbindViewHandlers(currentView);\r\n currentView.removeElement();\r\n currentView.unsetDate(); // so bindViewHandlers doesn't fire with old values next time\r\n this.view = null;\r\n };\r\n // Destroys the view, including the view object. Then, re-instantiates it and renders it.\r\n // Maintains the same scroll state.\r\n // TODO: maintain any other user-manipulated state.\r\n Calendar.prototype.reinitView = function () {\r\n var oldView = this.view;\r\n var scroll = oldView.queryScroll(); // wouldn't be so complicated if Calendar owned the scroll\r\n this.freezeContentHeight();\r\n this.clearView();\r\n this.calcSize();\r\n this.renderView(oldView.type); // needs the type to freshly render\r\n this.view.applyScroll(scroll);\r\n this.thawContentHeight();\r\n };\r\n // Resizing\r\n // -----------------------------------------------------------------------------------\r\n Calendar.prototype.getSuggestedViewHeight = function () {\r\n if (this.suggestedViewHeight == null) {\r\n this.calcSize();\r\n }\r\n return this.suggestedViewHeight;\r\n };\r\n Calendar.prototype.isHeightAuto = function () {\r\n return this.opt('contentHeight') === 'auto' || this.opt('height') === 'auto';\r\n };\r\n Calendar.prototype.updateViewSize = function (isResize) {\r\n if (isResize === void 0) { isResize = false; }\r\n var view = this.view;\r\n var scroll;\r\n if (!this.ignoreUpdateViewSize && view) {\r\n if (isResize) {\r\n this.calcSize();\r\n scroll = view.queryScroll();\r\n }\r\n this.ignoreUpdateViewSize++;\r\n view.updateSize(this.getSuggestedViewHeight(), this.isHeightAuto(), isResize);\r\n this.ignoreUpdateViewSize--;\r\n if (isResize) {\r\n view.applyScroll(scroll);\r\n }\r\n return true; // signal success\r\n }\r\n };\r\n Calendar.prototype.calcSize = function () {\r\n if (this.elementVisible()) {\r\n this._calcSize();\r\n }\r\n };\r\n Calendar.prototype._calcSize = function () {\r\n var contentHeightInput = this.opt('contentHeight');\r\n var heightInput = this.opt('height');\r\n if (typeof contentHeightInput === 'number') { // exists and not 'auto'\r\n this.suggestedViewHeight = contentHeightInput;\r\n }\r\n else if (typeof contentHeightInput === 'function') { // exists and is a function\r\n this.suggestedViewHeight = contentHeightInput();\r\n }\r\n else if (typeof heightInput === 'number') { // exists and not 'auto'\r\n this.suggestedViewHeight = heightInput - this.queryToolbarsHeight();\r\n }\r\n else if (typeof heightInput === 'function') { // exists and is a function\r\n this.suggestedViewHeight = heightInput() - this.queryToolbarsHeight();\r\n }\r\n else if (heightInput === 'parent') { // set to height of parent element\r\n this.suggestedViewHeight = this.el.parent().height() - this.queryToolbarsHeight();\r\n }\r\n else {\r\n this.suggestedViewHeight = Math.round(this.contentEl.width() /\r\n Math.max(this.opt('aspectRatio'), .5));\r\n }\r\n };\r\n Calendar.prototype.windowResize = function (ev) {\r\n if (\r\n // the purpose: so we don't process jqui \"resize\" events that have bubbled up\r\n // cast to any because .target, which is Element, can't be compared to window for some reason.\r\n ev.target === window &&\r\n this.view &&\r\n this.view.isDatesRendered) {\r\n if (this.updateViewSize(true)) { // isResize=true, returns true on success\r\n this.publiclyTrigger('windowResize', [this.view]);\r\n }\r\n }\r\n };\r\n /* Height \"Freezing\"\r\n -----------------------------------------------------------------------------*/\r\n Calendar.prototype.freezeContentHeight = function () {\r\n if (!(this.freezeContentHeightDepth++)) {\r\n this.forceFreezeContentHeight();\r\n }\r\n };\r\n Calendar.prototype.forceFreezeContentHeight = function () {\r\n this.contentEl.css({\r\n width: '100%',\r\n height: this.contentEl.height(),\r\n overflow: 'hidden'\r\n });\r\n };\r\n Calendar.prototype.thawContentHeight = function () {\r\n this.freezeContentHeightDepth--;\r\n // always bring back to natural height\r\n this.contentEl.css({\r\n width: '',\r\n height: '',\r\n overflow: ''\r\n });\r\n // but if there are future thaws, re-freeze\r\n if (this.freezeContentHeightDepth) {\r\n this.forceFreezeContentHeight();\r\n }\r\n };\r\n // Toolbar\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initToolbars = function () {\r\n this.header = new Toolbar_1.default(this, this.computeHeaderOptions());\r\n this.footer = new Toolbar_1.default(this, this.computeFooterOptions());\r\n this.toolbarsManager = new Iterator_1.default([this.header, this.footer]);\r\n };\r\n Calendar.prototype.computeHeaderOptions = function () {\r\n return {\r\n extraClasses: 'fc-header-toolbar',\r\n layout: this.opt('header')\r\n };\r\n };\r\n Calendar.prototype.computeFooterOptions = function () {\r\n return {\r\n extraClasses: 'fc-footer-toolbar',\r\n layout: this.opt('footer')\r\n };\r\n };\r\n // can be called repeatedly and Header will rerender\r\n Calendar.prototype.renderHeader = function () {\r\n var header = this.header;\r\n header.setToolbarOptions(this.computeHeaderOptions());\r\n header.render();\r\n if (header.el) {\r\n this.el.prepend(header.el);\r\n }\r\n };\r\n // can be called repeatedly and Footer will rerender\r\n Calendar.prototype.renderFooter = function () {\r\n var footer = this.footer;\r\n footer.setToolbarOptions(this.computeFooterOptions());\r\n footer.render();\r\n if (footer.el) {\r\n this.el.append(footer.el);\r\n }\r\n };\r\n Calendar.prototype.setToolbarsTitle = function (title) {\r\n this.toolbarsManager.proxyCall('updateTitle', title);\r\n };\r\n Calendar.prototype.updateToolbarButtons = function (dateProfile) {\r\n var now = this.getNow();\r\n var view = this.view;\r\n var todayInfo = view.dateProfileGenerator.build(now);\r\n var prevInfo = view.dateProfileGenerator.buildPrev(view.get('dateProfile'));\r\n var nextInfo = view.dateProfileGenerator.buildNext(view.get('dateProfile'));\r\n this.toolbarsManager.proxyCall((todayInfo.isValid && !dateProfile.currentUnzonedRange.containsDate(now)) ?\r\n 'enableButton' :\r\n 'disableButton', 'today');\r\n this.toolbarsManager.proxyCall(prevInfo.isValid ?\r\n 'enableButton' :\r\n 'disableButton', 'prev');\r\n this.toolbarsManager.proxyCall(nextInfo.isValid ?\r\n 'enableButton' :\r\n 'disableButton', 'next');\r\n };\r\n Calendar.prototype.queryToolbarsHeight = function () {\r\n return this.toolbarsManager.items.reduce(function (accumulator, toolbar) {\r\n var toolbarHeight = toolbar.el ? toolbar.el.outerHeight(true) : 0; // includes margin\r\n return accumulator + toolbarHeight;\r\n }, 0);\r\n };\r\n // Selection\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // this public method receives start/end dates in any format, with any timezone\r\n Calendar.prototype.select = function (zonedStartInput, zonedEndInput) {\r\n this.view.select(this.buildSelectFootprint.apply(this, arguments));\r\n };\r\n Calendar.prototype.unselect = function () {\r\n if (this.view) {\r\n this.view.unselect();\r\n }\r\n };\r\n // Given arguments to the select method in the API, returns a span (unzoned start/end and other info)\r\n Calendar.prototype.buildSelectFootprint = function (zonedStartInput, zonedEndInput) {\r\n var start = this.moment(zonedStartInput).stripZone();\r\n var end;\r\n if (zonedEndInput) {\r\n end = this.moment(zonedEndInput).stripZone();\r\n }\r\n else if (start.hasTime()) {\r\n end = start.clone().add(this.defaultTimedEventDuration);\r\n }\r\n else {\r\n end = start.clone().add(this.defaultAllDayEventDuration);\r\n }\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), !start.hasTime());\r\n };\r\n // Date Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initMomentInternals = function () {\r\n var _this = this;\r\n this.defaultAllDayEventDuration = moment.duration(this.opt('defaultAllDayEventDuration'));\r\n this.defaultTimedEventDuration = moment.duration(this.opt('defaultTimedEventDuration'));\r\n // Called immediately, and when any of the options change.\r\n // Happens before any internal objects rebuild or rerender, because this is very core.\r\n this.optionsManager.watch('buildingMomentLocale', [\r\n '?locale', '?monthNames', '?monthNamesShort', '?dayNames', '?dayNamesShort',\r\n '?firstDay', '?weekNumberCalculation'\r\n ], function (opts) {\r\n var weekNumberCalculation = opts.weekNumberCalculation;\r\n var firstDay = opts.firstDay;\r\n var _week;\r\n // normalize\r\n if (weekNumberCalculation === 'iso') {\r\n weekNumberCalculation = 'ISO'; // normalize\r\n }\r\n var localeData = Object.create(// make a cheap copy\r\n locale_1.getMomentLocaleData(opts.locale) // will fall back to en\r\n );\r\n if (opts.monthNames) {\r\n localeData._months = opts.monthNames;\r\n }\r\n if (opts.monthNamesShort) {\r\n localeData._monthsShort = opts.monthNamesShort;\r\n }\r\n if (opts.dayNames) {\r\n localeData._weekdays = opts.dayNames;\r\n }\r\n if (opts.dayNamesShort) {\r\n localeData._weekdaysShort = opts.dayNamesShort;\r\n }\r\n if (firstDay == null && weekNumberCalculation === 'ISO') {\r\n firstDay = 1;\r\n }\r\n if (firstDay != null) {\r\n _week = Object.create(localeData._week); // _week: { dow: # }\r\n _week.dow = firstDay;\r\n localeData._week = _week;\r\n }\r\n if ( // whitelist certain kinds of input\r\n weekNumberCalculation === 'ISO' ||\r\n weekNumberCalculation === 'local' ||\r\n typeof weekNumberCalculation === 'function') {\r\n localeData._fullCalendar_weekCalc = weekNumberCalculation; // moment-ext will know what to do with it\r\n }\r\n _this.localeData = localeData;\r\n // If the internal current date object already exists, move to new locale.\r\n // We do NOT need to do this technique for event dates, because this happens when converting to \"segments\".\r\n if (_this.currentDate) {\r\n _this.localizeMoment(_this.currentDate); // sets to localeData\r\n }\r\n });\r\n };\r\n // Builds a moment using the settings of the current calendar: timezone and locale.\r\n // Accepts anything the vanilla moment() constructor accepts.\r\n Calendar.prototype.moment = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var mom;\r\n if (this.opt('timezone') === 'local') {\r\n mom = moment_ext_1.default.apply(null, args);\r\n // Force the moment to be local, because momentExt doesn't guarantee it.\r\n if (mom.hasTime()) { // don't give ambiguously-timed moments a local zone\r\n mom.local();\r\n }\r\n }\r\n else if (this.opt('timezone') === 'UTC') {\r\n mom = moment_ext_1.default.utc.apply(null, args); // process as UTC\r\n }\r\n else {\r\n mom = moment_ext_1.default.parseZone.apply(null, args); // let the input decide the zone\r\n }\r\n this.localizeMoment(mom); // TODO\r\n return mom;\r\n };\r\n Calendar.prototype.msToMoment = function (ms, forceAllDay) {\r\n var mom = moment_ext_1.default.utc(ms); // TODO: optimize by using Date.UTC\r\n if (forceAllDay) {\r\n mom.stripTime();\r\n }\r\n else {\r\n mom = this.applyTimezone(mom); // may or may not apply locale\r\n }\r\n this.localizeMoment(mom);\r\n return mom;\r\n };\r\n Calendar.prototype.msToUtcMoment = function (ms, forceAllDay) {\r\n var mom = moment_ext_1.default.utc(ms); // TODO: optimize by using Date.UTC\r\n if (forceAllDay) {\r\n mom.stripTime();\r\n }\r\n this.localizeMoment(mom);\r\n return mom;\r\n };\r\n // Updates the given moment's locale settings to the current calendar locale settings.\r\n Calendar.prototype.localizeMoment = function (mom) {\r\n mom._locale = this.localeData;\r\n };\r\n // Returns a boolean about whether or not the calendar knows how to calculate\r\n // the timezone offset of arbitrary dates in the current timezone.\r\n Calendar.prototype.getIsAmbigTimezone = function () {\r\n return this.opt('timezone') !== 'local' && this.opt('timezone') !== 'UTC';\r\n };\r\n // Returns a copy of the given date in the current timezone. Has no effect on dates without times.\r\n Calendar.prototype.applyTimezone = function (date) {\r\n if (!date.hasTime()) {\r\n return date.clone();\r\n }\r\n var zonedDate = this.moment(date.toArray());\r\n var timeAdjust = date.time().asMilliseconds() - zonedDate.time().asMilliseconds();\r\n var adjustedZonedDate;\r\n // Safari sometimes has problems with this coersion when near DST. Adjust if necessary. (bug #2396)\r\n if (timeAdjust) { // is the time result different than expected?\r\n adjustedZonedDate = zonedDate.clone().add(timeAdjust); // add milliseconds\r\n if (date.time().asMilliseconds() - adjustedZonedDate.time().asMilliseconds() === 0) { // does it match perfectly now?\r\n zonedDate = adjustedZonedDate;\r\n }\r\n }\r\n return zonedDate;\r\n };\r\n /*\r\n Assumes the footprint is non-open-ended.\r\n */\r\n Calendar.prototype.footprintToDateProfile = function (componentFootprint, ignoreEnd) {\r\n if (ignoreEnd === void 0) { ignoreEnd = false; }\r\n var start = moment_ext_1.default.utc(componentFootprint.unzonedRange.startMs);\r\n var end;\r\n if (!ignoreEnd) {\r\n end = moment_ext_1.default.utc(componentFootprint.unzonedRange.endMs);\r\n }\r\n if (componentFootprint.isAllDay) {\r\n start.stripTime();\r\n if (end) {\r\n end.stripTime();\r\n }\r\n }\r\n else {\r\n start = this.applyTimezone(start);\r\n if (end) {\r\n end = this.applyTimezone(end);\r\n }\r\n }\r\n this.localizeMoment(start);\r\n if (end) {\r\n this.localizeMoment(end);\r\n }\r\n return new EventDateProfile_1.default(start, end, this);\r\n };\r\n // Returns a moment for the current date, as defined by the client's computer or from the `now` option.\r\n // Will return an moment with an ambiguous timezone.\r\n Calendar.prototype.getNow = function () {\r\n var now = this.opt('now');\r\n if (typeof now === 'function') {\r\n now = now();\r\n }\r\n return this.moment(now).stripZone();\r\n };\r\n // Produces a human-readable string for the given duration.\r\n // Side-effect: changes the locale of the given duration.\r\n Calendar.prototype.humanizeDuration = function (duration) {\r\n return duration.locale(this.opt('locale')).humanize();\r\n };\r\n // will return `null` if invalid range\r\n Calendar.prototype.parseUnzonedRange = function (rangeInput) {\r\n var start = null;\r\n var end = null;\r\n if (rangeInput.start) {\r\n start = this.moment(rangeInput.start).stripZone();\r\n }\r\n if (rangeInput.end) {\r\n end = this.moment(rangeInput.end).stripZone();\r\n }\r\n if (!start && !end) {\r\n return null;\r\n }\r\n if (start && end && end.isBefore(start)) {\r\n return null;\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n // Event-Date Utilities\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initEventManager = function () {\r\n var _this = this;\r\n var eventManager = new EventManager_1.default(this);\r\n var rawSources = this.opt('eventSources') || [];\r\n var singleRawSource = this.opt('events');\r\n this.eventManager = eventManager;\r\n if (singleRawSource) {\r\n rawSources.unshift(singleRawSource);\r\n }\r\n eventManager.on('release', function (eventsPayload) {\r\n _this.trigger('eventsReset', eventsPayload);\r\n });\r\n eventManager.freeze();\r\n rawSources.forEach(function (rawSource) {\r\n var source = EventSourceParser_1.default.parse(rawSource, _this);\r\n if (source) {\r\n eventManager.addSource(source);\r\n }\r\n });\r\n eventManager.thaw();\r\n };\r\n Calendar.prototype.requestEvents = function (start, end) {\r\n return this.eventManager.requestEvents(start, end, this.opt('timezone'), !this.opt('lazyFetching'));\r\n };\r\n // Get an event's normalized end date. If not present, calculate it from the defaults.\r\n Calendar.prototype.getEventEnd = function (event) {\r\n if (event.end) {\r\n return event.end.clone();\r\n }\r\n else {\r\n return this.getDefaultEventEnd(event.allDay, event.start);\r\n }\r\n };\r\n // Given an event's allDay status and start date, return what its fallback end date should be.\r\n // TODO: rename to computeDefaultEventEnd\r\n Calendar.prototype.getDefaultEventEnd = function (allDay, zonedStart) {\r\n var end = zonedStart.clone();\r\n if (allDay) {\r\n end.stripTime().add(this.defaultAllDayEventDuration);\r\n }\r\n else {\r\n end.add(this.defaultTimedEventDuration);\r\n }\r\n if (this.getIsAmbigTimezone()) {\r\n end.stripZone(); // we don't know what the tzo should be\r\n }\r\n return end;\r\n };\r\n // Public Events API\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.rerenderEvents = function () {\r\n this.view.flash('displayingEvents');\r\n };\r\n Calendar.prototype.refetchEvents = function () {\r\n this.eventManager.refetchAllSources();\r\n };\r\n Calendar.prototype.renderEvents = function (eventInputs, isSticky) {\r\n this.eventManager.freeze();\r\n for (var i = 0; i < eventInputs.length; i++) {\r\n this.renderEvent(eventInputs[i], isSticky);\r\n }\r\n this.eventManager.thaw();\r\n };\r\n Calendar.prototype.renderEvent = function (eventInput, isSticky) {\r\n if (isSticky === void 0) { isSticky = false; }\r\n var eventManager = this.eventManager;\r\n var eventDef = EventDefParser_1.default.parse(eventInput, eventInput.source || eventManager.stickySource);\r\n if (eventDef) {\r\n eventManager.addEventDef(eventDef, isSticky);\r\n }\r\n };\r\n // legacyQuery operates on legacy event instance objects\r\n Calendar.prototype.removeEvents = function (legacyQuery) {\r\n var eventManager = this.eventManager;\r\n var legacyInstances = [];\r\n var idMap = {};\r\n var eventDef;\r\n var i;\r\n if (legacyQuery == null) { // shortcut for removing all\r\n eventManager.removeAllEventDefs(); // persist=true\r\n }\r\n else {\r\n eventManager.getEventInstances().forEach(function (eventInstance) {\r\n legacyInstances.push(eventInstance.toLegacy());\r\n });\r\n legacyInstances = filterLegacyEventInstances(legacyInstances, legacyQuery);\r\n // compute unique IDs\r\n for (i = 0; i < legacyInstances.length; i++) {\r\n eventDef = this.eventManager.getEventDefByUid(legacyInstances[i]._id);\r\n idMap[eventDef.id] = true;\r\n }\r\n eventManager.freeze();\r\n for (i in idMap) { // reuse `i` as an \"id\"\r\n eventManager.removeEventDefsById(i); // persist=true\r\n }\r\n eventManager.thaw();\r\n }\r\n };\r\n // legacyQuery operates on legacy event instance objects\r\n Calendar.prototype.clientEvents = function (legacyQuery) {\r\n var legacyEventInstances = [];\r\n this.eventManager.getEventInstances().forEach(function (eventInstance) {\r\n legacyEventInstances.push(eventInstance.toLegacy());\r\n });\r\n return filterLegacyEventInstances(legacyEventInstances, legacyQuery);\r\n };\r\n Calendar.prototype.updateEvents = function (eventPropsArray) {\r\n this.eventManager.freeze();\r\n for (var i = 0; i < eventPropsArray.length; i++) {\r\n this.updateEvent(eventPropsArray[i]);\r\n }\r\n this.eventManager.thaw();\r\n };\r\n Calendar.prototype.updateEvent = function (eventProps) {\r\n var eventDef = this.eventManager.getEventDefByUid(eventProps._id);\r\n var eventInstance;\r\n var eventDefMutation;\r\n if (eventDef instanceof SingleEventDef_1.default) {\r\n eventInstance = eventDef.buildInstance();\r\n eventDefMutation = EventDefMutation_1.default.createFromRawProps(eventInstance, eventProps, // raw props\r\n null // largeUnit -- who uses it?\r\n );\r\n this.eventManager.mutateEventsWithId(eventDef.id, eventDefMutation); // will release\r\n }\r\n };\r\n // Public Event Sources API\r\n // ------------------------------------------------------------------------------------\r\n Calendar.prototype.getEventSources = function () {\r\n return this.eventManager.otherSources.slice(); // clone\r\n };\r\n Calendar.prototype.getEventSourceById = function (id) {\r\n return this.eventManager.getSourceById(EventSource_1.default.normalizeId(id));\r\n };\r\n Calendar.prototype.addEventSource = function (sourceInput) {\r\n var source = EventSourceParser_1.default.parse(sourceInput, this);\r\n if (source) {\r\n this.eventManager.addSource(source);\r\n }\r\n };\r\n Calendar.prototype.removeEventSources = function (sourceMultiQuery) {\r\n var eventManager = this.eventManager;\r\n var sources;\r\n var i;\r\n if (sourceMultiQuery == null) {\r\n this.eventManager.removeAllSources();\r\n }\r\n else {\r\n sources = eventManager.multiQuerySources(sourceMultiQuery);\r\n eventManager.freeze();\r\n for (i = 0; i < sources.length; i++) {\r\n eventManager.removeSource(sources[i]);\r\n }\r\n eventManager.thaw();\r\n }\r\n };\r\n Calendar.prototype.removeEventSource = function (sourceQuery) {\r\n var eventManager = this.eventManager;\r\n var sources = eventManager.querySources(sourceQuery);\r\n var i;\r\n eventManager.freeze();\r\n for (i = 0; i < sources.length; i++) {\r\n eventManager.removeSource(sources[i]);\r\n }\r\n eventManager.thaw();\r\n };\r\n Calendar.prototype.refetchEventSources = function (sourceMultiQuery) {\r\n var eventManager = this.eventManager;\r\n var sources = eventManager.multiQuerySources(sourceMultiQuery);\r\n var i;\r\n eventManager.freeze();\r\n for (i = 0; i < sources.length; i++) {\r\n eventManager.refetchSource(sources[i]);\r\n }\r\n eventManager.thaw();\r\n };\r\n // not for internal use. use options module directly instead.\r\n Calendar.defaults = options_1.globalDefaults;\r\n Calendar.englishDefaults = options_1.englishDefaults;\r\n Calendar.rtlDefaults = options_1.rtlDefaults;\r\n return Calendar;\r\n}());\r\nexports.default = Calendar;\r\nEmitterMixin_1.default.mixInto(Calendar);\r\nListenerMixin_1.default.mixInto(Calendar);\r\nfunction filterLegacyEventInstances(legacyEventInstances, legacyQuery) {\r\n if (legacyQuery == null) {\r\n return legacyEventInstances;\r\n }\r\n else if ($.isFunction(legacyQuery)) {\r\n return legacyEventInstances.filter(legacyQuery);\r\n }\r\n else { // an event ID\r\n legacyQuery += ''; // normalize to string\r\n return legacyEventInstances.filter(function (legacyEventInstance) {\r\n // soft comparison because id not be normalized to string\r\n // tslint:disable-next-line\r\n return legacyEventInstance.id == legacyQuery ||\r\n legacyEventInstance._id === legacyQuery; // can specify internal id, but must exactly match\r\n });\r\n }\r\n}\r\n\n\n/***/ }),\n/* 233 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar exportHooks = __webpack_require__(18);\r\nvar util_1 = __webpack_require__(4);\r\nvar moment_ext_1 = __webpack_require__(11);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar HitDragListener_1 = __webpack_require__(17);\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar EventInstanceGroup_1 = __webpack_require__(20);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar Interaction_1 = __webpack_require__(14);\r\nvar ExternalDropping = /** @class */ (function (_super) {\r\n tslib_1.__extends(ExternalDropping, _super);\r\n function ExternalDropping() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.isDragging = false; // jqui-dragging an external element? boolean\r\n return _this;\r\n }\r\n /*\r\n component impements:\r\n - eventRangesToEventFootprints\r\n - isEventInstanceGroupAllowed\r\n - isExternalInstanceGroupAllowed\r\n - renderDrag\r\n - unrenderDrag\r\n */\r\n ExternalDropping.prototype.end = function () {\r\n if (this.dragListener) {\r\n this.dragListener.endInteraction();\r\n }\r\n };\r\n ExternalDropping.prototype.bindToDocument = function () {\r\n this.listenTo($(document), {\r\n dragstart: this.handleDragStart,\r\n sortstart: this.handleDragStart // jqui\r\n });\r\n };\r\n ExternalDropping.prototype.unbindFromDocument = function () {\r\n this.stopListeningTo($(document));\r\n };\r\n // Called when a jQuery UI drag is initiated anywhere in the DOM\r\n ExternalDropping.prototype.handleDragStart = function (ev, ui) {\r\n var el;\r\n var accept;\r\n if (this.opt('droppable')) { // only listen if this setting is on\r\n el = $((ui ? ui.item : null) || ev.target);\r\n // Test that the dragged element passes the dropAccept selector or filter function.\r\n // FYI, the default is \"*\" (matches all)\r\n accept = this.opt('dropAccept');\r\n if ($.isFunction(accept) ? accept.call(el[0], el) : el.is(accept)) {\r\n if (!this.isDragging) { // prevent double-listening if fired twice\r\n this.listenToExternalDrag(el, ev, ui);\r\n }\r\n }\r\n }\r\n };\r\n // Called when a jQuery UI drag starts and it needs to be monitored for dropping\r\n ExternalDropping.prototype.listenToExternalDrag = function (el, ev, ui) {\r\n var _this = this;\r\n var component = this.component;\r\n var view = this.view;\r\n var meta = getDraggedElMeta(el); // extra data about event drop, including possible event to create\r\n var singleEventDef; // a null value signals an unsuccessful drag\r\n // listener that tracks mouse movement over date-associated pixel regions\r\n var dragListener = this.dragListener = new HitDragListener_1.default(component, {\r\n interactionStart: function () {\r\n _this.isDragging = true;\r\n },\r\n hitOver: function (hit) {\r\n var isAllowed = true;\r\n var hitFootprint = hit.component.getSafeHitFootprint(hit); // hit might not belong to this grid\r\n var mutatedEventInstanceGroup;\r\n if (hitFootprint) {\r\n singleEventDef = _this.computeExternalDrop(hitFootprint, meta);\r\n if (singleEventDef) {\r\n mutatedEventInstanceGroup = new EventInstanceGroup_1.default(singleEventDef.buildInstances());\r\n isAllowed = meta.eventProps ? // isEvent?\r\n component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup) :\r\n component.isExternalInstanceGroupAllowed(mutatedEventInstanceGroup);\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n if (!isAllowed) {\r\n singleEventDef = null;\r\n util_1.disableCursor();\r\n }\r\n if (singleEventDef) {\r\n component.renderDrag(// called without a seg parameter\r\n component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, view.calendar)));\r\n }\r\n },\r\n hitOut: function () {\r\n singleEventDef = null; // signal unsuccessful\r\n },\r\n hitDone: function () {\r\n util_1.enableCursor();\r\n component.unrenderDrag();\r\n },\r\n interactionEnd: function (ev) {\r\n if (singleEventDef) { // element was dropped on a valid hit\r\n view.reportExternalDrop(singleEventDef, Boolean(meta.eventProps), // isEvent\r\n Boolean(meta.stick), // isSticky\r\n el, ev, ui);\r\n }\r\n _this.isDragging = false;\r\n _this.dragListener = null;\r\n }\r\n });\r\n dragListener.startDrag(ev); // start listening immediately\r\n };\r\n // Given a hit to be dropped upon, and misc data associated with the jqui drag (guaranteed to be a plain object),\r\n // returns the zoned start/end dates for the event that would result from the hypothetical drop. end might be null.\r\n // Returning a null value signals an invalid drop hit.\r\n // DOES NOT consider overlap/constraint.\r\n // Assumes both footprints are non-open-ended.\r\n ExternalDropping.prototype.computeExternalDrop = function (componentFootprint, meta) {\r\n var calendar = this.view.calendar;\r\n var start = moment_ext_1.default.utc(componentFootprint.unzonedRange.startMs).stripZone();\r\n var end;\r\n var eventDef;\r\n if (componentFootprint.isAllDay) {\r\n // if dropped on an all-day span, and element's metadata specified a time, set it\r\n if (meta.startTime) {\r\n start.time(meta.startTime);\r\n }\r\n else {\r\n start.stripTime();\r\n }\r\n }\r\n if (meta.duration) {\r\n end = start.clone().add(meta.duration);\r\n }\r\n start = calendar.applyTimezone(start);\r\n if (end) {\r\n end = calendar.applyTimezone(end);\r\n }\r\n eventDef = SingleEventDef_1.default.parse($.extend({}, meta.eventProps, {\r\n start: start,\r\n end: end\r\n }), new EventSource_1.default(calendar));\r\n return eventDef;\r\n };\r\n return ExternalDropping;\r\n}(Interaction_1.default));\r\nexports.default = ExternalDropping;\r\nListenerMixin_1.default.mixInto(ExternalDropping);\r\n/* External-Dragging-Element Data\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Require all HTML5 data-* attributes used by FullCalendar to have this prefix.\r\n// A value of '' will query attributes like data-event. A value of 'fc' will query attributes like data-fc-event.\r\nexportHooks.dataAttrPrefix = '';\r\n// Given a jQuery element that might represent a dragged FullCalendar event, returns an intermediate data structure\r\n// to be used for Event Object creation.\r\n// A defined `.eventProps`, even when empty, indicates that an event should be created.\r\nfunction getDraggedElMeta(el) {\r\n var prefix = exportHooks.dataAttrPrefix;\r\n var eventProps; // properties for creating the event, not related to date/time\r\n var startTime; // a Duration\r\n var duration;\r\n var stick;\r\n if (prefix) {\r\n prefix += '-';\r\n }\r\n eventProps = el.data(prefix + 'event') || null;\r\n if (eventProps) {\r\n if (typeof eventProps === 'object') {\r\n eventProps = $.extend({}, eventProps); // make a copy\r\n }\r\n else { // something like 1 or true. still signal event creation\r\n eventProps = {};\r\n }\r\n // pluck special-cased date/time properties\r\n startTime = eventProps.start;\r\n if (startTime == null) {\r\n startTime = eventProps.time;\r\n } // accept 'time' as well\r\n duration = eventProps.duration;\r\n stick = eventProps.stick;\r\n delete eventProps.start;\r\n delete eventProps.time;\r\n delete eventProps.duration;\r\n delete eventProps.stick;\r\n }\r\n // fallback to standalone attribute values for each of the date/time properties\r\n if (startTime == null) {\r\n startTime = el.data(prefix + 'start');\r\n }\r\n if (startTime == null) {\r\n startTime = el.data(prefix + 'time');\r\n } // accept 'time' as well\r\n if (duration == null) {\r\n duration = el.data(prefix + 'duration');\r\n }\r\n if (stick == null) {\r\n stick = el.data(prefix + 'stick');\r\n }\r\n // massage into correct data types\r\n startTime = startTime != null ? moment.duration(startTime) : null;\r\n duration = duration != null ? moment.duration(duration) : null;\r\n stick = Boolean(stick);\r\n return { eventProps: eventProps, startTime: startTime, duration: duration, stick: stick };\r\n}\r\n\n\n/***/ }),\n/* 234 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDefMutation_1 = __webpack_require__(39);\r\nvar EventDefDateMutation_1 = __webpack_require__(40);\r\nvar HitDragListener_1 = __webpack_require__(17);\r\nvar Interaction_1 = __webpack_require__(14);\r\nvar EventResizing = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventResizing, _super);\r\n /*\r\n component impements:\r\n - bindSegHandlerToEl\r\n - publiclyTrigger\r\n - diffDates\r\n - eventRangesToEventFootprints\r\n - isEventInstanceGroupAllowed\r\n - getSafeHitFootprint\r\n */\r\n function EventResizing(component, eventPointing) {\r\n var _this = _super.call(this, component) || this;\r\n _this.isResizing = false;\r\n _this.eventPointing = eventPointing;\r\n return _this;\r\n }\r\n EventResizing.prototype.end = function () {\r\n if (this.dragListener) {\r\n this.dragListener.endInteraction();\r\n }\r\n };\r\n EventResizing.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n component.bindSegHandlerToEl(el, 'mousedown', this.handleMouseDown.bind(this));\r\n component.bindSegHandlerToEl(el, 'touchstart', this.handleTouchStart.bind(this));\r\n };\r\n EventResizing.prototype.handleMouseDown = function (seg, ev) {\r\n if (this.component.canStartResize(seg, ev)) {\r\n this.buildDragListener(seg, $(ev.target).is('.fc-start-resizer'))\r\n .startInteraction(ev, { distance: 5 });\r\n }\r\n };\r\n EventResizing.prototype.handleTouchStart = function (seg, ev) {\r\n if (this.component.canStartResize(seg, ev)) {\r\n this.buildDragListener(seg, $(ev.target).is('.fc-start-resizer'))\r\n .startInteraction(ev);\r\n }\r\n };\r\n // Creates a listener that tracks the user as they resize an event segment.\r\n // Generic enough to work with any type of Grid.\r\n EventResizing.prototype.buildDragListener = function (seg, isStart) {\r\n var _this = this;\r\n var component = this.component;\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var eventManager = calendar.eventManager;\r\n var el = seg.el;\r\n var eventDef = seg.footprint.eventDef;\r\n var eventInstance = seg.footprint.eventInstance;\r\n var isDragging;\r\n var resizeMutation; // zoned event date properties. falsy if invalid resize\r\n // Tracks mouse movement over the *grid's* coordinate map\r\n var dragListener = this.dragListener = new HitDragListener_1.default(component, {\r\n scroll: this.opt('dragScroll'),\r\n subjectEl: el,\r\n interactionStart: function () {\r\n isDragging = false;\r\n },\r\n dragStart: function (ev) {\r\n isDragging = true;\r\n // ensure a mouseout on the manipulated event has been reported\r\n _this.eventPointing.handleMouseout(seg, ev);\r\n _this.segResizeStart(seg, ev);\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n var isAllowed = true;\r\n var origHitFootprint = component.getSafeHitFootprint(origHit);\r\n var hitFootprint = component.getSafeHitFootprint(hit);\r\n var mutatedEventInstanceGroup;\r\n if (origHitFootprint && hitFootprint) {\r\n resizeMutation = isStart ?\r\n _this.computeEventStartResizeMutation(origHitFootprint, hitFootprint, seg.footprint) :\r\n _this.computeEventEndResizeMutation(origHitFootprint, hitFootprint, seg.footprint);\r\n if (resizeMutation) {\r\n mutatedEventInstanceGroup = eventManager.buildMutatedEventInstanceGroup(eventDef.id, resizeMutation);\r\n isAllowed = component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup);\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n if (!isAllowed) {\r\n resizeMutation = null;\r\n util_1.disableCursor();\r\n }\r\n else if (resizeMutation.isEmpty()) {\r\n // no change. (FYI, event dates might have zones)\r\n resizeMutation = null;\r\n }\r\n if (resizeMutation) {\r\n view.hideEventsWithId(seg.footprint.eventDef.id);\r\n view.renderEventResize(component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, calendar)), seg);\r\n }\r\n },\r\n hitOut: function () {\r\n resizeMutation = null;\r\n },\r\n hitDone: function () {\r\n view.unrenderEventResize(seg);\r\n view.showEventsWithId(seg.footprint.eventDef.id);\r\n util_1.enableCursor();\r\n },\r\n interactionEnd: function (ev) {\r\n if (isDragging) {\r\n _this.segResizeStop(seg, ev);\r\n }\r\n if (resizeMutation) { // valid date to resize to?\r\n // no need to re-show original, will rerender all anyways. esp important if eventRenderWait\r\n view.reportEventResize(eventInstance, resizeMutation, el, ev);\r\n }\r\n _this.dragListener = null;\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Called before event segment resizing starts\r\n EventResizing.prototype.segResizeStart = function (seg, ev) {\r\n this.isResizing = true;\r\n this.component.publiclyTrigger('eventResizeStart', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // Called after event segment resizing stops\r\n EventResizing.prototype.segResizeStop = function (seg, ev) {\r\n this.isResizing = false;\r\n this.component.publiclyTrigger('eventResizeStop', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // Returns new date-information for an event segment being resized from its start\r\n EventResizing.prototype.computeEventStartResizeMutation = function (startFootprint, endFootprint, origEventFootprint) {\r\n var origRange = origEventFootprint.componentFootprint.unzonedRange;\r\n var startDelta = this.component.diffDates(endFootprint.unzonedRange.getStart(), startFootprint.unzonedRange.getStart());\r\n var dateMutation;\r\n var eventDefMutation;\r\n if (origRange.getStart().add(startDelta) < origRange.getEnd()) {\r\n dateMutation = new EventDefDateMutation_1.default();\r\n dateMutation.setStartDelta(startDelta);\r\n eventDefMutation = new EventDefMutation_1.default();\r\n eventDefMutation.setDateMutation(dateMutation);\r\n return eventDefMutation;\r\n }\r\n return false;\r\n };\r\n // Returns new date-information for an event segment being resized from its end\r\n EventResizing.prototype.computeEventEndResizeMutation = function (startFootprint, endFootprint, origEventFootprint) {\r\n var origRange = origEventFootprint.componentFootprint.unzonedRange;\r\n var endDelta = this.component.diffDates(endFootprint.unzonedRange.getEnd(), startFootprint.unzonedRange.getEnd());\r\n var dateMutation;\r\n var eventDefMutation;\r\n if (origRange.getEnd().add(endDelta) > origRange.getStart()) {\r\n dateMutation = new EventDefDateMutation_1.default();\r\n dateMutation.setEndDelta(endDelta);\r\n eventDefMutation = new EventDefMutation_1.default();\r\n eventDefMutation.setDateMutation(dateMutation);\r\n return eventDefMutation;\r\n }\r\n return false;\r\n };\r\n return EventResizing;\r\n}(Interaction_1.default));\r\nexports.default = EventResizing;\r\n\n\n/***/ }),\n/* 235 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDefMutation_1 = __webpack_require__(39);\r\nvar EventDefDateMutation_1 = __webpack_require__(40);\r\nvar DragListener_1 = __webpack_require__(59);\r\nvar HitDragListener_1 = __webpack_require__(17);\r\nvar MouseFollower_1 = __webpack_require__(226);\r\nvar Interaction_1 = __webpack_require__(14);\r\nvar EventDragging = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventDragging, _super);\r\n /*\r\n component implements:\r\n - bindSegHandlerToEl\r\n - publiclyTrigger\r\n - diffDates\r\n - eventRangesToEventFootprints\r\n - isEventInstanceGroupAllowed\r\n */\r\n function EventDragging(component, eventPointing) {\r\n var _this = _super.call(this, component) || this;\r\n _this.isDragging = false;\r\n _this.eventPointing = eventPointing;\r\n return _this;\r\n }\r\n EventDragging.prototype.end = function () {\r\n if (this.dragListener) {\r\n this.dragListener.endInteraction();\r\n }\r\n };\r\n EventDragging.prototype.getSelectionDelay = function () {\r\n var delay = this.opt('eventLongPressDelay');\r\n if (delay == null) {\r\n delay = this.opt('longPressDelay'); // fallback\r\n }\r\n return delay;\r\n };\r\n EventDragging.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n component.bindSegHandlerToEl(el, 'mousedown', this.handleMousedown.bind(this));\r\n component.bindSegHandlerToEl(el, 'touchstart', this.handleTouchStart.bind(this));\r\n };\r\n EventDragging.prototype.handleMousedown = function (seg, ev) {\r\n if (!this.component.shouldIgnoreMouse() &&\r\n this.component.canStartDrag(seg, ev)) {\r\n this.buildDragListener(seg).startInteraction(ev, { distance: 5 });\r\n }\r\n };\r\n EventDragging.prototype.handleTouchStart = function (seg, ev) {\r\n var component = this.component;\r\n var settings = {\r\n delay: this.view.isEventDefSelected(seg.footprint.eventDef) ? // already selected?\r\n 0 : this.getSelectionDelay()\r\n };\r\n if (component.canStartDrag(seg, ev)) {\r\n this.buildDragListener(seg).startInteraction(ev, settings);\r\n }\r\n else if (component.canStartSelection(seg, ev)) {\r\n this.buildSelectListener(seg).startInteraction(ev, settings);\r\n }\r\n };\r\n // seg isn't draggable, but let's use a generic DragListener\r\n // simply for the delay, so it can be selected.\r\n // Has side effect of setting/unsetting `dragListener`\r\n EventDragging.prototype.buildSelectListener = function (seg) {\r\n var _this = this;\r\n var view = this.view;\r\n var eventDef = seg.footprint.eventDef;\r\n var eventInstance = seg.footprint.eventInstance; // null for inverse-background events\r\n if (this.dragListener) {\r\n return this.dragListener;\r\n }\r\n var dragListener = this.dragListener = new DragListener_1.default({\r\n dragStart: function (ev) {\r\n if (dragListener.isTouch &&\r\n !view.isEventDefSelected(eventDef) &&\r\n eventInstance) {\r\n // if not previously selected, will fire after a delay. then, select the event\r\n view.selectEventInstance(eventInstance);\r\n }\r\n },\r\n interactionEnd: function (ev) {\r\n _this.dragListener = null;\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Builds a listener that will track user-dragging on an event segment.\r\n // Generic enough to work with any type of Grid.\r\n // Has side effect of setting/unsetting `dragListener`\r\n EventDragging.prototype.buildDragListener = function (seg) {\r\n var _this = this;\r\n var component = this.component;\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var eventManager = calendar.eventManager;\r\n var el = seg.el;\r\n var eventDef = seg.footprint.eventDef;\r\n var eventInstance = seg.footprint.eventInstance; // null for inverse-background events\r\n var isDragging;\r\n var mouseFollower; // A clone of the original element that will move with the mouse\r\n var eventDefMutation;\r\n if (this.dragListener) {\r\n return this.dragListener;\r\n }\r\n // Tracks mouse movement over the *view's* coordinate map. Allows dragging and dropping between subcomponents\r\n // of the view.\r\n var dragListener = this.dragListener = new HitDragListener_1.default(view, {\r\n scroll: this.opt('dragScroll'),\r\n subjectEl: el,\r\n subjectCenter: true,\r\n interactionStart: function (ev) {\r\n seg.component = component; // for renderDrag\r\n isDragging = false;\r\n mouseFollower = new MouseFollower_1.default(seg.el, {\r\n additionalClass: 'fc-dragging',\r\n parentEl: view.el,\r\n opacity: dragListener.isTouch ? null : _this.opt('dragOpacity'),\r\n revertDuration: _this.opt('dragRevertDuration'),\r\n zIndex: 2 // one above the .fc-view\r\n });\r\n mouseFollower.hide(); // don't show until we know this is a real drag\r\n mouseFollower.start(ev);\r\n },\r\n dragStart: function (ev) {\r\n if (dragListener.isTouch &&\r\n !view.isEventDefSelected(eventDef) &&\r\n eventInstance) {\r\n // if not previously selected, will fire after a delay. then, select the event\r\n view.selectEventInstance(eventInstance);\r\n }\r\n isDragging = true;\r\n // ensure a mouseout on the manipulated event has been reported\r\n _this.eventPointing.handleMouseout(seg, ev);\r\n _this.segDragStart(seg, ev);\r\n view.hideEventsWithId(seg.footprint.eventDef.id);\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n var isAllowed = true;\r\n var origFootprint;\r\n var footprint;\r\n var mutatedEventInstanceGroup;\r\n // starting hit could be forced (DayGrid.limit)\r\n if (seg.hit) {\r\n origHit = seg.hit;\r\n }\r\n // hit might not belong to this grid, so query origin grid\r\n origFootprint = origHit.component.getSafeHitFootprint(origHit);\r\n footprint = hit.component.getSafeHitFootprint(hit);\r\n if (origFootprint && footprint) {\r\n eventDefMutation = _this.computeEventDropMutation(origFootprint, footprint, eventDef);\r\n if (eventDefMutation) {\r\n mutatedEventInstanceGroup = eventManager.buildMutatedEventInstanceGroup(eventDef.id, eventDefMutation);\r\n isAllowed = component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup);\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n if (!isAllowed) {\r\n eventDefMutation = null;\r\n util_1.disableCursor();\r\n }\r\n // if a valid drop location, have the subclass render a visual indication\r\n if (eventDefMutation &&\r\n view.renderDrag(// truthy if rendered something\r\n component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, calendar)), seg, dragListener.isTouch)) {\r\n mouseFollower.hide(); // if the subclass is already using a mock event \"helper\", hide our own\r\n }\r\n else {\r\n mouseFollower.show(); // otherwise, have the helper follow the mouse (no snapping)\r\n }\r\n if (isOrig) {\r\n // needs to have moved hits to be a valid drop\r\n eventDefMutation = null;\r\n }\r\n },\r\n hitOut: function () {\r\n view.unrenderDrag(seg); // unrender whatever was done in renderDrag\r\n mouseFollower.show(); // show in case we are moving out of all hits\r\n eventDefMutation = null;\r\n },\r\n hitDone: function () {\r\n util_1.enableCursor();\r\n },\r\n interactionEnd: function (ev) {\r\n delete seg.component; // prevent side effects\r\n // do revert animation if hasn't changed. calls a callback when finished (whether animation or not)\r\n mouseFollower.stop(!eventDefMutation, function () {\r\n if (isDragging) {\r\n view.unrenderDrag(seg);\r\n _this.segDragStop(seg, ev);\r\n }\r\n view.showEventsWithId(seg.footprint.eventDef.id);\r\n if (eventDefMutation) {\r\n // no need to re-show original, will rerender all anyways. esp important if eventRenderWait\r\n view.reportEventDrop(eventInstance, eventDefMutation, el, ev);\r\n }\r\n });\r\n _this.dragListener = null;\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Called before event segment dragging starts\r\n EventDragging.prototype.segDragStart = function (seg, ev) {\r\n this.isDragging = true;\r\n this.component.publiclyTrigger('eventDragStart', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // Called after event segment dragging stops\r\n EventDragging.prototype.segDragStop = function (seg, ev) {\r\n this.isDragging = false;\r\n this.component.publiclyTrigger('eventDragStop', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // DOES NOT consider overlap/constraint\r\n EventDragging.prototype.computeEventDropMutation = function (startFootprint, endFootprint, eventDef) {\r\n var eventDefMutation = new EventDefMutation_1.default();\r\n eventDefMutation.setDateMutation(this.computeEventDateMutation(startFootprint, endFootprint));\r\n return eventDefMutation;\r\n };\r\n EventDragging.prototype.computeEventDateMutation = function (startFootprint, endFootprint) {\r\n var date0 = startFootprint.unzonedRange.getStart();\r\n var date1 = endFootprint.unzonedRange.getStart();\r\n var clearEnd = false;\r\n var forceTimed = false;\r\n var forceAllDay = false;\r\n var dateDelta;\r\n var dateMutation;\r\n if (startFootprint.isAllDay !== endFootprint.isAllDay) {\r\n clearEnd = true;\r\n if (endFootprint.isAllDay) {\r\n forceAllDay = true;\r\n date0.stripTime();\r\n }\r\n else {\r\n forceTimed = true;\r\n }\r\n }\r\n dateDelta = this.component.diffDates(date1, date0);\r\n dateMutation = new EventDefDateMutation_1.default();\r\n dateMutation.clearEnd = clearEnd;\r\n dateMutation.forceTimed = forceTimed;\r\n dateMutation.forceAllDay = forceAllDay;\r\n dateMutation.setDateDelta(dateDelta);\r\n return dateMutation;\r\n };\r\n return EventDragging;\r\n}(Interaction_1.default));\r\nexports.default = EventDragging;\r\n\n\n/***/ }),\n/* 236 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar HitDragListener_1 = __webpack_require__(17);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar Interaction_1 = __webpack_require__(14);\r\nvar DateSelecting = /** @class */ (function (_super) {\r\n tslib_1.__extends(DateSelecting, _super);\r\n /*\r\n component must implement:\r\n - bindDateHandlerToEl\r\n - getSafeHitFootprint\r\n - renderHighlight\r\n - unrenderHighlight\r\n */\r\n function DateSelecting(component) {\r\n var _this = _super.call(this, component) || this;\r\n _this.dragListener = _this.buildDragListener();\r\n return _this;\r\n }\r\n DateSelecting.prototype.end = function () {\r\n this.dragListener.endInteraction();\r\n };\r\n DateSelecting.prototype.getDelay = function () {\r\n var delay = this.opt('selectLongPressDelay');\r\n if (delay == null) {\r\n delay = this.opt('longPressDelay'); // fallback\r\n }\r\n return delay;\r\n };\r\n DateSelecting.prototype.bindToEl = function (el) {\r\n var _this = this;\r\n var component = this.component;\r\n var dragListener = this.dragListener;\r\n component.bindDateHandlerToEl(el, 'mousedown', function (ev) {\r\n if (_this.opt('selectable') && !component.shouldIgnoreMouse()) {\r\n dragListener.startInteraction(ev, {\r\n distance: _this.opt('selectMinDistance')\r\n });\r\n }\r\n });\r\n component.bindDateHandlerToEl(el, 'touchstart', function (ev) {\r\n if (_this.opt('selectable') && !component.shouldIgnoreTouch()) {\r\n dragListener.startInteraction(ev, {\r\n delay: _this.getDelay()\r\n });\r\n }\r\n });\r\n util_1.preventSelection(el);\r\n };\r\n // Creates a listener that tracks the user's drag across day elements, for day selecting.\r\n DateSelecting.prototype.buildDragListener = function () {\r\n var _this = this;\r\n var component = this.component;\r\n var selectionFootprint; // null if invalid selection\r\n var dragListener = new HitDragListener_1.default(component, {\r\n scroll: this.opt('dragScroll'),\r\n interactionStart: function () {\r\n selectionFootprint = null;\r\n },\r\n dragStart: function (ev) {\r\n _this.view.unselect(ev); // since we could be rendering a new selection, we want to clear any old one\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n var origHitFootprint;\r\n var hitFootprint;\r\n if (origHit) { // click needs to have started on a hit\r\n origHitFootprint = component.getSafeHitFootprint(origHit);\r\n hitFootprint = component.getSafeHitFootprint(hit);\r\n if (origHitFootprint && hitFootprint) {\r\n selectionFootprint = _this.computeSelection(origHitFootprint, hitFootprint);\r\n }\r\n else {\r\n selectionFootprint = null;\r\n }\r\n if (selectionFootprint) {\r\n component.renderSelectionFootprint(selectionFootprint);\r\n }\r\n else if (selectionFootprint === false) {\r\n util_1.disableCursor();\r\n }\r\n }\r\n },\r\n hitOut: function () {\r\n selectionFootprint = null;\r\n component.unrenderSelection();\r\n },\r\n hitDone: function () {\r\n util_1.enableCursor();\r\n },\r\n interactionEnd: function (ev, isCancelled) {\r\n if (!isCancelled && selectionFootprint) {\r\n // the selection will already have been rendered. just report it\r\n _this.view.reportSelection(selectionFootprint, ev);\r\n }\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Given the first and last date-spans of a selection, returns another date-span object.\r\n // Subclasses can override and provide additional data in the span object. Will be passed to renderSelectionFootprint().\r\n // Will return false if the selection is invalid and this should be indicated to the user.\r\n // Will return null/undefined if a selection invalid but no error should be reported.\r\n DateSelecting.prototype.computeSelection = function (footprint0, footprint1) {\r\n var wholeFootprint = this.computeSelectionFootprint(footprint0, footprint1);\r\n if (wholeFootprint && !this.isSelectionFootprintAllowed(wholeFootprint)) {\r\n return false;\r\n }\r\n return wholeFootprint;\r\n };\r\n // Given two spans, must return the combination of the two.\r\n // TODO: do this separation of concerns (combining VS validation) for event dnd/resize too.\r\n // Assumes both footprints are non-open-ended.\r\n DateSelecting.prototype.computeSelectionFootprint = function (footprint0, footprint1) {\r\n var ms = [\r\n footprint0.unzonedRange.startMs,\r\n footprint0.unzonedRange.endMs,\r\n footprint1.unzonedRange.startMs,\r\n footprint1.unzonedRange.endMs\r\n ];\r\n ms.sort(util_1.compareNumbers);\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(ms[0], ms[3]), footprint0.isAllDay);\r\n };\r\n DateSelecting.prototype.isSelectionFootprintAllowed = function (componentFootprint) {\r\n return this.component.dateProfile.validUnzonedRange.containsRange(componentFootprint.unzonedRange) &&\r\n this.view.calendar.constraints.isSelectionFootprintAllowed(componentFootprint);\r\n };\r\n return DateSelecting;\r\n}(Interaction_1.default));\r\nexports.default = DateSelecting;\r\n\n\n/***/ }),\n/* 237 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar HitDragListener_1 = __webpack_require__(17);\r\nvar Interaction_1 = __webpack_require__(14);\r\nvar DateClicking = /** @class */ (function (_super) {\r\n tslib_1.__extends(DateClicking, _super);\r\n /*\r\n component must implement:\r\n - bindDateHandlerToEl\r\n - getSafeHitFootprint\r\n - getHitEl\r\n */\r\n function DateClicking(component) {\r\n var _this = _super.call(this, component) || this;\r\n _this.dragListener = _this.buildDragListener();\r\n return _this;\r\n }\r\n DateClicking.prototype.end = function () {\r\n this.dragListener.endInteraction();\r\n };\r\n DateClicking.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n var dragListener = this.dragListener;\r\n component.bindDateHandlerToEl(el, 'mousedown', function (ev) {\r\n if (!component.shouldIgnoreMouse()) {\r\n dragListener.startInteraction(ev);\r\n }\r\n });\r\n component.bindDateHandlerToEl(el, 'touchstart', function (ev) {\r\n if (!component.shouldIgnoreTouch()) {\r\n dragListener.startInteraction(ev);\r\n }\r\n });\r\n };\r\n // Creates a listener that tracks the user's drag across day elements, for day clicking.\r\n DateClicking.prototype.buildDragListener = function () {\r\n var _this = this;\r\n var component = this.component;\r\n var dayClickHit; // null if invalid dayClick\r\n var dragListener = new HitDragListener_1.default(component, {\r\n scroll: this.opt('dragScroll'),\r\n interactionStart: function () {\r\n dayClickHit = dragListener.origHit;\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n // if user dragged to another cell at any point, it can no longer be a dayClick\r\n if (!isOrig) {\r\n dayClickHit = null;\r\n }\r\n },\r\n hitOut: function () {\r\n dayClickHit = null;\r\n },\r\n interactionEnd: function (ev, isCancelled) {\r\n var componentFootprint;\r\n if (!isCancelled && dayClickHit) {\r\n componentFootprint = component.getSafeHitFootprint(dayClickHit);\r\n if (componentFootprint) {\r\n _this.view.triggerDayClick(componentFootprint, component.getHitEl(dayClickHit), ev);\r\n }\r\n }\r\n }\r\n });\r\n // because dragListener won't be called with any time delay, \"dragging\" will begin immediately,\r\n // which will kill any touchmoving/scrolling. Prevent this.\r\n dragListener.shouldCancelTouchScroll = false;\r\n dragListener.scrollAlwaysKills = true;\r\n return dragListener;\r\n };\r\n return DateClicking;\r\n}(Interaction_1.default));\r\nexports.default = DateClicking;\r\n\n\n/***/ }),\n/* 238 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Scroller_1 = __webpack_require__(41);\r\nvar View_1 = __webpack_require__(43);\r\nvar TimeGrid_1 = __webpack_require__(239);\r\nvar DayGrid_1 = __webpack_require__(66);\r\nvar AGENDA_ALL_DAY_EVENT_LIMIT = 5;\r\nvar agendaTimeGridMethods;\r\nvar agendaDayGridMethods;\r\n/* An abstract class for all agenda-related views. Displays one more columns with time slots running vertically.\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Is a manager for the TimeGrid subcomponent and possibly the DayGrid subcomponent (if allDaySlot is on).\r\n// Responsible for managing width/height.\r\nvar AgendaView = /** @class */ (function (_super) {\r\n tslib_1.__extends(AgendaView, _super);\r\n function AgendaView(calendar, viewSpec) {\r\n var _this = _super.call(this, calendar, viewSpec) || this;\r\n _this.usesMinMaxTime = true; // indicates that minTime/maxTime affects rendering\r\n _this.timeGrid = _this.instantiateTimeGrid();\r\n _this.addChild(_this.timeGrid);\r\n if (_this.opt('allDaySlot')) { // should we display the \"all-day\" area?\r\n _this.dayGrid = _this.instantiateDayGrid(); // the all-day subcomponent of this view\r\n _this.addChild(_this.dayGrid);\r\n }\r\n _this.scroller = new Scroller_1.default({\r\n overflowX: 'hidden',\r\n overflowY: 'auto'\r\n });\r\n return _this;\r\n }\r\n // Instantiates the TimeGrid object this view needs. Draws from this.timeGridClass\r\n AgendaView.prototype.instantiateTimeGrid = function () {\r\n var timeGrid = new this.timeGridClass(this);\r\n util_1.copyOwnProps(agendaTimeGridMethods, timeGrid);\r\n return timeGrid;\r\n };\r\n // Instantiates the DayGrid object this view might need. Draws from this.dayGridClass\r\n AgendaView.prototype.instantiateDayGrid = function () {\r\n var dayGrid = new this.dayGridClass(this);\r\n util_1.copyOwnProps(agendaDayGridMethods, dayGrid);\r\n return dayGrid;\r\n };\r\n /* Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n AgendaView.prototype.renderSkeleton = function () {\r\n var timeGridWrapEl;\r\n var timeGridEl;\r\n this.el.addClass('fc-agenda-view').html(this.renderSkeletonHtml());\r\n this.scroller.render();\r\n timeGridWrapEl = this.scroller.el.addClass('fc-time-grid-container');\r\n timeGridEl = $('<div class=\"fc-time-grid\" />').appendTo(timeGridWrapEl);\r\n this.el.find('.fc-body > tr > td').append(timeGridWrapEl);\r\n this.timeGrid.headContainerEl = this.el.find('.fc-head-container');\r\n this.timeGrid.setElement(timeGridEl);\r\n if (this.dayGrid) {\r\n this.dayGrid.setElement(this.el.find('.fc-day-grid'));\r\n // have the day-grid extend it's coordinate area over the <hr> dividing the two grids\r\n this.dayGrid.bottomCoordPadding = this.dayGrid.el.next('hr').outerHeight();\r\n }\r\n };\r\n AgendaView.prototype.unrenderSkeleton = function () {\r\n this.timeGrid.removeElement();\r\n if (this.dayGrid) {\r\n this.dayGrid.removeElement();\r\n }\r\n this.scroller.destroy();\r\n };\r\n // Builds the HTML skeleton for the view.\r\n // The day-grid and time-grid components will render inside containers defined by this HTML.\r\n AgendaView.prototype.renderSkeletonHtml = function () {\r\n var theme = this.calendar.theme;\r\n return '' +\r\n '<table class=\"' + theme.getClass('tableGrid') + '\">' +\r\n (this.opt('columnHeader') ?\r\n '<thead class=\"fc-head\">' +\r\n '<tr>' +\r\n '<td class=\"fc-head-container ' + theme.getClass('widgetHeader') + '\"> </td>' +\r\n '</tr>' +\r\n '</thead>' :\r\n '') +\r\n '<tbody class=\"fc-body\">' +\r\n '<tr>' +\r\n '<td class=\"' + theme.getClass('widgetContent') + '\">' +\r\n (this.dayGrid ?\r\n '<div class=\"fc-day-grid\"/>' +\r\n '<hr class=\"fc-divider ' + theme.getClass('widgetHeader') + '\"/>' :\r\n '') +\r\n '</td>' +\r\n '</tr>' +\r\n '</tbody>' +\r\n '</table>';\r\n };\r\n // Generates an HTML attribute string for setting the width of the axis, if it is known\r\n AgendaView.prototype.axisStyleAttr = function () {\r\n if (this.axisWidth != null) {\r\n return 'style=\"width:' + this.axisWidth + 'px\"';\r\n }\r\n return '';\r\n };\r\n /* Now Indicator\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n AgendaView.prototype.getNowIndicatorUnit = function () {\r\n return this.timeGrid.getNowIndicatorUnit();\r\n };\r\n /* Dimensions\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Adjusts the vertical dimensions of the view to the specified values\r\n AgendaView.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n var eventLimit;\r\n var scrollerHeight;\r\n var scrollbarWidths;\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n // make all axis cells line up, and record the width so newly created axis cells will have it\r\n this.axisWidth = util_1.matchCellWidths(this.el.find('.fc-axis'));\r\n // hack to give the view some height prior to timeGrid's columns being rendered\r\n // TODO: separate setting height from scroller VS timeGrid.\r\n if (!this.timeGrid.colEls) {\r\n if (!isAuto) {\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n return;\r\n }\r\n // set of fake row elements that must compensate when scroller has scrollbars\r\n var noScrollRowEls = this.el.find('.fc-row:not(.fc-scroller *)');\r\n // reset all dimensions back to the original state\r\n this.timeGrid.bottomRuleEl.hide(); // .show() will be called later if this <hr> is necessary\r\n this.scroller.clear(); // sets height to 'auto' and clears overflow\r\n util_1.uncompensateScroll(noScrollRowEls);\r\n // limit number of events in the all-day area\r\n if (this.dayGrid) {\r\n this.dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\r\n eventLimit = this.opt('eventLimit');\r\n if (eventLimit && typeof eventLimit !== 'number') {\r\n eventLimit = AGENDA_ALL_DAY_EVENT_LIMIT; // make sure \"auto\" goes to a real number\r\n }\r\n if (eventLimit) {\r\n this.dayGrid.limitRows(eventLimit);\r\n }\r\n }\r\n if (!isAuto) { // should we force dimensions of the scroll container?\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n scrollbarWidths = this.scroller.getScrollbarWidths();\r\n if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars?\r\n // make the all-day and header rows lines up\r\n util_1.compensateScroll(noScrollRowEls, scrollbarWidths);\r\n // the scrollbar compensation might have changed text flow, which might affect height, so recalculate\r\n // and reapply the desired height to the scroller.\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n // guarantees the same scrollbar widths\r\n this.scroller.lockOverflow(scrollbarWidths);\r\n // if there's any space below the slats, show the horizontal rule.\r\n // this won't cause any new overflow, because lockOverflow already called.\r\n if (this.timeGrid.getTotalSlatHeight() < scrollerHeight) {\r\n this.timeGrid.bottomRuleEl.show();\r\n }\r\n }\r\n };\r\n // given a desired total height of the view, returns what the height of the scroller should be\r\n AgendaView.prototype.computeScrollerHeight = function (totalHeight) {\r\n return totalHeight -\r\n util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\r\n };\r\n /* Scroll\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Computes the initial pre-configured scroll state prior to allowing the user to change it\r\n AgendaView.prototype.computeInitialDateScroll = function () {\r\n var scrollTime = moment.duration(this.opt('scrollTime'));\r\n var top = this.timeGrid.computeTimeTop(scrollTime);\r\n // zoom can give weird floating-point values. rather scroll a little bit further\r\n top = Math.ceil(top);\r\n if (top) {\r\n top++; // to overcome top border that slots beyond the first have. looks better\r\n }\r\n return { top: top };\r\n };\r\n AgendaView.prototype.queryDateScroll = function () {\r\n return { top: this.scroller.getScrollTop() };\r\n };\r\n AgendaView.prototype.applyDateScroll = function (scroll) {\r\n if (scroll.top !== undefined) {\r\n this.scroller.setScrollTop(scroll.top);\r\n }\r\n };\r\n /* Hit Areas\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // forward all hit-related method calls to the grids (dayGrid might not be defined)\r\n AgendaView.prototype.getHitFootprint = function (hit) {\r\n // TODO: hit.component is set as a hack to identify where the hit came from\r\n return hit.component.getHitFootprint(hit);\r\n };\r\n AgendaView.prototype.getHitEl = function (hit) {\r\n // TODO: hit.component is set as a hack to identify where the hit came from\r\n return hit.component.getHitEl(hit);\r\n };\r\n /* Event Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n AgendaView.prototype.executeEventRender = function (eventsPayload) {\r\n var dayEventsPayload = {};\r\n var timedEventsPayload = {};\r\n var id;\r\n var eventInstanceGroup;\r\n // separate the events into all-day and timed\r\n for (id in eventsPayload) {\r\n eventInstanceGroup = eventsPayload[id];\r\n if (eventInstanceGroup.getEventDef().isAllDay()) {\r\n dayEventsPayload[id] = eventInstanceGroup;\r\n }\r\n else {\r\n timedEventsPayload[id] = eventInstanceGroup;\r\n }\r\n }\r\n this.timeGrid.executeEventRender(timedEventsPayload);\r\n if (this.dayGrid) {\r\n this.dayGrid.executeEventRender(dayEventsPayload);\r\n }\r\n };\r\n /* Dragging/Resizing Routing\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // A returned value of `true` signals that a mock \"helper\" event has been rendered.\r\n AgendaView.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var groups = groupEventFootprintsByAllDay(eventFootprints);\r\n var renderedHelper = false;\r\n renderedHelper = this.timeGrid.renderDrag(groups.timed, seg, isTouch);\r\n if (this.dayGrid) {\r\n renderedHelper = this.dayGrid.renderDrag(groups.allDay, seg, isTouch) || renderedHelper;\r\n }\r\n return renderedHelper;\r\n };\r\n AgendaView.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n var groups = groupEventFootprintsByAllDay(eventFootprints);\r\n this.timeGrid.renderEventResize(groups.timed, seg, isTouch);\r\n if (this.dayGrid) {\r\n this.dayGrid.renderEventResize(groups.allDay, seg, isTouch);\r\n }\r\n };\r\n /* Selection\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of a selection\r\n AgendaView.prototype.renderSelectionFootprint = function (componentFootprint) {\r\n if (!componentFootprint.isAllDay) {\r\n this.timeGrid.renderSelectionFootprint(componentFootprint);\r\n }\r\n else if (this.dayGrid) {\r\n this.dayGrid.renderSelectionFootprint(componentFootprint);\r\n }\r\n };\r\n return AgendaView;\r\n}(View_1.default));\r\nexports.default = AgendaView;\r\nAgendaView.prototype.timeGridClass = TimeGrid_1.default;\r\nAgendaView.prototype.dayGridClass = DayGrid_1.default;\r\n// Will customize the rendering behavior of the AgendaView's timeGrid\r\nagendaTimeGridMethods = {\r\n // Generates the HTML that will go before the day-of week header cells\r\n renderHeadIntroHtml: function () {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var weekStart = calendar.msToUtcMoment(this.dateProfile.renderUnzonedRange.startMs, true);\r\n var weekText;\r\n if (this.opt('weekNumbers')) {\r\n weekText = weekStart.format(this.opt('smallWeekFormat'));\r\n return '' +\r\n '<th class=\"fc-axis fc-week-number ' + calendar.theme.getClass('widgetHeader') + '\" ' + view.axisStyleAttr() + '>' +\r\n view.buildGotoAnchorHtml(// aside from link, important for matchCellWidths\r\n { date: weekStart, type: 'week', forceOff: this.colCnt > 1 }, util_1.htmlEscape(weekText) // inner HTML\r\n ) +\r\n '</th>';\r\n }\r\n else {\r\n return '<th class=\"fc-axis ' + calendar.theme.getClass('widgetHeader') + '\" ' + view.axisStyleAttr() + '></th>';\r\n }\r\n },\r\n // Generates the HTML that goes before the bg of the TimeGrid slot area. Long vertical column.\r\n renderBgIntroHtml: function () {\r\n var view = this.view;\r\n return '<td class=\"fc-axis ' + view.calendar.theme.getClass('widgetContent') + '\" ' + view.axisStyleAttr() + '></td>';\r\n },\r\n // Generates the HTML that goes before all other types of cells.\r\n // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid.\r\n renderIntroHtml: function () {\r\n var view = this.view;\r\n return '<td class=\"fc-axis\" ' + view.axisStyleAttr() + '></td>';\r\n }\r\n};\r\n// Will customize the rendering behavior of the AgendaView's dayGrid\r\nagendaDayGridMethods = {\r\n // Generates the HTML that goes before the all-day cells\r\n renderBgIntroHtml: function () {\r\n var view = this.view;\r\n return '' +\r\n '<td class=\"fc-axis ' + view.calendar.theme.getClass('widgetContent') + '\" ' + view.axisStyleAttr() + '>' +\r\n '<span>' + // needed for matchCellWidths\r\n view.getAllDayHtml() +\r\n '</span>' +\r\n '</td>';\r\n },\r\n // Generates the HTML that goes before all other types of cells.\r\n // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid.\r\n renderIntroHtml: function () {\r\n var view = this.view;\r\n return '<td class=\"fc-axis\" ' + view.axisStyleAttr() + '></td>';\r\n }\r\n};\r\nfunction groupEventFootprintsByAllDay(eventFootprints) {\r\n var allDay = [];\r\n var timed = [];\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (eventFootprints[i].componentFootprint.isAllDay) {\r\n allDay.push(eventFootprints[i]);\r\n }\r\n else {\r\n timed.push(eventFootprints[i]);\r\n }\r\n }\r\n return { allDay: allDay, timed: timed };\r\n}\r\n\n\n/***/ }),\n/* 239 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar InteractiveDateComponent_1 = __webpack_require__(42);\r\nvar BusinessHourRenderer_1 = __webpack_require__(61);\r\nvar StandardInteractionsMixin_1 = __webpack_require__(65);\r\nvar DayTableMixin_1 = __webpack_require__(60);\r\nvar CoordCache_1 = __webpack_require__(58);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar TimeGridEventRenderer_1 = __webpack_require__(240);\r\nvar TimeGridHelperRenderer_1 = __webpack_require__(241);\r\nvar TimeGridFillRenderer_1 = __webpack_require__(242);\r\n/* A component that renders one or more columns of vertical time slots\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// We mixin DayTable, even though there is only a single row of days\r\n// potential nice values for the slot-duration and interval-duration\r\n// from largest to smallest\r\nvar AGENDA_STOCK_SUB_DURATIONS = [\r\n { hours: 1 },\r\n { minutes: 30 },\r\n { minutes: 15 },\r\n { seconds: 30 },\r\n { seconds: 15 }\r\n];\r\nvar TimeGrid = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGrid, _super);\r\n function TimeGrid(view) {\r\n var _this = _super.call(this, view) || this;\r\n _this.processOptions();\r\n return _this;\r\n }\r\n // Slices up the given span (unzoned start/end with other misc data) into an array of segments\r\n TimeGrid.prototype.componentFootprintToSegs = function (componentFootprint) {\r\n var segs = this.sliceRangeByTimes(componentFootprint.unzonedRange);\r\n var i;\r\n for (i = 0; i < segs.length; i++) {\r\n if (this.isRTL) {\r\n segs[i].col = this.daysPerRow - 1 - segs[i].dayIndex;\r\n }\r\n else {\r\n segs[i].col = segs[i].dayIndex;\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Date Handling\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.sliceRangeByTimes = function (unzonedRange) {\r\n var segs = [];\r\n var segRange;\r\n var dayIndex;\r\n for (dayIndex = 0; dayIndex < this.daysPerRow; dayIndex++) {\r\n segRange = unzonedRange.intersect(this.dayRanges[dayIndex]);\r\n if (segRange) {\r\n segs.push({\r\n startMs: segRange.startMs,\r\n endMs: segRange.endMs,\r\n isStart: segRange.isStart,\r\n isEnd: segRange.isEnd,\r\n dayIndex: dayIndex\r\n });\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Options\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Parses various options into properties of this object\r\n TimeGrid.prototype.processOptions = function () {\r\n var slotDuration = this.opt('slotDuration');\r\n var snapDuration = this.opt('snapDuration');\r\n var input;\r\n slotDuration = moment.duration(slotDuration);\r\n snapDuration = snapDuration ? moment.duration(snapDuration) : slotDuration;\r\n this.slotDuration = slotDuration;\r\n this.snapDuration = snapDuration;\r\n this.snapsPerSlot = slotDuration / snapDuration; // TODO: ensure an integer multiple?\r\n // might be an array value (for TimelineView).\r\n // if so, getting the most granular entry (the last one probably).\r\n input = this.opt('slotLabelFormat');\r\n if ($.isArray(input)) {\r\n input = input[input.length - 1];\r\n }\r\n this.labelFormat = input ||\r\n this.opt('smallTimeFormat'); // the computed default\r\n input = this.opt('slotLabelInterval');\r\n this.labelInterval = input ?\r\n moment.duration(input) :\r\n this.computeLabelInterval(slotDuration);\r\n };\r\n // Computes an automatic value for slotLabelInterval\r\n TimeGrid.prototype.computeLabelInterval = function (slotDuration) {\r\n var i;\r\n var labelInterval;\r\n var slotsPerLabel;\r\n // find the smallest stock label interval that results in more than one slots-per-label\r\n for (i = AGENDA_STOCK_SUB_DURATIONS.length - 1; i >= 0; i--) {\r\n labelInterval = moment.duration(AGENDA_STOCK_SUB_DURATIONS[i]);\r\n slotsPerLabel = util_1.divideDurationByDuration(labelInterval, slotDuration);\r\n if (util_1.isInt(slotsPerLabel) && slotsPerLabel > 1) {\r\n return labelInterval;\r\n }\r\n }\r\n return moment.duration(slotDuration); // fall back. clone\r\n };\r\n /* Date Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.renderDates = function (dateProfile) {\r\n this.dateProfile = dateProfile;\r\n this.updateDayTable();\r\n this.renderSlats();\r\n this.renderColumns();\r\n };\r\n TimeGrid.prototype.unrenderDates = function () {\r\n // this.unrenderSlats(); // don't need this because repeated .html() calls clear\r\n this.unrenderColumns();\r\n };\r\n TimeGrid.prototype.renderSkeleton = function () {\r\n var theme = this.view.calendar.theme;\r\n this.el.html('<div class=\"fc-bg\"></div>' +\r\n '<div class=\"fc-slats\"></div>' +\r\n '<hr class=\"fc-divider ' + theme.getClass('widgetHeader') + '\" style=\"display:none\" />');\r\n this.bottomRuleEl = this.el.find('hr');\r\n };\r\n TimeGrid.prototype.renderSlats = function () {\r\n var theme = this.view.calendar.theme;\r\n this.slatContainerEl = this.el.find('> .fc-slats')\r\n .html(// avoids needing ::unrenderSlats()\r\n '<table class=\"' + theme.getClass('tableGrid') + '\">' +\r\n this.renderSlatRowHtml() +\r\n '</table>');\r\n this.slatEls = this.slatContainerEl.find('tr');\r\n this.slatCoordCache = new CoordCache_1.default({\r\n els: this.slatEls,\r\n isVertical: true\r\n });\r\n };\r\n // Generates the HTML for the horizontal \"slats\" that run width-wise. Has a time axis on a side. Depends on RTL.\r\n TimeGrid.prototype.renderSlatRowHtml = function () {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var theme = calendar.theme;\r\n var isRTL = this.isRTL;\r\n var dateProfile = this.dateProfile;\r\n var html = '';\r\n var slotTime = moment.duration(+dateProfile.minTime); // wish there was .clone() for durations\r\n var slotIterator = moment.duration(0);\r\n var slotDate; // will be on the view's first day, but we only care about its time\r\n var isLabeled;\r\n var axisHtml;\r\n // Calculate the time for each slot\r\n while (slotTime < dateProfile.maxTime) {\r\n slotDate = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.startMs).time(slotTime);\r\n isLabeled = util_1.isInt(util_1.divideDurationByDuration(slotIterator, this.labelInterval));\r\n axisHtml =\r\n '<td class=\"fc-axis fc-time ' + theme.getClass('widgetContent') + '\" ' + view.axisStyleAttr() + '>' +\r\n (isLabeled ?\r\n '<span>' + // for matchCellWidths\r\n util_1.htmlEscape(slotDate.format(this.labelFormat)) +\r\n '</span>' :\r\n '') +\r\n '</td>';\r\n html +=\r\n '<tr data-time=\"' + slotDate.format('HH:mm:ss') + '\"' +\r\n (isLabeled ? '' : ' class=\"fc-minor\"') +\r\n '>' +\r\n (!isRTL ? axisHtml : '') +\r\n '<td class=\"' + theme.getClass('widgetContent') + '\"/>' +\r\n (isRTL ? axisHtml : '') +\r\n '</tr>';\r\n slotTime.add(this.slotDuration);\r\n slotIterator.add(this.slotDuration);\r\n }\r\n return html;\r\n };\r\n TimeGrid.prototype.renderColumns = function () {\r\n var dateProfile = this.dateProfile;\r\n var theme = this.view.calendar.theme;\r\n this.dayRanges = this.dayDates.map(function (dayDate) {\r\n return new UnzonedRange_1.default(dayDate.clone().add(dateProfile.minTime), dayDate.clone().add(dateProfile.maxTime));\r\n });\r\n if (this.headContainerEl) {\r\n this.headContainerEl.html(this.renderHeadHtml());\r\n }\r\n this.el.find('> .fc-bg').html('<table class=\"' + theme.getClass('tableGrid') + '\">' +\r\n this.renderBgTrHtml(0) + // row=0\r\n '</table>');\r\n this.colEls = this.el.find('.fc-day, .fc-disabled-day');\r\n this.colCoordCache = new CoordCache_1.default({\r\n els: this.colEls,\r\n isHorizontal: true\r\n });\r\n this.renderContentSkeleton();\r\n };\r\n TimeGrid.prototype.unrenderColumns = function () {\r\n this.unrenderContentSkeleton();\r\n };\r\n /* Content Skeleton\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders the DOM that the view's content will live in\r\n TimeGrid.prototype.renderContentSkeleton = function () {\r\n var cellHtml = '';\r\n var i;\r\n var skeletonEl;\r\n for (i = 0; i < this.colCnt; i++) {\r\n cellHtml +=\r\n '<td>' +\r\n '<div class=\"fc-content-col\">' +\r\n '<div class=\"fc-event-container fc-helper-container\"></div>' +\r\n '<div class=\"fc-event-container\"></div>' +\r\n '<div class=\"fc-highlight-container\"></div>' +\r\n '<div class=\"fc-bgevent-container\"></div>' +\r\n '<div class=\"fc-business-container\"></div>' +\r\n '</div>' +\r\n '</td>';\r\n }\r\n skeletonEl = this.contentSkeletonEl = $('<div class=\"fc-content-skeleton\">' +\r\n '<table>' +\r\n '<tr>' + cellHtml + '</tr>' +\r\n '</table>' +\r\n '</div>');\r\n this.colContainerEls = skeletonEl.find('.fc-content-col');\r\n this.helperContainerEls = skeletonEl.find('.fc-helper-container');\r\n this.fgContainerEls = skeletonEl.find('.fc-event-container:not(.fc-helper-container)');\r\n this.bgContainerEls = skeletonEl.find('.fc-bgevent-container');\r\n this.highlightContainerEls = skeletonEl.find('.fc-highlight-container');\r\n this.businessContainerEls = skeletonEl.find('.fc-business-container');\r\n this.bookendCells(skeletonEl.find('tr')); // TODO: do this on string level\r\n this.el.append(skeletonEl);\r\n };\r\n TimeGrid.prototype.unrenderContentSkeleton = function () {\r\n if (this.contentSkeletonEl) { // defensive :(\r\n this.contentSkeletonEl.remove();\r\n this.contentSkeletonEl = null;\r\n this.colContainerEls = null;\r\n this.helperContainerEls = null;\r\n this.fgContainerEls = null;\r\n this.bgContainerEls = null;\r\n this.highlightContainerEls = null;\r\n this.businessContainerEls = null;\r\n }\r\n };\r\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's col\r\n TimeGrid.prototype.groupSegsByCol = function (segs) {\r\n var segsByCol = [];\r\n var i;\r\n for (i = 0; i < this.colCnt; i++) {\r\n segsByCol.push([]);\r\n }\r\n for (i = 0; i < segs.length; i++) {\r\n segsByCol[segs[i].col].push(segs[i]);\r\n }\r\n return segsByCol;\r\n };\r\n // Given segments grouped by column, insert the segments' elements into a parallel array of container\r\n // elements, each living within a column.\r\n TimeGrid.prototype.attachSegsByCol = function (segsByCol, containerEls) {\r\n var col;\r\n var segs;\r\n var i;\r\n for (col = 0; col < this.colCnt; col++) { // iterate each column grouping\r\n segs = segsByCol[col];\r\n for (i = 0; i < segs.length; i++) {\r\n containerEls.eq(col).append(segs[i].el);\r\n }\r\n }\r\n };\r\n /* Now Indicator\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.getNowIndicatorUnit = function () {\r\n return 'minute'; // will refresh on the minute\r\n };\r\n TimeGrid.prototype.renderNowIndicator = function (date) {\r\n // HACK: if date columns not ready for some reason (scheduler)\r\n if (!this.colContainerEls) {\r\n return;\r\n }\r\n // seg system might be overkill, but it handles scenario where line needs to be rendered\r\n // more than once because of columns with the same date (resources columns for example)\r\n var segs = this.componentFootprintToSegs(new ComponentFootprint_1.default(new UnzonedRange_1.default(date, date.valueOf() + 1), // protect against null range\r\n false // all-day\r\n ));\r\n var top = this.computeDateTop(date, date);\r\n var nodes = [];\r\n var i;\r\n // render lines within the columns\r\n for (i = 0; i < segs.length; i++) {\r\n nodes.push($('<div class=\"fc-now-indicator fc-now-indicator-line\"></div>')\r\n .css('top', top)\r\n .appendTo(this.colContainerEls.eq(segs[i].col))[0]);\r\n }\r\n // render an arrow over the axis\r\n if (segs.length > 0) { // is the current time in view?\r\n nodes.push($('<div class=\"fc-now-indicator fc-now-indicator-arrow\"></div>')\r\n .css('top', top)\r\n .appendTo(this.el.find('.fc-content-skeleton'))[0]);\r\n }\r\n this.nowIndicatorEls = $(nodes);\r\n };\r\n TimeGrid.prototype.unrenderNowIndicator = function () {\r\n if (this.nowIndicatorEls) {\r\n this.nowIndicatorEls.remove();\r\n this.nowIndicatorEls = null;\r\n }\r\n };\r\n /* Coordinates\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n this.slatCoordCache.build();\r\n if (isResize) {\r\n this.updateSegVerticals([].concat(this.eventRenderer.getSegs(), this.businessSegs || []));\r\n }\r\n };\r\n TimeGrid.prototype.getTotalSlatHeight = function () {\r\n return this.slatContainerEl.outerHeight();\r\n };\r\n // Computes the top coordinate, relative to the bounds of the grid, of the given date.\r\n // `ms` can be a millisecond UTC time OR a UTC moment.\r\n // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.\r\n TimeGrid.prototype.computeDateTop = function (ms, startOfDayDate) {\r\n return this.computeTimeTop(moment.duration(ms - startOfDayDate.clone().stripTime()));\r\n };\r\n // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).\r\n TimeGrid.prototype.computeTimeTop = function (time) {\r\n var len = this.slatEls.length;\r\n var dateProfile = this.dateProfile;\r\n var slatCoverage = (time - dateProfile.minTime) / this.slotDuration; // floating-point value of # of slots covered\r\n var slatIndex;\r\n var slatRemainder;\r\n // compute a floating-point number for how many slats should be progressed through.\r\n // from 0 to number of slats (inclusive)\r\n // constrained because minTime/maxTime might be customized.\r\n slatCoverage = Math.max(0, slatCoverage);\r\n slatCoverage = Math.min(len, slatCoverage);\r\n // an integer index of the furthest whole slat\r\n // from 0 to number slats (*exclusive*, so len-1)\r\n slatIndex = Math.floor(slatCoverage);\r\n slatIndex = Math.min(slatIndex, len - 1);\r\n // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.\r\n // could be 1.0 if slatCoverage is covering *all* the slots\r\n slatRemainder = slatCoverage - slatIndex;\r\n return this.slatCoordCache.getTopPosition(slatIndex) +\r\n this.slatCoordCache.getHeight(slatIndex) * slatRemainder;\r\n };\r\n // Refreshes the CSS top/bottom coordinates for each segment element.\r\n // Works when called after initial render, after a window resize/zoom for example.\r\n TimeGrid.prototype.updateSegVerticals = function (segs) {\r\n this.computeSegVerticals(segs);\r\n this.assignSegVerticals(segs);\r\n };\r\n // For each segment in an array, computes and assigns its top and bottom properties\r\n TimeGrid.prototype.computeSegVerticals = function (segs) {\r\n var eventMinHeight = this.opt('agendaEventMinHeight');\r\n var i;\r\n var seg;\r\n var dayDate;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n dayDate = this.dayDates[seg.dayIndex];\r\n seg.top = this.computeDateTop(seg.startMs, dayDate);\r\n seg.bottom = Math.max(seg.top + eventMinHeight, this.computeDateTop(seg.endMs, dayDate));\r\n }\r\n };\r\n // Given segments that already have their top/bottom properties computed, applies those values to\r\n // the segments' elements.\r\n TimeGrid.prototype.assignSegVerticals = function (segs) {\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n seg.el.css(this.generateSegVerticalCss(seg));\r\n }\r\n };\r\n // Generates an object with CSS properties for the top/bottom coordinates of a segment element\r\n TimeGrid.prototype.generateSegVerticalCss = function (seg) {\r\n return {\r\n top: seg.top,\r\n bottom: -seg.bottom // flipped because needs to be space beyond bottom edge of event container\r\n };\r\n };\r\n /* Hit System\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.prepareHits = function () {\r\n this.colCoordCache.build();\r\n this.slatCoordCache.build();\r\n };\r\n TimeGrid.prototype.releaseHits = function () {\r\n this.colCoordCache.clear();\r\n // NOTE: don't clear slatCoordCache because we rely on it for computeTimeTop\r\n };\r\n TimeGrid.prototype.queryHit = function (leftOffset, topOffset) {\r\n var snapsPerSlot = this.snapsPerSlot;\r\n var colCoordCache = this.colCoordCache;\r\n var slatCoordCache = this.slatCoordCache;\r\n if (colCoordCache.isLeftInBounds(leftOffset) && slatCoordCache.isTopInBounds(topOffset)) {\r\n var colIndex = colCoordCache.getHorizontalIndex(leftOffset);\r\n var slatIndex = slatCoordCache.getVerticalIndex(topOffset);\r\n if (colIndex != null && slatIndex != null) {\r\n var slatTop = slatCoordCache.getTopOffset(slatIndex);\r\n var slatHeight = slatCoordCache.getHeight(slatIndex);\r\n var partial = (topOffset - slatTop) / slatHeight; // floating point number between 0 and 1\r\n var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat\r\n var snapIndex = slatIndex * snapsPerSlot + localSnapIndex;\r\n var snapTop = slatTop + (localSnapIndex / snapsPerSlot) * slatHeight;\r\n var snapBottom = slatTop + ((localSnapIndex + 1) / snapsPerSlot) * slatHeight;\r\n return {\r\n col: colIndex,\r\n snap: snapIndex,\r\n component: this,\r\n left: colCoordCache.getLeftOffset(colIndex),\r\n right: colCoordCache.getRightOffset(colIndex),\r\n top: snapTop,\r\n bottom: snapBottom\r\n };\r\n }\r\n }\r\n };\r\n TimeGrid.prototype.getHitFootprint = function (hit) {\r\n var start = this.getCellDate(0, hit.col); // row=0\r\n var time = this.computeSnapTime(hit.snap); // pass in the snap-index\r\n var end;\r\n start.time(time);\r\n end = start.clone().add(this.snapDuration);\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), false // all-day?\r\n );\r\n };\r\n // Given a row number of the grid, representing a \"snap\", returns a time (Duration) from its start-of-day\r\n TimeGrid.prototype.computeSnapTime = function (snapIndex) {\r\n return moment.duration(this.dateProfile.minTime + this.snapDuration * snapIndex);\r\n };\r\n TimeGrid.prototype.getHitEl = function (hit) {\r\n return this.colEls.eq(hit.col);\r\n };\r\n /* Event Drag Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event being dragged over the specified date(s).\r\n // A returned value of `true` signals that a mock \"helper\" event has been rendered.\r\n TimeGrid.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var i;\r\n if (seg) { // if there is event information for this drag, render a helper event\r\n if (eventFootprints.length) {\r\n this.helperRenderer.renderEventDraggingFootprints(eventFootprints, seg, isTouch);\r\n // signal that a helper has been rendered\r\n return true;\r\n }\r\n }\r\n else { // otherwise, just render a highlight\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n this.renderHighlight(eventFootprints[i].componentFootprint);\r\n }\r\n }\r\n };\r\n // Unrenders any visual indication of an event being dragged\r\n TimeGrid.prototype.unrenderDrag = function () {\r\n this.unrenderHighlight();\r\n this.helperRenderer.unrender();\r\n };\r\n /* Event Resize Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event being resized\r\n TimeGrid.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n this.helperRenderer.renderEventResizingFootprints(eventFootprints, seg, isTouch);\r\n };\r\n // Unrenders any visual indication of an event being resized\r\n TimeGrid.prototype.unrenderEventResize = function () {\r\n this.helperRenderer.unrender();\r\n };\r\n /* Selection\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of a selection. Overrides the default, which was to simply render a highlight.\r\n TimeGrid.prototype.renderSelectionFootprint = function (componentFootprint) {\r\n if (this.opt('selectHelper')) { // this setting signals that a mock helper event should be rendered\r\n this.helperRenderer.renderComponentFootprint(componentFootprint);\r\n }\r\n else {\r\n this.renderHighlight(componentFootprint);\r\n }\r\n };\r\n // Unrenders any visual indication of a selection\r\n TimeGrid.prototype.unrenderSelection = function () {\r\n this.helperRenderer.unrender();\r\n this.unrenderHighlight();\r\n };\r\n return TimeGrid;\r\n}(InteractiveDateComponent_1.default));\r\nexports.default = TimeGrid;\r\nTimeGrid.prototype.eventRendererClass = TimeGridEventRenderer_1.default;\r\nTimeGrid.prototype.businessHourRendererClass = BusinessHourRenderer_1.default;\r\nTimeGrid.prototype.helperRendererClass = TimeGridHelperRenderer_1.default;\r\nTimeGrid.prototype.fillRendererClass = TimeGridFillRenderer_1.default;\r\nStandardInteractionsMixin_1.default.mixInto(TimeGrid);\r\nDayTableMixin_1.default.mixInto(TimeGrid);\r\n\n\n/***/ }),\n/* 240 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer_1 = __webpack_require__(44);\r\n/*\r\nOnly handles foreground segs.\r\nDoes not own rendering. Use for low-level util methods by TimeGrid.\r\n*/\r\nvar TimeGridEventRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGridEventRenderer, _super);\r\n function TimeGridEventRenderer(timeGrid, fillRenderer) {\r\n var _this = _super.call(this, timeGrid, fillRenderer) || this;\r\n _this.timeGrid = timeGrid;\r\n return _this;\r\n }\r\n TimeGridEventRenderer.prototype.renderFgSegs = function (segs) {\r\n this.renderFgSegsIntoContainers(segs, this.timeGrid.fgContainerEls);\r\n };\r\n // Given an array of foreground segments, render a DOM element for each, computes position,\r\n // and attaches to the column inner-container elements.\r\n TimeGridEventRenderer.prototype.renderFgSegsIntoContainers = function (segs, containerEls) {\r\n var segsByCol;\r\n var col;\r\n segsByCol = this.timeGrid.groupSegsByCol(segs);\r\n for (col = 0; col < this.timeGrid.colCnt; col++) {\r\n this.updateFgSegCoords(segsByCol[col]);\r\n }\r\n this.timeGrid.attachSegsByCol(segsByCol, containerEls);\r\n };\r\n TimeGridEventRenderer.prototype.unrenderFgSegs = function () {\r\n if (this.fgSegs) { // hack\r\n this.fgSegs.forEach(function (seg) {\r\n seg.el.remove();\r\n });\r\n }\r\n };\r\n // Computes a default event time formatting string if `timeFormat` is not explicitly defined\r\n TimeGridEventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('noMeridiemTimeFormat'); // like \"6:30\" (no AM/PM)\r\n };\r\n // Computes a default `displayEventEnd` value if one is not expliclty defined\r\n TimeGridEventRenderer.prototype.computeDisplayEventEnd = function () {\r\n return true;\r\n };\r\n // Renders the HTML for a single event segment's default rendering\r\n TimeGridEventRenderer.prototype.fgSegHtml = function (seg, disableResizing) {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var componentFootprint = seg.footprint.componentFootprint;\r\n var isAllDay = componentFootprint.isAllDay;\r\n var eventDef = seg.footprint.eventDef;\r\n var isDraggable = view.isEventDefDraggable(eventDef);\r\n var isResizableFromStart = !disableResizing && seg.isStart && view.isEventDefResizableFromStart(eventDef);\r\n var isResizableFromEnd = !disableResizing && seg.isEnd && view.isEventDefResizableFromEnd(eventDef);\r\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd);\r\n var skinCss = util_1.cssToStr(this.getSkinCss(eventDef));\r\n var timeText;\r\n var fullTimeText; // more verbose time text. for the print stylesheet\r\n var startTimeText; // just the start time text\r\n classes.unshift('fc-time-grid-event', 'fc-v-event');\r\n // if the event appears to span more than one day...\r\n if (view.isMultiDayRange(componentFootprint.unzonedRange)) {\r\n // Don't display time text on segments that run entirely through a day.\r\n // That would appear as midnight-midnight and would look dumb.\r\n // Otherwise, display the time text for the *segment's* times (like 6pm-midnight or midnight-10am)\r\n if (seg.isStart || seg.isEnd) {\r\n var zonedStart = calendar.msToMoment(seg.startMs);\r\n var zonedEnd = calendar.msToMoment(seg.endMs);\r\n timeText = this._getTimeText(zonedStart, zonedEnd, isAllDay);\r\n fullTimeText = this._getTimeText(zonedStart, zonedEnd, isAllDay, 'LT');\r\n startTimeText = this._getTimeText(zonedStart, zonedEnd, isAllDay, null, false); // displayEnd=false\r\n }\r\n }\r\n else {\r\n // Display the normal time text for the *event's* times\r\n timeText = this.getTimeText(seg.footprint);\r\n fullTimeText = this.getTimeText(seg.footprint, 'LT');\r\n startTimeText = this.getTimeText(seg.footprint, null, false); // displayEnd=false\r\n }\r\n return '<a class=\"' + classes.join(' ') + '\"' +\r\n (eventDef.url ?\r\n ' href=\"' + util_1.htmlEscape(eventDef.url) + '\"' :\r\n '') +\r\n (skinCss ?\r\n ' style=\"' + skinCss + '\"' :\r\n '') +\r\n '>' +\r\n '<div class=\"fc-content\">' +\r\n (timeText ?\r\n '<div class=\"fc-time\"' +\r\n ' data-start=\"' + util_1.htmlEscape(startTimeText) + '\"' +\r\n ' data-full=\"' + util_1.htmlEscape(fullTimeText) + '\"' +\r\n '>' +\r\n '<span>' + util_1.htmlEscape(timeText) + '</span>' +\r\n '</div>' :\r\n '') +\r\n (eventDef.title ?\r\n '<div class=\"fc-title\">' +\r\n util_1.htmlEscape(eventDef.title) +\r\n '</div>' :\r\n '') +\r\n '</div>' +\r\n '<div class=\"fc-bg\"/>' +\r\n /* TODO: write CSS for this\r\n (isResizableFromStart ?\r\n '<div class=\"fc-resizer fc-start-resizer\" />' :\r\n ''\r\n ) +\r\n */\r\n (isResizableFromEnd ?\r\n '<div class=\"fc-resizer fc-end-resizer\" />' :\r\n '') +\r\n '</a>';\r\n };\r\n // Given segments that are assumed to all live in the *same column*,\r\n // compute their verical/horizontal coordinates and assign to their elements.\r\n TimeGridEventRenderer.prototype.updateFgSegCoords = function (segs) {\r\n this.timeGrid.computeSegVerticals(segs); // horizontals relies on this\r\n this.computeFgSegHorizontals(segs); // compute horizontal coordinates, z-index's, and reorder the array\r\n this.timeGrid.assignSegVerticals(segs);\r\n this.assignFgSegHorizontals(segs);\r\n };\r\n // Given an array of segments that are all in the same column, sets the backwardCoord and forwardCoord on each.\r\n // NOTE: Also reorders the given array by date!\r\n TimeGridEventRenderer.prototype.computeFgSegHorizontals = function (segs) {\r\n var levels;\r\n var level0;\r\n var i;\r\n this.sortEventSegs(segs); // order by certain criteria\r\n levels = buildSlotSegLevels(segs);\r\n computeForwardSlotSegs(levels);\r\n if ((level0 = levels[0])) {\r\n for (i = 0; i < level0.length; i++) {\r\n computeSlotSegPressures(level0[i]);\r\n }\r\n for (i = 0; i < level0.length; i++) {\r\n this.computeFgSegForwardBack(level0[i], 0, 0);\r\n }\r\n }\r\n };\r\n // Calculate seg.forwardCoord and seg.backwardCoord for the segment, where both values range\r\n // from 0 to 1. If the calendar is left-to-right, the seg.backwardCoord maps to \"left\" and\r\n // seg.forwardCoord maps to \"right\" (via percentage). Vice-versa if the calendar is right-to-left.\r\n //\r\n // The segment might be part of a \"series\", which means consecutive segments with the same pressure\r\n // who's width is unknown until an edge has been hit. `seriesBackwardPressure` is the number of\r\n // segments behind this one in the current series, and `seriesBackwardCoord` is the starting\r\n // coordinate of the first segment in the series.\r\n TimeGridEventRenderer.prototype.computeFgSegForwardBack = function (seg, seriesBackwardPressure, seriesBackwardCoord) {\r\n var forwardSegs = seg.forwardSegs;\r\n var i;\r\n if (seg.forwardCoord === undefined) { // not already computed\r\n if (!forwardSegs.length) {\r\n // if there are no forward segments, this segment should butt up against the edge\r\n seg.forwardCoord = 1;\r\n }\r\n else {\r\n // sort highest pressure first\r\n this.sortForwardSegs(forwardSegs);\r\n // this segment's forwardCoord will be calculated from the backwardCoord of the\r\n // highest-pressure forward segment.\r\n this.computeFgSegForwardBack(forwardSegs[0], seriesBackwardPressure + 1, seriesBackwardCoord);\r\n seg.forwardCoord = forwardSegs[0].backwardCoord;\r\n }\r\n // calculate the backwardCoord from the forwardCoord. consider the series\r\n seg.backwardCoord = seg.forwardCoord -\r\n (seg.forwardCoord - seriesBackwardCoord) / // available width for series\r\n (seriesBackwardPressure + 1); // # of segments in the series\r\n // use this segment's coordinates to computed the coordinates of the less-pressurized\r\n // forward segments\r\n for (i = 0; i < forwardSegs.length; i++) {\r\n this.computeFgSegForwardBack(forwardSegs[i], 0, seg.forwardCoord);\r\n }\r\n }\r\n };\r\n TimeGridEventRenderer.prototype.sortForwardSegs = function (forwardSegs) {\r\n forwardSegs.sort(util_1.proxy(this, 'compareForwardSegs'));\r\n };\r\n // A cmp function for determining which forward segment to rely on more when computing coordinates.\r\n TimeGridEventRenderer.prototype.compareForwardSegs = function (seg1, seg2) {\r\n // put higher-pressure first\r\n return seg2.forwardPressure - seg1.forwardPressure ||\r\n // put segments that are closer to initial edge first (and favor ones with no coords yet)\r\n (seg1.backwardCoord || 0) - (seg2.backwardCoord || 0) ||\r\n // do normal sorting...\r\n this.compareEventSegs(seg1, seg2);\r\n };\r\n // Given foreground event segments that have already had their position coordinates computed,\r\n // assigns position-related CSS values to their elements.\r\n TimeGridEventRenderer.prototype.assignFgSegHorizontals = function (segs) {\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n seg.el.css(this.generateFgSegHorizontalCss(seg));\r\n // if the event is short that the title will be cut off,\r\n // attach a className that condenses the title into the time area.\r\n if (seg.footprint.eventDef.title && seg.bottom - seg.top < 30) {\r\n seg.el.addClass('fc-short'); // TODO: \"condensed\" is a better name\r\n }\r\n }\r\n };\r\n // Generates an object with CSS properties/values that should be applied to an event segment element.\r\n // Contains important positioning-related properties that should be applied to any event element, customized or not.\r\n TimeGridEventRenderer.prototype.generateFgSegHorizontalCss = function (seg) {\r\n var shouldOverlap = this.opt('slotEventOverlap');\r\n var backwardCoord = seg.backwardCoord; // the left side if LTR. the right side if RTL. floating-point\r\n var forwardCoord = seg.forwardCoord; // the right side if LTR. the left side if RTL. floating-point\r\n var props = this.timeGrid.generateSegVerticalCss(seg); // get top/bottom first\r\n var isRTL = this.timeGrid.isRTL;\r\n var left; // amount of space from left edge, a fraction of the total width\r\n var right; // amount of space from right edge, a fraction of the total width\r\n if (shouldOverlap) {\r\n // double the width, but don't go beyond the maximum forward coordinate (1.0)\r\n forwardCoord = Math.min(1, backwardCoord + (forwardCoord - backwardCoord) * 2);\r\n }\r\n if (isRTL) {\r\n left = 1 - forwardCoord;\r\n right = backwardCoord;\r\n }\r\n else {\r\n left = backwardCoord;\r\n right = 1 - forwardCoord;\r\n }\r\n props.zIndex = seg.level + 1; // convert from 0-base to 1-based\r\n props.left = left * 100 + '%';\r\n props.right = right * 100 + '%';\r\n if (shouldOverlap && seg.forwardPressure) {\r\n // add padding to the edge so that forward stacked events don't cover the resizer's icon\r\n props[isRTL ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width\r\n }\r\n return props;\r\n };\r\n return TimeGridEventRenderer;\r\n}(EventRenderer_1.default));\r\nexports.default = TimeGridEventRenderer;\r\n// Builds an array of segments \"levels\". The first level will be the leftmost tier of segments if the calendar is\r\n// left-to-right, or the rightmost if the calendar is right-to-left. Assumes the segments are already ordered by date.\r\nfunction buildSlotSegLevels(segs) {\r\n var levels = [];\r\n var i;\r\n var seg;\r\n var j;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n // go through all the levels and stop on the first level where there are no collisions\r\n for (j = 0; j < levels.length; j++) {\r\n if (!computeSlotSegCollisions(seg, levels[j]).length) {\r\n break;\r\n }\r\n }\r\n seg.level = j;\r\n (levels[j] || (levels[j] = [])).push(seg);\r\n }\r\n return levels;\r\n}\r\n// For every segment, figure out the other segments that are in subsequent\r\n// levels that also occupy the same vertical space. Accumulate in seg.forwardSegs\r\nfunction computeForwardSlotSegs(levels) {\r\n var i;\r\n var level;\r\n var j;\r\n var seg;\r\n var k;\r\n for (i = 0; i < levels.length; i++) {\r\n level = levels[i];\r\n for (j = 0; j < level.length; j++) {\r\n seg = level[j];\r\n seg.forwardSegs = [];\r\n for (k = i + 1; k < levels.length; k++) {\r\n computeSlotSegCollisions(seg, levels[k], seg.forwardSegs);\r\n }\r\n }\r\n }\r\n}\r\n// Figure out which path forward (via seg.forwardSegs) results in the longest path until\r\n// the furthest edge is reached. The number of segments in this path will be seg.forwardPressure\r\nfunction computeSlotSegPressures(seg) {\r\n var forwardSegs = seg.forwardSegs;\r\n var forwardPressure = 0;\r\n var i;\r\n var forwardSeg;\r\n if (seg.forwardPressure === undefined) { // not already computed\r\n for (i = 0; i < forwardSegs.length; i++) {\r\n forwardSeg = forwardSegs[i];\r\n // figure out the child's maximum forward path\r\n computeSlotSegPressures(forwardSeg);\r\n // either use the existing maximum, or use the child's forward pressure\r\n // plus one (for the forwardSeg itself)\r\n forwardPressure = Math.max(forwardPressure, 1 + forwardSeg.forwardPressure);\r\n }\r\n seg.forwardPressure = forwardPressure;\r\n }\r\n}\r\n// Find all the segments in `otherSegs` that vertically collide with `seg`.\r\n// Append into an optionally-supplied `results` array and return.\r\nfunction computeSlotSegCollisions(seg, otherSegs, results) {\r\n if (results === void 0) { results = []; }\r\n for (var i = 0; i < otherSegs.length; i++) {\r\n if (isSlotSegCollision(seg, otherSegs[i])) {\r\n results.push(otherSegs[i]);\r\n }\r\n }\r\n return results;\r\n}\r\n// Do these segments occupy the same vertical space?\r\nfunction isSlotSegCollision(seg1, seg2) {\r\n return seg1.bottom > seg2.top && seg1.top < seg2.bottom;\r\n}\r\n\n\n/***/ }),\n/* 241 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar HelperRenderer_1 = __webpack_require__(63);\r\nvar TimeGridHelperRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGridHelperRenderer, _super);\r\n function TimeGridHelperRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TimeGridHelperRenderer.prototype.renderSegs = function (segs, sourceSeg) {\r\n var helperNodes = [];\r\n var i;\r\n var seg;\r\n var sourceEl;\r\n // TODO: not good to call eventRenderer this way\r\n this.eventRenderer.renderFgSegsIntoContainers(segs, this.component.helperContainerEls);\r\n // Try to make the segment that is in the same row as sourceSeg look the same\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n if (sourceSeg && sourceSeg.col === seg.col) {\r\n sourceEl = sourceSeg.el;\r\n seg.el.css({\r\n left: sourceEl.css('left'),\r\n right: sourceEl.css('right'),\r\n 'margin-left': sourceEl.css('margin-left'),\r\n 'margin-right': sourceEl.css('margin-right')\r\n });\r\n }\r\n helperNodes.push(seg.el[0]);\r\n }\r\n return $(helperNodes); // must return the elements rendered\r\n };\r\n return TimeGridHelperRenderer;\r\n}(HelperRenderer_1.default));\r\nexports.default = TimeGridHelperRenderer;\r\n\n\n/***/ }),\n/* 242 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar FillRenderer_1 = __webpack_require__(62);\r\nvar TimeGridFillRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGridFillRenderer, _super);\r\n function TimeGridFillRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TimeGridFillRenderer.prototype.attachSegEls = function (type, segs) {\r\n var timeGrid = this.component;\r\n var containerEls;\r\n // TODO: more efficient lookup\r\n if (type === 'bgEvent') {\r\n containerEls = timeGrid.bgContainerEls;\r\n }\r\n else if (type === 'businessHours') {\r\n containerEls = timeGrid.businessContainerEls;\r\n }\r\n else if (type === 'highlight') {\r\n containerEls = timeGrid.highlightContainerEls;\r\n }\r\n timeGrid.updateSegVerticals(segs);\r\n timeGrid.attachSegsByCol(timeGrid.groupSegsByCol(segs), containerEls);\r\n return segs.map(function (seg) {\r\n return seg.el[0];\r\n });\r\n };\r\n return TimeGridFillRenderer;\r\n}(FillRenderer_1.default));\r\nexports.default = TimeGridFillRenderer;\r\n\n\n/***/ }),\n/* 243 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer_1 = __webpack_require__(44);\r\n/* Event-rendering methods for the DayGrid class\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar DayGridEventRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGridEventRenderer, _super);\r\n function DayGridEventRenderer(dayGrid, fillRenderer) {\r\n var _this = _super.call(this, dayGrid, fillRenderer) || this;\r\n _this.dayGrid = dayGrid;\r\n return _this;\r\n }\r\n DayGridEventRenderer.prototype.renderBgRanges = function (eventRanges) {\r\n // don't render timed background events\r\n eventRanges = $.grep(eventRanges, function (eventRange) {\r\n return eventRange.eventDef.isAllDay();\r\n });\r\n _super.prototype.renderBgRanges.call(this, eventRanges);\r\n };\r\n // Renders the given foreground event segments onto the grid\r\n DayGridEventRenderer.prototype.renderFgSegs = function (segs) {\r\n var rowStructs = this.rowStructs = this.renderSegRows(segs);\r\n // append to each row's content skeleton\r\n this.dayGrid.rowEls.each(function (i, rowNode) {\r\n $(rowNode).find('.fc-content-skeleton > table').append(rowStructs[i].tbodyEl);\r\n });\r\n };\r\n // Unrenders all currently rendered foreground event segments\r\n DayGridEventRenderer.prototype.unrenderFgSegs = function () {\r\n var rowStructs = this.rowStructs || [];\r\n var rowStruct;\r\n while ((rowStruct = rowStructs.pop())) {\r\n rowStruct.tbodyEl.remove();\r\n }\r\n this.rowStructs = null;\r\n };\r\n // Uses the given events array to generate <tbody> elements that should be appended to each row's content skeleton.\r\n // Returns an array of rowStruct objects (see the bottom of `renderSegRow`).\r\n // PRECONDITION: each segment shoud already have a rendered and assigned `.el`\r\n DayGridEventRenderer.prototype.renderSegRows = function (segs) {\r\n var rowStructs = [];\r\n var segRows;\r\n var row;\r\n segRows = this.groupSegRows(segs); // group into nested arrays\r\n // iterate each row of segment groupings\r\n for (row = 0; row < segRows.length; row++) {\r\n rowStructs.push(this.renderSegRow(row, segRows[row]));\r\n }\r\n return rowStructs;\r\n };\r\n // Given a row # and an array of segments all in the same row, render a <tbody> element, a skeleton that contains\r\n // the segments. Returns object with a bunch of internal data about how the render was calculated.\r\n // NOTE: modifies rowSegs\r\n DayGridEventRenderer.prototype.renderSegRow = function (row, rowSegs) {\r\n var colCnt = this.dayGrid.colCnt;\r\n var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels\r\n var levelCnt = Math.max(1, segLevels.length); // ensure at least one level\r\n var tbody = $('<tbody/>');\r\n var segMatrix = []; // lookup for which segments are rendered into which level+col cells\r\n var cellMatrix = []; // lookup for all <td> elements of the level+col matrix\r\n var loneCellMatrix = []; // lookup for <td> elements that only take up a single column\r\n var i;\r\n var levelSegs;\r\n var col;\r\n var tr;\r\n var j;\r\n var seg;\r\n var td;\r\n // populates empty cells from the current column (`col`) to `endCol`\r\n function emptyCellsUntil(endCol) {\r\n while (col < endCol) {\r\n // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell\r\n td = (loneCellMatrix[i - 1] || [])[col];\r\n if (td) {\r\n td.attr('rowspan', parseInt(td.attr('rowspan') || 1, 10) + 1);\r\n }\r\n else {\r\n td = $('<td/>');\r\n tr.append(td);\r\n }\r\n cellMatrix[i][col] = td;\r\n loneCellMatrix[i][col] = td;\r\n col++;\r\n }\r\n }\r\n for (i = 0; i < levelCnt; i++) { // iterate through all levels\r\n levelSegs = segLevels[i];\r\n col = 0;\r\n tr = $('<tr/>');\r\n segMatrix.push([]);\r\n cellMatrix.push([]);\r\n loneCellMatrix.push([]);\r\n // levelCnt might be 1 even though there are no actual levels. protect against this.\r\n // this single empty row is useful for styling.\r\n if (levelSegs) {\r\n for (j = 0; j < levelSegs.length; j++) { // iterate through segments in level\r\n seg = levelSegs[j];\r\n emptyCellsUntil(seg.leftCol);\r\n // create a container that occupies or more columns. append the event element.\r\n td = $('<td class=\"fc-event-container\"/>').append(seg.el);\r\n if (seg.leftCol !== seg.rightCol) {\r\n td.attr('colspan', seg.rightCol - seg.leftCol + 1);\r\n }\r\n else { // a single-column segment\r\n loneCellMatrix[i][col] = td;\r\n }\r\n while (col <= seg.rightCol) {\r\n cellMatrix[i][col] = td;\r\n segMatrix[i][col] = seg;\r\n col++;\r\n }\r\n tr.append(td);\r\n }\r\n }\r\n emptyCellsUntil(colCnt); // finish off the row\r\n this.dayGrid.bookendCells(tr);\r\n tbody.append(tr);\r\n }\r\n return {\r\n row: row,\r\n tbodyEl: tbody,\r\n cellMatrix: cellMatrix,\r\n segMatrix: segMatrix,\r\n segLevels: segLevels,\r\n segs: rowSegs\r\n };\r\n };\r\n // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels.\r\n // NOTE: modifies segs\r\n DayGridEventRenderer.prototype.buildSegLevels = function (segs) {\r\n var levels = [];\r\n var i;\r\n var seg;\r\n var j;\r\n // Give preference to elements with certain criteria, so they have\r\n // a chance to be closer to the top.\r\n this.sortEventSegs(segs);\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n // loop through levels, starting with the topmost, until the segment doesn't collide with other segments\r\n for (j = 0; j < levels.length; j++) {\r\n if (!isDaySegCollision(seg, levels[j])) {\r\n break;\r\n }\r\n }\r\n // `j` now holds the desired subrow index\r\n seg.level = j;\r\n // create new level array if needed and append segment\r\n (levels[j] || (levels[j] = [])).push(seg);\r\n }\r\n // order segments left-to-right. very important if calendar is RTL\r\n for (j = 0; j < levels.length; j++) {\r\n levels[j].sort(compareDaySegCols);\r\n }\r\n return levels;\r\n };\r\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row\r\n DayGridEventRenderer.prototype.groupSegRows = function (segs) {\r\n var segRows = [];\r\n var i;\r\n for (i = 0; i < this.dayGrid.rowCnt; i++) {\r\n segRows.push([]);\r\n }\r\n for (i = 0; i < segs.length; i++) {\r\n segRows[segs[i].row].push(segs[i]);\r\n }\r\n return segRows;\r\n };\r\n // Computes a default event time formatting string if `timeFormat` is not explicitly defined\r\n DayGridEventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('extraSmallTimeFormat'); // like \"6p\" or \"6:30p\"\r\n };\r\n // Computes a default `displayEventEnd` value if one is not expliclty defined\r\n DayGridEventRenderer.prototype.computeDisplayEventEnd = function () {\r\n return this.dayGrid.colCnt === 1; // we'll likely have space if there's only one day\r\n };\r\n // Builds the HTML to be used for the default element for an individual segment\r\n DayGridEventRenderer.prototype.fgSegHtml = function (seg, disableResizing) {\r\n var view = this.view;\r\n var eventDef = seg.footprint.eventDef;\r\n var isAllDay = seg.footprint.componentFootprint.isAllDay;\r\n var isDraggable = view.isEventDefDraggable(eventDef);\r\n var isResizableFromStart = !disableResizing && isAllDay &&\r\n seg.isStart && view.isEventDefResizableFromStart(eventDef);\r\n var isResizableFromEnd = !disableResizing && isAllDay &&\r\n seg.isEnd && view.isEventDefResizableFromEnd(eventDef);\r\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd);\r\n var skinCss = util_1.cssToStr(this.getSkinCss(eventDef));\r\n var timeHtml = '';\r\n var timeText;\r\n var titleHtml;\r\n classes.unshift('fc-day-grid-event', 'fc-h-event');\r\n // Only display a timed events time if it is the starting segment\r\n if (seg.isStart) {\r\n timeText = this.getTimeText(seg.footprint);\r\n if (timeText) {\r\n timeHtml = '<span class=\"fc-time\">' + util_1.htmlEscape(timeText) + '</span>';\r\n }\r\n }\r\n titleHtml =\r\n '<span class=\"fc-title\">' +\r\n (util_1.htmlEscape(eventDef.title || '') || ' ') + // we always want one line of height\r\n '</span>';\r\n return '<a class=\"' + classes.join(' ') + '\"' +\r\n (eventDef.url ?\r\n ' href=\"' + util_1.htmlEscape(eventDef.url) + '\"' :\r\n '') +\r\n (skinCss ?\r\n ' style=\"' + skinCss + '\"' :\r\n '') +\r\n '>' +\r\n '<div class=\"fc-content\">' +\r\n (this.dayGrid.isRTL ?\r\n titleHtml + ' ' + timeHtml : // put a natural space in between\r\n timeHtml + ' ' + titleHtml //\r\n ) +\r\n '</div>' +\r\n (isResizableFromStart ?\r\n '<div class=\"fc-resizer fc-start-resizer\" />' :\r\n '') +\r\n (isResizableFromEnd ?\r\n '<div class=\"fc-resizer fc-end-resizer\" />' :\r\n '') +\r\n '</a>';\r\n };\r\n return DayGridEventRenderer;\r\n}(EventRenderer_1.default));\r\nexports.default = DayGridEventRenderer;\r\n// Computes whether two segments' columns collide. They are assumed to be in the same row.\r\nfunction isDaySegCollision(seg, otherSegs) {\r\n var i;\r\n var otherSeg;\r\n for (i = 0; i < otherSegs.length; i++) {\r\n otherSeg = otherSegs[i];\r\n if (otherSeg.leftCol <= seg.rightCol &&\r\n otherSeg.rightCol >= seg.leftCol) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n// A cmp function for determining the leftmost event\r\nfunction compareDaySegCols(a, b) {\r\n return a.leftCol - b.leftCol;\r\n}\r\n\n\n/***/ }),\n/* 244 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar HelperRenderer_1 = __webpack_require__(63);\r\nvar DayGridHelperRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGridHelperRenderer, _super);\r\n function DayGridHelperRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Renders a mock \"helper\" event. `sourceSeg` is the associated internal segment object. It can be null.\r\n DayGridHelperRenderer.prototype.renderSegs = function (segs, sourceSeg) {\r\n var helperNodes = [];\r\n var rowStructs;\r\n // TODO: not good to call eventRenderer this way\r\n rowStructs = this.eventRenderer.renderSegRows(segs);\r\n // inject each new event skeleton into each associated row\r\n this.component.rowEls.each(function (row, rowNode) {\r\n var rowEl = $(rowNode); // the .fc-row\r\n var skeletonEl = $('<div class=\"fc-helper-skeleton\"><table/></div>'); // will be absolutely positioned\r\n var skeletonTopEl;\r\n var skeletonTop;\r\n // If there is an original segment, match the top position. Otherwise, put it at the row's top level\r\n if (sourceSeg && sourceSeg.row === row) {\r\n skeletonTop = sourceSeg.el.position().top;\r\n }\r\n else {\r\n skeletonTopEl = rowEl.find('.fc-content-skeleton tbody');\r\n if (!skeletonTopEl.length) { // when no events\r\n skeletonTopEl = rowEl.find('.fc-content-skeleton table');\r\n }\r\n skeletonTop = skeletonTopEl.position().top;\r\n }\r\n skeletonEl.css('top', skeletonTop)\r\n .find('table')\r\n .append(rowStructs[row].tbodyEl);\r\n rowEl.append(skeletonEl);\r\n helperNodes.push(skeletonEl[0]);\r\n });\r\n return $(helperNodes); // must return the elements rendered\r\n };\r\n return DayGridHelperRenderer;\r\n}(HelperRenderer_1.default));\r\nexports.default = DayGridHelperRenderer;\r\n\n\n/***/ }),\n/* 245 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar FillRenderer_1 = __webpack_require__(62);\r\nvar DayGridFillRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGridFillRenderer, _super);\r\n function DayGridFillRenderer() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.fillSegTag = 'td'; // override the default tag name\r\n return _this;\r\n }\r\n DayGridFillRenderer.prototype.attachSegEls = function (type, segs) {\r\n var nodes = [];\r\n var i;\r\n var seg;\r\n var skeletonEl;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n skeletonEl = this.renderFillRow(type, seg);\r\n this.component.rowEls.eq(seg.row).append(skeletonEl);\r\n nodes.push(skeletonEl[0]);\r\n }\r\n return nodes;\r\n };\r\n // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered.\r\n DayGridFillRenderer.prototype.renderFillRow = function (type, seg) {\r\n var colCnt = this.component.colCnt;\r\n var startCol = seg.leftCol;\r\n var endCol = seg.rightCol + 1;\r\n var className;\r\n var skeletonEl;\r\n var trEl;\r\n if (type === 'businessHours') {\r\n className = 'bgevent';\r\n }\r\n else {\r\n className = type.toLowerCase();\r\n }\r\n skeletonEl = $('<div class=\"fc-' + className + '-skeleton\">' +\r\n '<table><tr/></table>' +\r\n '</div>');\r\n trEl = skeletonEl.find('tr');\r\n if (startCol > 0) {\r\n trEl.append(\r\n // will create (startCol + 1) td's\r\n new Array(startCol + 1).join('<td/>'));\r\n }\r\n trEl.append(seg.el.attr('colspan', endCol - startCol));\r\n if (endCol < colCnt) {\r\n trEl.append(\r\n // will create (colCnt - endCol) td's\r\n new Array(colCnt - endCol + 1).join('<td/>'));\r\n }\r\n this.component.bookendCells(trEl);\r\n return skeletonEl;\r\n };\r\n return DayGridFillRenderer;\r\n}(FillRenderer_1.default));\r\nexports.default = DayGridFillRenderer;\r\n\n\n/***/ }),\n/* 246 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar BasicView_1 = __webpack_require__(67);\r\nvar MonthViewDateProfileGenerator_1 = __webpack_require__(247);\r\n/* A month view with day cells running in rows (one-per-week) and columns\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar MonthView = /** @class */ (function (_super) {\r\n tslib_1.__extends(MonthView, _super);\r\n function MonthView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Overrides the default BasicView behavior to have special multi-week auto-height logic\r\n MonthView.prototype.setGridHeight = function (height, isAuto) {\r\n // if auto, make the height of each row the height that it would be if there were 6 weeks\r\n if (isAuto) {\r\n height *= this.dayGrid.rowCnt / 6;\r\n }\r\n util_1.distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows\r\n };\r\n MonthView.prototype.isDateInOtherMonth = function (date, dateProfile) {\r\n return date.month() !== moment.utc(dateProfile.currentUnzonedRange.startMs).month(); // TODO: optimize\r\n };\r\n return MonthView;\r\n}(BasicView_1.default));\r\nexports.default = MonthView;\r\nMonthView.prototype.dateProfileGeneratorClass = MonthViewDateProfileGenerator_1.default;\r\n\n\n/***/ }),\n/* 247 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar BasicViewDateProfileGenerator_1 = __webpack_require__(68);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar MonthViewDateProfileGenerator = /** @class */ (function (_super) {\r\n tslib_1.__extends(MonthViewDateProfileGenerator, _super);\r\n function MonthViewDateProfileGenerator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Computes the date range that will be rendered.\r\n MonthViewDateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) {\r\n var renderUnzonedRange = _super.prototype.buildRenderRange.call(this, currentUnzonedRange, currentRangeUnit, isRangeAllDay);\r\n var start = this.msToUtcMoment(renderUnzonedRange.startMs, isRangeAllDay);\r\n var end = this.msToUtcMoment(renderUnzonedRange.endMs, isRangeAllDay);\r\n var rowCnt;\r\n // ensure 6 weeks\r\n if (this.opt('fixedWeekCount')) {\r\n rowCnt = Math.ceil(// could be partial weeks due to hiddenDays\r\n end.diff(start, 'weeks', true) // dontRound=true\r\n );\r\n end.add(6 - rowCnt, 'weeks');\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n return MonthViewDateProfileGenerator;\r\n}(BasicViewDateProfileGenerator_1.default));\r\nexports.default = MonthViewDateProfileGenerator;\r\n\n\n/***/ }),\n/* 248 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar View_1 = __webpack_require__(43);\r\nvar Scroller_1 = __webpack_require__(41);\r\nvar ListEventRenderer_1 = __webpack_require__(249);\r\nvar ListEventPointing_1 = __webpack_require__(250);\r\n/*\r\nResponsible for the scroller, and forwarding event-related actions into the \"grid\".\r\n*/\r\nvar ListView = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListView, _super);\r\n function ListView(calendar, viewSpec) {\r\n var _this = _super.call(this, calendar, viewSpec) || this;\r\n _this.segSelector = '.fc-list-item'; // which elements accept event actions\r\n _this.scroller = new Scroller_1.default({\r\n overflowX: 'hidden',\r\n overflowY: 'auto'\r\n });\r\n return _this;\r\n }\r\n ListView.prototype.renderSkeleton = function () {\r\n this.el.addClass('fc-list-view ' +\r\n this.calendar.theme.getClass('listView'));\r\n this.scroller.render();\r\n this.scroller.el.appendTo(this.el);\r\n this.contentEl = this.scroller.scrollEl; // shortcut\r\n };\r\n ListView.prototype.unrenderSkeleton = function () {\r\n this.scroller.destroy(); // will remove the Grid too\r\n };\r\n ListView.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n this.scroller.clear(); // sets height to 'auto' and clears overflow\r\n if (!isAuto) {\r\n this.scroller.setHeight(this.computeScrollerHeight(totalHeight));\r\n }\r\n };\r\n ListView.prototype.computeScrollerHeight = function (totalHeight) {\r\n return totalHeight -\r\n util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\r\n };\r\n ListView.prototype.renderDates = function (dateProfile) {\r\n var calendar = this.calendar;\r\n var dayStart = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.startMs, true);\r\n var viewEnd = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.endMs, true);\r\n var dayDates = [];\r\n var dayRanges = [];\r\n while (dayStart < viewEnd) {\r\n dayDates.push(dayStart.clone());\r\n dayRanges.push(new UnzonedRange_1.default(dayStart, dayStart.clone().add(1, 'day')));\r\n dayStart.add(1, 'day');\r\n }\r\n this.dayDates = dayDates;\r\n this.dayRanges = dayRanges;\r\n // all real rendering happens in EventRenderer\r\n };\r\n // slices by day\r\n ListView.prototype.componentFootprintToSegs = function (footprint) {\r\n var dayRanges = this.dayRanges;\r\n var dayIndex;\r\n var segRange;\r\n var seg;\r\n var segs = [];\r\n for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex++) {\r\n segRange = footprint.unzonedRange.intersect(dayRanges[dayIndex]);\r\n if (segRange) {\r\n seg = {\r\n startMs: segRange.startMs,\r\n endMs: segRange.endMs,\r\n isStart: segRange.isStart,\r\n isEnd: segRange.isEnd,\r\n dayIndex: dayIndex\r\n };\r\n segs.push(seg);\r\n // detect when footprint won't go fully into the next day,\r\n // and mutate the latest seg to the be the end.\r\n if (!seg.isEnd && !footprint.isAllDay &&\r\n dayIndex + 1 < dayRanges.length &&\r\n footprint.unzonedRange.endMs < dayRanges[dayIndex + 1].startMs + this.nextDayThreshold) {\r\n seg.endMs = footprint.unzonedRange.endMs;\r\n seg.isEnd = true;\r\n break;\r\n }\r\n }\r\n }\r\n return segs;\r\n };\r\n ListView.prototype.renderEmptyMessage = function () {\r\n this.contentEl.html('<div class=\"fc-list-empty-wrap2\">' + // TODO: try less wraps\r\n '<div class=\"fc-list-empty-wrap1\">' +\r\n '<div class=\"fc-list-empty\">' +\r\n util_1.htmlEscape(this.opt('noEventsMessage')) +\r\n '</div>' +\r\n '</div>' +\r\n '</div>');\r\n };\r\n // render the event segments in the view\r\n ListView.prototype.renderSegList = function (allSegs) {\r\n var segsByDay = this.groupSegsByDay(allSegs); // sparse array\r\n var dayIndex;\r\n var daySegs;\r\n var i;\r\n var tableEl = $('<table class=\"fc-list-table ' + this.calendar.theme.getClass('tableList') + '\"><tbody/></table>');\r\n var tbodyEl = tableEl.find('tbody');\r\n for (dayIndex = 0; dayIndex < segsByDay.length; dayIndex++) {\r\n daySegs = segsByDay[dayIndex];\r\n if (daySegs) { // sparse array, so might be undefined\r\n // append a day header\r\n tbodyEl.append(this.dayHeaderHtml(this.dayDates[dayIndex]));\r\n this.eventRenderer.sortEventSegs(daySegs);\r\n for (i = 0; i < daySegs.length; i++) {\r\n tbodyEl.append(daySegs[i].el); // append event row\r\n }\r\n }\r\n }\r\n this.contentEl.empty().append(tableEl);\r\n };\r\n // Returns a sparse array of arrays, segs grouped by their dayIndex\r\n ListView.prototype.groupSegsByDay = function (segs) {\r\n var segsByDay = []; // sparse array\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = []))\r\n .push(seg);\r\n }\r\n return segsByDay;\r\n };\r\n // generates the HTML for the day headers that live amongst the event rows\r\n ListView.prototype.dayHeaderHtml = function (dayDate) {\r\n var mainFormat = this.opt('listDayFormat');\r\n var altFormat = this.opt('listDayAltFormat');\r\n return '<tr class=\"fc-list-heading\" data-date=\"' + dayDate.format('YYYY-MM-DD') + '\">' +\r\n '<td class=\"' + (this.calendar.theme.getClass('tableListHeading') ||\r\n this.calendar.theme.getClass('widgetHeader')) + '\" colspan=\"3\">' +\r\n (mainFormat ?\r\n this.buildGotoAnchorHtml(dayDate, { 'class': 'fc-list-heading-main' }, util_1.htmlEscape(dayDate.format(mainFormat)) // inner HTML\r\n ) :\r\n '') +\r\n (altFormat ?\r\n this.buildGotoAnchorHtml(dayDate, { 'class': 'fc-list-heading-alt' }, util_1.htmlEscape(dayDate.format(altFormat)) // inner HTML\r\n ) :\r\n '') +\r\n '</td>' +\r\n '</tr>';\r\n };\r\n return ListView;\r\n}(View_1.default));\r\nexports.default = ListView;\r\nListView.prototype.eventRendererClass = ListEventRenderer_1.default;\r\nListView.prototype.eventPointingClass = ListEventPointing_1.default;\r\n\n\n/***/ }),\n/* 249 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer_1 = __webpack_require__(44);\r\nvar ListEventRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListEventRenderer, _super);\r\n function ListEventRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ListEventRenderer.prototype.renderFgSegs = function (segs) {\r\n if (!segs.length) {\r\n this.component.renderEmptyMessage();\r\n }\r\n else {\r\n this.component.renderSegList(segs);\r\n }\r\n };\r\n // generates the HTML for a single event row\r\n ListEventRenderer.prototype.fgSegHtml = function (seg) {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var theme = calendar.theme;\r\n var eventFootprint = seg.footprint;\r\n var eventDef = eventFootprint.eventDef;\r\n var componentFootprint = eventFootprint.componentFootprint;\r\n var url = eventDef.url;\r\n var classes = ['fc-list-item'].concat(this.getClasses(eventDef));\r\n var bgColor = this.getBgColor(eventDef);\r\n var timeHtml;\r\n if (componentFootprint.isAllDay) {\r\n timeHtml = view.getAllDayHtml();\r\n }\r\n else if (view.isMultiDayRange(componentFootprint.unzonedRange)) {\r\n if (seg.isStart || seg.isEnd) { // outer segment that probably lasts part of the day\r\n timeHtml = util_1.htmlEscape(this._getTimeText(calendar.msToMoment(seg.startMs), calendar.msToMoment(seg.endMs), componentFootprint.isAllDay));\r\n }\r\n else { // inner segment that lasts the whole day\r\n timeHtml = view.getAllDayHtml();\r\n }\r\n }\r\n else {\r\n // Display the normal time text for the *event's* times\r\n timeHtml = util_1.htmlEscape(this.getTimeText(eventFootprint));\r\n }\r\n if (url) {\r\n classes.push('fc-has-url');\r\n }\r\n return '<tr class=\"' + classes.join(' ') + '\">' +\r\n (this.displayEventTime ?\r\n '<td class=\"fc-list-item-time ' + theme.getClass('widgetContent') + '\">' +\r\n (timeHtml || '') +\r\n '</td>' :\r\n '') +\r\n '<td class=\"fc-list-item-marker ' + theme.getClass('widgetContent') + '\">' +\r\n '<span class=\"fc-event-dot\"' +\r\n (bgColor ?\r\n ' style=\"background-color:' + bgColor + '\"' :\r\n '') +\r\n '></span>' +\r\n '</td>' +\r\n '<td class=\"fc-list-item-title ' + theme.getClass('widgetContent') + '\">' +\r\n '<a' + (url ? ' href=\"' + util_1.htmlEscape(url) + '\"' : '') + '>' +\r\n util_1.htmlEscape(eventDef.title || '') +\r\n '</a>' +\r\n '</td>' +\r\n '</tr>';\r\n };\r\n // like \"4:00am\"\r\n ListEventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('mediumTimeFormat');\r\n };\r\n return ListEventRenderer;\r\n}(EventRenderer_1.default));\r\nexports.default = ListEventRenderer;\r\n\n\n/***/ }),\n/* 250 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar EventPointing_1 = __webpack_require__(64);\r\nvar ListEventPointing = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListEventPointing, _super);\r\n function ListEventPointing() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // for events with a url, the whole <tr> should be clickable,\r\n // but it's impossible to wrap with an <a> tag. simulate this.\r\n ListEventPointing.prototype.handleClick = function (seg, ev) {\r\n var url;\r\n _super.prototype.handleClick.call(this, seg, ev); // might prevent the default action\r\n // not clicking on or within an <a> with an href\r\n if (!$(ev.target).closest('a[href]').length) {\r\n url = seg.footprint.eventDef.url;\r\n if (url && !ev.isDefaultPrevented()) { // jsEvent not cancelled in handler\r\n window.location.href = url; // simulate link click\r\n }\r\n }\r\n };\r\n return ListEventPointing;\r\n}(EventPointing_1.default));\r\nexports.default = ListEventPointing;\r\n\n\n/***/ }),\n/* 251 */,\n/* 252 */,\n/* 253 */,\n/* 254 */,\n/* 255 */,\n/* 256 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(3);\r\nvar exportHooks = __webpack_require__(18);\r\nvar util_1 = __webpack_require__(4);\r\nvar Calendar_1 = __webpack_require__(232);\r\n// for intentional side-effects\r\n__webpack_require__(11);\r\n__webpack_require__(49);\r\n__webpack_require__(260);\r\n__webpack_require__(261);\r\n__webpack_require__(264);\r\n__webpack_require__(265);\r\n__webpack_require__(266);\r\n__webpack_require__(267);\r\n$.fullCalendar = exportHooks;\r\n$.fn.fullCalendar = function (options) {\r\n var args = Array.prototype.slice.call(arguments, 1); // for a possible method call\r\n var res = this; // what this function will return (this jQuery object by default)\r\n this.each(function (i, _element) {\r\n var element = $(_element);\r\n var calendar = element.data('fullCalendar'); // get the existing calendar object (if any)\r\n var singleRes; // the returned value of this single method call\r\n // a method call\r\n if (typeof options === 'string') {\r\n if (options === 'getCalendar') {\r\n if (!i) { // first element only\r\n res = calendar;\r\n }\r\n }\r\n else if (options === 'destroy') { // don't warn if no calendar object\r\n if (calendar) {\r\n calendar.destroy();\r\n element.removeData('fullCalendar');\r\n }\r\n }\r\n else if (!calendar) {\r\n util_1.warn('Attempting to call a FullCalendar method on an element with no calendar.');\r\n }\r\n else if ($.isFunction(calendar[options])) {\r\n singleRes = calendar[options].apply(calendar, args);\r\n if (!i) {\r\n res = singleRes; // record the first method call result\r\n }\r\n if (options === 'destroy') { // for the destroy method, must remove Calendar object data\r\n element.removeData('fullCalendar');\r\n }\r\n }\r\n else {\r\n util_1.warn(\"'\" + options + \"' is an unknown FullCalendar method.\");\r\n }\r\n }\r\n else if (!calendar) { // don't initialize twice\r\n calendar = new Calendar_1.default(element, options);\r\n element.data('fullCalendar', calendar);\r\n calendar.render();\r\n }\r\n });\r\n return res;\r\n};\r\nmodule.exports = exportHooks;\r\n\n\n/***/ }),\n/* 257 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\n/* Toolbar with buttons and title\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar Toolbar = /** @class */ (function () {\r\n function Toolbar(calendar, toolbarOptions) {\r\n this.el = null; // mirrors local `el`\r\n this.viewsWithButtons = [];\r\n this.calendar = calendar;\r\n this.toolbarOptions = toolbarOptions;\r\n }\r\n // method to update toolbar-specific options, not calendar-wide options\r\n Toolbar.prototype.setToolbarOptions = function (newToolbarOptions) {\r\n this.toolbarOptions = newToolbarOptions;\r\n };\r\n // can be called repeatedly and will rerender\r\n Toolbar.prototype.render = function () {\r\n var sections = this.toolbarOptions.layout;\r\n var el = this.el;\r\n if (sections) {\r\n if (!el) {\r\n el = this.el = $(\"<div class='fc-toolbar \" + this.toolbarOptions.extraClasses + \"'/>\");\r\n }\r\n else {\r\n el.empty();\r\n }\r\n el.append(this.renderSection('left'))\r\n .append(this.renderSection('right'))\r\n .append(this.renderSection('center'))\r\n .append('<div class=\"fc-clear\"/>');\r\n }\r\n else {\r\n this.removeElement();\r\n }\r\n };\r\n Toolbar.prototype.removeElement = function () {\r\n if (this.el) {\r\n this.el.remove();\r\n this.el = null;\r\n }\r\n };\r\n Toolbar.prototype.renderSection = function (position) {\r\n var _this = this;\r\n var calendar = this.calendar;\r\n var theme = calendar.theme;\r\n var optionsManager = calendar.optionsManager;\r\n var viewSpecManager = calendar.viewSpecManager;\r\n var sectionEl = $('<div class=\"fc-' + position + '\"/>');\r\n var buttonStr = this.toolbarOptions.layout[position];\r\n var calendarCustomButtons = optionsManager.get('customButtons') || {};\r\n var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {};\r\n var calendarButtonText = optionsManager.get('buttonText') || {};\r\n if (buttonStr) {\r\n $.each(buttonStr.split(' '), function (i, buttonGroupStr) {\r\n var groupChildren = $();\r\n var isOnlyButtons = true;\r\n var groupEl;\r\n $.each(buttonGroupStr.split(','), function (j, buttonName) {\r\n var customButtonProps;\r\n var viewSpec;\r\n var buttonClick;\r\n var buttonIcon; // only one of these will be set\r\n var buttonText; // \"\r\n var buttonInnerHtml;\r\n var buttonClasses;\r\n var buttonEl;\r\n var buttonAriaAttr;\r\n if (buttonName === 'title') {\r\n groupChildren = groupChildren.add($('<h2> </h2>')); // we always want it to take up height\r\n isOnlyButtons = false;\r\n }\r\n else {\r\n if ((customButtonProps = calendarCustomButtons[buttonName])) {\r\n buttonClick = function (ev) {\r\n if (customButtonProps.click) {\r\n customButtonProps.click.call(buttonEl[0], ev);\r\n }\r\n };\r\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\r\n (buttonIcon = theme.getIconClass(buttonName)) ||\r\n (buttonText = customButtonProps.text);\r\n }\r\n else if ((viewSpec = viewSpecManager.getViewSpec(buttonName))) {\r\n _this.viewsWithButtons.push(buttonName);\r\n buttonClick = function () {\r\n calendar.changeView(buttonName);\r\n };\r\n (buttonText = viewSpec.buttonTextOverride) ||\r\n (buttonIcon = theme.getIconClass(buttonName)) ||\r\n (buttonText = viewSpec.buttonTextDefault);\r\n }\r\n else if (calendar[buttonName]) { // a calendar method\r\n buttonClick = function () {\r\n calendar[buttonName]();\r\n };\r\n (buttonText = calendarButtonTextOverrides[buttonName]) ||\r\n (buttonIcon = theme.getIconClass(buttonName)) ||\r\n (buttonText = calendarButtonText[buttonName]);\r\n // ^ everything else is considered default\r\n }\r\n if (buttonClick) {\r\n buttonClasses = [\r\n 'fc-' + buttonName + '-button',\r\n theme.getClass('button'),\r\n theme.getClass('stateDefault')\r\n ];\r\n if (buttonText) {\r\n buttonInnerHtml = util_1.htmlEscape(buttonText);\r\n buttonAriaAttr = '';\r\n }\r\n else if (buttonIcon) {\r\n buttonInnerHtml = \"<span class='\" + buttonIcon + \"'></span>\";\r\n buttonAriaAttr = ' aria-label=\"' + buttonName + '\"';\r\n }\r\n buttonEl = $(// type=\"button\" so that it doesn't submit a form\r\n '<button type=\"button\" class=\"' + buttonClasses.join(' ') + '\"' +\r\n buttonAriaAttr +\r\n '>' + buttonInnerHtml + '</button>')\r\n .click(function (ev) {\r\n // don't process clicks for disabled buttons\r\n if (!buttonEl.hasClass(theme.getClass('stateDisabled'))) {\r\n buttonClick(ev);\r\n // after the click action, if the button becomes the \"active\" tab, or disabled,\r\n // it should never have a hover class, so remove it now.\r\n if (buttonEl.hasClass(theme.getClass('stateActive')) ||\r\n buttonEl.hasClass(theme.getClass('stateDisabled'))) {\r\n buttonEl.removeClass(theme.getClass('stateHover'));\r\n }\r\n }\r\n })\r\n .mousedown(function () {\r\n // the *down* effect (mouse pressed in).\r\n // only on buttons that are not the \"active\" tab, or disabled\r\n buttonEl\r\n .not('.' + theme.getClass('stateActive'))\r\n .not('.' + theme.getClass('stateDisabled'))\r\n .addClass(theme.getClass('stateDown'));\r\n })\r\n .mouseup(function () {\r\n // undo the *down* effect\r\n buttonEl.removeClass(theme.getClass('stateDown'));\r\n })\r\n .hover(function () {\r\n // the *hover* effect.\r\n // only on buttons that are not the \"active\" tab, or disabled\r\n buttonEl\r\n .not('.' + theme.getClass('stateActive'))\r\n .not('.' + theme.getClass('stateDisabled'))\r\n .addClass(theme.getClass('stateHover'));\r\n }, function () {\r\n // undo the *hover* effect\r\n buttonEl\r\n .removeClass(theme.getClass('stateHover'))\r\n .removeClass(theme.getClass('stateDown')); // if mouseleave happens before mouseup\r\n });\r\n groupChildren = groupChildren.add(buttonEl);\r\n }\r\n }\r\n });\r\n if (isOnlyButtons) {\r\n groupChildren\r\n .first().addClass(theme.getClass('cornerLeft')).end()\r\n .last().addClass(theme.getClass('cornerRight')).end();\r\n }\r\n if (groupChildren.length > 1) {\r\n groupEl = $('<div/>');\r\n if (isOnlyButtons) {\r\n groupEl.addClass(theme.getClass('buttonGroup'));\r\n }\r\n groupEl.append(groupChildren);\r\n sectionEl.append(groupEl);\r\n }\r\n else {\r\n sectionEl.append(groupChildren); // 1 or 0 children\r\n }\r\n });\r\n }\r\n return sectionEl;\r\n };\r\n Toolbar.prototype.updateTitle = function (text) {\r\n if (this.el) {\r\n this.el.find('h2').text(text);\r\n }\r\n };\r\n Toolbar.prototype.activateButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .addClass(this.calendar.theme.getClass('stateActive'));\r\n }\r\n };\r\n Toolbar.prototype.deactivateButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .removeClass(this.calendar.theme.getClass('stateActive'));\r\n }\r\n };\r\n Toolbar.prototype.disableButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .prop('disabled', true)\r\n .addClass(this.calendar.theme.getClass('stateDisabled'));\r\n }\r\n };\r\n Toolbar.prototype.enableButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .prop('disabled', false)\r\n .removeClass(this.calendar.theme.getClass('stateDisabled'));\r\n }\r\n };\r\n Toolbar.prototype.getViewsWithButtons = function () {\r\n return this.viewsWithButtons;\r\n };\r\n return Toolbar;\r\n}());\r\nexports.default = Toolbar;\r\n\n\n/***/ }),\n/* 258 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar options_1 = __webpack_require__(33);\r\nvar locale_1 = __webpack_require__(32);\r\nvar Model_1 = __webpack_require__(51);\r\nvar OptionsManager = /** @class */ (function (_super) {\r\n tslib_1.__extends(OptionsManager, _super);\r\n function OptionsManager(_calendar, overrides) {\r\n var _this = _super.call(this) || this;\r\n _this._calendar = _calendar;\r\n _this.overrides = $.extend({}, overrides); // make a copy\r\n _this.dynamicOverrides = {};\r\n _this.compute();\r\n return _this;\r\n }\r\n OptionsManager.prototype.add = function (newOptionHash) {\r\n var optionCnt = 0;\r\n var optionName;\r\n this.recordOverrides(newOptionHash); // will trigger this model's watchers\r\n for (optionName in newOptionHash) {\r\n optionCnt++;\r\n }\r\n // special-case handling of single option change.\r\n // if only one option change, `optionName` will be its name.\r\n if (optionCnt === 1) {\r\n if (optionName === 'height' || optionName === 'contentHeight' || optionName === 'aspectRatio') {\r\n this._calendar.updateViewSize(true); // isResize=true\r\n return;\r\n }\r\n else if (optionName === 'defaultDate') {\r\n return; // can't change date this way. use gotoDate instead\r\n }\r\n else if (optionName === 'businessHours') {\r\n return; // this model already reacts to this\r\n }\r\n else if (/^(event|select)(Overlap|Constraint|Allow)$/.test(optionName)) {\r\n return; // doesn't affect rendering. only interactions.\r\n }\r\n else if (optionName === 'timezone') {\r\n this._calendar.view.flash('initialEvents');\r\n return;\r\n }\r\n }\r\n // catch-all. rerender the header and footer and rebuild/rerender the current view\r\n this._calendar.renderHeader();\r\n this._calendar.renderFooter();\r\n // even non-current views will be affected by this option change. do before rerender\r\n // TODO: detangle\r\n this._calendar.viewsByType = {};\r\n this._calendar.reinitView();\r\n };\r\n // Computes the flattened options hash for the calendar and assigns to `this.options`.\r\n // Assumes this.overrides and this.dynamicOverrides have already been initialized.\r\n OptionsManager.prototype.compute = function () {\r\n var locale;\r\n var localeDefaults;\r\n var isRTL;\r\n var dirDefaults;\r\n var rawOptions;\r\n locale = util_1.firstDefined(// explicit locale option given?\r\n this.dynamicOverrides.locale, this.overrides.locale);\r\n localeDefaults = locale_1.localeOptionHash[locale];\r\n if (!localeDefaults) { // explicit locale option not given or invalid?\r\n locale = options_1.globalDefaults.locale;\r\n localeDefaults = locale_1.localeOptionHash[locale] || {};\r\n }\r\n isRTL = util_1.firstDefined(// based on options computed so far, is direction RTL?\r\n this.dynamicOverrides.isRTL, this.overrides.isRTL, localeDefaults.isRTL, options_1.globalDefaults.isRTL);\r\n dirDefaults = isRTL ? options_1.rtlDefaults : {};\r\n this.dirDefaults = dirDefaults;\r\n this.localeDefaults = localeDefaults;\r\n rawOptions = options_1.mergeOptions([\r\n options_1.globalDefaults,\r\n dirDefaults,\r\n localeDefaults,\r\n this.overrides,\r\n this.dynamicOverrides\r\n ]);\r\n locale_1.populateInstanceComputableOptions(rawOptions); // fill in gaps with computed options\r\n this.reset(rawOptions);\r\n };\r\n // stores the new options internally, but does not rerender anything.\r\n OptionsManager.prototype.recordOverrides = function (newOptionHash) {\r\n var optionName;\r\n for (optionName in newOptionHash) {\r\n this.dynamicOverrides[optionName] = newOptionHash[optionName];\r\n }\r\n this._calendar.viewSpecManager.clearCache(); // the dynamic override invalidates the options in this cache, so just clear it\r\n this.compute(); // this.options needs to be recomputed after the dynamic override\r\n };\r\n return OptionsManager;\r\n}(Model_1.default));\r\nexports.default = OptionsManager;\r\n\n\n/***/ }),\n/* 259 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\nvar ViewRegistry_1 = __webpack_require__(24);\r\nvar util_1 = __webpack_require__(4);\r\nvar options_1 = __webpack_require__(33);\r\nvar locale_1 = __webpack_require__(32);\r\nvar ViewSpecManager = /** @class */ (function () {\r\n function ViewSpecManager(optionsManager, _calendar) {\r\n this.optionsManager = optionsManager;\r\n this._calendar = _calendar;\r\n this.clearCache();\r\n }\r\n ViewSpecManager.prototype.clearCache = function () {\r\n this.viewSpecCache = {};\r\n };\r\n // Gets information about how to create a view. Will use a cache.\r\n ViewSpecManager.prototype.getViewSpec = function (viewType) {\r\n var cache = this.viewSpecCache;\r\n return cache[viewType] || (cache[viewType] = this.buildViewSpec(viewType));\r\n };\r\n // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\r\n // Preference is given to views that have corresponding buttons.\r\n ViewSpecManager.prototype.getUnitViewSpec = function (unit) {\r\n var viewTypes;\r\n var i;\r\n var spec;\r\n if ($.inArray(unit, util_1.unitsDesc) !== -1) {\r\n // put views that have buttons first. there will be duplicates, but oh well\r\n viewTypes = this._calendar.header.getViewsWithButtons(); // TODO: include footer as well?\r\n $.each(ViewRegistry_1.viewHash, function (viewType) {\r\n viewTypes.push(viewType);\r\n });\r\n for (i = 0; i < viewTypes.length; i++) {\r\n spec = this.getViewSpec(viewTypes[i]);\r\n if (spec) {\r\n if (spec.singleUnit === unit) {\r\n return spec;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n // Builds an object with information on how to create a given view\r\n ViewSpecManager.prototype.buildViewSpec = function (requestedViewType) {\r\n var viewOverrides = this.optionsManager.overrides.views || {};\r\n var specChain = []; // for the view. lowest to highest priority\r\n var defaultsChain = []; // for the view. lowest to highest priority\r\n var overridesChain = []; // for the view. lowest to highest priority\r\n var viewType = requestedViewType;\r\n var spec; // for the view\r\n var overrides; // for the view\r\n var durationInput;\r\n var duration;\r\n var unit;\r\n // iterate from the specific view definition to a more general one until we hit an actual View class\r\n while (viewType) {\r\n spec = ViewRegistry_1.viewHash[viewType];\r\n overrides = viewOverrides[viewType];\r\n viewType = null; // clear. might repopulate for another iteration\r\n if (typeof spec === 'function') { // TODO: deprecate\r\n spec = { 'class': spec };\r\n }\r\n if (spec) {\r\n specChain.unshift(spec);\r\n defaultsChain.unshift(spec.defaults || {});\r\n durationInput = durationInput || spec.duration;\r\n viewType = viewType || spec.type;\r\n }\r\n if (overrides) {\r\n overridesChain.unshift(overrides); // view-specific option hashes have options at zero-level\r\n durationInput = durationInput || overrides.duration;\r\n viewType = viewType || overrides.type;\r\n }\r\n }\r\n spec = util_1.mergeProps(specChain);\r\n spec.type = requestedViewType;\r\n if (!spec['class']) {\r\n return false;\r\n }\r\n // fall back to top-level `duration` option\r\n durationInput = durationInput ||\r\n this.optionsManager.dynamicOverrides.duration ||\r\n this.optionsManager.overrides.duration;\r\n if (durationInput) {\r\n duration = moment.duration(durationInput);\r\n if (duration.valueOf()) { // valid?\r\n unit = util_1.computeDurationGreatestUnit(duration, durationInput);\r\n spec.duration = duration;\r\n spec.durationUnit = unit;\r\n // view is a single-unit duration, like \"week\" or \"day\"\r\n // incorporate options for this. lowest priority\r\n if (duration.as(unit) === 1) {\r\n spec.singleUnit = unit;\r\n overridesChain.unshift(viewOverrides[unit] || {});\r\n }\r\n }\r\n }\r\n spec.defaults = options_1.mergeOptions(defaultsChain);\r\n spec.overrides = options_1.mergeOptions(overridesChain);\r\n this.buildViewSpecOptions(spec);\r\n this.buildViewSpecButtonText(spec, requestedViewType);\r\n return spec;\r\n };\r\n // Builds and assigns a view spec's options object from its already-assigned defaults and overrides\r\n ViewSpecManager.prototype.buildViewSpecOptions = function (spec) {\r\n var optionsManager = this.optionsManager;\r\n spec.options = options_1.mergeOptions([\r\n options_1.globalDefaults,\r\n spec.defaults,\r\n optionsManager.dirDefaults,\r\n optionsManager.localeDefaults,\r\n optionsManager.overrides,\r\n spec.overrides,\r\n optionsManager.dynamicOverrides // dynamically set via setter. highest precedence\r\n ]);\r\n locale_1.populateInstanceComputableOptions(spec.options);\r\n };\r\n // Computes and assigns a view spec's buttonText-related options\r\n ViewSpecManager.prototype.buildViewSpecButtonText = function (spec, requestedViewType) {\r\n var optionsManager = this.optionsManager;\r\n // given an options object with a possible `buttonText` hash, lookup the buttonText for the\r\n // requested view, falling back to a generic unit entry like \"week\" or \"day\"\r\n function queryButtonText(options) {\r\n var buttonText = options.buttonText || {};\r\n return buttonText[requestedViewType] ||\r\n // view can decide to look up a certain key\r\n (spec.buttonTextKey ? buttonText[spec.buttonTextKey] : null) ||\r\n // a key like \"month\"\r\n (spec.singleUnit ? buttonText[spec.singleUnit] : null);\r\n }\r\n // highest to lowest priority\r\n spec.buttonTextOverride =\r\n queryButtonText(optionsManager.dynamicOverrides) ||\r\n queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence\r\n spec.overrides.buttonText; // `buttonText` for view-specific options is a string\r\n // highest to lowest priority. mirrors buildViewSpecOptions\r\n spec.buttonTextDefault =\r\n queryButtonText(optionsManager.localeDefaults) ||\r\n queryButtonText(optionsManager.dirDefaults) ||\r\n spec.defaults.buttonText || // a single string. from ViewSubclass.defaults\r\n queryButtonText(options_1.globalDefaults) ||\r\n (spec.duration ? this._calendar.humanizeDuration(spec.duration) : null) || // like \"3 days\"\r\n requestedViewType; // fall back to given view name\r\n };\r\n return ViewSpecManager;\r\n}());\r\nexports.default = ViewSpecManager;\r\n\n\n/***/ }),\n/* 260 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar ArrayEventSource_1 = __webpack_require__(56);\r\nvar FuncEventSource_1 = __webpack_require__(223);\r\nvar JsonFeedEventSource_1 = __webpack_require__(224);\r\nEventSourceParser_1.default.registerClass(ArrayEventSource_1.default);\r\nEventSourceParser_1.default.registerClass(FuncEventSource_1.default);\r\nEventSourceParser_1.default.registerClass(JsonFeedEventSource_1.default);\r\n\n\n/***/ }),\n/* 261 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ThemeRegistry_1 = __webpack_require__(57);\r\nvar StandardTheme_1 = __webpack_require__(221);\r\nvar JqueryUiTheme_1 = __webpack_require__(222);\r\nvar Bootstrap3Theme_1 = __webpack_require__(262);\r\nvar Bootstrap4Theme_1 = __webpack_require__(263);\r\nThemeRegistry_1.defineThemeSystem('standard', StandardTheme_1.default);\r\nThemeRegistry_1.defineThemeSystem('jquery-ui', JqueryUiTheme_1.default);\r\nThemeRegistry_1.defineThemeSystem('bootstrap3', Bootstrap3Theme_1.default);\r\nThemeRegistry_1.defineThemeSystem('bootstrap4', Bootstrap4Theme_1.default);\r\n\n\n/***/ }),\n/* 262 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(22);\r\nvar Bootstrap3Theme = /** @class */ (function (_super) {\r\n tslib_1.__extends(Bootstrap3Theme, _super);\r\n function Bootstrap3Theme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return Bootstrap3Theme;\r\n}(Theme_1.default));\r\nexports.default = Bootstrap3Theme;\r\nBootstrap3Theme.prototype.classes = {\r\n widget: 'fc-bootstrap3',\r\n tableGrid: 'table-bordered',\r\n tableList: 'table',\r\n tableListHeading: 'active',\r\n buttonGroup: 'btn-group',\r\n button: 'btn btn-default',\r\n stateActive: 'active',\r\n stateDisabled: 'disabled',\r\n today: 'alert alert-info',\r\n popover: 'panel panel-default',\r\n popoverHeader: 'panel-heading',\r\n popoverContent: 'panel-body',\r\n // day grid\r\n // for left/right border color when border is inset from edges (all-day in agenda view)\r\n // avoid `panel` class b/c don't want margins/radius. only border color.\r\n headerRow: 'panel-default',\r\n dayRow: 'panel-default',\r\n // list view\r\n listView: 'panel panel-default'\r\n};\r\nBootstrap3Theme.prototype.baseIconClass = 'glyphicon';\r\nBootstrap3Theme.prototype.iconClasses = {\r\n close: 'glyphicon-remove',\r\n prev: 'glyphicon-chevron-left',\r\n next: 'glyphicon-chevron-right',\r\n prevYear: 'glyphicon-backward',\r\n nextYear: 'glyphicon-forward'\r\n};\r\nBootstrap3Theme.prototype.iconOverrideOption = 'bootstrapGlyphicons';\r\nBootstrap3Theme.prototype.iconOverrideCustomButtonOption = 'bootstrapGlyphicon';\r\nBootstrap3Theme.prototype.iconOverridePrefix = 'glyphicon-';\r\n\n\n/***/ }),\n/* 263 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(22);\r\nvar Bootstrap4Theme = /** @class */ (function (_super) {\r\n tslib_1.__extends(Bootstrap4Theme, _super);\r\n function Bootstrap4Theme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return Bootstrap4Theme;\r\n}(Theme_1.default));\r\nexports.default = Bootstrap4Theme;\r\nBootstrap4Theme.prototype.classes = {\r\n widget: 'fc-bootstrap4',\r\n tableGrid: 'table-bordered',\r\n tableList: 'table',\r\n tableListHeading: 'table-active',\r\n buttonGroup: 'btn-group',\r\n button: 'btn btn-primary',\r\n stateActive: 'active',\r\n stateDisabled: 'disabled',\r\n today: 'alert alert-info',\r\n popover: 'card card-primary',\r\n popoverHeader: 'card-header',\r\n popoverContent: 'card-body',\r\n // day grid\r\n // for left/right border color when border is inset from edges (all-day in agenda view)\r\n // avoid `table` class b/c don't want margins/padding/structure. only border color.\r\n headerRow: 'table-bordered',\r\n dayRow: 'table-bordered',\r\n // list view\r\n listView: 'card card-primary'\r\n};\r\nBootstrap4Theme.prototype.baseIconClass = 'fa';\r\nBootstrap4Theme.prototype.iconClasses = {\r\n close: 'fa-times',\r\n prev: 'fa-chevron-left',\r\n next: 'fa-chevron-right',\r\n prevYear: 'fa-angle-double-left',\r\n nextYear: 'fa-angle-double-right'\r\n};\r\nBootstrap4Theme.prototype.iconOverrideOption = 'bootstrapFontAwesome';\r\nBootstrap4Theme.prototype.iconOverrideCustomButtonOption = 'bootstrapFontAwesome';\r\nBootstrap4Theme.prototype.iconOverridePrefix = 'fa-';\r\n\n\n/***/ }),\n/* 264 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(24);\r\nvar BasicView_1 = __webpack_require__(67);\r\nvar MonthView_1 = __webpack_require__(246);\r\nViewRegistry_1.defineView('basic', {\r\n 'class': BasicView_1.default\r\n});\r\nViewRegistry_1.defineView('basicDay', {\r\n type: 'basic',\r\n duration: { days: 1 }\r\n});\r\nViewRegistry_1.defineView('basicWeek', {\r\n type: 'basic',\r\n duration: { weeks: 1 }\r\n});\r\nViewRegistry_1.defineView('month', {\r\n 'class': MonthView_1.default,\r\n duration: { months: 1 },\r\n defaults: {\r\n fixedWeekCount: true\r\n }\r\n});\r\n\n\n/***/ }),\n/* 265 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(24);\r\nvar AgendaView_1 = __webpack_require__(238);\r\nViewRegistry_1.defineView('agenda', {\r\n 'class': AgendaView_1.default,\r\n defaults: {\r\n allDaySlot: true,\r\n slotDuration: '00:30:00',\r\n slotEventOverlap: true // a bad name. confused with overlap/constraint system\r\n }\r\n});\r\nViewRegistry_1.defineView('agendaDay', {\r\n type: 'agenda',\r\n duration: { days: 1 }\r\n});\r\nViewRegistry_1.defineView('agendaWeek', {\r\n type: 'agenda',\r\n duration: { weeks: 1 }\r\n});\r\n\n\n/***/ }),\n/* 266 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(24);\r\nvar ListView_1 = __webpack_require__(248);\r\nViewRegistry_1.defineView('list', {\r\n 'class': ListView_1.default,\r\n buttonTextKey: 'list',\r\n defaults: {\r\n buttonText: 'list',\r\n listDayFormat: 'LL',\r\n noEventsMessage: 'No events to display'\r\n }\r\n});\r\nViewRegistry_1.defineView('listDay', {\r\n type: 'list',\r\n duration: { days: 1 },\r\n defaults: {\r\n listDayFormat: 'dddd' // day-of-week is all we need. full date is probably in header\r\n }\r\n});\r\nViewRegistry_1.defineView('listWeek', {\r\n type: 'list',\r\n duration: { weeks: 1 },\r\n defaults: {\r\n listDayFormat: 'dddd',\r\n listDayAltFormat: 'LL'\r\n }\r\n});\r\nViewRegistry_1.defineView('listMonth', {\r\n type: 'list',\r\n duration: { month: 1 },\r\n defaults: {\r\n listDayAltFormat: 'dddd' // day-of-week is nice-to-have\r\n }\r\n});\r\nViewRegistry_1.defineView('listYear', {\r\n type: 'list',\r\n duration: { year: 1 },\r\n defaults: {\r\n listDayAltFormat: 'dddd' // day-of-week is nice-to-have\r\n }\r\n});\r\n\n\n/***/ }),\n/* 267 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\n\n/***/ })\n/******/ ]);\n});","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ko = moment.defineLocale('ko', {\n months : '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split('_'),\n monthsShort : '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split('_'),\n weekdays : 'ì¼ìš”ì¼_월요ì¼_화요ì¼_수요ì¼_목요ì¼_금요ì¼_í† ìš”ì¼'.split('_'),\n weekdaysShort : 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n weekdaysMin : 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYYë…„ MMMM Dì¼',\n LLL : 'YYYYë…„ MMMM Dì¼ A h:mm',\n LLLL : 'YYYYë…„ MMMM Dì¼ dddd A h:mm',\n l : 'YYYY.MM.DD.',\n ll : 'YYYYë…„ MMMM Dì¼',\n lll : 'YYYYë…„ MMMM Dì¼ A h:mm',\n llll : 'YYYYë…„ MMMM Dì¼ dddd A h:mm'\n },\n calendar : {\n sameDay : '오늘 LT',\n nextDay : 'ë‚´ì¼ LT',\n nextWeek : 'dddd LT',\n lastDay : 'ì–´ì œ LT',\n lastWeek : '지난주 dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s 후',\n past : '%s ì „',\n s : '몇 ì´ˆ',\n ss : '%dì´ˆ',\n m : '1분',\n mm : '%d분',\n h : 'í•œ 시간',\n hh : '%d시간',\n d : '하루',\n dd : '%dì¼',\n M : 'í•œ 달',\n MM : '%d달',\n y : 'ì¼ ë…„',\n yy : '%dë…„'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(ì¼|ì›”|주)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'ì¼';\n case 'M':\n return number + 'ì›”';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse : /ì˜¤ì „|오후/,\n isPM : function (token) {\n return token === '오후';\n },\n meridiem : function (hour, minute, isUpper) {\n return hour < 12 ? 'ì˜¤ì „' : '오후';\n }\n });\n\n return ko;\n\n})));\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': 'Ù¡',\n '2': 'Ù¢',\n '3': 'Ù£',\n '4': 'Ù¤',\n '5': 'Ù¥',\n '6': 'Ù¦',\n '7': 'Ù§',\n '8': 'Ù¨',\n '9': 'Ù©',\n '0': 'Ù '\n }, numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'Øوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم'\n ];\n\n\n var ku = moment.defineLocale('ku', {\n months : months,\n monthsShort : months,\n weekdays : 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysShort : 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin : 'ÛŒ_د_س_Ú†_Ù¾_Ù‡_Ø´'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar : {\n sameDay : '[ئه‌مرۆ كاتژمێر] LT',\n nextDay : '[به‌یانی كاتژمێر] LT',\n nextWeek : 'dddd [كاتژمێر] LT',\n lastDay : '[دوێنێ كاتژمێر] LT',\n lastWeek : 'dddd [كاتژمێر] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'له‌ %s',\n past : '%s',\n s : 'چه‌ند چركه‌یه‌ك',\n ss : 'چركه‌ %d',\n m : 'یه‌ك خوله‌ك',\n mm : '%d خوله‌ك',\n h : 'یه‌ك كاتژمێر',\n hh : '%d كاتژمێر',\n d : 'یه‌ك Ú•Û†Ú˜',\n dd : '%d Ú•Û†Ú˜',\n M : 'یه‌ك مانگ',\n MM : '%d مانگ',\n y : 'یه‌ك ساڵ',\n yy : '%d ساڵ'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort : 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin : 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danas u] LT',\n nextDay : '[sutra u] LT',\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juÄer u] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[proÅ¡lu] dddd [u] LT';\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'par sekundi',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : 'dan',\n dd : translate,\n M : 'mjesec',\n MM : translate,\n y : 'godinu',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return bs;\n\n})));\n","var timespan = require('./lib/timespan');\nvar PS_SUPPORTED = require('./lib/psSupported');\nvar jws = require('jws');\nvar includes = require('lodash.includes');\nvar isBoolean = require('lodash.isboolean');\nvar isInteger = require('lodash.isinteger');\nvar isNumber = require('lodash.isnumber');\nvar isPlainObject = require('lodash.isplainobject');\nvar isString = require('lodash.isstring');\nvar once = require('lodash.once');\n\nvar SUPPORTED_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512', 'none']\nif (PS_SUPPORTED) {\n SUPPORTED_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n}\n\nvar sign_options_schema = {\n expiresIn: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"expiresIn\" should be a number of seconds or string representing a timespan' },\n notBefore: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"notBefore\" should be a number of seconds or string representing a timespan' },\n audience: { isValid: function(value) { return isString(value) || Array.isArray(value); }, message: '\"audience\" must be a string or array' },\n algorithm: { isValid: includes.bind(null, SUPPORTED_ALGS), message: '\"algorithm\" must be a valid string enum value' },\n header: { isValid: isPlainObject, message: '\"header\" must be an object' },\n encoding: { isValid: isString, message: '\"encoding\" must be a string' },\n issuer: { isValid: isString, message: '\"issuer\" must be a string' },\n subject: { isValid: isString, message: '\"subject\" must be a string' },\n jwtid: { isValid: isString, message: '\"jwtid\" must be a string' },\n noTimestamp: { isValid: isBoolean, message: '\"noTimestamp\" must be a boolean' },\n keyid: { isValid: isString, message: '\"keyid\" must be a string' },\n mutatePayload: { isValid: isBoolean, message: '\"mutatePayload\" must be a boolean' }\n};\n\nvar registered_claims_schema = {\n iat: { isValid: isNumber, message: '\"iat\" should be a number of seconds' },\n exp: { isValid: isNumber, message: '\"exp\" should be a number of seconds' },\n nbf: { isValid: isNumber, message: '\"nbf\" should be a number of seconds' }\n};\n\nfunction validate(schema, allowUnknown, object, parameterName) {\n if (!isPlainObject(object)) {\n throw new Error('Expected \"' + parameterName + '\" to be a plain object.');\n }\n Object.keys(object)\n .forEach(function(key) {\n var validator = schema[key];\n if (!validator) {\n if (!allowUnknown) {\n throw new Error('\"' + key + '\" is not allowed in \"' + parameterName + '\"');\n }\n return;\n }\n if (!validator.isValid(object[key])) {\n throw new Error(validator.message);\n }\n });\n}\n\nfunction validateOptions(options) {\n return validate(sign_options_schema, false, options, 'options');\n}\n\nfunction validatePayload(payload) {\n return validate(registered_claims_schema, true, payload, 'payload');\n}\n\nvar options_to_payload = {\n 'audience': 'aud',\n 'issuer': 'iss',\n 'subject': 'sub',\n 'jwtid': 'jti'\n};\n\nvar options_for_objects = [\n 'expiresIn',\n 'notBefore',\n 'noTimestamp',\n 'audience',\n 'issuer',\n 'subject',\n 'jwtid',\n];\n\nmodule.exports = function (payload, secretOrPrivateKey, options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n } else {\n options = options || {};\n }\n\n var isObjectPayload = typeof payload === 'object' &&\n !Buffer.isBuffer(payload);\n\n var header = Object.assign({\n alg: options.algorithm || 'HS256',\n typ: isObjectPayload ? 'JWT' : undefined,\n kid: options.keyid\n }, options.header);\n\n function failure(err) {\n if (callback) {\n return callback(err);\n }\n throw err;\n }\n\n if (!secretOrPrivateKey && options.algorithm !== 'none') {\n return failure(new Error('secretOrPrivateKey must have a value'));\n }\n\n if (typeof payload === 'undefined') {\n return failure(new Error('payload is required'));\n } else if (isObjectPayload) {\n try {\n validatePayload(payload);\n }\n catch (error) {\n return failure(error);\n }\n if (!options.mutatePayload) {\n payload = Object.assign({},payload);\n }\n } else {\n var invalid_options = options_for_objects.filter(function (opt) {\n return typeof options[opt] !== 'undefined';\n });\n\n if (invalid_options.length > 0) {\n return failure(new Error('invalid ' + invalid_options.join(',') + ' option for ' + (typeof payload ) + ' payload'));\n }\n }\n\n if (typeof payload.exp !== 'undefined' && typeof options.expiresIn !== 'undefined') {\n return failure(new Error('Bad \"options.expiresIn\" option the payload already has an \"exp\" property.'));\n }\n\n if (typeof payload.nbf !== 'undefined' && typeof options.notBefore !== 'undefined') {\n return failure(new Error('Bad \"options.notBefore\" option the payload already has an \"nbf\" property.'));\n }\n\n try {\n validateOptions(options);\n }\n catch (error) {\n return failure(error);\n }\n\n var timestamp = payload.iat || Math.floor(Date.now() / 1000);\n\n if (options.noTimestamp) {\n delete payload.iat;\n } else if (isObjectPayload) {\n payload.iat = timestamp;\n }\n\n if (typeof options.notBefore !== 'undefined') {\n try {\n payload.nbf = timespan(options.notBefore, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.nbf === 'undefined') {\n return failure(new Error('\"notBefore\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n if (typeof options.expiresIn !== 'undefined' && typeof payload === 'object') {\n try {\n payload.exp = timespan(options.expiresIn, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.exp === 'undefined') {\n return failure(new Error('\"expiresIn\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n Object.keys(options_to_payload).forEach(function (key) {\n var claim = options_to_payload[key];\n if (typeof options[key] !== 'undefined') {\n if (typeof payload[claim] !== 'undefined') {\n return failure(new Error('Bad \"options.' + key + '\" option. The payload already has an \"' + claim + '\" property.'));\n }\n payload[claim] = options[key];\n }\n });\n\n var encoding = options.encoding || 'utf8';\n\n if (typeof callback === 'function') {\n callback = callback && once(callback);\n\n jws.createSign({\n header: header,\n privateKey: secretOrPrivateKey,\n payload: payload,\n encoding: encoding\n }).once('error', callback)\n .once('done', function (signature) {\n callback(null, signature);\n });\n } else {\n return jws.sign({header: header, payload: payload, secret: secretOrPrivateKey, encoding: encoding});\n }\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"calendar\",attrs:{\"id\":\"calendar\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div ref=\"calendar\" id=\"calendar\"></div>\n</template>\n\n<script>\n import defaultsDeep from 'lodash.defaultsdeep'\n import 'fullcalendar'\n import $ from 'jquery'\n\n export default {\n props: {\n events: {\n default() {\n return []\n },\n },\n\n eventSources: {\n default() {\n return []\n },\n },\n\n editable: {\n default() {\n return true\n },\n },\n\n selectable: {\n default() {\n return true\n },\n },\n\n selectHelper: {\n default() {\n return true\n },\n },\n\n header: {\n default() {\n return {\n left: 'prev,next today',\n center: 'title',\n right: 'month,agendaWeek,agendaDay'\n }\n },\n },\n\n defaultView: {\n default() {\n return 'agendaWeek'\n },\n },\n\n sync: {\n default() {\n return false\n }\n },\n\n config: {\n type: Object,\n default() {\n return {}\n },\n },\n },\n\n computed: {\n defaultConfig() {\n const self = this\n return {\n header: this.header,\n defaultView: this.defaultView,\n editable: this.editable,\n selectable: this.selectable,\n selectHelper: this.selectHelper,\n aspectRatio: 2,\n timeFormat: 'HH:mm',\n events: this.events,\n eventSources: this.eventSources,\n\n eventRender(...args) {\n if (this.sync) {\n self.events = cal.fullCalendar('clientEvents')\n }\n self.$emit('event-render', ...args)\n },\n \n viewRender(...args) {\n if (this.sync) {\n self.events = cal.fullCalendar('clientEvents')\n }\n self.$emit('view-render', ...args)\n },\n\n eventDestroy(event) {\n if (this.sync) {\n self.events = cal.fullCalendar('clientEvents')\n }\n },\n\n eventClick(...args) {\n self.$emit('event-selected', ...args)\n },\n\n eventDrop(...args) {\n self.$emit('event-drop', ...args)\n },\n\n eventReceive(...args) {\n self.$emit('event-receive', ...args)\n },\n\n eventResize(...args) {\n self.$emit('event-resize', ...args)\n },\n\n dayClick(...args){\n self.$emit('day-click', ...args)\n },\n select(start, end, jsEvent, view, resource) {\n self.$emit('event-created', {\n start,\n end,\n allDay: !start.hasTime() && !end.hasTime(),\n view,\n resource\n })\n }\n }\n },\n },\n\n mounted() {\n const cal = $(this.$el),\n self = this\n\n this.$on('remove-event', (event) => {\n if(event && event.hasOwnProperty('id')){\n $(this.$el).fullCalendar('removeEvents', event.id);\n }else{\n $(this.$el).fullCalendar('removeEvents', event);\n }\n })\n\n this.$on('rerender-events', () => {\n $(this.$el).fullCalendar('rerenderEvents')\n })\n\n this.$on('refetch-events', () => {\n $(this.$el).fullCalendar('refetchEvents')\n })\n\n this.$on('render-event', (event) => {\n $(this.$el).fullCalendar('renderEvent', event)\n })\n\n this.$on('reload-events', () => {\n $(this.$el).fullCalendar('removeEvents')\n $(this.$el).fullCalendar('addEventSource', this.events)\n })\n\n this.$on('rebuild-sources', () => {\n $(this.$el).fullCalendar('removeEventSources')\n this.eventSources.map(event => {\n $(this.$el).fullCalendar('addEventSource', event)\n })\n })\n\n cal.fullCalendar(defaultsDeep(this.config, this.defaultConfig))\n },\n\n methods: {\n fireMethod(...options) {\n return $(this.$el).fullCalendar(...options)\n },\n },\n\n watch: {\n events: {\n deep: true,\n handler(val) {\n $(this.$el).fullCalendar('removeEvents')\n $(this.$el).fullCalendar('addEventSource', this.events)\n },\n },\n eventSources: {\n deep: true,\n handler(val) {\n this.$emit('rebuild-sources')\n },\n },\n },\n\n beforeDestroy() {\n this.$off('remove-event')\n this.$off('rerender-events')\n this.$off('refetch-events')\n this.$off('render-event')\n this.$off('reload-events')\n this.$off('rebuild-sources')\n },\n }\n</script>\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--11-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./FullCalendar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--11-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./FullCalendar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FullCalendar.vue?vue&type=template&id=75db3bf7&\"\nimport script from \"./FullCalendar.vue?vue&type=script&lang=js&\"\nexport * from \"./FullCalendar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import FullCalendar from './components/FullCalendar.vue'\n\nexport default {\n install: function (Vue, options) {\n Vue.component('full-calendar', FullCalendar);\n },\n}\nexport { FullCalendar }\n","exports.f = Object.getOwnPropertySymbols;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var units = {\n 'ss' : 'sekundÄ—_sekundžių_sekundes',\n 'm' : 'minutÄ—_minutÄ—s_minutÄ™',\n 'mm': 'minutÄ—s_minuÄių_minutes',\n 'h' : 'valanda_valandos_valandÄ…',\n 'hh': 'valandos_valandų_valandas',\n 'd' : 'diena_dienos_dienÄ…',\n 'dd': 'dienos_dienų_dienas',\n 'M' : 'mÄ—nuo_mÄ—nesio_mÄ—nesį',\n 'MM': 'mÄ—nesiai_mÄ—nesių_mÄ—nesius',\n 'y' : 'metai_metų_metus',\n 'yy': 'metai_metų_metus'\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundÄ—s';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months : {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjÅ«Äio_rugsÄ—jo_spalio_lapkriÄio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjÅ«tis_rugsÄ—jis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays : {\n format: 'sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡'.split('_'),\n weekdaysMin : 'S_P_A_T_K_Pn_Å '.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY [m.] MMMM D [d.]',\n LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l : 'YYYY-MM-DD',\n ll : 'YYYY [m.] MMMM D [d.]',\n lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar : {\n sameDay : '[Å iandien] LT',\n nextDay : '[Rytoj] LT',\n nextWeek : 'dddd LT',\n lastDay : '[Vakar] LT',\n lastWeek : '[PraÄ—jusį] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'po %s',\n past : 'prieÅ¡ %s',\n s : translateSeconds,\n ss : translate,\n m : translateSingular,\n mm : translate,\n h : translateSingular,\n hh : translate,\n d : translateSingular,\n dd : translate,\n M : translateSingular,\n MM : translate,\n y : translateSingular,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal : function (number) {\n return number + '-oji';\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lt;\n\n})));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","/*!\n * vue-resource v1.5.1\n * https://github.com/pagekit/vue-resource\n * Released under the MIT License.\n */\n\n/**\n * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)\n */\n\nvar RESOLVED = 0;\nvar REJECTED = 1;\nvar PENDING = 2;\n\nfunction Promise$1(executor) {\n\n this.state = PENDING;\n this.value = undefined;\n this.deferred = [];\n\n var promise = this;\n\n try {\n executor(function (x) {\n promise.resolve(x);\n }, function (r) {\n promise.reject(r);\n });\n } catch (e) {\n promise.reject(e);\n }\n}\n\nPromise$1.reject = function (r) {\n return new Promise$1(function (resolve, reject) {\n reject(r);\n });\n};\n\nPromise$1.resolve = function (x) {\n return new Promise$1(function (resolve, reject) {\n resolve(x);\n });\n};\n\nPromise$1.all = function all(iterable) {\n return new Promise$1(function (resolve, reject) {\n var count = 0, result = [];\n\n if (iterable.length === 0) {\n resolve(result);\n }\n\n function resolver(i) {\n return function (x) {\n result[i] = x;\n count += 1;\n\n if (count === iterable.length) {\n resolve(result);\n }\n };\n }\n\n for (var i = 0; i < iterable.length; i += 1) {\n Promise$1.resolve(iterable[i]).then(resolver(i), reject);\n }\n });\n};\n\nPromise$1.race = function race(iterable) {\n return new Promise$1(function (resolve, reject) {\n for (var i = 0; i < iterable.length; i += 1) {\n Promise$1.resolve(iterable[i]).then(resolve, reject);\n }\n });\n};\n\nvar p = Promise$1.prototype;\n\np.resolve = function resolve(x) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (x === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n var called = false;\n\n try {\n var then = x && x['then'];\n\n if (x !== null && typeof x === 'object' && typeof then === 'function') {\n then.call(x, function (x) {\n if (!called) {\n promise.resolve(x);\n }\n called = true;\n\n }, function (r) {\n if (!called) {\n promise.reject(r);\n }\n called = true;\n });\n return;\n }\n } catch (e) {\n if (!called) {\n promise.reject(e);\n }\n return;\n }\n\n promise.state = RESOLVED;\n promise.value = x;\n promise.notify();\n }\n};\n\np.reject = function reject(reason) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (reason === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n promise.state = REJECTED;\n promise.value = reason;\n promise.notify();\n }\n};\n\np.notify = function notify() {\n var promise = this;\n\n nextTick(function () {\n if (promise.state !== PENDING) {\n while (promise.deferred.length) {\n var deferred = promise.deferred.shift(),\n onResolved = deferred[0],\n onRejected = deferred[1],\n resolve = deferred[2],\n reject = deferred[3];\n\n try {\n if (promise.state === RESOLVED) {\n if (typeof onResolved === 'function') {\n resolve(onResolved.call(undefined, promise.value));\n } else {\n resolve(promise.value);\n }\n } else if (promise.state === REJECTED) {\n if (typeof onRejected === 'function') {\n resolve(onRejected.call(undefined, promise.value));\n } else {\n reject(promise.value);\n }\n }\n } catch (e) {\n reject(e);\n }\n }\n }\n });\n};\n\np.then = function then(onResolved, onRejected) {\n var promise = this;\n\n return new Promise$1(function (resolve, reject) {\n promise.deferred.push([onResolved, onRejected, resolve, reject]);\n promise.notify();\n });\n};\n\np.catch = function (onRejected) {\n return this.then(undefined, onRejected);\n};\n\n/**\n * Promise adapter.\n */\n\nif (typeof Promise === 'undefined') {\n window.Promise = Promise$1;\n}\n\nfunction PromiseObj(executor, context) {\n\n if (executor instanceof Promise) {\n this.promise = executor;\n } else {\n this.promise = new Promise(executor.bind(context));\n }\n\n this.context = context;\n}\n\nPromiseObj.all = function (iterable, context) {\n return new PromiseObj(Promise.all(iterable), context);\n};\n\nPromiseObj.resolve = function (value, context) {\n return new PromiseObj(Promise.resolve(value), context);\n};\n\nPromiseObj.reject = function (reason, context) {\n return new PromiseObj(Promise.reject(reason), context);\n};\n\nPromiseObj.race = function (iterable, context) {\n return new PromiseObj(Promise.race(iterable), context);\n};\n\nvar p$1 = PromiseObj.prototype;\n\np$1.bind = function (context) {\n this.context = context;\n return this;\n};\n\np$1.then = function (fulfilled, rejected) {\n\n if (fulfilled && fulfilled.bind && this.context) {\n fulfilled = fulfilled.bind(this.context);\n }\n\n if (rejected && rejected.bind && this.context) {\n rejected = rejected.bind(this.context);\n }\n\n return new PromiseObj(this.promise.then(fulfilled, rejected), this.context);\n};\n\np$1.catch = function (rejected) {\n\n if (rejected && rejected.bind && this.context) {\n rejected = rejected.bind(this.context);\n }\n\n return new PromiseObj(this.promise.catch(rejected), this.context);\n};\n\np$1.finally = function (callback) {\n\n return this.then(function (value) {\n callback.call(this);\n return value;\n }, function (reason) {\n callback.call(this);\n return Promise.reject(reason);\n }\n );\n};\n\n/**\n * Utility functions.\n */\n\nvar ref = {};\nvar hasOwnProperty = ref.hasOwnProperty;\nvar ref$1 = [];\nvar slice = ref$1.slice;\nvar debug = false, ntick;\n\nvar inBrowser = typeof window !== 'undefined';\n\nfunction Util (ref) {\n var config = ref.config;\n var nextTick = ref.nextTick;\n\n ntick = nextTick;\n debug = config.debug || !config.silent;\n}\n\nfunction warn(msg) {\n if (typeof console !== 'undefined' && debug) {\n console.warn('[VueResource warn]: ' + msg);\n }\n}\n\nfunction error(msg) {\n if (typeof console !== 'undefined') {\n console.error(msg);\n }\n}\n\nfunction nextTick(cb, ctx) {\n return ntick(cb, ctx);\n}\n\nfunction trim(str) {\n return str ? str.replace(/^\\s*|\\s*$/g, '') : '';\n}\n\nfunction trimEnd(str, chars) {\n\n if (str && chars === undefined) {\n return str.replace(/\\s+$/, '');\n }\n\n if (!str || !chars) {\n return str;\n }\n\n return str.replace(new RegExp((\"[\" + chars + \"]+$\")), '');\n}\n\nfunction toLower(str) {\n return str ? str.toLowerCase() : '';\n}\n\nfunction toUpper(str) {\n return str ? str.toUpperCase() : '';\n}\n\nvar isArray = Array.isArray;\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\n\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n\nfunction isPlainObject(obj) {\n return isObject(obj) && Object.getPrototypeOf(obj) == Object.prototype;\n}\n\nfunction isBlob(obj) {\n return typeof Blob !== 'undefined' && obj instanceof Blob;\n}\n\nfunction isFormData(obj) {\n return typeof FormData !== 'undefined' && obj instanceof FormData;\n}\n\nfunction when(value, fulfilled, rejected) {\n\n var promise = PromiseObj.resolve(value);\n\n if (arguments.length < 2) {\n return promise;\n }\n\n return promise.then(fulfilled, rejected);\n}\n\nfunction options(fn, obj, opts) {\n\n opts = opts || {};\n\n if (isFunction(opts)) {\n opts = opts.call(obj);\n }\n\n return merge(fn.bind({$vm: obj, $options: opts}), fn, {$options: opts});\n}\n\nfunction each(obj, iterator) {\n\n var i, key;\n\n if (isArray(obj)) {\n for (i = 0; i < obj.length; i++) {\n iterator.call(obj[i], obj[i], i);\n }\n } else if (isObject(obj)) {\n for (key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n iterator.call(obj[key], obj[key], key);\n }\n }\n }\n\n return obj;\n}\n\nvar assign = Object.assign || _assign;\n\nfunction merge(target) {\n\n var args = slice.call(arguments, 1);\n\n args.forEach(function (source) {\n _merge(target, source, true);\n });\n\n return target;\n}\n\nfunction defaults(target) {\n\n var args = slice.call(arguments, 1);\n\n args.forEach(function (source) {\n\n for (var key in source) {\n if (target[key] === undefined) {\n target[key] = source[key];\n }\n }\n\n });\n\n return target;\n}\n\nfunction _assign(target) {\n\n var args = slice.call(arguments, 1);\n\n args.forEach(function (source) {\n _merge(target, source);\n });\n\n return target;\n}\n\nfunction _merge(target, source, deep) {\n for (var key in source) {\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key])) {\n target[key] = {};\n }\n if (isArray(source[key]) && !isArray(target[key])) {\n target[key] = [];\n }\n _merge(target[key], source[key], deep);\n } else if (source[key] !== undefined) {\n target[key] = source[key];\n }\n }\n}\n\n/**\n * Root Prefix Transform.\n */\n\nfunction root (options$$1, next) {\n\n var url = next(options$$1);\n\n if (isString(options$$1.root) && !/^(https?:)?\\//.test(url)) {\n url = trimEnd(options$$1.root, '/') + '/' + url;\n }\n\n return url;\n}\n\n/**\n * Query Parameter Transform.\n */\n\nfunction query (options$$1, next) {\n\n var urlParams = Object.keys(Url.options.params), query = {}, url = next(options$$1);\n\n each(options$$1.params, function (value, key) {\n if (urlParams.indexOf(key) === -1) {\n query[key] = value;\n }\n });\n\n query = Url.params(query);\n\n if (query) {\n url += (url.indexOf('?') == -1 ? '?' : '&') + query;\n }\n\n return url;\n}\n\n/**\n * URL Template v2.0.6 (https://github.com/bramstein/url-template)\n */\n\nfunction expand(url, params, variables) {\n\n var tmpl = parse(url), expanded = tmpl.expand(params);\n\n if (variables) {\n variables.push.apply(variables, tmpl.vars);\n }\n\n return expanded;\n}\n\nfunction parse(template) {\n\n var operators = ['+', '#', '.', '/', ';', '?', '&'], variables = [];\n\n return {\n vars: variables,\n expand: function expand(context) {\n return template.replace(/\\{([^{}]+)\\}|([^{}]+)/g, function (_, expression, literal) {\n if (expression) {\n\n var operator = null, values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push.apply(values, getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n variables.push(tmp[1]);\n });\n\n if (operator && operator !== '+') {\n\n var separator = ',';\n\n if (operator === '?') {\n separator = '&';\n } else if (operator !== '#') {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : '') + values.join(separator);\n } else {\n return values.join(',');\n }\n\n } else {\n return encodeReserved(literal);\n }\n });\n }\n };\n}\n\nfunction getValues(context, operator, key, modifier) {\n\n var value = context[key], result = [];\n\n if (isDefined(value) && value !== '') {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n value = value.toString();\n\n if (modifier && modifier !== '*') {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));\n } else {\n if (modifier === '*') {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n var tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeURIComponent(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeURIComponent(key) + '=' + tmp.join(','));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(','));\n }\n }\n }\n } else {\n if (operator === ';') {\n result.push(encodeURIComponent(key));\n } else if (value === '' && (operator === '&' || operator === '?')) {\n result.push(encodeURIComponent(key) + '=');\n } else if (value === '') {\n result.push('');\n }\n }\n\n return result;\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === ';' || operator === '&' || operator === '?';\n}\n\nfunction encodeValue(operator, value, key) {\n\n value = (operator === '+' || operator === '#') ? encodeReserved(value) : encodeURIComponent(value);\n\n if (key) {\n return encodeURIComponent(key) + '=' + value;\n } else {\n return value;\n }\n}\n\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part);\n }\n return part;\n }).join('');\n}\n\n/**\n * URL Template (RFC 6570) Transform.\n */\n\nfunction template (options) {\n\n var variables = [], url = expand(options.url, options.params, variables);\n\n variables.forEach(function (key) {\n delete options.params[key];\n });\n\n return url;\n}\n\n/**\n * Service for URL templating.\n */\n\nfunction Url(url, params) {\n\n var self = this || {}, options$$1 = url, transform;\n\n if (isString(url)) {\n options$$1 = {url: url, params: params};\n }\n\n options$$1 = merge({}, Url.options, self.$options, options$$1);\n\n Url.transforms.forEach(function (handler) {\n\n if (isString(handler)) {\n handler = Url.transform[handler];\n }\n\n if (isFunction(handler)) {\n transform = factory(handler, transform, self.$vm);\n }\n\n });\n\n return transform(options$$1);\n}\n\n/**\n * Url options.\n */\n\nUrl.options = {\n url: '',\n root: null,\n params: {}\n};\n\n/**\n * Url transforms.\n */\n\nUrl.transform = {template: template, query: query, root: root};\nUrl.transforms = ['template', 'query', 'root'];\n\n/**\n * Encodes a Url parameter string.\n *\n * @param {Object} obj\n */\n\nUrl.params = function (obj) {\n\n var params = [], escape = encodeURIComponent;\n\n params.add = function (key, value) {\n\n if (isFunction(value)) {\n value = value();\n }\n\n if (value === null) {\n value = '';\n }\n\n this.push(escape(key) + '=' + escape(value));\n };\n\n serialize(params, obj);\n\n return params.join('&').replace(/%20/g, '+');\n};\n\n/**\n * Parse a URL and return its components.\n *\n * @param {String} url\n */\n\nUrl.parse = function (url) {\n\n var el = document.createElement('a');\n\n if (document.documentMode) {\n el.href = url;\n url = el.href;\n }\n\n el.href = url;\n\n return {\n href: el.href,\n protocol: el.protocol ? el.protocol.replace(/:$/, '') : '',\n port: el.port,\n host: el.host,\n hostname: el.hostname,\n pathname: el.pathname.charAt(0) === '/' ? el.pathname : '/' + el.pathname,\n search: el.search ? el.search.replace(/^\\?/, '') : '',\n hash: el.hash ? el.hash.replace(/^#/, '') : ''\n };\n};\n\nfunction factory(handler, next, vm) {\n return function (options$$1) {\n return handler.call(vm, options$$1, next);\n };\n}\n\nfunction serialize(params, obj, scope) {\n\n var array = isArray(obj), plain = isPlainObject(obj), hash;\n\n each(obj, function (value, key) {\n\n hash = isObject(value) || isArray(value);\n\n if (scope) {\n key = scope + '[' + (plain || hash ? key : '') + ']';\n }\n\n if (!scope && array) {\n params.add(value.name, value.value);\n } else if (hash) {\n serialize(params, value, key);\n } else {\n params.add(key, value);\n }\n });\n}\n\n/**\n * XDomain client (Internet Explorer).\n */\n\nfunction xdrClient (request) {\n return new PromiseObj(function (resolve) {\n\n var xdr = new XDomainRequest(), handler = function (ref) {\n var type = ref.type;\n\n\n var status = 0;\n\n if (type === 'load') {\n status = 200;\n } else if (type === 'error') {\n status = 500;\n }\n\n resolve(request.respondWith(xdr.responseText, {status: status}));\n };\n\n request.abort = function () { return xdr.abort(); };\n\n xdr.open(request.method, request.getUrl());\n\n if (request.timeout) {\n xdr.timeout = request.timeout;\n }\n\n xdr.onload = handler;\n xdr.onabort = handler;\n xdr.onerror = handler;\n xdr.ontimeout = handler;\n xdr.onprogress = function () {};\n xdr.send(request.getBody());\n });\n}\n\n/**\n * CORS Interceptor.\n */\n\nvar SUPPORTS_CORS = inBrowser && 'withCredentials' in new XMLHttpRequest();\n\nfunction cors (request) {\n\n if (inBrowser) {\n\n var orgUrl = Url.parse(location.href);\n var reqUrl = Url.parse(request.getUrl());\n\n if (reqUrl.protocol !== orgUrl.protocol || reqUrl.host !== orgUrl.host) {\n\n request.crossOrigin = true;\n request.emulateHTTP = false;\n\n if (!SUPPORTS_CORS) {\n request.client = xdrClient;\n }\n }\n }\n\n}\n\n/**\n * Form data Interceptor.\n */\n\nfunction form (request) {\n\n if (isFormData(request.body)) {\n request.headers.delete('Content-Type');\n } else if (isObject(request.body) && request.emulateJSON) {\n request.body = Url.params(request.body);\n request.headers.set('Content-Type', 'application/x-www-form-urlencoded');\n }\n\n}\n\n/**\n * JSON Interceptor.\n */\n\nfunction json (request) {\n\n var type = request.headers.get('Content-Type') || '';\n\n if (isObject(request.body) && type.indexOf('application/json') === 0) {\n request.body = JSON.stringify(request.body);\n }\n\n return function (response) {\n\n return response.bodyText ? when(response.text(), function (text) {\n\n var type = response.headers.get('Content-Type') || '';\n\n if (type.indexOf('application/json') === 0 || isJson(text)) {\n\n try {\n response.body = JSON.parse(text);\n } catch (e) {\n response.body = null;\n }\n\n } else {\n response.body = text;\n }\n\n return response;\n\n }) : response;\n\n };\n}\n\nfunction isJson(str) {\n\n var start = str.match(/^\\s*(\\[|\\{)/);\n var end = {'[': /]\\s*$/, '{': /}\\s*$/};\n\n return start && end[start[1]].test(str);\n}\n\n/**\n * JSONP client (Browser).\n */\n\nfunction jsonpClient (request) {\n return new PromiseObj(function (resolve) {\n\n var name = request.jsonp || 'callback', callback = request.jsonpCallback || '_jsonp' + Math.random().toString(36).substr(2), body = null, handler, script;\n\n handler = function (ref) {\n var type = ref.type;\n\n\n var status = 0;\n\n if (type === 'load' && body !== null) {\n status = 200;\n } else if (type === 'error') {\n status = 500;\n }\n\n if (status && window[callback]) {\n delete window[callback];\n document.body.removeChild(script);\n }\n\n resolve(request.respondWith(body, {status: status}));\n };\n\n window[callback] = function (result) {\n body = JSON.stringify(result);\n };\n\n request.abort = function () {\n handler({type: 'abort'});\n };\n\n request.params[name] = callback;\n\n if (request.timeout) {\n setTimeout(request.abort, request.timeout);\n }\n\n script = document.createElement('script');\n script.src = request.getUrl();\n script.type = 'text/javascript';\n script.async = true;\n script.onload = handler;\n script.onerror = handler;\n\n document.body.appendChild(script);\n });\n}\n\n/**\n * JSONP Interceptor.\n */\n\nfunction jsonp (request) {\n\n if (request.method == 'JSONP') {\n request.client = jsonpClient;\n }\n\n}\n\n/**\n * Before Interceptor.\n */\n\nfunction before (request) {\n\n if (isFunction(request.before)) {\n request.before.call(this, request);\n }\n\n}\n\n/**\n * HTTP method override Interceptor.\n */\n\nfunction method (request) {\n\n if (request.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(request.method)) {\n request.headers.set('X-HTTP-Method-Override', request.method);\n request.method = 'POST';\n }\n\n}\n\n/**\n * Header Interceptor.\n */\n\nfunction header (request) {\n\n var headers = assign({}, Http.headers.common,\n !request.crossOrigin ? Http.headers.custom : {},\n Http.headers[toLower(request.method)]\n );\n\n each(headers, function (value, name) {\n if (!request.headers.has(name)) {\n request.headers.set(name, value);\n }\n });\n\n}\n\n/**\n * XMLHttp client (Browser).\n */\n\nfunction xhrClient (request) {\n return new PromiseObj(function (resolve) {\n\n var xhr = new XMLHttpRequest(), handler = function (event) {\n\n var response = request.respondWith(\n 'response' in xhr ? xhr.response : xhr.responseText, {\n status: xhr.status === 1223 ? 204 : xhr.status, // IE9 status bug\n statusText: xhr.status === 1223 ? 'No Content' : trim(xhr.statusText)\n });\n\n each(trim(xhr.getAllResponseHeaders()).split('\\n'), function (row) {\n response.headers.append(row.slice(0, row.indexOf(':')), row.slice(row.indexOf(':') + 1));\n });\n\n resolve(response);\n };\n\n request.abort = function () { return xhr.abort(); };\n\n xhr.open(request.method, request.getUrl(), true);\n\n if (request.timeout) {\n xhr.timeout = request.timeout;\n }\n\n if (request.responseType && 'responseType' in xhr) {\n xhr.responseType = request.responseType;\n }\n\n if (request.withCredentials || request.credentials) {\n xhr.withCredentials = true;\n }\n\n if (!request.crossOrigin) {\n request.headers.set('X-Requested-With', 'XMLHttpRequest');\n }\n\n // deprecated use downloadProgress\n if (isFunction(request.progress) && request.method === 'GET') {\n xhr.addEventListener('progress', request.progress);\n }\n\n if (isFunction(request.downloadProgress)) {\n xhr.addEventListener('progress', request.downloadProgress);\n }\n\n // deprecated use uploadProgress\n if (isFunction(request.progress) && /^(POST|PUT)$/i.test(request.method)) {\n xhr.upload.addEventListener('progress', request.progress);\n }\n\n if (isFunction(request.uploadProgress) && xhr.upload) {\n xhr.upload.addEventListener('progress', request.uploadProgress);\n }\n\n request.headers.forEach(function (value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n xhr.onload = handler;\n xhr.onabort = handler;\n xhr.onerror = handler;\n xhr.ontimeout = handler;\n xhr.send(request.getBody());\n });\n}\n\n/**\n * Http client (Node).\n */\n\nfunction nodeClient (request) {\n\n var client = require('got');\n\n return new PromiseObj(function (resolve) {\n\n var url = request.getUrl();\n var body = request.getBody();\n var method = request.method;\n var headers = {}, handler;\n\n request.headers.forEach(function (value, name) {\n headers[name] = value;\n });\n\n client(url, {body: body, method: method, headers: headers}).then(handler = function (resp) {\n\n var response = request.respondWith(resp.body, {\n status: resp.statusCode,\n statusText: trim(resp.statusMessage)\n });\n\n each(resp.headers, function (value, name) {\n response.headers.set(name, value);\n });\n\n resolve(response);\n\n }, function (error$$1) { return handler(error$$1.response); });\n });\n}\n\n/**\n * Base client.\n */\n\nfunction Client (context) {\n\n var reqHandlers = [sendRequest], resHandlers = [];\n\n if (!isObject(context)) {\n context = null;\n }\n\n function Client(request) {\n while (reqHandlers.length) {\n\n var handler = reqHandlers.pop();\n\n if (isFunction(handler)) {\n\n var response = (void 0), next = (void 0);\n\n response = handler.call(context, request, function (val) { return next = val; }) || next;\n\n if (isObject(response)) {\n return new PromiseObj(function (resolve, reject) {\n\n resHandlers.forEach(function (handler) {\n response = when(response, function (response) {\n return handler.call(context, response) || response;\n }, reject);\n });\n\n when(response, resolve, reject);\n\n }, context);\n }\n\n if (isFunction(response)) {\n resHandlers.unshift(response);\n }\n\n } else {\n warn((\"Invalid interceptor of type \" + (typeof handler) + \", must be a function\"));\n }\n }\n }\n\n Client.use = function (handler) {\n reqHandlers.push(handler);\n };\n\n return Client;\n}\n\nfunction sendRequest(request) {\n\n var client = request.client || (inBrowser ? xhrClient : nodeClient);\n\n return client(request);\n}\n\n/**\n * HTTP Headers.\n */\n\nvar Headers = function Headers(headers) {\n var this$1 = this;\n\n\n this.map = {};\n\n each(headers, function (value, name) { return this$1.append(name, value); });\n};\n\nHeaders.prototype.has = function has (name) {\n return getName(this.map, name) !== null;\n};\n\nHeaders.prototype.get = function get (name) {\n\n var list = this.map[getName(this.map, name)];\n\n return list ? list.join() : null;\n};\n\nHeaders.prototype.getAll = function getAll (name) {\n return this.map[getName(this.map, name)] || [];\n};\n\nHeaders.prototype.set = function set (name, value) {\n this.map[normalizeName(getName(this.map, name) || name)] = [trim(value)];\n};\n\nHeaders.prototype.append = function append (name, value) {\n\n var list = this.map[getName(this.map, name)];\n\n if (list) {\n list.push(trim(value));\n } else {\n this.set(name, value);\n }\n};\n\nHeaders.prototype.delete = function delete$1 (name) {\n delete this.map[getName(this.map, name)];\n};\n\nHeaders.prototype.deleteAll = function deleteAll () {\n this.map = {};\n};\n\nHeaders.prototype.forEach = function forEach (callback, thisArg) {\n var this$1 = this;\n\n each(this.map, function (list, name) {\n each(list, function (value) { return callback.call(thisArg, value, name, this$1); });\n });\n};\n\nfunction getName(map, name) {\n return Object.keys(map).reduce(function (prev, curr) {\n return toLower(name) === toLower(curr) ? curr : prev;\n }, null);\n}\n\nfunction normalizeName(name) {\n\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name');\n }\n\n return trim(name);\n}\n\n/**\n * HTTP Response.\n */\n\nvar Response = function Response(body, ref) {\n var url = ref.url;\n var headers = ref.headers;\n var status = ref.status;\n var statusText = ref.statusText;\n\n\n this.url = url;\n this.ok = status >= 200 && status < 300;\n this.status = status || 0;\n this.statusText = statusText || '';\n this.headers = new Headers(headers);\n this.body = body;\n\n if (isString(body)) {\n\n this.bodyText = body;\n\n } else if (isBlob(body)) {\n\n this.bodyBlob = body;\n\n if (isBlobText(body)) {\n this.bodyText = blobText(body);\n }\n }\n};\n\nResponse.prototype.blob = function blob () {\n return when(this.bodyBlob);\n};\n\nResponse.prototype.text = function text () {\n return when(this.bodyText);\n};\n\nResponse.prototype.json = function json () {\n return when(this.text(), function (text) { return JSON.parse(text); });\n};\n\nObject.defineProperty(Response.prototype, 'data', {\n\n get: function get() {\n return this.body;\n },\n\n set: function set(body) {\n this.body = body;\n }\n\n});\n\nfunction blobText(body) {\n return new PromiseObj(function (resolve) {\n\n var reader = new FileReader();\n\n reader.readAsText(body);\n reader.onload = function () {\n resolve(reader.result);\n };\n\n });\n}\n\nfunction isBlobText(body) {\n return body.type.indexOf('text') === 0 || body.type.indexOf('json') !== -1;\n}\n\n/**\n * HTTP Request.\n */\n\nvar Request = function Request(options$$1) {\n\n this.body = null;\n this.params = {};\n\n assign(this, options$$1, {\n method: toUpper(options$$1.method || 'GET')\n });\n\n if (!(this.headers instanceof Headers)) {\n this.headers = new Headers(this.headers);\n }\n};\n\nRequest.prototype.getUrl = function getUrl () {\n return Url(this);\n};\n\nRequest.prototype.getBody = function getBody () {\n return this.body;\n};\n\nRequest.prototype.respondWith = function respondWith (body, options$$1) {\n return new Response(body, assign(options$$1 || {}, {url: this.getUrl()}));\n};\n\n/**\n * Service for sending network requests.\n */\n\nvar COMMON_HEADERS = {'Accept': 'application/json, text/plain, */*'};\nvar JSON_CONTENT_TYPE = {'Content-Type': 'application/json;charset=utf-8'};\n\nfunction Http(options$$1) {\n\n var self = this || {}, client = Client(self.$vm);\n\n defaults(options$$1 || {}, self.$options, Http.options);\n\n Http.interceptors.forEach(function (handler) {\n\n if (isString(handler)) {\n handler = Http.interceptor[handler];\n }\n\n if (isFunction(handler)) {\n client.use(handler);\n }\n\n });\n\n return client(new Request(options$$1)).then(function (response) {\n\n return response.ok ? response : PromiseObj.reject(response);\n\n }, function (response) {\n\n if (response instanceof Error) {\n error(response);\n }\n\n return PromiseObj.reject(response);\n });\n}\n\nHttp.options = {};\n\nHttp.headers = {\n put: JSON_CONTENT_TYPE,\n post: JSON_CONTENT_TYPE,\n patch: JSON_CONTENT_TYPE,\n delete: JSON_CONTENT_TYPE,\n common: COMMON_HEADERS,\n custom: {}\n};\n\nHttp.interceptor = {before: before, method: method, jsonp: jsonp, json: json, form: form, header: header, cors: cors};\nHttp.interceptors = ['before', 'method', 'jsonp', 'json', 'form', 'header', 'cors'];\n\n['get', 'delete', 'head', 'jsonp'].forEach(function (method$$1) {\n\n Http[method$$1] = function (url, options$$1) {\n return this(assign(options$$1 || {}, {url: url, method: method$$1}));\n };\n\n});\n\n['post', 'put', 'patch'].forEach(function (method$$1) {\n\n Http[method$$1] = function (url, body, options$$1) {\n return this(assign(options$$1 || {}, {url: url, method: method$$1, body: body}));\n };\n\n});\n\n/**\n * Service for interacting with RESTful services.\n */\n\nfunction Resource(url, params, actions, options$$1) {\n\n var self = this || {}, resource = {};\n\n actions = assign({},\n Resource.actions,\n actions\n );\n\n each(actions, function (action, name) {\n\n action = merge({url: url, params: assign({}, params)}, options$$1, action);\n\n resource[name] = function () {\n return (self.$http || Http)(opts(action, arguments));\n };\n });\n\n return resource;\n}\n\nfunction opts(action, args) {\n\n var options$$1 = assign({}, action), params = {}, body;\n\n switch (args.length) {\n\n case 2:\n\n params = args[0];\n body = args[1];\n\n break;\n\n case 1:\n\n if (/^(POST|PUT|PATCH)$/i.test(options$$1.method)) {\n body = args[0];\n } else {\n params = args[0];\n }\n\n break;\n\n case 0:\n\n break;\n\n default:\n\n throw 'Expected up to 2 arguments [params, body], got ' + args.length + ' arguments';\n }\n\n options$$1.body = body;\n options$$1.params = assign({}, options$$1.params, params);\n\n return options$$1;\n}\n\nResource.actions = {\n\n get: {method: 'GET'},\n save: {method: 'POST'},\n query: {method: 'GET'},\n update: {method: 'PUT'},\n remove: {method: 'DELETE'},\n delete: {method: 'DELETE'}\n\n};\n\n/**\n * Install plugin.\n */\n\nfunction plugin(Vue) {\n\n if (plugin.installed) {\n return;\n }\n\n Util(Vue);\n\n Vue.url = Url;\n Vue.http = Http;\n Vue.resource = Resource;\n Vue.Promise = PromiseObj;\n\n Object.defineProperties(Vue.prototype, {\n\n $url: {\n get: function get() {\n return options(Vue.url, this, this.$options.url);\n }\n },\n\n $http: {\n get: function get() {\n return options(Vue.http, this, this.$options.http);\n }\n },\n\n $resource: {\n get: function get() {\n return Vue.resource.bind(this);\n }\n },\n\n $promise: {\n get: function get() {\n var this$1 = this;\n\n return function (executor) { return new Vue.Promise(executor, this$1); };\n }\n }\n\n });\n}\n\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(plugin);\n}\n\nexport default plugin;\nexport { Url, Http, Resource };\n","var JsonWebTokenError = function (message, error) {\n Error.call(this, message);\n if(Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = 'JsonWebTokenError';\n this.message = message;\n if (error) this.inner = error;\n};\n\nJsonWebTokenError.prototype = Object.create(Error.prototype);\nJsonWebTokenError.prototype.constructor = JsonWebTokenError;\n\nmodule.exports = JsonWebTokenError;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var vi = moment.defineLocale('vi', {\n months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),\n monthsParseExact : true,\n weekdays : 'chủ nháºt_thứ hai_thứ ba_thứ tÆ°_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /sa|ch/i,\n isPM : function (input) {\n return /^ch$/i.test(input);\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM [năm] YYYY',\n LLL : 'D MMMM [năm] YYYY HH:mm',\n LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',\n l : 'DD/M/YYYY',\n ll : 'D MMM YYYY',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd, D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngà y mai lúc] LT',\n nextWeek: 'dddd [tuần tá»›i lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần rồi lúc] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s tá»›i',\n past : '%s trÆ°á»›c',\n s : 'và i giây',\n ss : '%d giây' ,\n m : 'má»™t phút',\n mm : '%d phút',\n h : 'má»™t giá»',\n hh : '%d giá»',\n d : 'má»™t ngà y',\n dd : '%d ngà y',\n M : 'má»™t tháng',\n MM : '%d tháng',\n y : 'má»™t năm',\n yy : '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact : true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juÄe u] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[proÅ¡le] [nedjelje] [u] LT',\n '[proÅ¡log] [ponedjeljka] [u] LT',\n '[proÅ¡log] [utorka] [u] LT',\n '[proÅ¡le] [srijede] [u] LT',\n '[proÅ¡log] [Äetvrtka] [u] LT',\n '[proÅ¡log] [petka] [u] LT',\n '[proÅ¡le] [subote] [u] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'nekoliko sekundi',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'dan',\n dd : translator.translate,\n M : 'mjesec',\n MM : translator.translate,\n y : 'godinu',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return me;\n\n})));\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","/*!\n * Vue.js v2.6.10\n * (c) 2014-2019 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Techinically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject)\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__') { continue }\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n if (!children || !children.length) {\n return {}\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/* */\n\nfunction normalizeScopedSlots (\n slots,\n normalSlots,\n prevSlots\n) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n var key = slots && slots.$key;\n if (!slots) {\n res = {};\n } else if (slots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return slots._normalized\n } else if (\n isStable &&\n prevSlots &&\n prevSlots !== emptyObject &&\n key === prevSlots.$key &&\n !hasNormalSlots &&\n !prevSlots.$hasNormal\n ) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevSlots\n } else {\n res = {};\n for (var key$1 in slots) {\n if (slots[key$1] && key$1[0] !== '$') {\n res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key$2 in normalSlots) {\n if (!(key$2 in res)) {\n res[key$2] = proxyNormalSlot(normalSlots, key$2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (slots && Object.isExtensible(slots)) {\n (slots)._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n var normalized = function () {\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res = res && typeof res === 'object' && !Array.isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n return res && (\n res.length === 0 ||\n (res.length === 1 && res[0].isComment) // #9658\n ) ? undefined\n : res\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n return function () { return slots[key]; }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length));\n result = iterator.next();\n }\n } else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n (ret)._isVList = true;\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes = scopedSlotFn(props) || fallback;\n } else {\n nodes = this.$slots[name] || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res,\n // the following are added in 2.6\n hasDynamicKeys,\n contentHashKey\n) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (Array.isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n } else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n if (slot.proxy) {\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n (res).$key = contentHashKey;\n }\n return res\n}\n\n/* */\n\nfunction bindDynamicKeys (baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n // null is a speical value for explicitly removing a binding\n warn(\n (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n this\n );\n }\n }\n return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n return typeof value === 'string' ? symbol + value : value\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var this$1 = this;\n\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!this$1.$slots) {\n normalizeScopedSlots(\n data.scopedSlots,\n this$1.$slots = resolveSlots(children, parent)\n );\n }\n return this$1.$slots\n };\n\n Object.defineProperty(this, 'scopedSlots', ({\n enumerable: true,\n get: function get () {\n return normalizeScopedSlots(data.scopedSlots, this.slots())\n }\n }));\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (process.env.NODE_ENV !== 'production') {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (vnode, hydrating) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent // activeInstance in lifecycle state\n) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n }\n }\n}\n\nfunction mergeHook$1 (f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input'\n ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (\n Array.isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback\n ) {\n on[event] = [callback].concat(existing);\n }\n } else {\n on[event] = callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n if (_parentVnode) {\n vm.$scopedSlots = normalizeScopedSlots(\n _parentVnode.data.scopedSlots,\n vm.$slots,\n vm.$scopedSlots\n );\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack becaues all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } finally {\n currentRenderingInstance = null;\n }\n // if the returned array contains only a single node, allow it\n if (Array.isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (owner && !isDef(factory.owners)) {\n var owners = factory.owners = [owner];\n var sync = true;\n var timerLoading = null;\n var timerTimeout = null\n\n ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n var forceRender = function (renderCompleted) {\n for (var i = 0, l = owners.length; i < l; i++) {\n (owners[i]).$forceUpdate();\n }\n\n if (renderCompleted) {\n owners.length = 0;\n if (timerLoading !== null) {\n clearTimeout(timerLoading);\n timerLoading = null;\n }\n if (timerTimeout !== null) {\n clearTimeout(timerTimeout);\n timerTimeout = null;\n }\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender(true);\n } else {\n owners.length = 0;\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender(true);\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (isPromise(res)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isPromise(res.component)) {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n timerLoading = setTimeout(function () {\n timerLoading = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender(false);\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n timerTimeout = setTimeout(function () {\n timerTimeout = null;\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn) {\n target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n var _target = target;\n return function onceHandler () {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n }\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n vm.$off(event[i$1], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\" + event + \"\\\"\";\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm\n };\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n }\n}\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((\"vue \" + name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, {\n before: function before () {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'beforeUpdate');\n }\n }\n }, true /* isRenderWatcher */);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!(\n (newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)\n );\n\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n var performance = window.performance;\n if (\n performance &&\n typeof performance.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp\n ) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance.now(); };\n }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n flushSchedulerQueue();\n return\n }\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction createGetterInvoker(fn) {\n return function computedGetter () {\n return fn.call(this, this)\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof methods[key] !== 'function') {\n warn(\n \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function () {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n try {\n cb.call(vm, watcher.value);\n } catch (error) {\n handleError(error, vm, (\"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\"));\n }\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = latest[key];\n }\n }\n return modified\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\n\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n};\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n};\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj\n };\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.6.10';\n\n/* */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n\nvar convertEnumeratedValue = function (key, value) {\n return isFalsyAttrValue(value) || value === 'false'\n ? 'false'\n // allow arbitrary string value for contenteditable\n : key === 'contenteditable' && isValidContentEditableValue(value)\n ? value\n : 'true'\n};\n\nvar isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,translate,' +\n 'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n return val == null || val === false\n};\n\n/* */\n\nfunction genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n}\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n);\n\nvar isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/* */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n}\n\n/* */\n\nfunction createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode (node) {\n return node.parentNode\n}\n\nfunction nextSibling (node) {\n return node.nextSibling\n}\n\nfunction tagName (node) {\n return node.tagName\n}\n\nfunction setTextContent (node, text) {\n node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n node.setAttribute(scopeId, '');\n}\n\nvar nodeOps = /*#__PURE__*/Object.freeze({\n createElement: createElement$1,\n createElementNS: createElementNS,\n createTextNode: createTextNode,\n createComment: createComment,\n insertBefore: insertBefore,\n removeChild: removeChild,\n appendChild: appendChild,\n parentNode: parentNode,\n nextSibling: nextSibling,\n tagName: tagName,\n setTextContent: setTextContent,\n setStyleScope: setStyleScope\n});\n\n/* */\n\nvar ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n};\n\nfunction registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!isDef(key)) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n return (\n a.key === b.key && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n a.asyncFactory === b.asyncFactory &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n}\n\nfunction sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n}\n\nfunction createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove$$1 () {\n if (--remove$$1.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove$$1.listeners = listeners;\n return remove$$1\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n function isUnknownElement$$1 (vnode, inVPre) {\n return (\n !inVPre &&\n !vnode.ns &&\n !(\n config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag\n })\n ) &&\n config.isUnknownElement(vnode.tag)\n )\n }\n\n var creatingElmInVPre = 0;\n\n function createElm (\n vnode,\n insertedVnodeQueue,\n parentElm,\n refElm,\n nested,\n ownerArray,\n index\n ) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n if (process.env.NODE_ENV !== 'production') {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n creatingElmInVPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n insert(parentElm, vnode.elm, refElm);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (nodeOps.parentNode(ref$$1) === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(children);\n }\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n if (isDef(i = vnode.fnScopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n } else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(newCh);\n }\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n } else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function checkDuplicateKeys (children) {\n var seenKeys = {};\n for (var i = 0; i < children.length; i++) {\n var vnode = children[i];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn(\n (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n vnode.context\n );\n } else {\n seenKeys[key] = true;\n }\n }\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (\n oldVnode,\n vnode,\n insertedVnodeQueue,\n ownerArray,\n index,\n removeOnly\n ) {\n if (oldVnode === vnode) {\n return\n }\n\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // clone reused vnode\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(ch);\n }\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true\n }\n // assert node match\n if (process.env.NODE_ENV !== 'production') {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false\n }\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return vnode.tag.indexOf('vue-component') === 0 || (\n !isUnknownElement$$1(vnode, inVPre) &&\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm)) {\n removeVnodes(parentElm, [oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n dir.oldArg = oldDir.arg;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n];\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n ? 'true'\n : key;\n el.setAttribute(key, value);\n }\n } else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, convertEnumeratedValue(key, value));\n } else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n baseSetAttr(el, key, value);\n }\n}\n\nfunction baseSetAttr (el, key, value) {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // #7138: IE10 & 11 fires input event when setting placeholder on\n // <textarea>... block the first input event and remove the blocker\n // immediately.\n /* istanbul ignore if */\n if (\n isIE && !isIE9 &&\n el.tagName === 'TEXTAREA' &&\n key === 'placeholder' && value !== '' && !el.__ieph\n ) {\n var blocker = function (e) {\n e.stopImmediatePropagation();\n el.removeEventListener('input', blocker);\n };\n el.addEventListener('input', blocker);\n // $flow-disable-line\n el.__ieph = true; /* IE placeholder patched */\n }\n el.setAttribute(key, value);\n }\n}\n\nvar attrs = {\n create: updateAttrs,\n update: updateAttrs\n};\n\n/* */\n\nfunction updateClass (oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (\n isUndef(data.staticClass) &&\n isUndef(data.class) && (\n isUndef(oldData) || (\n isUndef(oldData.staticClass) &&\n isUndef(oldData.class)\n )\n )\n ) {\n return\n }\n\n var cls = genClassForVnode(vnode);\n\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n}\n\nvar klass = {\n create: updateClass,\n update: updateClass\n};\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\n/* */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n var event = isIE ? 'change' : 'input';\n on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n delete on[RANGE_TOKEN];\n }\n // This was originally intended to fix #4521 but no longer necessary\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n /* istanbul ignore if */\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n}\n\nvar target$1;\n\nfunction createOnceHandler$1 (event, handler, capture) {\n var _target = target$1; // save current target element in closure\n return function onceHandler () {\n var res = handler.apply(null, arguments);\n if (res !== null) {\n remove$2(event, onceHandler, capture, _target);\n }\n }\n}\n\n// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\n// implementation and does not fire microtasks in between event propagation, so\n// safe to exclude.\nvar useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\n\nfunction add$1 (\n name,\n handler,\n capture,\n passive\n) {\n // async edge case #6566: inner click event triggers patch, event handler\n // attached to outer element during patch, and triggered again. This\n // happens because browsers fire microtask ticks between event propagation.\n // the solution is simple: we save the timestamp when a handler is attached,\n // and the handler would only fire if the event passed to it was fired\n // AFTER it was attached.\n if (useMicrotaskFix) {\n var attachedTimestamp = currentFlushTimestamp;\n var original = handler;\n handler = original._wrapper = function (e) {\n if (\n // no bubbling, should always fire.\n // this is just a safety net in case event.timeStamp is unreliable in\n // certain weird environments...\n e.target === e.currentTarget ||\n // event is fired after handler attachment\n e.timeStamp >= attachedTimestamp ||\n // bail for environments that have buggy event.timeStamp implementations\n // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\n // #9681 QtWebEngine event.timeStamp is negative value\n e.timeStamp <= 0 ||\n // #9448 bail if event is fired in another document in a multi-page\n // electron/nw.js app, since event.timeStamp will be using a different\n // starting reference\n e.target.ownerDocument !== document\n ) {\n return original.apply(this, arguments)\n }\n };\n }\n target$1.addEventListener(\n name,\n handler,\n supportsPassive\n ? { capture: capture, passive: passive }\n : capture\n );\n}\n\nfunction remove$2 (\n name,\n handler,\n capture,\n _target\n) {\n (_target || target$1).removeEventListener(\n name,\n handler._wrapper || handler,\n capture\n );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n target$1 = vnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);\n target$1 = undefined;\n}\n\nvar events = {\n create: updateDOMListeners,\n update: updateDOMListeners\n};\n\n/* */\n\nvar svgContainer;\n\nfunction updateDOMProps (oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__)) {\n props = vnode.data.domProps = extend({}, props);\n }\n\n for (key in oldProps) {\n if (!(key in props)) {\n elm[key] = '';\n }\n }\n\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children) { vnode.children.length = 0; }\n if (cur === oldProps[key]) { continue }\n // #6601 work around Chrome version <= 55 bug where single textNode\n // replaced by innerHTML/textContent retains its parentNode property\n if (elm.childNodes.length === 1) {\n elm.removeChild(elm.childNodes[0]);\n }\n }\n\n if (key === 'value' && elm.tagName !== 'PROGRESS') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, strCur)) {\n elm.value = strCur;\n }\n } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {\n // IE doesn't support innerHTML for SVG elements\n svgContainer = svgContainer || document.createElement('div');\n svgContainer.innerHTML = \"<svg>\" + cur + \"</svg>\";\n var svg = svgContainer.firstChild;\n while (elm.firstChild) {\n elm.removeChild(elm.firstChild);\n }\n while (svg.firstChild) {\n elm.appendChild(svg.firstChild);\n }\n } else if (\n // skip the update if old and new VDOM state is the same.\n // `value` is handled separately because the DOM value may be temporarily\n // out of sync with VDOM state due to focus, composition and modifiers.\n // This #4521 by skipping the unnecesarry `checked` update.\n cur !== oldProps[key]\n ) {\n // some property updates can throw\n // e.g. `value` on <progress> w/ non-finite value\n try {\n elm[key] = cur;\n } catch (e) {}\n }\n }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n return (!elm.composing && (\n elm.tagName === 'OPTION' ||\n isNotInFocusAndDirty(elm, checkVal) ||\n isDirtyWithModifiers(elm, checkVal)\n ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try { notInFocus = document.activeElement !== elm; } catch (e) {}\n return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers)) {\n if (modifiers.number) {\n return toNumber(value) !== toNumber(newVal)\n }\n if (modifiers.trim) {\n return value.trim() !== newVal.trim()\n }\n }\n return value !== newVal\n}\n\nvar domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n};\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle\n ? extend(data.staticStyle, style)\n : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n var res = {};\n var styleData;\n\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (\n childNode && childNode.data &&\n (styleData = normalizeStyleData(childNode.data))\n ) {\n extend(res, styleData);\n }\n }\n }\n\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n\n var parentNode = vnode;\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res\n}\n\n/* */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n } else if (importantRE.test(val)) {\n el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\n } else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n } else {\n el.style[normalizedName] = val;\n }\n }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && (prop in emptyStyle)) {\n return prop\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name = vendorNames[i] + capName;\n if (name in emptyStyle) {\n return name\n }\n }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n\n if (isUndef(data.staticStyle) && isUndef(data.style) &&\n isUndef(oldData.staticStyle) && isUndef(oldData.style)\n ) {\n return\n }\n\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n\n var style = normalizeStyleBinding(vnode.data.style) || {};\n\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__)\n ? extend({}, style)\n : style;\n\n var newStyle = getStyle(vnode, true);\n\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n}\n\nvar style = {\n create: updateStyle,\n update: updateStyle\n};\n\n/* */\n\nvar whitespaceRE = /\\s+/;\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n}\n\n/* */\n\nfunction resolveTransition (def$$1) {\n if (!def$$1) {\n return\n }\n /* istanbul ignore else */\n if (typeof def$$1 === 'object') {\n var res = {};\n if (def$$1.css !== false) {\n extend(res, autoCssTransition(def$$1.name || 'v'));\n }\n extend(res, def$$1);\n return res\n } else if (typeof def$$1 === 'string') {\n return autoCssTransition(def$$1)\n }\n}\n\nvar autoCssTransition = cached(function (name) {\n return {\n enterClass: (name + \"-enter\"),\n enterToClass: (name + \"-enter-to\"),\n enterActiveClass: (name + \"-enter-active\"),\n leaveClass: (name + \"-leave\"),\n leaveToClass: (name + \"-leave-to\"),\n leaveActiveClass: (name + \"-leave-active\")\n }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined\n ) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined\n ) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n ? window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout\n : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n raf(function () {\n raf(fn);\n });\n}\n\nfunction addTransitionClass (el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n}\n\nfunction removeTransitionClass (el, cls) {\n if (el._transitionClasses) {\n remove(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n el,\n expectedType,\n cb\n) {\n var ref = getTransitionInfo(el, expectedType);\n var type = ref.type;\n var timeout = ref.timeout;\n var propCount = ref.propCount;\n if (!type) { return cb() }\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n var styles = window.getComputedStyle(el);\n // JSDOM may return undefined for transition properties\n var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\n var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\n var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform =\n type === TRANSITION &&\n transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n }\n}\n\nfunction getTimeout (delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i])\n }))\n}\n\n// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\n// in a locale-dependent way, using a comma instead of a dot.\n// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\n// as a floor function) causing unexpected behaviors\nfunction toMs (s) {\n return Number(s.slice(0, -1).replace(',', '.')) * 1000\n}\n\n/* */\n\nfunction enter (vnode, toggleDisplay) {\n var el = vnode.elm;\n\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return\n }\n\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var enterClass = data.enterClass;\n var enterToClass = data.enterToClass;\n var enterActiveClass = data.enterActiveClass;\n var appearClass = data.appearClass;\n var appearToClass = data.appearToClass;\n var appearActiveClass = data.appearActiveClass;\n var beforeEnter = data.beforeEnter;\n var enter = data.enter;\n var afterEnter = data.afterEnter;\n var enterCancelled = data.enterCancelled;\n var beforeAppear = data.beforeAppear;\n var appear = data.appear;\n var afterAppear = data.afterAppear;\n var appearCancelled = data.appearCancelled;\n var duration = data.duration;\n\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n context = transitionNode.context;\n transitionNode = transitionNode.parent;\n }\n\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n if (isAppear && !appear && appear !== '') {\n return\n }\n\n var startClass = isAppear && appearClass\n ? appearClass\n : enterClass;\n var activeClass = isAppear && appearActiveClass\n ? appearActiveClass\n : enterActiveClass;\n var toClass = isAppear && appearToClass\n ? appearToClass\n : enterToClass;\n\n var beforeEnterHook = isAppear\n ? (beforeAppear || beforeEnter)\n : beforeEnter;\n var enterHook = isAppear\n ? (typeof appear === 'function' ? appear : enter)\n : enter;\n var afterEnterHook = isAppear\n ? (afterAppear || afterEnter)\n : afterEnter;\n var enterCancelledHook = isAppear\n ? (appearCancelled || enterCancelled)\n : enterCancelled;\n\n var explicitEnterDuration = toNumber(\n isObject(duration)\n ? duration.enter\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n\n var cb = el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n } else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n });\n\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode, 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb\n ) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n removeTransitionClass(el, startClass);\n if (!cb.cancelled) {\n addTransitionClass(el, toClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n}\n\nfunction leave (vnode, rm) {\n var el = vnode.elm;\n\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data) || el.nodeType !== 1) {\n return rm()\n }\n\n /* istanbul ignore if */\n if (isDef(el._leaveCb)) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var leaveClass = data.leaveClass;\n var leaveToClass = data.leaveToClass;\n var leaveActiveClass = data.leaveActiveClass;\n var beforeLeave = data.beforeLeave;\n var leave = data.leave;\n var afterLeave = data.afterLeave;\n var leaveCancelled = data.leaveCancelled;\n var delayLeave = data.delayLeave;\n var duration = data.duration;\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n\n var explicitLeaveDuration = toNumber(\n isObject(duration)\n ? duration.leave\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n\n var cb = el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n } else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n });\n\n if (delayLeave) {\n delayLeave(performLeave);\n } else {\n performLeave();\n }\n\n function performLeave () {\n // the delayed leave may have already been cancelled\n if (cb.cancelled) {\n return\n }\n // record leaving element\n if (!vnode.data.show && el.parentNode) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n removeTransitionClass(el, leaveClass);\n if (!cb.cancelled) {\n addTransitionClass(el, leaveToClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n if (typeof val !== 'number') {\n warn(\n \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n \"got \" + (JSON.stringify(val)) + \".\",\n vnode.context\n );\n } else if (isNaN(val)) {\n warn(\n \"<transition> explicit \" + name + \" duration is NaN - \" +\n 'the duration expression might be incorrect.',\n vnode.context\n );\n }\n}\n\nfunction isValidDuration (val) {\n return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n if (isUndef(fn)) {\n return false\n }\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(\n Array.isArray(invokerFns)\n ? invokerFns[0]\n : invokerFns\n )\n } else {\n return (fn._length || fn.length) > 1\n }\n}\n\nfunction _enter (_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n}\n\nvar transition = inBrowser ? {\n create: _enter,\n activate: _enter,\n remove: function remove$$1 (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n leave(vnode, rm);\n } else {\n rm();\n }\n }\n} : {};\n\nvar platformModules = [\n attrs,\n klass,\n events,\n domProps,\n style,\n transition\n];\n\n/* */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nvar directive = {\n inserted: function inserted (el, binding, vnode, oldVnode) {\n if (vnode.tag === 'select') {\n // #6903\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n directive.componentUpdated(el, binding, vnode);\n });\n } else {\n setSelected(el, binding, vnode.context);\n }\n el._vOptions = [].map.call(el.options, getValue);\n } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n\n componentUpdated: function componentUpdated (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions = el._vOptions;\n var curOptions = el._vOptions = [].map.call(el.options, getValue);\n if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n};\n\nfunction setSelected (el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n vm\n );\n return\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n}\n\nfunction hasNoMatchingOption (value, options) {\n return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n return '_value' in option\n ? option._value\n : option.value\n}\n\nfunction onCompositionStart (e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) { return }\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode\n}\n\nvar show = {\n bind: function bind (el, ref, vnode) {\n var value = ref.value;\n\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n var originalDisplay = el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display;\n if (value && transition$$1) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n } else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n\n update: function update (el, ref, vnode) {\n var value = ref.value;\n var oldValue = ref.oldValue;\n\n /* istanbul ignore if */\n if (!value === !oldValue) { return }\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n if (transition$$1) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n } else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n } else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n\n unbind: function unbind (\n el,\n binding,\n vnode,\n oldVnode,\n isDestroy\n ) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n};\n\nvar platformDirectives = {\n model: directive,\n show: show\n};\n\n/* */\n\nvar transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children))\n } else {\n return vnode\n }\n}\n\nfunction extractTransitionData (comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key$1 in listeners) {\n data[camelize(key$1)] = listeners[key$1];\n }\n return data\n}\n\nfunction placeholder (h, rawChild) {\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n })\n }\n}\n\nfunction hasParentTransition (vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true\n }\n }\n}\n\nfunction isSameChild (child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\n\nvar isVShowDirective = function (d) { return d.name === 'show'; };\n\nvar Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n\n render: function render (h) {\n var this$1 = this;\n\n var children = this.$slots.default;\n if (!children) {\n return\n }\n\n // filter out text nodes (possible whitespaces)\n children = children.filter(isNotTextNode);\n /* istanbul ignore if */\n if (!children.length) {\n return\n }\n\n // warn multiple elements\n if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n warn(\n '<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.',\n this.$parent\n );\n }\n\n var mode = this.mode;\n\n // warn invalid mode\n if (process.env.NODE_ENV !== 'production' &&\n mode && mode !== 'in-out' && mode !== 'out-in'\n ) {\n warn(\n 'invalid <transition> mode: ' + mode,\n this.$parent\n );\n }\n\n var rawChild = children[0];\n\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild\n }\n\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild\n }\n\n if (this._leaving) {\n return placeholder(h, rawChild)\n }\n\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\" + (this._uid) + \"-\";\n child.key = child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n : child.key;\n\n var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(isVShowDirective)) {\n child.data.show = true;\n }\n\n if (\n oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild) &&\n // #6687 component root is a comment node\n !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n ) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = oldChild.data.transition = extend({}, data);\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n this$1._leaving = false;\n this$1.$forceUpdate();\n });\n return placeholder(h, rawChild)\n } else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild\n }\n var delayedLeave;\n var performLeave = function () { delayedLeave(); };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n }\n }\n\n return rawChild\n }\n};\n\n/* */\n\nvar props = extend({\n tag: String,\n moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n props: props,\n\n beforeMount: function beforeMount () {\n var this$1 = this;\n\n var update = this._update;\n this._update = function (vnode, hydrating) {\n var restoreActiveInstance = setActiveInstance(this$1);\n // force removing pass\n this$1.__patch__(\n this$1._vnode,\n this$1.kept,\n false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n this$1._vnode = this$1.kept;\n restoreActiveInstance();\n update.call(this$1, vnode, hydrating);\n };\n },\n\n render: function render (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = this.prevChildren = this.children;\n var rawChildren = this.$slots.default || [];\n var children = this.children = [];\n var transitionData = extractTransitionData(this);\n\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c\n ;(c.data || (c.data = {})).transition = transitionData;\n } else if (process.env.NODE_ENV !== 'production') {\n var opts = c.componentOptions;\n var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n }\n }\n }\n\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n var c$1 = prevChildren[i$1];\n c$1.data.transition = transitionData;\n c$1.data.pos = c$1.elm.getBoundingClientRect();\n if (map[c$1.key]) {\n kept.push(c$1);\n } else {\n removed.push(c$1);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n\n return h(tag, null, children)\n },\n\n updated: function updated () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return\n }\n\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n\n // force reflow to put everything in position\n // assign to this to avoid being removed in tree-shaking\n // $flow-disable-line\n this._reflow = document.body.offsetHeight;\n\n children.forEach(function (c) {\n if (c.data.moved) {\n var el = c.elm;\n var s = el.style;\n addTransitionClass(el, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n if (e && e.target !== el) {\n return\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(transitionEndEvent, cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n }\n });\n },\n\n methods: {\n hasMove: function hasMove (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform)\n }\n }\n};\n\nfunction callPendingCbs (c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n}\n\nfunction recordPosition (c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n s.transitionDuration = '0s';\n }\n}\n\nvar platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n};\n\n/* */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n setTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue);\n } else if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test'\n ) {\n console[console.info ? 'info' : 'log'](\n 'Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools'\n );\n }\n }\n if (process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n config.productionTip !== false &&\n typeof console !== 'undefined'\n ) {\n console[console.info ? 'info' : 'log'](\n \"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\"\n );\n }\n }, 0);\n}\n\n/* */\n\nexport default Vue;\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","\n /*! \n * portal-vue © Thorsten Lünborg, 2019 \n * \n * Version: 2.1.6\n * \n * LICENCE: MIT \n * \n * https://github.com/linusborg/portal-vue\n * \n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(require('vue'));\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar inBrowser = typeof window !== 'undefined';\nfunction freeze(item) {\n if (Array.isArray(item) || _typeof(item) === 'object') {\n return Object.freeze(item);\n }\n\n return item;\n}\nfunction combinePassengers(transports) {\n var slotProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return transports.reduce(function (passengers, transport) {\n var temp = transport.passengers[0];\n var newPassengers = typeof temp === 'function' ? temp(slotProps) : transport.passengers;\n return passengers.concat(newPassengers);\n }, []);\n}\nfunction stableSort(array, compareFn) {\n return array.map(function (v, idx) {\n return [idx, v];\n }).sort(function (a, b) {\n return compareFn(a[1], b[1]) || a[0] - b[0];\n }).map(function (c) {\n return c[1];\n });\n}\nfunction pick(obj, keys) {\n return keys.reduce(function (acc, key) {\n if (obj.hasOwnProperty(key)) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nvar transports = {};\nvar targets = {};\nvar sources = {};\nvar Wormhole = Vue.extend({\n data: function data() {\n return {\n transports: transports,\n targets: targets,\n sources: sources,\n trackInstances: inBrowser\n };\n },\n methods: {\n open: function open(transport) {\n if (!inBrowser) return;\n var to = transport.to,\n from = transport.from,\n passengers = transport.passengers,\n _transport$order = transport.order,\n order = _transport$order === void 0 ? Infinity : _transport$order;\n if (!to || !from || !passengers) return;\n var newTransport = {\n to: to,\n from: from,\n passengers: freeze(passengers),\n order: order\n };\n var keys = Object.keys(this.transports);\n\n if (keys.indexOf(to) === -1) {\n Vue.set(this.transports, to, []);\n }\n\n var currentIndex = this.$_getTransportIndex(newTransport); // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n\n var newTransports = this.transports[to].slice(0);\n\n if (currentIndex === -1) {\n newTransports.push(newTransport);\n } else {\n newTransports[currentIndex] = newTransport;\n }\n\n this.transports[to] = stableSort(newTransports, function (a, b) {\n return a.order - b.order;\n });\n },\n close: function close(transport) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var to = transport.to,\n from = transport.from;\n if (!to || !from && force === false) return;\n\n if (!this.transports[to]) {\n return;\n }\n\n if (force) {\n this.transports[to] = [];\n } else {\n var index = this.$_getTransportIndex(transport);\n\n if (index >= 0) {\n // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n var newTransports = this.transports[to].slice(0);\n newTransports.splice(index, 1);\n this.transports[to] = newTransports;\n }\n }\n },\n registerTarget: function registerTarget(target, vm, force) {\n if (!inBrowser) return;\n\n if (this.trackInstances && !force && this.targets[target]) {\n console.warn(\"[portal-vue]: Target \".concat(target, \" already exists\"));\n }\n\n this.$set(this.targets, target, Object.freeze([vm]));\n },\n unregisterTarget: function unregisterTarget(target) {\n this.$delete(this.targets, target);\n },\n registerSource: function registerSource(source, vm, force) {\n if (!inBrowser) return;\n\n if (this.trackInstances && !force && this.sources[source]) {\n console.warn(\"[portal-vue]: source \".concat(source, \" already exists\"));\n }\n\n this.$set(this.sources, source, Object.freeze([vm]));\n },\n unregisterSource: function unregisterSource(source) {\n this.$delete(this.sources, source);\n },\n hasTarget: function hasTarget(to) {\n return !!(this.targets[to] && this.targets[to][0]);\n },\n hasSource: function hasSource(to) {\n return !!(this.sources[to] && this.sources[to][0]);\n },\n hasContentFor: function hasContentFor(to) {\n return !!this.transports[to] && !!this.transports[to].length;\n },\n // Internal\n $_getTransportIndex: function $_getTransportIndex(_ref) {\n var to = _ref.to,\n from = _ref.from;\n\n for (var i in this.transports[to]) {\n if (this.transports[to][i].from === from) {\n return +i;\n }\n }\n\n return -1;\n }\n }\n});\nvar wormhole = new Wormhole(transports);\n\nvar _id = 1;\nvar Portal = Vue.extend({\n name: 'portal',\n props: {\n disabled: {\n type: Boolean\n },\n name: {\n type: String,\n default: function _default() {\n return String(_id++);\n }\n },\n order: {\n type: Number,\n default: 0\n },\n slim: {\n type: Boolean\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'DIV'\n },\n to: {\n type: String,\n default: function _default() {\n return String(Math.round(Math.random() * 10000000));\n }\n }\n },\n created: function created() {\n var _this = this;\n\n this.$nextTick(function () {\n wormhole.registerSource(_this.name, _this);\n });\n },\n mounted: function mounted() {\n if (!this.disabled) {\n this.sendUpdate();\n }\n },\n updated: function updated() {\n if (this.disabled) {\n this.clear();\n } else {\n this.sendUpdate();\n }\n },\n beforeDestroy: function beforeDestroy() {\n wormhole.unregisterSource(this.name);\n this.clear();\n },\n watch: {\n to: function to(newValue, oldValue) {\n oldValue && oldValue !== newValue && this.clear(oldValue);\n this.sendUpdate();\n }\n },\n methods: {\n clear: function clear(target) {\n var closer = {\n from: this.name,\n to: target || this.to\n };\n wormhole.close(closer);\n },\n normalizeSlots: function normalizeSlots() {\n return this.$scopedSlots.default ? [this.$scopedSlots.default] : this.$slots.default;\n },\n normalizeOwnChildren: function normalizeOwnChildren(children) {\n return typeof children === 'function' ? children(this.slotProps) : children;\n },\n sendUpdate: function sendUpdate() {\n var slotContent = this.normalizeSlots();\n\n if (slotContent) {\n var transport = {\n from: this.name,\n to: this.to,\n passengers: _toConsumableArray(slotContent),\n order: this.order\n };\n wormhole.open(transport);\n } else {\n this.clear();\n }\n }\n },\n render: function render(h) {\n var children = this.$slots.default || this.$scopedSlots.default || [];\n var Tag = this.tag;\n\n if (children && this.disabled) {\n return children.length <= 1 && this.slim ? this.normalizeOwnChildren(children)[0] : h(Tag, [this.normalizeOwnChildren(children)]);\n } else {\n return this.slim ? h() : h(Tag, {\n class: {\n 'v-portal': true\n },\n style: {\n display: 'none'\n },\n key: 'v-portal-placeholder'\n });\n }\n }\n});\n\nvar PortalTarget = Vue.extend({\n name: 'portalTarget',\n props: {\n multiple: {\n type: Boolean,\n default: false\n },\n name: {\n type: String,\n required: true\n },\n slim: {\n type: Boolean,\n default: false\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'div'\n },\n transition: {\n type: [String, Object, Function]\n }\n },\n data: function data() {\n return {\n transports: wormhole.transports,\n firstRender: true\n };\n },\n created: function created() {\n var _this = this;\n\n this.$nextTick(function () {\n wormhole.registerTarget(_this.name, _this);\n });\n },\n watch: {\n ownTransports: function ownTransports() {\n this.$emit('change', this.children().length > 0);\n },\n name: function name(newVal, oldVal) {\n /**\r\n * TODO\r\n * This should warn as well ...\r\n */\n wormhole.unregisterTarget(oldVal);\n wormhole.registerTarget(newVal, this);\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n if (this.transition) {\n this.$nextTick(function () {\n // only when we have a transition, because it causes a re-render\n _this2.firstRender = false;\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n wormhole.unregisterTarget(this.name);\n },\n computed: {\n ownTransports: function ownTransports() {\n var transports = this.transports[this.name] || [];\n\n if (this.multiple) {\n return transports;\n }\n\n return transports.length === 0 ? [] : [transports[transports.length - 1]];\n },\n passengers: function passengers() {\n return combinePassengers(this.ownTransports, this.slotProps);\n }\n },\n methods: {\n // can't be a computed prop because it has to \"react\" to $slot changes.\n children: function children() {\n return this.passengers.length !== 0 ? this.passengers : this.$scopedSlots.default ? this.$scopedSlots.default(this.slotProps) : this.$slots.default || [];\n },\n // can't be a computed prop because it has to \"react\" to this.children().\n noWrapper: function noWrapper() {\n var noWrapper = this.slim && !this.transition;\n\n if (noWrapper && this.children().length > 1) {\n console.warn('[portal-vue]: PortalTarget with `slim` option received more than one child element.');\n }\n\n return noWrapper;\n }\n },\n render: function render(h) {\n var noWrapper = this.noWrapper();\n var children = this.children();\n var Tag = this.transition || this.tag;\n return noWrapper ? children[0] : this.slim && !Tag ? h() : h(Tag, {\n props: {\n // if we have a transition component, pass the tag if it exists\n tag: this.transition && this.tag ? this.tag : undefined\n },\n class: {\n 'vue-portal-target': true\n }\n }, children);\n }\n});\n\nvar _id$1 = 0;\nvar portalProps = ['disabled', 'name', 'order', 'slim', 'slotProps', 'tag', 'to'];\nvar targetProps = ['multiple', 'transition'];\nvar MountingPortal = Vue.extend({\n name: 'MountingPortal',\n inheritAttrs: false,\n props: {\n append: {\n type: [Boolean, String]\n },\n bail: {\n type: Boolean\n },\n mountTo: {\n type: String,\n required: true\n },\n // Portal\n disabled: {\n type: Boolean\n },\n // name for the portal\n name: {\n type: String,\n default: function _default() {\n return 'mounted_' + String(_id$1++);\n }\n },\n order: {\n type: Number,\n default: 0\n },\n slim: {\n type: Boolean\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'DIV'\n },\n // name for the target\n to: {\n type: String,\n default: function _default() {\n return String(Math.round(Math.random() * 10000000));\n }\n },\n // Target\n multiple: {\n type: Boolean,\n default: false\n },\n targetSlim: {\n type: Boolean\n },\n targetSlotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n targetTag: {\n type: String,\n default: 'div'\n },\n transition: {\n type: [String, Object, Function]\n }\n },\n created: function created() {\n if (typeof document === 'undefined') return;\n var el = document.querySelector(this.mountTo);\n\n if (!el) {\n console.error(\"[portal-vue]: Mount Point '\".concat(this.mountTo, \"' not found in document\"));\n return;\n }\n\n var props = this.$props; // Target already exists\n\n if (wormhole.targets[props.name]) {\n if (props.bail) {\n console.warn(\"[portal-vue]: Target \".concat(props.name, \" is already mounted.\\n Aborting because 'bail: true' is set\"));\n } else {\n this.portalTarget = wormhole.targets[props.name];\n }\n\n return;\n }\n\n var append = props.append;\n\n if (append) {\n var type = typeof append === 'string' ? append : 'DIV';\n var mountEl = document.createElement(type);\n el.appendChild(mountEl);\n el = mountEl;\n } // get props for target from $props\n // we have to rename a few of them\n\n\n var _props = pick(this.$props, targetProps);\n\n _props.slim = this.targetSlim;\n _props.tag = this.targetTag;\n _props.slotProps = this.targetSlotProps;\n _props.name = this.to;\n this.portalTarget = new PortalTarget({\n el: el,\n parent: this.$parent || this,\n propsData: _props\n });\n },\n beforeDestroy: function beforeDestroy() {\n var target = this.portalTarget;\n\n if (this.append) {\n var el = target.$el;\n el.parentNode.removeChild(el);\n }\n\n target.$destroy();\n },\n render: function render(h) {\n if (!this.portalTarget) {\n console.warn(\"[portal-vue] Target wasn't mounted\");\n return h();\n } // if there's no \"manual\" scoped slot, so we create a <Portal> ourselves\n\n\n if (!this.$scopedSlots.manual) {\n var props = pick(this.$props, portalProps);\n return h(Portal, {\n props: props,\n attrs: this.$attrs,\n on: this.$listeners,\n scopedSlots: this.$scopedSlots\n }, this.$slots.default);\n } // else, we render the scoped slot\n\n\n var content = this.$scopedSlots.manual({\n to: this.to\n }); // if user used <template> for the scoped slot\n // content will be an array\n\n if (Array.isArray(content)) {\n content = content[0];\n }\n\n if (!content) return h();\n return content;\n }\n});\n\nfunction install(Vue$$1) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Vue$$1.component(options.portalName || 'Portal', Portal);\n Vue$$1.component(options.portalTargetName || 'PortalTarget', PortalTarget);\n Vue$$1.component(options.MountingPortalName || 'MountingPortal', MountingPortal);\n}\n\nvar index = {\n install: install\n};\n\nexports.default = index;\nexports.Portal = Portal;\nexports.PortalTarget = PortalTarget;\nexports.MountingPortal = MountingPortal;\nexports.Wormhole = wormhole;\n//# sourceMappingURL=portal-vue.common.js.map\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var af = moment.defineLocale('af', {\n months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),\n weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM : function (input) {\n return /^nm$/i.test(input);\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Vandag om] LT',\n nextDay : '[Môre om] LT',\n nextWeek : 'dddd [om] LT',\n lastDay : '[Gister om] LT',\n lastWeek : '[Laas] dddd [om] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'oor %s',\n past : '%s gelede',\n s : '\\'n paar sekondes',\n ss : '%d sekondes',\n m : '\\'n minuut',\n mm : '%d minute',\n h : '\\'n uur',\n hh : '%d ure',\n d : '\\'n dag',\n dd : '%d dae',\n M : '\\'n maand',\n MM : '%d maande',\n y : '\\'n jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week : {\n dow : 1, // Maandag is die eerste dag van die week.\n doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n }\n });\n\n return af;\n\n})));\n","module.exports = require('./lib/_stream_writable.js');\n","module.exports = false;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\n\nfunction getParamSize(keySize) {\n\tvar result = ((keySize / 8) | 0) + (keySize % 8 === 0 ? 0 : 1);\n\treturn result;\n}\n\nvar paramBytesForAlg = {\n\tES256: getParamSize(256),\n\tES384: getParamSize(384),\n\tES512: getParamSize(521)\n};\n\nfunction getParamBytesForAlg(alg) {\n\tvar paramBytes = paramBytesForAlg[alg];\n\tif (paramBytes) {\n\t\treturn paramBytes;\n\t}\n\n\tthrow new Error('Unknown algorithm \"' + alg + '\"');\n}\n\nmodule.exports = getParamBytesForAlg;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var uz = moment.defineLocale('uz', {\n months : 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split('_'),\n monthsShort : 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'D MMMM YYYY, dddd HH:mm'\n },\n calendar : {\n sameDay : '[Бугун Ñоат] LT [да]',\n nextDay : '[Ðртага] LT [да]',\n nextWeek : 'dddd [куни Ñоат] LT [да]',\n lastDay : '[Кеча Ñоат] LT [да]',\n lastWeek : '[Утган] dddd [куни Ñоат] LT [да]',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Якин %s ичида',\n past : 'Бир неча %s олдин',\n s : 'фурÑат',\n ss : '%d фурÑат',\n m : 'бир дакика',\n mm : '%d дакика',\n h : 'бир Ñоат',\n hh : '%d Ñоат',\n d : 'бир кун',\n dd : '%d кун',\n M : 'бир ой',\n MM : '%d ой',\n y : 'бир йил',\n yy : '%d йил'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return uz;\n\n})));\n","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16)\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 }\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n};\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul)\n }\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1)\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1)\n }\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point))\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point))\n }\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n ' y: ' + this.y.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate)\n }\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (var i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (var i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '<EC JPoint Infinity>';\n return '<EC JPoint x: ' + this.x.toString(16, 2) +\n ' y: ' + this.y.toString(16, 2) +\n ' z: ' + this.z.toString(16, 2) + '>';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","/*global exports*/\nvar SignStream = require('./lib/sign-stream');\nvar VerifyStream = require('./lib/verify-stream');\n\nvar ALGORITHMS = [\n 'HS256', 'HS384', 'HS512',\n 'RS256', 'RS384', 'RS512',\n 'PS256', 'PS384', 'PS512',\n 'ES256', 'ES384', 'ES512'\n];\n\nexports.ALGORITHMS = ALGORITHMS;\nexports.sign = SignStream.sign;\nexports.verify = VerifyStream.verify;\nexports.decode = VerifyStream.decode;\nexports.isValid = VerifyStream.isValid;\nexports.createSign = function createSign(opts) {\n return new SignStream(opts);\n};\nexports.createVerify = function createVerify(opts) {\n return new VerifyStream(opts);\n};\n","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array<Byte>} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array<Byte>} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enCa = moment.defineLocale('en-ca', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'YYYY-MM-DD',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n return enCa;\n\n})));\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var jws = require('jws');\n\nmodule.exports = function (jwt, options) {\n options = options || {};\n var decoded = jws.decode(jwt, options);\n if (!decoded) { return null; }\n var payload = decoded.payload;\n\n //try parse the payload\n if(typeof payload === 'string') {\n try {\n var obj = JSON.parse(payload);\n if(obj !== null && typeof obj === 'object') {\n payload = obj;\n }\n } catch (e) { }\n }\n\n //return header if `complete` option is enabled. header includes claims\n //such as `kid` and `alg` used to select the key within a JWKS needed to\n //verify the signature\n if (options.complete === true) {\n return {\n header: decoded.header,\n payload: payload,\n signature: decoded.signature\n };\n }\n return payload;\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n r.strip();\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enGb = moment.defineLocale('en-gb', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': 'à¥',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture)\n {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's': output = 'काही सेकंद'; break;\n case 'ss': output = '%d सेकंद'; break;\n case 'm': output = 'à¤à¤• मिनिट'; break;\n case 'mm': output = '%d मिनिटे'; break;\n case 'h': output = 'à¤à¤• तास'; break;\n case 'hh': output = '%d तास'; break;\n case 'd': output = 'à¤à¤• दिवस'; break;\n case 'dd': output = '%d दिवस'; break;\n case 'M': output = 'à¤à¤• महिना'; break;\n case 'MM': output = '%d महिने'; break;\n case 'y': output = 'à¤à¤• वरà¥à¤·'; break;\n case 'yy': output = '%d वरà¥à¤·à¥‡'; break;\n }\n }\n else {\n switch (string) {\n case 's': output = 'काही सेकंदां'; break;\n case 'ss': output = '%d सेकंदां'; break;\n case 'm': output = 'à¤à¤•à¤¾ मिनिटा'; break;\n case 'mm': output = '%d मिनिटां'; break;\n case 'h': output = 'à¤à¤•à¤¾ तासा'; break;\n case 'hh': output = '%d तासां'; break;\n case 'd': output = 'à¤à¤•à¤¾ दिवसा'; break;\n case 'dd': output = '%d दिवसां'; break;\n case 'M': output = 'à¤à¤•à¤¾ महिनà¥à¤¯à¤¾'; break;\n case 'MM': output = '%d महिनà¥à¤¯à¤¾à¤‚'; break;\n case 'y': output = 'à¤à¤•à¤¾ वरà¥à¤·à¤¾'; break;\n case 'yy': output = '%d वरà¥à¤·à¤¾à¤‚'; break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months : 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¤¿à¤²_मे_जून_जà¥à¤²à¥ˆ_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split('_'),\n monthsShort: 'जाने._फेबà¥à¤°à¥._मारà¥à¤š._à¤à¤ªà¥à¤°à¤¿._मे._जून._जà¥à¤²à¥ˆ._ऑग._सपà¥à¤Ÿà¥‡à¤‚._ऑकà¥à¤Ÿà¥‹._नोवà¥à¤¹à¥‡à¤‚._डिसें.'.split('_'),\n monthsParseExact : true,\n weekdays : 'रविवार_सोमवार_मंगळवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort : 'रवि_सोम_मंगळ_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin : 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat : {\n LT : 'A h:mm वाजता',\n LTS : 'A h:mm:ss वाजता',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm वाजता',\n LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[उदà¥à¤¯à¤¾] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future: '%sमधà¥à¤¯à¥‡',\n past: '%sपूरà¥à¤µà¥€',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /रातà¥à¤°à¥€|सकाळी|दà¥à¤ªà¤¾à¤°à¥€|सायंकाळी/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रातà¥à¤°à¥€') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळी') {\n return hour;\n } else if (meridiem === 'दà¥à¤ªà¤¾à¤°à¥€') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'सायंकाळी') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रातà¥à¤°à¥€';\n } else if (hour < 10) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दà¥à¤ªà¤¾à¤°à¥€';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रातà¥à¤°à¥€';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return mr;\n\n})));\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': 'à¥',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n var ne = moment.defineLocale('ne', {\n months : 'जनवरी_फेबà¥à¤°à¥à¤µà¤°à¥€_मारà¥à¤š_अपà¥à¤°à¤¿à¤²_मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ_अगषà¥à¤Ÿ_सेपà¥à¤Ÿà¥‡à¤®à¥à¤¬à¤°_अकà¥à¤Ÿà¥‹à¤¬à¤°_नोà¤à¥‡à¤®à¥à¤¬à¤°_डिसेमà¥à¤¬à¤°'.split('_'),\n monthsShort : 'जन._फेबà¥à¤°à¥._मारà¥à¤š_अपà¥à¤°à¤¿._मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ._अग._सेपà¥à¤Ÿ._अकà¥à¤Ÿà¥‹._नोà¤à¥‡._डिसे.'.split('_'),\n monthsParseExact : true,\n weekdays : 'आइतबार_सोमबार_मङà¥à¤—लबार_बà¥à¤§à¤¬à¤¾à¤°_बिहिबार_शà¥à¤•à¥à¤°à¤¬à¤¾à¤°_शनिबार'.split('_'),\n weekdaysShort : 'आइत._सोम._मङà¥à¤—ल._बà¥à¤§._बिहि._शà¥à¤•à¥à¤°._शनि.'.split('_'),\n weekdaysMin : 'आ._सो._मं._बà¥._बि._शà¥._श.'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'Aको h:mm बजे',\n LTS : 'Aको h:mm:ss बजे',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, Aको h:mm बजे',\n LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउà¤à¤¸à¥‹|साà¤à¤/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउà¤à¤¸à¥‹') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साà¤à¤') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउà¤à¤¸à¥‹';\n } else if (hour < 20) {\n return 'साà¤à¤';\n } else {\n return 'राति';\n }\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[à¤à¥‹à¤²à¤¿] LT',\n nextWeek : '[आउà¤à¤¦à¥‹] dddd[,] LT',\n lastDay : '[हिजो] LT',\n lastWeek : '[गà¤à¤•à¥‹] dddd[,] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%sमा',\n past : '%s अगाडि',\n s : 'केही कà¥à¤·à¤£',\n ss : '%d सेकेणà¥à¤¡',\n m : 'à¤à¤• मिनेट',\n mm : '%d मिनेट',\n h : 'à¤à¤• घणà¥à¤Ÿà¤¾',\n hh : '%d घणà¥à¤Ÿà¤¾',\n d : 'à¤à¤• दिन',\n dd : '%d दिन',\n M : 'à¤à¤• महिना',\n MM : '%d महिना',\n y : 'à¤à¤• बरà¥à¤·',\n yy : '%d बरà¥à¤·'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return ne;\n\n})));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум'\n };\n\n var tg = moment.defineLocale('tg', {\n months : 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split('_'),\n monthsShort : 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays : 'Ñкшанбе_душанбе_Ñешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),\n weekdaysShort : 'Ñшб_дшб_Ñшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin : 'Ñш_дш_Ñш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Имрӯз Ñоати] LT',\n nextDay : '[Пагоҳ Ñоати] LT',\n lastDay : '[Дирӯз Ñоати] LT',\n nextWeek : 'dddd[и] [ҳафтаи оÑнда Ñоати] LT',\n lastWeek : 'dddd[и] [ҳафтаи гузашта Ñоати] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'баъди %s',\n past : '%s пеш',\n s : 'Ñкчанд ÑониÑ',\n m : 'Ñк дақиқа',\n mm : '%d дақиқа',\n h : 'Ñк Ñоат',\n hh : '%d Ñоат',\n d : 'Ñк рӯз',\n dd : '%d рӯз',\n M : 'Ñк моҳ',\n MM : '%d моҳ',\n y : 'Ñк Ñол',\n yy : '%d Ñол'\n },\n meridiemParse: /шаб|Ñубҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'Ñубҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'Ñубҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1th is the first week of the year.\n }\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = 'leden_únor_bÅ™ezen_duben_kvÄ›ten_Äerven_Äervenec_srpen_zářÃ_Å™Ãjen_listopad_prosinec'.split('_'),\n monthsShort = 'led_úno_bÅ™e_dub_kvÄ›_Ävn_Ävc_srp_zář_Å™Ãj_lis_pro'.split('_');\n\n var monthsParse = [/^led/i, /^úno/i, /^bÅ™e/i, /^dub/i, /^kvÄ›/i, /^(Ävn|Äerven$|Äervna)/i, /^(Ävc|Äervenec|Äervence)/i, /^srp/i, /^zář/i, /^Å™Ãj/i, /^lis/i, /^pro/i];\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n var monthsRegex = /^(leden|únor|bÅ™ezen|duben|kvÄ›ten|Äervenec|Äervence|Äerven|Äervna|srpen|zářÃ|Å™Ãjen|listopad|prosinec|led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i;\n\n function plural(n) {\n return (n > 1) && (n < 5) && (~~(n / 10) !== 1);\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dnÃ');\n } else {\n return result + 'dny';\n }\n break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'mÄ›sÃc' : 'mÄ›sÃcem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mÄ›sÃce' : 'mÄ›sÃců');\n } else {\n return result + 'mÄ›sÃci';\n }\n break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n break;\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months : months,\n monthsShort : monthsShort,\n monthsRegex : monthsRegex,\n monthsShortRegex : monthsRegex,\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n monthsStrictRegex : /^(leden|ledna|února|únor|bÅ™ezen|bÅ™ezna|duben|dubna|kvÄ›ten|kvÄ›tna|Äervenec|Äervence|Äerven|Äervna|srpen|srpna|zářÃ|Å™Ãjen|Å™Ãjna|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex : /^(led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i,\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n weekdays : 'nedÄ›le_pondÄ›lÃ_úterý_stÅ™eda_Ätvrtek_pátek_sobota'.split('_'),\n weekdaysShort : 'ne_po_út_st_Ät_pá_so'.split('_'),\n weekdaysMin : 'ne_po_út_st_Ät_pá_so'.split('_'),\n longDateFormat : {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd D. MMMM YYYY H:mm',\n l : 'D. M. YYYY'\n },\n calendar : {\n sameDay: '[dnes v] LT',\n nextDay: '[zÃtra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedÄ›li v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve stÅ™edu v] LT';\n case 4:\n return '[ve Ätvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[vÄera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou nedÄ›li v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou stÅ™edu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pÅ™ed %s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse : /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return cs;\n\n})));\n","/*!\n* sweetalert2 v8.17.6\n* Released under the MIT License.\n*/\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Sweetalert2 = factory());\n}(this, (function () { 'use strict';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nvar consolePrefix = 'SweetAlert2:';\n/**\n * Filter the unique values into a new array\n * @param arr\n */\n\nvar uniqueArray = function uniqueArray(arr) {\n var result = [];\n\n for (var i = 0; i < arr.length; i++) {\n if (result.indexOf(arr[i]) === -1) {\n result.push(arr[i]);\n }\n }\n\n return result;\n};\n/**\n * Returns the array ob object values (Object.values isn't supported in IE11)\n * @param obj\n */\n\nvar objectValues = function objectValues(obj) {\n return Object.keys(obj).map(function (key) {\n return obj[key];\n });\n};\n/**\n * Convert NodeList to Array\n * @param nodeList\n */\n\nvar toArray = function toArray(nodeList) {\n return Array.prototype.slice.call(nodeList);\n};\n/**\n * Standardise console warnings\n * @param message\n */\n\nvar warn = function warn(message) {\n console.warn(\"\".concat(consolePrefix, \" \").concat(message));\n};\n/**\n * Standardise console errors\n * @param message\n */\n\nvar error = function error(message) {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n};\n/**\n * Private global state for `warnOnce`\n * @type {Array}\n * @private\n */\n\nvar previousWarnOnceMessages = [];\n/**\n * Show a console warning, but only if it hasn't already been shown\n * @param message\n */\n\nvar warnOnce = function warnOnce(message) {\n if (!(previousWarnOnceMessages.indexOf(message) !== -1)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n};\n/**\n * Show a one-time console warning about deprecated params/methods\n */\n\nvar warnAboutDepreation = function warnAboutDepreation(deprecatedParam, useInstead) {\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\n};\n/**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n * @param arg\n */\n\nvar callIfFunction = function callIfFunction(arg) {\n return typeof arg === 'function' ? arg() : arg;\n};\nvar isPromise = function isPromise(arg) {\n return arg && Promise.resolve(arg) === arg;\n};\n\nvar DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n});\n\nvar argsToParams = function argsToParams(args) {\n var params = {};\n\n switch (_typeof(args[0])) {\n case 'object':\n _extends(params, args[0]);\n\n break;\n\n default:\n ['title', 'html', 'type'].forEach(function (name, index) {\n switch (_typeof(args[index])) {\n case 'string':\n params[name] = args[index];\n break;\n\n case 'undefined':\n break;\n\n default:\n error(\"Unexpected type of \".concat(name, \"! Expected \\\"string\\\", got \").concat(_typeof(args[index])));\n }\n });\n }\n\n return params;\n};\n\nvar swalPrefix = 'swal2-';\nvar prefix = function prefix(items) {\n var result = {};\n\n for (var i in items) {\n result[items[i]] = swalPrefix + items[i];\n }\n\n return result;\n};\nvar swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'toast', 'toast-shown', 'toast-column', 'fade', 'show', 'hide', 'noanimation', 'close', 'title', 'header', 'content', 'actions', 'confirm', 'cancel', 'footer', 'icon', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl']);\nvar iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);\n\nvar states = {\n previousBodyPadding: null\n};\nvar hasClass = function hasClass(elem, className) {\n return elem.classList.contains(className);\n};\n\nvar removeCustomClasses = function removeCustomClasses(elem) {\n toArray(elem.classList).forEach(function (className) {\n if (!(objectValues(swalClasses).indexOf(className) !== -1) && !(objectValues(iconTypes).indexOf(className) !== -1)) {\n elem.classList.remove(className);\n }\n });\n};\n\nvar applyCustomClass = function applyCustomClass(elem, customClass, className) {\n removeCustomClasses(elem);\n\n if (customClass && customClass[className]) {\n if (typeof customClass[className] !== 'string' && !customClass[className].forEach) {\n return warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(_typeof(customClass[className]), \"\\\"\"));\n }\n\n addClass(elem, customClass[className]);\n }\n};\nfunction getInput(content, inputType) {\n if (!inputType) {\n return null;\n }\n\n switch (inputType) {\n case 'select':\n case 'textarea':\n case 'file':\n return getChildByClass(content, swalClasses[inputType]);\n\n case 'checkbox':\n return content.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n\n case 'radio':\n return content.querySelector(\".\".concat(swalClasses.radio, \" input:checked\")) || content.querySelector(\".\".concat(swalClasses.radio, \" input:first-child\"));\n\n case 'range':\n return content.querySelector(\".\".concat(swalClasses.range, \" input\"));\n\n default:\n return getChildByClass(content, swalClasses.input);\n }\n}\nvar focusInput = function focusInput(input) {\n input.focus(); // place cursor at end of text in text input\n\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n var val = input.value;\n input.value = '';\n input.value = val;\n }\n};\nvar toggleClass = function toggleClass(target, classList, condition) {\n if (!target || !classList) {\n return;\n }\n\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n\n classList.forEach(function (className) {\n if (target.forEach) {\n target.forEach(function (elem) {\n condition ? elem.classList.add(className) : elem.classList.remove(className);\n });\n } else {\n condition ? target.classList.add(className) : target.classList.remove(className);\n }\n });\n};\nvar addClass = function addClass(target, classList) {\n toggleClass(target, classList, true);\n};\nvar removeClass = function removeClass(target, classList) {\n toggleClass(target, classList, false);\n};\nvar getChildByClass = function getChildByClass(elem, className) {\n for (var i = 0; i < elem.childNodes.length; i++) {\n if (hasClass(elem.childNodes[i], className)) {\n return elem.childNodes[i];\n }\n }\n};\nvar applyNumericalStyle = function applyNumericalStyle(elem, property, value) {\n if (value || parseInt(value) === 0) {\n elem.style[property] = typeof value === 'number' ? value + 'px' : value;\n } else {\n elem.style.removeProperty(property);\n }\n};\nvar show = function show(elem) {\n var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n elem.style.opacity = '';\n elem.style.display = display;\n};\nvar hide = function hide(elem) {\n elem.style.opacity = '';\n elem.style.display = 'none';\n};\nvar toggle = function toggle(elem, condition, display) {\n condition ? show(elem, display) : hide(elem);\n}; // borrowed from jquery $(elem).is(':visible') implementation\n\nvar isVisible = function isVisible(elem) {\n return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n};\nvar isScrollable = function isScrollable(elem) {\n return !!(elem.scrollHeight > elem.clientHeight);\n}; // borrowed from https://stackoverflow.com/a/46352119\n\nvar hasCssAnimation = function hasCssAnimation(elem) {\n var style = window.getComputedStyle(elem);\n var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n};\nvar contains = function contains(haystack, needle) {\n if (typeof haystack.contains === 'function') {\n return haystack.contains(needle);\n }\n};\n\nvar getContainer = function getContainer() {\n return document.body.querySelector('.' + swalClasses.container);\n};\nvar elementBySelector = function elementBySelector(selectorString) {\n var container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n};\n\nvar elementByClass = function elementByClass(className) {\n return elementBySelector('.' + className);\n};\n\nvar getPopup = function getPopup() {\n return elementByClass(swalClasses.popup);\n};\nvar getIcons = function getIcons() {\n var popup = getPopup();\n return toArray(popup.querySelectorAll('.' + swalClasses.icon));\n};\nvar getIcon = function getIcon() {\n var visibleIcon = getIcons().filter(function (icon) {\n return isVisible(icon);\n });\n return visibleIcon.length ? visibleIcon[0] : null;\n};\nvar getTitle = function getTitle() {\n return elementByClass(swalClasses.title);\n};\nvar getContent = function getContent() {\n return elementByClass(swalClasses.content);\n};\nvar getImage = function getImage() {\n return elementByClass(swalClasses.image);\n};\nvar getProgressSteps = function getProgressSteps() {\n return elementByClass(swalClasses['progress-steps']);\n};\nvar getValidationMessage = function getValidationMessage() {\n return elementByClass(swalClasses['validation-message']);\n};\nvar getConfirmButton = function getConfirmButton() {\n return elementBySelector('.' + swalClasses.actions + ' .' + swalClasses.confirm);\n};\nvar getCancelButton = function getCancelButton() {\n return elementBySelector('.' + swalClasses.actions + ' .' + swalClasses.cancel);\n};\nvar getActions = function getActions() {\n return elementByClass(swalClasses.actions);\n};\nvar getHeader = function getHeader() {\n return elementByClass(swalClasses.header);\n};\nvar getFooter = function getFooter() {\n return elementByClass(swalClasses.footer);\n};\nvar getCloseButton = function getCloseButton() {\n return elementByClass(swalClasses.close);\n}; // https://github.com/jkup/focusable/blob/master/index.js\n\nvar focusable = \"\\n a[href],\\n area[href],\\n input:not([disabled]),\\n select:not([disabled]),\\n textarea:not([disabled]),\\n button:not([disabled]),\\n iframe,\\n object,\\n embed,\\n [tabindex=\\\"0\\\"],\\n [contenteditable],\\n audio[controls],\\n video[controls],\\n summary\\n\";\nvar getFocusableElements = function getFocusableElements() {\n var focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])')) // sort according to tabindex\n .sort(function (a, b) {\n a = parseInt(a.getAttribute('tabindex'));\n b = parseInt(b.getAttribute('tabindex'));\n\n if (a > b) {\n return 1;\n } else if (a < b) {\n return -1;\n }\n\n return 0;\n });\n var otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(function (el) {\n return el.getAttribute('tabindex') !== '-1';\n });\n return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(function (el) {\n return isVisible(el);\n });\n};\nvar isModal = function isModal() {\n return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']);\n};\nvar isToast = function isToast() {\n return document.body.classList.contains(swalClasses['toast-shown']);\n};\nvar isLoading = function isLoading() {\n return getPopup().hasAttribute('data-loading');\n};\n\n// Detect Node env\nvar isNodeEnv = function isNodeEnv() {\n return typeof window === 'undefined' || typeof document === 'undefined';\n};\n\nvar sweetHTML = \"\\n <div aria-labelledby=\\\"\".concat(swalClasses.title, \"\\\" aria-describedby=\\\"\").concat(swalClasses.content, \"\\\" class=\\\"\").concat(swalClasses.popup, \"\\\" tabindex=\\\"-1\\\">\\n <div class=\\\"\").concat(swalClasses.header, \"\\\">\\n <ul class=\\\"\").concat(swalClasses['progress-steps'], \"\\\"></ul>\\n <div class=\\\"\").concat(swalClasses.icon, \" \").concat(iconTypes.error, \"\\\">\\n <span class=\\\"swal2-x-mark\\\"><span class=\\\"swal2-x-mark-line-left\\\"></span><span class=\\\"swal2-x-mark-line-right\\\"></span></span>\\n </div>\\n <div class=\\\"\").concat(swalClasses.icon, \" \").concat(iconTypes.question, \"\\\"></div>\\n <div class=\\\"\").concat(swalClasses.icon, \" \").concat(iconTypes.warning, \"\\\"></div>\\n <div class=\\\"\").concat(swalClasses.icon, \" \").concat(iconTypes.info, \"\\\"></div>\\n <div class=\\\"\").concat(swalClasses.icon, \" \").concat(iconTypes.success, \"\\\">\\n <div class=\\\"swal2-success-circular-line-left\\\"></div>\\n <span class=\\\"swal2-success-line-tip\\\"></span> <span class=\\\"swal2-success-line-long\\\"></span>\\n <div class=\\\"swal2-success-ring\\\"></div> <div class=\\\"swal2-success-fix\\\"></div>\\n <div class=\\\"swal2-success-circular-line-right\\\"></div>\\n </div>\\n <img class=\\\"\").concat(swalClasses.image, \"\\\" />\\n <h2 class=\\\"\").concat(swalClasses.title, \"\\\" id=\\\"\").concat(swalClasses.title, \"\\\"></h2>\\n <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.close, \"\\\"></button>\\n </div>\\n <div class=\\\"\").concat(swalClasses.content, \"\\\">\\n <div id=\\\"\").concat(swalClasses.content, \"\\\"></div>\\n <input class=\\\"\").concat(swalClasses.input, \"\\\" />\\n <input type=\\\"file\\\" class=\\\"\").concat(swalClasses.file, \"\\\" />\\n <div class=\\\"\").concat(swalClasses.range, \"\\\">\\n <input type=\\\"range\\\" />\\n <output></output>\\n </div>\\n <select class=\\\"\").concat(swalClasses.select, \"\\\"></select>\\n <div class=\\\"\").concat(swalClasses.radio, \"\\\"></div>\\n <label for=\\\"\").concat(swalClasses.checkbox, \"\\\" class=\\\"\").concat(swalClasses.checkbox, \"\\\">\\n <input type=\\\"checkbox\\\" />\\n <span class=\\\"\").concat(swalClasses.label, \"\\\"></span>\\n </label>\\n <textarea class=\\\"\").concat(swalClasses.textarea, \"\\\"></textarea>\\n <div class=\\\"\").concat(swalClasses['validation-message'], \"\\\" id=\\\"\").concat(swalClasses['validation-message'], \"\\\"></div>\\n </div>\\n <div class=\\\"\").concat(swalClasses.actions, \"\\\">\\n <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.confirm, \"\\\">OK</button>\\n <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.cancel, \"\\\">Cancel</button>\\n </div>\\n <div class=\\\"\").concat(swalClasses.footer, \"\\\">\\n </div>\\n </div>\\n\").replace(/(^|\\n)\\s*/g, '');\n\nvar resetOldContainer = function resetOldContainer() {\n var oldContainer = getContainer();\n\n if (!oldContainer) {\n return;\n }\n\n oldContainer.parentNode.removeChild(oldContainer);\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n};\n\nvar oldInputVal; // IE11 workaround, see #1109 for details\n\nvar resetValidationMessage = function resetValidationMessage(e) {\n if (Swal.isVisible() && oldInputVal !== e.target.value) {\n Swal.resetValidationMessage();\n }\n\n oldInputVal = e.target.value;\n};\n\nvar addInputChangeListeners = function addInputChangeListeners() {\n var content = getContent();\n var input = getChildByClass(content, swalClasses.input);\n var file = getChildByClass(content, swalClasses.file);\n var range = content.querySelector(\".\".concat(swalClasses.range, \" input\"));\n var rangeOutput = content.querySelector(\".\".concat(swalClasses.range, \" output\"));\n var select = getChildByClass(content, swalClasses.select);\n var checkbox = content.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n var textarea = getChildByClass(content, swalClasses.textarea);\n input.oninput = resetValidationMessage;\n file.onchange = resetValidationMessage;\n select.onchange = resetValidationMessage;\n checkbox.onchange = resetValidationMessage;\n textarea.oninput = resetValidationMessage;\n\n range.oninput = function (e) {\n resetValidationMessage(e);\n rangeOutput.value = range.value;\n };\n\n range.onchange = function (e) {\n resetValidationMessage(e);\n range.nextSibling.value = range.value;\n };\n};\n\nvar getTarget = function getTarget(target) {\n return typeof target === 'string' ? document.querySelector(target) : target;\n};\n\nvar setupAccessibility = function setupAccessibility(params) {\n var popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n};\n\nvar setupRTL = function setupRTL(targetElement) {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n};\n/*\n * Add modal + backdrop to DOM\n */\n\n\nvar init = function init(params) {\n // Clean up the old popup container if it exists\n resetOldContainer();\n /* istanbul ignore if */\n\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n\n var container = document.createElement('div');\n container.className = swalClasses.container;\n container.innerHTML = sweetHTML;\n var targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n};\n\nvar parseHtmlToContainer = function parseHtmlToContainer(param, target) {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param); // JQuery element(s)\n } else if (_typeof(param) === 'object') {\n handleJqueryElem(target, param); // Plain string\n } else if (param) {\n target.innerHTML = param;\n }\n};\n\nvar handleJqueryElem = function handleJqueryElem(target, elem) {\n target.innerHTML = '';\n\n if (0 in elem) {\n for (var i = 0; i in elem; i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n};\n\nvar animationEndEvent = function () {\n // Prevent run in Node env\n\n /* istanbul ignore if */\n if (isNodeEnv()) {\n return false;\n }\n\n var testEl = document.createElement('div');\n var transEndEventNames = {\n WebkitAnimation: 'webkitAnimationEnd',\n OAnimation: 'oAnimationEnd oanimationend',\n animation: 'animationend'\n };\n\n for (var i in transEndEventNames) {\n if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {\n return transEndEventNames[i];\n }\n }\n\n return false;\n}();\n\n// Measure width of scrollbar\n// https://github.com/twbs/bootstrap/blob/master/js/modal.js#L279-L286\nvar measureScrollbar = function measureScrollbar() {\n var supportsTouch = 'ontouchstart' in window || navigator.msMaxTouchPoints;\n\n if (supportsTouch) {\n return 0;\n }\n\n var scrollDiv = document.createElement('div');\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n};\n\nvar renderActions = function renderActions(instance, params) {\n var actions = getActions();\n var confirmButton = getConfirmButton();\n var cancelButton = getCancelButton(); // Actions (buttons) wrapper\n\n if (!params.showConfirmButton && !params.showCancelButton) {\n hide(actions);\n } // Custom class\n\n\n applyCustomClass(actions, params.customClass, 'actions'); // Render confirm button\n\n renderButton(confirmButton, 'confirm', params); // render Cancel Button\n\n renderButton(cancelButton, 'cancel', params);\n\n if (params.buttonsStyling) {\n handleButtonsStyling(confirmButton, cancelButton, params);\n } else {\n removeClass([confirmButton, cancelButton], swalClasses.styled);\n confirmButton.style.backgroundColor = confirmButton.style.borderLeftColor = confirmButton.style.borderRightColor = '';\n cancelButton.style.backgroundColor = cancelButton.style.borderLeftColor = cancelButton.style.borderRightColor = '';\n }\n\n if (params.reverseButtons) {\n confirmButton.parentNode.insertBefore(cancelButton, confirmButton);\n }\n};\n\nfunction handleButtonsStyling(confirmButton, cancelButton, params) {\n addClass([confirmButton, cancelButton], swalClasses.styled); // Buttons background colors\n\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n }\n\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n } // Loading state\n\n\n var confirmButtonBackgroundColor = window.getComputedStyle(confirmButton).getPropertyValue('background-color');\n confirmButton.style.borderLeftColor = confirmButtonBackgroundColor;\n confirmButton.style.borderRightColor = confirmButtonBackgroundColor;\n}\n\nfunction renderButton(button, buttonType, params) {\n toggle(button, params['showC' + buttonType.substring(1) + 'Button'], 'inline-block');\n button.innerHTML = params[buttonType + 'ButtonText']; // Set caption text\n\n button.setAttribute('aria-label', params[buttonType + 'ButtonAriaLabel']); // ARIA label\n // Add buttons custom classes\n\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params.customClass, buttonType + 'Button');\n addClass(button, params[buttonType + 'ButtonClass']);\n}\n\nfunction handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n}\n\nfunction handlePositionParam(container, position) {\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n}\n\nfunction handleGrowParam(container, grow) {\n if (grow && typeof grow === 'string') {\n var growClass = 'grow-' + grow;\n\n if (growClass in swalClasses) {\n addClass(container, swalClasses[growClass]);\n }\n }\n}\n\nvar renderContainer = function renderContainer(instance, params) {\n var container = getContainer();\n\n if (!container) {\n return;\n }\n\n handleBackdropParam(container, params.backdrop);\n\n if (!params.backdrop && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow); // Custom class\n\n applyCustomClass(container, params.customClass, 'container');\n\n if (params.customContainerClass) {\n // @deprecated\n addClass(container, params.customContainerClass);\n }\n};\n\n/**\n * This module containts `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\nvar privateProps = {\n promise: new WeakMap(),\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n};\n\nvar inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\nvar renderInput = function renderInput(instance, params) {\n var content = getContent();\n var innerParams = privateProps.innerParams.get(instance);\n var rerender = !innerParams || params.input !== innerParams.input;\n inputTypes.forEach(function (inputType) {\n var inputClass = swalClasses[inputType];\n var inputContainer = getChildByClass(content, inputClass); // set attributes\n\n setAttributes(inputType, params.inputAttributes); // set class\n\n setClass(inputContainer, inputClass, params);\n\n if (rerender) {\n hide(inputContainer);\n }\n });\n\n if (params.input && rerender) {\n showInput(params);\n }\n};\n\nvar showInput = function showInput(params) {\n if (!renderInputType[params.input]) {\n return error(\"Unexpected type of input! Expected \\\"text\\\", \\\"email\\\", \\\"password\\\", \\\"number\\\", \\\"tel\\\", \\\"select\\\", \\\"radio\\\", \\\"checkbox\\\", \\\"textarea\\\", \\\"file\\\" or \\\"url\\\", got \\\"\".concat(params.input, \"\\\"\"));\n }\n\n var input = renderInputType[params.input](params);\n show(input); // input autofocus\n\n setTimeout(function () {\n focusInput(input);\n });\n};\n\nvar removeAttributes = function removeAttributes(input) {\n for (var i = 0; i < input.attributes.length; i++) {\n var attrName = input.attributes[i].name;\n\n if (!(['type', 'value', 'style'].indexOf(attrName) !== -1)) {\n input.removeAttribute(attrName);\n }\n }\n};\n\nvar setAttributes = function setAttributes(inputType, inputAttributes) {\n var input = getInput(getContent(), inputType);\n\n if (!input) {\n return;\n }\n\n removeAttributes(input);\n\n for (var attr in inputAttributes) {\n // Do not set a placeholder for <input type=\"range\">\n // it'll crash Edge, #1298\n if (inputType === 'range' && attr === 'placeholder') {\n continue;\n }\n\n input.setAttribute(attr, inputAttributes[attr]);\n }\n};\n\nvar setClass = function setClass(inputContainer, inputClass, params) {\n inputContainer.className = inputClass;\n\n if (params.inputClass) {\n addClass(inputContainer, params.inputClass);\n }\n\n if (params.customClass) {\n addClass(inputContainer, params.customClass.input);\n }\n};\n\nvar setInputPlaceholder = function setInputPlaceholder(input, params) {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n};\n\nvar renderInputType = {};\n\nrenderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = function (params) {\n var input = getChildByClass(getContent(), swalClasses.input);\n\n if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') {\n input.value = params.inputValue;\n } else if (!isPromise(params.inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(_typeof(params.inputValue), \"\\\"\"));\n }\n\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n};\n\nrenderInputType.file = function (params) {\n var input = getChildByClass(getContent(), swalClasses.file);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n};\n\nrenderInputType.range = function (params) {\n var range = getChildByClass(getContent(), swalClasses.range);\n var rangeInput = range.querySelector('input');\n var rangeOutput = range.querySelector('output');\n rangeInput.value = params.inputValue;\n rangeInput.type = params.input;\n rangeOutput.value = params.inputValue;\n return range;\n};\n\nrenderInputType.select = function (params) {\n var select = getChildByClass(getContent(), swalClasses.select);\n select.innerHTML = '';\n\n if (params.inputPlaceholder) {\n var placeholder = document.createElement('option');\n placeholder.innerHTML = params.inputPlaceholder;\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n\n return select;\n};\n\nrenderInputType.radio = function () {\n var radio = getChildByClass(getContent(), swalClasses.radio);\n radio.innerHTML = '';\n return radio;\n};\n\nrenderInputType.checkbox = function (params) {\n var checkbox = getChildByClass(getContent(), swalClasses.checkbox);\n var checkboxInput = getInput(getContent(), 'checkbox');\n checkboxInput.type = 'checkbox';\n checkboxInput.value = 1;\n checkboxInput.id = swalClasses.checkbox;\n checkboxInput.checked = Boolean(params.inputValue);\n var label = checkbox.querySelector('span');\n label.innerHTML = params.inputPlaceholder;\n return checkbox;\n};\n\nrenderInputType.textarea = function (params) {\n var textarea = getChildByClass(getContent(), swalClasses.textarea);\n textarea.value = params.inputValue;\n setInputPlaceholder(textarea, params);\n\n if ('MutationObserver' in window) {\n // #1699\n var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n var popupPadding = parseInt(window.getComputedStyle(getPopup()).paddingLeft) + parseInt(window.getComputedStyle(getPopup()).paddingRight);\n\n var outputsize = function outputsize() {\n var contentWidth = textarea.offsetWidth + popupPadding;\n\n if (contentWidth > initialPopupWidth) {\n getPopup().style.width = contentWidth + 'px';\n } else {\n getPopup().style.width = null;\n }\n };\n\n new MutationObserver(outputsize).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n\n return textarea;\n};\n\nvar renderContent = function renderContent(instance, params) {\n var content = getContent().querySelector('#' + swalClasses.content); // Content as HTML\n\n if (params.html) {\n parseHtmlToContainer(params.html, content);\n show(content, 'block'); // Content as plain text\n } else if (params.text) {\n content.textContent = params.text;\n show(content, 'block'); // No content\n } else {\n hide(content);\n }\n\n renderInput(instance, params); // Custom class\n\n applyCustomClass(getContent(), params.customClass, 'content');\n};\n\nvar renderFooter = function renderFooter(instance, params) {\n var footer = getFooter();\n toggle(footer, params.footer);\n\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n } // Custom class\n\n\n applyCustomClass(footer, params.customClass, 'footer');\n};\n\nvar renderCloseButton = function renderCloseButton(instance, params) {\n var closeButton = getCloseButton();\n closeButton.innerHTML = params.closeButtonHtml; // Custom class\n\n applyCustomClass(closeButton, params.customClass, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);\n};\n\nvar renderIcon = function renderIcon(instance, params) {\n var innerParams = privateProps.innerParams.get(instance); // if the icon with the given type already rendered,\n // apply the custom class without re-rendering the icon\n\n if (innerParams && params.type === innerParams.type && getIcon()) {\n applyCustomClass(getIcon(), params.customClass, 'icon');\n return;\n }\n\n hideAllIcons();\n\n if (!params.type) {\n return;\n }\n\n adjustSuccessIconBackgoundColor();\n\n if (Object.keys(iconTypes).indexOf(params.type) !== -1) {\n var icon = elementBySelector(\".\".concat(swalClasses.icon, \".\").concat(iconTypes[params.type]));\n show(icon); // Custom class\n\n applyCustomClass(icon, params.customClass, 'icon'); // Animate icon\n\n toggleClass(icon, \"swal2-animate-\".concat(params.type, \"-icon\"), params.animation);\n } else {\n error(\"Unknown type! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.type, \"\\\"\"));\n }\n};\n\nvar hideAllIcons = function hideAllIcons() {\n var icons = getIcons();\n\n for (var i = 0; i < icons.length; i++) {\n hide(icons[i]);\n }\n}; // Adjust success icon background color to match the popup background color\n\n\nvar adjustSuccessIconBackgoundColor = function adjustSuccessIconBackgoundColor() {\n var popup = getPopup();\n var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n\n for (var i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n};\n\nvar renderImage = function renderImage(instance, params) {\n var image = getImage();\n\n if (!params.imageUrl) {\n return hide(image);\n }\n\n show(image); // Src, alt\n\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt); // Width, height\n\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight); // Class\n\n image.className = swalClasses.image;\n applyCustomClass(image, params.customClass, 'image');\n\n if (params.imageClass) {\n addClass(image, params.imageClass);\n }\n};\n\nvar createStepElement = function createStepElement(step) {\n var stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n stepEl.innerHTML = step;\n return stepEl;\n};\n\nvar createLineElement = function createLineElement(params) {\n var lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n\n if (params.progressStepsDistance) {\n lineEl.style.width = params.progressStepsDistance;\n }\n\n return lineEl;\n};\n\nvar renderProgressSteps = function renderProgressSteps(instance, params) {\n var progressStepsContainer = getProgressSteps();\n\n if (!params.progressSteps || params.progressSteps.length === 0) {\n return hide(progressStepsContainer);\n }\n\n show(progressStepsContainer);\n progressStepsContainer.innerHTML = '';\n var currentProgressStep = parseInt(params.currentProgressStep === null ? Swal.getQueueStep() : params.currentProgressStep);\n\n if (currentProgressStep >= params.progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n\n params.progressSteps.forEach(function (step, index) {\n var stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n\n if (index === currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n\n if (index !== params.progressSteps.length - 1) {\n var lineEl = createLineElement(step);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n};\n\nvar renderTitle = function renderTitle(instance, params) {\n var title = getTitle();\n toggle(title, params.title || params.titleText);\n\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n\n if (params.titleText) {\n title.innerText = params.titleText;\n } // Custom class\n\n\n applyCustomClass(title, params.customClass, 'title');\n};\n\nvar renderHeader = function renderHeader(instance, params) {\n var header = getHeader(); // Custom class\n\n applyCustomClass(header, params.customClass, 'header'); // Progress steps\n\n renderProgressSteps(instance, params); // Icon\n\n renderIcon(instance, params); // Image\n\n renderImage(instance, params); // Title\n\n renderTitle(instance, params); // Close button\n\n renderCloseButton(instance, params);\n};\n\nvar renderPopup = function renderPopup(instance, params) {\n var popup = getPopup(); // Width\n\n applyNumericalStyle(popup, 'width', params.width); // Padding\n\n applyNumericalStyle(popup, 'padding', params.padding); // Background\n\n if (params.background) {\n popup.style.background = params.background;\n } // Default Class\n\n\n popup.className = swalClasses.popup;\n\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n } // Custom class\n\n\n applyCustomClass(popup, params.customClass, 'popup');\n\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n } // CSS animation\n\n\n toggleClass(popup, swalClasses.noanimation, !params.animation);\n};\n\nvar render = function render(instance, params) {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderHeader(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n\n if (typeof params.onRender === 'function') {\n params.onRender(getPopup());\n }\n};\n\n/*\n * Global function to determine if SweetAlert2 popup is shown\n */\n\nvar isVisible$1 = function isVisible$$1() {\n return isVisible(getPopup());\n};\n/*\n * Global function to click 'Confirm' button\n */\n\nvar clickConfirm = function clickConfirm() {\n return getConfirmButton() && getConfirmButton().click();\n};\n/*\n * Global function to click 'Cancel' button\n */\n\nvar clickCancel = function clickCancel() {\n return getCancelButton() && getCancelButton().click();\n};\n\nfunction fire() {\n var Swal = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _construct(Swal, args);\n}\n\n/**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param mixinParams\n */\nfunction mixin(mixinParams) {\n var MixinSwal =\n /*#__PURE__*/\n function (_this) {\n _inherits(MixinSwal, _this);\n\n function MixinSwal() {\n _classCallCheck(this, MixinSwal);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(MixinSwal).apply(this, arguments));\n }\n\n _createClass(MixinSwal, [{\n key: \"_main\",\n value: function _main(params) {\n return _get(_getPrototypeOf(MixinSwal.prototype), \"_main\", this).call(this, _extends({}, mixinParams, params));\n }\n }]);\n\n return MixinSwal;\n }(this);\n\n return MixinSwal;\n}\n\n// private global state for the queue feature\nvar currentSteps = [];\n/*\n * Global function for chaining sweetAlert popups\n */\n\nvar queue = function queue(steps) {\n var Swal = this;\n currentSteps = steps;\n\n var resetAndResolve = function resetAndResolve(resolve, value) {\n currentSteps = [];\n document.body.removeAttribute('data-swal2-queue-step');\n resolve(value);\n };\n\n var queueResult = [];\n return new Promise(function (resolve) {\n (function step(i, callback) {\n if (i < currentSteps.length) {\n document.body.setAttribute('data-swal2-queue-step', i);\n Swal.fire(currentSteps[i]).then(function (result) {\n if (typeof result.value !== 'undefined') {\n queueResult.push(result.value);\n step(i + 1, callback);\n } else {\n resetAndResolve(resolve, {\n dismiss: result.dismiss\n });\n }\n });\n } else {\n resetAndResolve(resolve, {\n value: queueResult\n });\n }\n })(0);\n });\n};\n/*\n * Global function for getting the index of current popup in queue\n */\n\nvar getQueueStep = function getQueueStep() {\n return document.body.getAttribute('data-swal2-queue-step');\n};\n/*\n * Global function for inserting a popup to the queue\n */\n\nvar insertQueueStep = function insertQueueStep(step, index) {\n if (index && index < currentSteps.length) {\n return currentSteps.splice(index, 0, step);\n }\n\n return currentSteps.push(step);\n};\n/*\n * Global function for deleting a popup from the queue\n */\n\nvar deleteQueueStep = function deleteQueueStep(index) {\n if (typeof currentSteps[index] !== 'undefined') {\n currentSteps.splice(index, 1);\n }\n};\n\n/**\n * Show spinner instead of Confirm button and disable Cancel button\n */\n\nvar showLoading = function showLoading() {\n var popup = getPopup();\n\n if (!popup) {\n Swal.fire('');\n }\n\n popup = getPopup();\n var actions = getActions();\n var confirmButton = getConfirmButton();\n var cancelButton = getCancelButton();\n show(actions);\n show(confirmButton);\n addClass([popup, actions], swalClasses.loading);\n confirmButton.disabled = true;\n cancelButton.disabled = true;\n popup.setAttribute('data-loading', true);\n popup.setAttribute('aria-busy', true);\n popup.focus();\n};\n\nvar RESTORE_FOCUS_TIMEOUT = 100;\n\nvar globalState = {};\nvar focusPreviousActiveElement = function focusPreviousActiveElement() {\n if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n}; // Restore previous active (focused) element\n\n\nvar restoreActiveElement = function restoreActiveElement() {\n return new Promise(function (resolve) {\n var x = window.scrollX;\n var y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(function () {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n if (typeof x !== 'undefined' && typeof y !== 'undefined') {\n // IE doesn't have scrollX/scrollY support\n window.scrollTo(x, y);\n }\n });\n};\n\n/**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n */\n\nvar getTimerLeft = function getTimerLeft() {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n};\n/**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\nvar stopTimer = function stopTimer() {\n return globalState.timeout && globalState.timeout.stop();\n};\n/**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\nvar resumeTimer = function resumeTimer() {\n return globalState.timeout && globalState.timeout.start();\n};\n/**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\nvar toggleTimer = function toggleTimer() {\n var timer = globalState.timeout;\n return timer && (timer.running ? timer.stop() : timer.start());\n};\n/**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n */\n\nvar increaseTimer = function increaseTimer(n) {\n return globalState.timeout && globalState.timeout.increase(n);\n};\n/**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n */\n\nvar isTimerRunning = function isTimerRunning() {\n return globalState.timeout && globalState.timeout.isRunning();\n};\n\nvar defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n type: null,\n toast: false,\n customClass: '',\n customContainerClass: '',\n target: 'body',\n backdrop: true,\n animation: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showCancelButton: false,\n preConfirm: null,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: null,\n confirmButtonClass: '',\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: null,\n cancelButtonClass: '',\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusCancel: false,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n showLoaderOnConfirm: false,\n imageUrl: null,\n imageWidth: null,\n imageHeight: null,\n imageAlt: '',\n imageClass: '',\n timer: null,\n width: null,\n padding: null,\n background: null,\n input: null,\n inputPlaceholder: '',\n inputValue: '',\n inputOptions: {},\n inputAutoTrim: true,\n inputClass: '',\n inputAttributes: {},\n inputValidator: null,\n validationMessage: null,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: null,\n progressStepsDistance: null,\n onBeforeOpen: null,\n onOpen: null,\n onRender: null,\n onClose: null,\n onAfterClose: null,\n scrollbarPadding: true\n};\nvar updatableParams = ['title', 'titleText', 'text', 'html', 'type', 'customClass', 'showConfirmButton', 'showCancelButton', 'confirmButtonText', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonClass', 'cancelButtonText', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonClass', 'buttonsStyling', 'reverseButtons', 'imageUrl', 'imageWidth', 'imageHeigth', 'imageAlt', 'imageClass', 'progressSteps', 'currentProgressStep'];\nvar deprecatedParams = {\n customContainerClass: 'customClass',\n confirmButtonClass: 'customClass',\n cancelButtonClass: 'customClass',\n imageClass: 'customClass',\n inputClass: 'customClass'\n};\nvar toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusCancel', 'heightAuto', 'keydownListenerCapture'];\n/**\n * Is valid parameter\n * @param {String} paramName\n */\n\nvar isValidParameter = function isValidParameter(paramName) {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n};\n/**\n * Is valid parameter for Swal.update() method\n * @param {String} paramName\n */\n\nvar isUpdatableParameter = function isUpdatableParameter(paramName) {\n return updatableParams.indexOf(paramName) !== -1;\n};\n/**\n * Is deprecated parameter\n * @param {String} paramName\n */\n\nvar isDeprecatedParameter = function isDeprecatedParameter(paramName) {\n return deprecatedParams[paramName];\n};\n\nvar checkIfParamIsValid = function checkIfParamIsValid(param) {\n if (!isValidParameter(param)) {\n warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n }\n};\n\nvar checkIfToastParamIsValid = function checkIfToastParamIsValid(param) {\n if (toastIncompatibleParams.indexOf(param) !== -1) {\n warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n }\n};\n\nvar checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) {\n if (isDeprecatedParameter(param)) {\n warnAboutDepreation(param, isDeprecatedParameter(param));\n }\n};\n/**\n * Show relevant warnings for given params\n *\n * @param params\n */\n\n\nvar showWarningsForParams = function showWarningsForParams(params) {\n for (var param in params) {\n checkIfParamIsValid(param);\n\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n\n checkIfParamIsDeprecated();\n }\n};\n\n\n\nvar staticMethods = Object.freeze({\n\tisValidParameter: isValidParameter,\n\tisUpdatableParameter: isUpdatableParameter,\n\tisDeprecatedParameter: isDeprecatedParameter,\n\targsToParams: argsToParams,\n\tisVisible: isVisible$1,\n\tclickConfirm: clickConfirm,\n\tclickCancel: clickCancel,\n\tgetContainer: getContainer,\n\tgetPopup: getPopup,\n\tgetTitle: getTitle,\n\tgetContent: getContent,\n\tgetImage: getImage,\n\tgetIcon: getIcon,\n\tgetIcons: getIcons,\n\tgetCloseButton: getCloseButton,\n\tgetActions: getActions,\n\tgetConfirmButton: getConfirmButton,\n\tgetCancelButton: getCancelButton,\n\tgetHeader: getHeader,\n\tgetFooter: getFooter,\n\tgetFocusableElements: getFocusableElements,\n\tgetValidationMessage: getValidationMessage,\n\tisLoading: isLoading,\n\tfire: fire,\n\tmixin: mixin,\n\tqueue: queue,\n\tgetQueueStep: getQueueStep,\n\tinsertQueueStep: insertQueueStep,\n\tdeleteQueueStep: deleteQueueStep,\n\tshowLoading: showLoading,\n\tenableLoading: showLoading,\n\tgetTimerLeft: getTimerLeft,\n\tstopTimer: stopTimer,\n\tresumeTimer: resumeTimer,\n\ttoggleTimer: toggleTimer,\n\tincreaseTimer: increaseTimer,\n\tisTimerRunning: isTimerRunning\n});\n\n/**\n * Enables buttons and hide loader.\n */\n\nfunction hideLoading() {\n var innerParams = privateProps.innerParams.get(this);\n var domCache = privateProps.domCache.get(this);\n\n if (!innerParams.showConfirmButton) {\n hide(domCache.confirmButton);\n\n if (!innerParams.showCancelButton) {\n hide(domCache.actions);\n }\n }\n\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.cancelButton.disabled = false;\n}\n\nfunction getInput$1(instance) {\n var innerParams = privateProps.innerParams.get(instance || this);\n var domCache = privateProps.domCache.get(instance || this);\n\n if (!domCache) {\n return null;\n }\n\n return getInput(domCache.content, innerParams.input);\n}\n\nvar fixScrollbar = function fixScrollbar() {\n // for queues, do not do this more than once\n if (states.previousBodyPadding !== null) {\n return;\n } // if the body has overflow\n\n\n if (document.body.scrollHeight > window.innerHeight) {\n // add padding so the content doesn't shift after removal of scrollbar\n states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = states.previousBodyPadding + measureScrollbar() + 'px';\n }\n};\nvar undoScrollbar = function undoScrollbar() {\n if (states.previousBodyPadding !== null) {\n document.body.style.paddingRight = states.previousBodyPadding + 'px';\n states.previousBodyPadding = null;\n }\n};\n\n/* istanbul ignore next */\n\nvar iOSfix = function iOSfix() {\n var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n\n if (iOS && !hasClass(document.body, swalClasses.iosfix)) {\n var offset = document.body.scrollTop;\n document.body.style.top = offset * -1 + 'px';\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n }\n};\n\nvar lockBodyScroll = function lockBodyScroll() {\n // #1246\n var container = getContainer();\n var preventTouchMove;\n\n container.ontouchstart = function (e) {\n preventTouchMove = e.target === container || !isScrollable(container) && e.target.tagName !== 'INPUT' // #1603\n ;\n };\n\n container.ontouchmove = function (e) {\n if (preventTouchMove) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n};\n/* istanbul ignore next */\n\n\nvar undoIOSfix = function undoIOSfix() {\n if (hasClass(document.body, swalClasses.iosfix)) {\n var offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n};\n\nvar isIE11 = function isIE11() {\n return !!window.MSInputMethodContext && !!document.documentMode;\n}; // Fix IE11 centering sweetalert2/issues/933\n\n/* istanbul ignore next */\n\n\nvar fixVerticalPositionIE = function fixVerticalPositionIE() {\n var container = getContainer();\n var popup = getPopup();\n container.style.removeProperty('align-items');\n\n if (popup.offsetTop < 0) {\n container.style.alignItems = 'flex-start';\n }\n};\n/* istanbul ignore next */\n\n\nvar IEfix = function IEfix() {\n if (typeof window !== 'undefined' && isIE11()) {\n fixVerticalPositionIE();\n window.addEventListener('resize', fixVerticalPositionIE);\n }\n};\n/* istanbul ignore next */\n\nvar undoIEfix = function undoIEfix() {\n if (typeof window !== 'undefined' && isIE11()) {\n window.removeEventListener('resize', fixVerticalPositionIE);\n }\n};\n\n// Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n// elements not within the active modal dialog will not be surfaced if a user opens a screen\n// reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\nvar setAriaHidden = function setAriaHidden() {\n var bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el === getContainer() || contains(el, getContainer())) {\n return;\n }\n\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));\n }\n\n el.setAttribute('aria-hidden', 'true');\n });\n};\nvar unsetAriaHidden = function unsetAriaHidden() {\n var bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n};\n\n/**\n * This module containts `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\nvar privateMethods = {\n swalPromiseResolve: new WeakMap()\n};\n\n/*\n * Instance method to close sweetAlert\n */\n\nfunction removePopupAndResetState(instance, container, isToast, onAfterClose) {\n if (isToast) {\n triggerOnAfterCloseAndDispose(instance, onAfterClose);\n } else {\n restoreActiveElement().then(function () {\n return triggerOnAfterCloseAndDispose(instance, onAfterClose);\n });\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n\n if (container.parentNode) {\n container.parentNode.removeChild(container);\n }\n\n if (isModal()) {\n undoScrollbar();\n undoIOSfix();\n undoIEfix();\n unsetAriaHidden();\n }\n\n removeBodyClasses();\n}\n\nfunction removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['toast-column']]);\n}\n\nfunction disposeSwal(instance) {\n // Unset this.params so GC will dispose it (#1569)\n delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)\n\n delete globalState.keydownHandler;\n delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569)\n\n unsetWeakMaps(privateProps);\n unsetWeakMaps(privateMethods);\n}\n\nfunction close(resolveValue) {\n var popup = getPopup();\n\n if (!popup || hasClass(popup, swalClasses.hide)) {\n return;\n }\n\n var innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n return;\n }\n\n var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n removeClass(popup, swalClasses.show);\n addClass(popup, swalClasses.hide);\n handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise\n\n swalPromiseResolve(resolveValue || {});\n}\n\nvar handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {\n var container = getContainer(); // If animation is supported, animate\n\n var animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n var onClose = innerParams.onClose,\n onAfterClose = innerParams.onAfterClose;\n\n if (onClose !== null && typeof onClose === 'function') {\n onClose(popup);\n }\n\n if (animationIsSupported) {\n animatePopup(instance, popup, container, onAfterClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, isToast(), onAfterClose);\n }\n};\n\nvar animatePopup = function animatePopup(instance, popup, container, onAfterClose) {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, isToast(), onAfterClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n};\n\nvar unsetWeakMaps = function unsetWeakMaps(obj) {\n for (var i in obj) {\n obj[i] = new WeakMap();\n }\n};\n\nvar triggerOnAfterCloseAndDispose = function triggerOnAfterCloseAndDispose(instance, onAfterClose) {\n setTimeout(function () {\n if (onAfterClose !== null && typeof onAfterClose === 'function') {\n onAfterClose();\n }\n\n if (!getPopup()) {\n disposeSwal(instance);\n }\n });\n};\n\nfunction setButtonsDisabled(instance, buttons, disabled) {\n var domCache = privateProps.domCache.get(instance);\n buttons.forEach(function (button) {\n domCache[button].disabled = disabled;\n });\n}\n\nfunction setInputDisabled(input, disabled) {\n if (!input) {\n return false;\n }\n\n if (input.type === 'radio') {\n var radiosContainer = input.parentNode.parentNode;\n var radios = radiosContainer.querySelectorAll('input');\n\n for (var i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n}\n\nfunction enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'cancelButton'], false);\n}\nfunction disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'cancelButton'], true);\n} // @deprecated\n\nfunction enableConfirmButton() {\n warnAboutDepreation('Swal.enableConfirmButton()', \"Swal.getConfirmButton().removeAttribute('disabled')\");\n setButtonsDisabled(this, ['confirmButton'], false);\n} // @deprecated\n\nfunction disableConfirmButton() {\n warnAboutDepreation('Swal.disableConfirmButton()', \"Swal.getConfirmButton().setAttribute('disabled', '')\");\n setButtonsDisabled(this, ['confirmButton'], true);\n}\nfunction enableInput() {\n return setInputDisabled(this.getInput(), false);\n}\nfunction disableInput() {\n return setInputDisabled(this.getInput(), true);\n}\n\nfunction showValidationMessage(error) {\n var domCache = privateProps.domCache.get(this);\n domCache.validationMessage.innerHTML = error;\n var popupComputedStyle = window.getComputedStyle(domCache.popup);\n domCache.validationMessage.style.marginLeft = \"-\".concat(popupComputedStyle.getPropertyValue('padding-left'));\n domCache.validationMessage.style.marginRight = \"-\".concat(popupComputedStyle.getPropertyValue('padding-right'));\n show(domCache.validationMessage);\n var input = this.getInput();\n\n if (input) {\n input.setAttribute('aria-invalid', true);\n input.setAttribute('aria-describedBy', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n} // Hide block with validation message\n\nfunction resetValidationMessage$1() {\n var domCache = privateProps.domCache.get(this);\n\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n\n var input = this.getInput();\n\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedBy');\n removeClass(input, swalClasses.inputerror);\n }\n}\n\nfunction getProgressSteps$1() {\n warnAboutDepreation('Swal.getProgressSteps()', \"const swalInstance = Swal.fire({progressSteps: ['1', '2', '3']}); const progressSteps = swalInstance.params.progressSteps\");\n var innerParams = privateProps.innerParams.get(this);\n return innerParams.progressSteps;\n}\nfunction setProgressSteps(progressSteps) {\n warnAboutDepreation('Swal.setProgressSteps()', 'Swal.update()');\n var innerParams = privateProps.innerParams.get(this);\n\n var updatedParams = _extends({}, innerParams, {\n progressSteps: progressSteps\n });\n\n renderProgressSteps(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n}\nfunction showProgressSteps() {\n var domCache = privateProps.domCache.get(this);\n show(domCache.progressSteps);\n}\nfunction hideProgressSteps() {\n var domCache = privateProps.domCache.get(this);\n hide(domCache.progressSteps);\n}\n\nvar Timer =\n/*#__PURE__*/\nfunction () {\n function Timer(callback, delay) {\n _classCallCheck(this, Timer);\n\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n _createClass(Timer, [{\n key: \"start\",\n value: function start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n\n return this.remaining;\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date() - this.started;\n }\n\n return this.remaining;\n }\n }, {\n key: \"increase\",\n value: function increase(n) {\n var running = this.running;\n\n if (running) {\n this.stop();\n }\n\n this.remaining += n;\n\n if (running) {\n this.start();\n }\n\n return this.remaining;\n }\n }, {\n key: \"getTimerLeft\",\n value: function getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n\n return this.remaining;\n }\n }, {\n key: \"isRunning\",\n value: function isRunning() {\n return this.running;\n }\n }]);\n\n return Timer;\n}();\n\nvar defaultInputValidators = {\n email: function email(string, validationMessage) {\n return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n url: function url(string, validationMessage) {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n};\n\nfunction setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (!params.inputValidator) {\n Object.keys(defaultInputValidators).forEach(function (key) {\n if (params.input === key) {\n params.inputValidator = defaultInputValidators[key];\n }\n });\n }\n}\n\nfunction validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n}\n/**\n * Set type, text and actions on popup\n *\n * @param params\n * @returns {boolean}\n */\n\n\nfunction setParameters(params) {\n setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm\n\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n } // params.animation will be actually used in renderPopup.js\n // but in case when params.animation is a function, we need to call that function\n // before popup (re)initialization, so it'll be possible to check Swal.isVisible()\n // inside the params.animation function\n\n\n params.animation = callIfFunction(params.animation);\n validateCustomTargetElement(params); // Replace newlines with <br> in title\n\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('<br />');\n }\n\n init(params);\n}\n\nfunction swalOpenAnimationFinished(popup, container) {\n popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n}\n/**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param {Array} params\n */\n\n\nvar openPopup = function openPopup(params) {\n var container = getContainer();\n var popup = getPopup();\n\n if (typeof params.onBeforeOpen === 'function') {\n params.onBeforeOpen(popup);\n }\n\n addClasses(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'\n\n setScrollingVisibility(container, popup);\n\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding);\n }\n\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n\n if (typeof params.onOpen === 'function') {\n setTimeout(function () {\n return params.onOpen(popup);\n });\n }\n};\n\nvar setScrollingVisibility = function setScrollingVisibility(container, popup) {\n if (animationEndEvent && hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener(animationEndEvent, swalOpenAnimationFinished.bind(null, popup, container));\n } else {\n container.style.overflowY = 'auto';\n }\n};\n\nvar fixScrollContainer = function fixScrollContainer(container, scrollbarPadding) {\n iOSfix();\n IEfix();\n setAriaHidden();\n\n if (scrollbarPadding) {\n fixScrollbar();\n } // sweetalert2/issues/1247\n\n\n setTimeout(function () {\n container.scrollTop = 0;\n });\n};\n\nvar addClasses = function addClasses(container, popup, params) {\n if (params.animation) {\n addClass(popup, swalClasses.show);\n addClass(container, swalClasses.fade);\n }\n\n show(popup);\n addClass([document.documentElement, document.body, container], swalClasses.shown);\n\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n};\n\nvar handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].indexOf(params.input) !== -1 && isPromise(params.inputValue)) {\n handleInputValue(instance, params);\n }\n};\n\nvar handleInputOptions = function handleInputOptions(instance, params) {\n var content = getContent();\n\n var processInputOptions = function processInputOptions(inputOptions) {\n return populateInputOptions[params.input](content, formatInputOptions(inputOptions), params);\n };\n\n if (isPromise(params.inputOptions)) {\n showLoading();\n params.inputOptions.then(function (inputOptions) {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (_typeof(params.inputOptions) === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(_typeof(params.inputOptions)));\n }\n};\n\nvar handleInputValue = function handleInputValue(instance, params) {\n var input = instance.getInput();\n hide(input);\n params.inputValue.then(function (inputValue) {\n input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : inputValue + '';\n show(input);\n input.focus();\n instance.hideLoading();\n })[\"catch\"](function (err) {\n error('Error in inputValue promise: ' + err);\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n};\n\nvar populateInputOptions = {\n select: function select(content, inputOptions, params) {\n var select = getChildByClass(content, swalClasses.select);\n inputOptions.forEach(function (inputOption) {\n var optionValue = inputOption[0];\n var optionLabel = inputOption[1];\n var option = document.createElement('option');\n option.value = optionValue;\n option.innerHTML = optionLabel;\n\n if (params.inputValue.toString() === optionValue.toString()) {\n option.selected = true;\n }\n\n select.appendChild(option);\n });\n select.focus();\n },\n radio: function radio(content, inputOptions, params) {\n var radio = getChildByClass(content, swalClasses.radio);\n inputOptions.forEach(function (inputOption) {\n var radioValue = inputOption[0];\n var radioLabel = inputOption[1];\n var radioInput = document.createElement('input');\n var radioLabelElement = document.createElement('label');\n radioInput.type = 'radio';\n radioInput.name = swalClasses.radio;\n radioInput.value = radioValue;\n\n if (params.inputValue.toString() === radioValue.toString()) {\n radioInput.checked = true;\n }\n\n var label = document.createElement('span');\n label.innerHTML = radioLabel;\n label.className = swalClasses.label;\n radioLabelElement.appendChild(radioInput);\n radioLabelElement.appendChild(label);\n radio.appendChild(radioLabelElement);\n });\n var radios = radio.querySelectorAll('input');\n\n if (radios.length) {\n radios[0].focus();\n }\n }\n /**\n * Converts `inputOptions` into an array of `[value, label]`s\n * @param inputOptions\n */\n\n};\n\nvar formatInputOptions = function formatInputOptions(inputOptions) {\n var result = [];\n\n if (typeof Map !== 'undefined' && inputOptions instanceof Map) {\n inputOptions.forEach(function (value, key) {\n result.push([key, value]);\n });\n } else {\n Object.keys(inputOptions).forEach(function (key) {\n result.push([key, inputOptions[key]]);\n });\n }\n\n return result;\n};\n\nvar handleConfirmButtonClick = function handleConfirmButtonClick(instance, innerParams) {\n instance.disableButtons();\n\n if (innerParams.input) {\n handleConfirmWithInput(instance, innerParams);\n } else {\n confirm(instance, innerParams, true);\n }\n};\nvar handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n};\n\nvar handleConfirmWithInput = function handleConfirmWithInput(instance, innerParams) {\n var inputValue = getInputValue(instance, innerParams);\n\n if (innerParams.inputValidator) {\n instance.disableInput();\n var validationPromise = Promise.resolve().then(function () {\n return innerParams.inputValidator(inputValue, innerParams.validationMessage);\n });\n validationPromise.then(function (validationMessage) {\n instance.enableButtons();\n instance.enableInput();\n\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else {\n confirm(instance, innerParams, inputValue);\n }\n });\n } else if (!instance.getInput().checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage);\n } else {\n confirm(instance, innerParams, inputValue);\n }\n};\n\nvar succeedWith = function succeedWith(instance, value) {\n instance.closePopup({\n value: value\n });\n};\n\nvar confirm = function confirm(instance, innerParams, value) {\n if (innerParams.showLoaderOnConfirm) {\n showLoading(); // TODO: make showLoading an *instance* method\n }\n\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n var preConfirmPromise = Promise.resolve().then(function () {\n return innerParams.preConfirm(value, innerParams.validationMessage);\n });\n preConfirmPromise.then(function (preConfirmValue) {\n if (isVisible(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n });\n } else {\n succeedWith(instance, value);\n }\n};\n\nvar getInputValue = function getInputValue(instance, innerParams) {\n var input = instance.getInput();\n\n if (!input) {\n return null;\n }\n\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n\n case 'radio':\n return getRadioValue(input);\n\n case 'file':\n return getFileValue(input);\n\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n};\n\nvar getCheckboxValue = function getCheckboxValue(input) {\n return input.checked ? 1 : 0;\n};\n\nvar getRadioValue = function getRadioValue(input) {\n return input.checked ? input.value : null;\n};\n\nvar getFileValue = function getFileValue(input) {\n return input.files.length ? input.files[0] : null;\n};\n\nvar addKeydownHandler = function addKeydownHandler(instance, globalState, innerParams, dismissWith) {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n\n if (!innerParams.toast) {\n globalState.keydownHandler = function (e) {\n return keydownHandler(instance, e, innerParams, dismissWith);\n };\n\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n}; // Focus handling\n\nvar setFocus = function setFocus(innerParams, index, increment) {\n var focusableElements = getFocusableElements(); // search for visible elements and select the next possible match\n\n for (var i = 0; i < focusableElements.length; i++) {\n index = index + increment; // rollover to first item\n\n if (index === focusableElements.length) {\n index = 0; // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n\n return focusableElements[index].focus();\n } // no visible focusable elements, focus the popup\n\n\n getPopup().focus();\n};\nvar arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Left', 'Right', 'Up', 'Down' // IE11\n];\nvar escKeys = ['Escape', 'Esc' // IE11\n];\n\nvar keydownHandler = function keydownHandler(instance, e, innerParams, dismissWith) {\n if (innerParams.stopKeydownPropagation) {\n e.stopPropagation();\n } // ENTER\n\n\n if (e.key === 'Enter') {\n handleEnter(instance, e, innerParams); // TAB\n } else if (e.key === 'Tab') {\n handleTab(e, innerParams); // ARROWS - switch focus between buttons\n } else if (arrowKeys.indexOf(e.key) !== -1) {\n handleArrows(); // ESC\n } else if (escKeys.indexOf(e.key) !== -1) {\n handleEsc(e, innerParams, dismissWith);\n }\n};\n\nvar handleEnter = function handleEnter(instance, e, innerParams) {\n // #720 #721\n if (e.isComposing) {\n return;\n }\n\n if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) {\n if (['textarea', 'file'].indexOf(innerParams.input) !== -1) {\n return; // do not submit\n }\n\n clickConfirm();\n e.preventDefault();\n }\n};\n\nvar handleTab = function handleTab(e, innerParams) {\n var targetElement = e.target;\n var focusableElements = getFocusableElements();\n var btnIndex = -1;\n\n for (var i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n if (!e.shiftKey) {\n // Cycle to the next button\n setFocus(innerParams, btnIndex, 1);\n } else {\n // Cycle to the prev button\n setFocus(innerParams, btnIndex, -1);\n }\n\n e.stopPropagation();\n e.preventDefault();\n};\n\nvar handleArrows = function handleArrows() {\n var confirmButton = getConfirmButton();\n var cancelButton = getCancelButton(); // focus Cancel button if Confirm button is currently focused\n\n if (document.activeElement === confirmButton && isVisible(cancelButton)) {\n cancelButton.focus(); // and vice versa\n } else if (document.activeElement === cancelButton && isVisible(confirmButton)) {\n confirmButton.focus();\n }\n};\n\nvar handleEsc = function handleEsc(e, innerParams, dismissWith) {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n e.preventDefault();\n dismissWith(DismissReason.esc);\n }\n};\n\nvar handlePopupClick = function handlePopupClick(domCache, innerParams, dismissWith) {\n if (innerParams.toast) {\n handleToastClick(domCache, innerParams, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup\n\n handleContainerMousedown(domCache);\n handleModalClick(domCache, innerParams, dismissWith);\n }\n};\n\nvar handleToastClick = function handleToastClick(domCache, innerParams, dismissWith) {\n // Closing toast by internal click\n domCache.popup.onclick = function () {\n if (innerParams.showConfirmButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.input) {\n return;\n }\n\n dismissWith(DismissReason.close);\n };\n};\n\nvar ignoreOutsideClick = false;\n\nvar handleModalMousedown = function handleModalMousedown(domCache) {\n domCache.popup.onmousedown = function () {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n};\n\nvar handleContainerMousedown = function handleContainerMousedown(domCache) {\n domCache.container.onmousedown = function () {\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup\n\n if (e.target === domCache.popup || domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n};\n\nvar handleModalClick = function handleModalClick(domCache, innerParams, dismissWith) {\n domCache.container.onclick = function (e) {\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n};\n\nfunction _main(userParams) {\n showWarningsForParams(userParams); // Check if there is another Swal closing\n\n if (getPopup() && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n } // Check if there is a swal disposal defer timer\n\n\n if (globalState.deferDisposalTimer) {\n clearTimeout(globalState.deferDisposalTimer);\n delete globalState.deferDisposalTimer;\n }\n\n var innerParams = _extends({}, defaultParams, userParams);\n\n setParameters(innerParams);\n Object.freeze(innerParams); // clear the previous timer\n\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n } // clear the restore focus timeout\n\n\n clearTimeout(globalState.restoreFocusTimeout);\n var domCache = populateDomCache(this);\n render(this, innerParams);\n privateProps.innerParams.set(this, innerParams);\n return swalPromise(this, domCache, innerParams);\n}\n\nvar swalPromise = function swalPromise(instance, domCache, innerParams) {\n return new Promise(function (resolve) {\n // functions to handle all closings/dismissals\n var dismissWith = function dismissWith(dismiss) {\n instance.closePopup({\n dismiss: dismiss\n });\n };\n\n privateMethods.swalPromiseResolve.set(instance, resolve);\n setupTimer(globalState, innerParams, dismissWith);\n\n domCache.confirmButton.onclick = function () {\n return handleConfirmButtonClick(instance, innerParams);\n };\n\n domCache.cancelButton.onclick = function () {\n return handleCancelButtonClick(instance, dismissWith);\n };\n\n domCache.closeButton.onclick = function () {\n return dismissWith(DismissReason.close);\n };\n\n handlePopupClick(domCache, innerParams, dismissWith);\n addKeydownHandler(instance, globalState, innerParams, dismissWith);\n\n if (innerParams.toast && (innerParams.input || innerParams.footer || innerParams.showCloseButton)) {\n addClass(document.body, swalClasses['toast-column']);\n } else {\n removeClass(document.body, swalClasses['toast-column']);\n }\n\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n initFocus(domCache, innerParams); // Scroll container to top on open (#1247)\n\n domCache.container.scrollTop = 0;\n });\n};\n\nvar populateDomCache = function populateDomCache(instance) {\n var domCache = {\n popup: getPopup(),\n container: getContainer(),\n content: getContent(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n cancelButton: getCancelButton(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n};\n\nvar setupTimer = function setupTimer(globalState$$1, innerParams, dismissWith) {\n if (innerParams.timer) {\n globalState$$1.timeout = new Timer(function () {\n dismissWith('timer');\n delete globalState$$1.timeout;\n }, innerParams.timer);\n }\n};\n\nvar initFocus = function initFocus(domCache, innerParams) {\n if (innerParams.toast) {\n return;\n }\n\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return blurActiveElement();\n }\n\n if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {\n return domCache.cancelButton.focus();\n }\n\n if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {\n return domCache.confirmButton.focus();\n }\n\n setFocus(innerParams, -1, 1);\n};\n\nvar blurActiveElement = function blurActiveElement() {\n if (document.activeElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n};\n\n/**\n * Updates popup parameters.\n */\n\nfunction update(params) {\n var validUpdatableParams = {}; // assign valid params from `params` to `defaults`\n\n Object.keys(params).forEach(function (param) {\n if (Swal.isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(\"Invalid parameter to update: \\\"\".concat(param, \"\\\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\"));\n }\n });\n var innerParams = privateProps.innerParams.get(this);\n\n var updatedParams = _extends({}, innerParams, validUpdatableParams);\n\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: _extends({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n}\n\n\n\nvar instanceMethods = Object.freeze({\n\thideLoading: hideLoading,\n\tdisableLoading: hideLoading,\n\tgetInput: getInput$1,\n\tclose: close,\n\tclosePopup: close,\n\tcloseModal: close,\n\tcloseToast: close,\n\tenableButtons: enableButtons,\n\tdisableButtons: disableButtons,\n\tenableConfirmButton: enableConfirmButton,\n\tdisableConfirmButton: disableConfirmButton,\n\tenableInput: enableInput,\n\tdisableInput: disableInput,\n\tshowValidationMessage: showValidationMessage,\n\tresetValidationMessage: resetValidationMessage$1,\n\tgetProgressSteps: getProgressSteps$1,\n\tsetProgressSteps: setProgressSteps,\n\tshowProgressSteps: showProgressSteps,\n\thideProgressSteps: hideProgressSteps,\n\t_main: _main,\n\tupdate: update\n});\n\nvar currentInstance; // SweetAlert constructor\n\nfunction SweetAlert() {\n // Prevent run in Node env\n\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n return;\n } // Check for the existence of Promise\n\n /* istanbul ignore if */\n\n\n if (typeof Promise === 'undefined') {\n error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)');\n }\n\n currentInstance = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var outerParams = Object.freeze(this.constructor.argsToParams(args));\n Object.defineProperties(this, {\n params: {\n value: outerParams,\n writable: false,\n enumerable: true,\n configurable: true\n }\n });\n\n var promise = this._main(this.params);\n\n privateProps.promise.set(this, promise);\n} // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n\n\nSweetAlert.prototype.then = function (onFulfilled) {\n var promise = privateProps.promise.get(this);\n return promise.then(onFulfilled);\n};\n\nSweetAlert.prototype[\"finally\"] = function (onFinally) {\n var promise = privateProps.promise.get(this);\n return promise[\"finally\"](onFinally);\n}; // Assign instance methods from src/instanceMethods/*.js to prototype\n\n\n_extends(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor\n\n\n_extends(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility\n\n\nObject.keys(instanceMethods).forEach(function (key) {\n SweetAlert[key] = function () {\n if (currentInstance) {\n var _currentInstance;\n\n return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments);\n }\n };\n});\nSweetAlert.DismissReason = DismissReason;\nSweetAlert.version = '8.17.6';\n\nvar Swal = SweetAlert;\nSwal[\"default\"] = Swal;\n\nreturn Swal;\n\n})));\nif (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\"@charset \\\"UTF-8\\\";.swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon::before{display:flex;align-items:center;font-size:2em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon::before{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em}.swal2-popup.swal2-toast .swal2-styled{margin:0 .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 .0625em #fff,0 0 0 .125em rgba(50,100,150,.4)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;background-color:transparent;-webkit-overflow-scrolling:touch}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-container.swal2-fade{transition:background-color .1s}.swal2-container.swal2-shown{background-color:rgba(0,0,0,.4)}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:.3125em;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-actions.swal2-loading .swal2-styled.swal2-confirm{box-sizing:border-box;width:2.5em;height:2.5em;margin:.46875em;padding:0;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:.25em solid transparent;border-radius:100%;border-color:transparent;background-color:transparent!important;color:transparent;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-actions.swal2-loading .swal2-styled.swal2-cancel{margin-right:30px;margin-left:30px}.swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after{content:\\\"\\\";display:inline-block;width:15px;height:15px;margin-left:5px;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:3px solid #999;border-radius:50%;border-right-color:transparent;box-shadow:1px 1px 1px #fff}.swal2-styled{margin:.3125em;padding:.625em 2em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#3085d6;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#aaa;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(50,100,150,.4)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:0;outline:initial;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 3px #c4e6f5}.swal2-file::-webkit-input-placeholder,.swal2-input::-webkit-input-placeholder,.swal2-textarea::-webkit-input-placeholder{color:#ccc}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::-ms-input-placeholder,.swal2-input::-ms-input-placeholder,.swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:inherit}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:inherit;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-validation-message{display:none;align-items:center;justify-content:center;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;zoom:normal;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;zoom:normal;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon::before{display:flex;align-items:center;height:92%;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning::before{content:\\\"!\\\"}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info::before{content:\\\"i\\\"}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question::before{content:\\\"?\\\"}.swal2-icon.swal2-question.swal2-arabic-question-mark::before{content:\\\"ØŸ\\\"}.swal2-icon.swal2-success{border-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.875em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-progress-steps{align-items:center;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;width:2em;height:2em;border-radius:2em;background:#3085d6;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#3085d6}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;width:2.5em;height:.4em;margin:0 -1px;background:#3085d6}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-show.swal2-noanimation{-webkit-animation:none;animation:none}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-hide.swal2-noanimation{-webkit-animation:none;animation:none}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-animate-success-icon .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-animate-success-icon .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-animate-success-icon .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-animate-error-icon{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-animate-error-icon .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-moz-document url-prefix(){.swal2-close:focus{outline:2px solid rgba(50,100,150,.4)}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.875em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.875em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-shown{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent}body.swal2-no-backdrop .swal2-shown>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-shown.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-shown.swal2-top-left,body.swal2-no-backdrop .swal2-shown.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-shown.swal2-top-end,body.swal2-no-backdrop .swal2-shown.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-shown.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-shown.swal2-center-left,body.swal2-no-backdrop .swal2-shown.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-shown.swal2-center-end,body.swal2-no-backdrop .swal2-shown.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-shown.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-shown.swal2-bottom-left,body.swal2-no-backdrop .swal2-shown.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-shown.swal2-bottom-end,body.swal2-no-backdrop .swal2-shown.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-shown{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}\");","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n ' y: ' + this.y.fromRed().toString(16, 2) +\n ' z: ' + this.z.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n if (this.curve.twisted) {\n // E = a * C\n var e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n var h = this.z.redSqr();\n // J = F - 2 * H\n var j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n var e = c.redAdd(d);\n // H = (c * Z1)^2\n var h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n var j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': 'à¯',\n '8': '௮',\n '9': '௯',\n '0': '௦'\n }, numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n 'à¯': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0'\n };\n\n var ta = moment.defineLocale('ta', {\n months : 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split('_'),\n monthsShort : 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split('_'),\n weekdays : 'ஞாயிறà¯à®±à¯à®•à¯à®•à®¿à®´à®®à¯ˆ_திஙà¯à®•à®Ÿà¯à®•à®¿à®´à®®à¯ˆ_செவà¯à®µà®¾à®¯à¯à®•à®¿à®´à®®à¯ˆ_பà¯à®¤à®©à¯à®•à®¿à®´à®®à¯ˆ_வியாழகà¯à®•à®¿à®´à®®à¯ˆ_வெளà¯à®³à®¿à®•à¯à®•à®¿à®´à®®à¯ˆ_சனிகà¯à®•à®¿à®´à®®à¯ˆ'.split('_'),\n weekdaysShort : 'ஞாயிறà¯_திஙà¯à®•à®³à¯_செவà¯à®µà®¾à®¯à¯_பà¯à®¤à®©à¯_வியாழனà¯_வெளà¯à®³à®¿_சனி'.split('_'),\n weekdaysMin : 'ஞா_தி_செ_பà¯_வி_வெ_ச'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, HH:mm',\n LLLL : 'dddd, D MMMM YYYY, HH:mm'\n },\n calendar : {\n sameDay : '[இனà¯à®±à¯] LT',\n nextDay : '[நாளை] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[நேறà¯à®±à¯] LT',\n lastWeek : '[கடநà¯à®¤ வாரமà¯] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s இலà¯',\n past : '%s à®®à¯à®©à¯',\n s : 'ஒர௠சில விநாடிகளà¯',\n ss : '%d விநாடிகளà¯',\n m : 'ஒர௠நிமிடமà¯',\n mm : '%d நிமிடஙà¯à®•à®³à¯',\n h : 'ஒர௠மணி நேரமà¯',\n hh : '%d மணி நேரமà¯',\n d : 'ஒர௠நாளà¯',\n dd : '%d நாடà¯à®•à®³à¯',\n M : 'ஒர௠மாதமà¯',\n MM : '%d மாதஙà¯à®•à®³à¯',\n y : 'ஒர௠வரà¯à®Ÿà®®à¯',\n yy : '%d ஆணà¯à®Ÿà¯à®•à®³à¯'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வதà¯/,\n ordinal : function (number) {\n return number + 'வதà¯';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬à¯à¯®à¯¯à¯¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமமà¯|வைகறை|காலை|நணà¯à®ªà®•à®²à¯|எறà¯à®ªà®¾à®Ÿà¯|மாலை/,\n meridiem : function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமமà¯';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நணà¯à®ªà®•à®²à¯'; // நணà¯à®ªà®•à®²à¯\n } else if (hour < 18) {\n return ' எறà¯à®ªà®¾à®Ÿà¯'; // எறà¯à®ªà®¾à®Ÿà¯\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமமà¯';\n }\n },\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமமà¯') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நணà¯à®ªà®•à®²à¯') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': 'à³',\n '8': 'à³®',\n '9': '೯',\n '0': '೦'\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n 'à³': '7',\n 'à³®': '8',\n '೯': '9',\n '೦': '0'\n };\n\n var kn = moment.defineLocale('kn', {\n months : 'ಜನವರಿ_ಫೆಬà³à²°à²µà²°à²¿_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚ಬರà³_ಅಕà³à²Ÿà³†à³‚ೕಬರà³_ನವೆಂಬರà³_ಡಿಸೆಂಬರà³'.split('_'),\n monthsShort : 'ಜನ_ಫೆಬà³à²°_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚_ಅಕà³à²Ÿà³†à³‚ೕ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),\n monthsParseExact: true,\n weekdays : 'à²à²¾à²¨à³à²µà²¾à²°_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬà³à²§à²µà²¾à²°_ಗà³à²°à³à²µà²¾à²°_ಶà³à²•à³à²°à²µà²¾à²°_ಶನಿವಾರ'.split('_'),\n weekdaysShort : 'à²à²¾à²¨à³_ಸೋಮ_ಮಂಗಳ_ಬà³à²§_ಗà³à²°à³_ಶà³à²•à³à²°_ಶನಿ'.split('_'),\n weekdaysMin : 'à²à²¾_ಸೋ_ಮಂ_ಬà³_ಗà³_ಶà³_ಶ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[ಇಂದà³] LT',\n nextDay : '[ನಾಳೆ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ನಿನà³à²¨à³†] LT',\n lastWeek : '[ಕೊನೆಯ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ನಂತರ',\n past : '%s ಹಿಂದೆ',\n s : 'ಕೆಲವೠಕà³à²·à²£à²—ಳà³',\n ss : '%d ಸೆಕೆಂಡà³à²—ಳà³',\n m : 'ಒಂದೠನಿಮಿಷ',\n mm : '%d ನಿಮಿಷ',\n h : 'ಒಂದೠಗಂಟೆ',\n hh : '%d ಗಂಟೆ',\n d : 'ಒಂದೠದಿನ',\n dd : '%d ದಿನ',\n M : 'ಒಂದೠತಿಂಗಳà³',\n MM : '%d ತಿಂಗಳà³',\n y : 'ಒಂದೠವರà³à²·',\n yy : '%d ವರà³à²·'\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬à³à³®à³¯à³¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತà³à²°à²¿|ಬೆಳಿಗà³à²—ೆ|ಮಧà³à²¯à²¾à²¹à³à²¨|ಸಂಜೆ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತà³à²°à²¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗà³à²—ೆ') {\n return hour;\n } else if (meridiem === 'ಮಧà³à²¯à²¾à²¹à³à²¨') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತà³à²°à²¿';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗà³à²—ೆ';\n } else if (hour < 17) {\n return 'ಮಧà³à²¯à²¾à²¹à³à²¨';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತà³à²°à²¿';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal : function (number) {\n return number + 'ನೇ';\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return kn;\n\n})));\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/*!\n * vue-countdown v1.1.3\n * https://fengyuanchen.github.io/vue-countdown\n *\n * Copyright 2018-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2019-09-14T04:14:37.456Z\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.VueCountdown = factory());\n}(this, function () { 'use strict';\n\n var MILLISECONDS_SECOND = 1000;\n var MILLISECONDS_MINUTE = 60 * MILLISECONDS_SECOND;\n var MILLISECONDS_HOUR = 60 * MILLISECONDS_MINUTE;\n var MILLISECONDS_DAY = 24 * MILLISECONDS_HOUR;\n var EVENT_VISIBILITY_CHANGE = 'visibilitychange';\n var index = {\n name: 'countdown',\n data: function data() {\n return {\n /**\n * It is counting down.\n * @type {boolean}\n */\n counting: false,\n\n /**\n * The absolute end time.\n * @type {number}\n */\n endTime: 0,\n\n /**\n * The remaining milliseconds.\n * @type {number}\n */\n totalMilliseconds: 0\n };\n },\n props: {\n /**\n * Starts the countdown automatically when initialized.\n */\n autoStart: {\n type: Boolean,\n default: true\n },\n\n /**\n * Emits the countdown events.\n */\n emitEvents: {\n type: Boolean,\n default: true\n },\n\n /**\n * The interval time (in milliseconds) of the countdown progress.\n */\n interval: {\n type: Number,\n default: 1000,\n validator: function validator(value) {\n return value >= 0;\n }\n },\n\n /**\n * Generate the current time of a specific time zone.\n */\n now: {\n type: Function,\n default: function _default() {\n return Date.now();\n }\n },\n\n /**\n * The tag name of the component's root element.\n */\n tag: {\n type: String,\n default: 'span'\n },\n\n /**\n * The time (in milliseconds) to count down from.\n */\n time: {\n type: Number,\n default: 0,\n validator: function validator(value) {\n return value >= 0;\n }\n },\n\n /**\n * Transforms the output props before render.\n */\n transform: {\n type: Function,\n default: function _default(props) {\n return props;\n }\n }\n },\n computed: {\n /**\n * Remaining days.\n * @returns {number} The computed value.\n */\n days: function days() {\n return Math.floor(this.totalMilliseconds / MILLISECONDS_DAY);\n },\n\n /**\n * Remaining hours.\n * @returns {number} The computed value.\n */\n hours: function hours() {\n return Math.floor(this.totalMilliseconds % MILLISECONDS_DAY / MILLISECONDS_HOUR);\n },\n\n /**\n * Remaining minutes.\n * @returns {number} The computed value.\n */\n minutes: function minutes() {\n return Math.floor(this.totalMilliseconds % MILLISECONDS_HOUR / MILLISECONDS_MINUTE);\n },\n\n /**\n * Remaining seconds.\n * @returns {number} The computed value.\n */\n seconds: function seconds() {\n return Math.floor(this.totalMilliseconds % MILLISECONDS_MINUTE / MILLISECONDS_SECOND);\n },\n\n /**\n * Remaining milliseconds.\n * @returns {number} The computed value.\n */\n milliseconds: function milliseconds() {\n return Math.floor(this.totalMilliseconds % MILLISECONDS_SECOND);\n },\n\n /**\n * Total remaining days.\n * @returns {number} The computed value.\n */\n totalDays: function totalDays() {\n return this.days;\n },\n\n /**\n * Total remaining hours.\n * @returns {number} The computed value.\n */\n totalHours: function totalHours() {\n return Math.floor(this.totalMilliseconds / MILLISECONDS_HOUR);\n },\n\n /**\n * Total remaining minutes.\n * @returns {number} The computed value.\n */\n totalMinutes: function totalMinutes() {\n return Math.floor(this.totalMilliseconds / MILLISECONDS_MINUTE);\n },\n\n /**\n * Total remaining seconds.\n * @returns {number} The computed value.\n */\n totalSeconds: function totalSeconds() {\n return Math.floor(this.totalMilliseconds / MILLISECONDS_SECOND);\n }\n },\n render: function render(createElement) {\n return createElement(this.tag, this.$scopedSlots.default ? [this.$scopedSlots.default(this.transform({\n days: this.days,\n hours: this.hours,\n minutes: this.minutes,\n seconds: this.seconds,\n milliseconds: this.milliseconds,\n totalDays: this.totalDays,\n totalHours: this.totalHours,\n totalMinutes: this.totalMinutes,\n totalSeconds: this.totalSeconds,\n totalMilliseconds: this.totalMilliseconds\n }))] : this.$slots.default);\n },\n watch: {\n $props: {\n deep: true,\n immediate: true,\n\n /**\n * Update the countdown when props changed.\n */\n handler: function handler() {\n this.totalMilliseconds = this.time;\n this.endTime = this.now() + this.time;\n\n if (this.autoStart) {\n this.start();\n }\n }\n }\n },\n methods: {\n /**\n * Starts to countdown.\n * @public\n * @emits Countdown#start\n */\n start: function start() {\n if (this.counting) {\n return;\n }\n\n this.counting = true;\n\n if (this.emitEvents) {\n /**\n * Countdown start event.\n * @event Countdown#start\n */\n this.$emit('start');\n }\n\n if (document.visibilityState === 'visible') {\n this.continue();\n }\n },\n\n /**\n * Continues the countdown.\n * @private\n */\n continue: function _continue() {\n var _this = this;\n\n if (!this.counting) {\n return;\n }\n\n var delay = Math.min(this.totalMilliseconds, this.interval);\n\n if (delay > 0) {\n if (window.requestAnimationFrame) {\n var start;\n\n var step = function step(timestamp) {\n if (!start) {\n start = timestamp;\n }\n\n if (timestamp - start < delay) {\n _this.requestId = requestAnimationFrame(step);\n } else {\n _this.progress();\n }\n };\n\n this.requestId = requestAnimationFrame(step);\n } else {\n this.timeoutId = setTimeout(function () {\n _this.progress();\n }, delay);\n }\n } else {\n this.end();\n }\n },\n\n /**\n * Pauses the countdown.\n * @private\n */\n pause: function pause() {\n if (window.requestAnimationFrame) {\n cancelAnimationFrame(this.requestId);\n } else {\n clearTimeout(this.timeoutId);\n }\n },\n\n /**\n * Progresses to countdown.\n * @private\n * @emits Countdown#progress\n */\n progress: function progress() {\n if (!this.counting) {\n return;\n }\n\n this.totalMilliseconds -= this.interval;\n\n if (this.emitEvents && this.totalMilliseconds > 0) {\n /**\n * Countdown progress event.\n * @event Countdown#progress\n */\n this.$emit('progress', {\n days: this.days,\n hours: this.hours,\n minutes: this.minutes,\n seconds: this.seconds,\n milliseconds: this.milliseconds,\n totalDays: this.totalDays,\n totalHours: this.totalHours,\n totalMinutes: this.totalMinutes,\n totalSeconds: this.totalSeconds,\n totalMilliseconds: this.totalMilliseconds\n });\n }\n\n this.continue();\n },\n\n /**\n * Aborts the countdown.\n * @public\n * @emits Countdown#abort\n */\n abort: function abort() {\n if (!this.counting) {\n return;\n }\n\n this.pause();\n this.counting = false;\n\n if (this.emitEvents) {\n /**\n * Countdown abort event.\n * @event Countdown#abort\n */\n this.$emit('abort');\n }\n },\n\n /**\n * Ends the countdown.\n * @public\n * @emits Countdown#end\n */\n end: function end() {\n if (!this.counting) {\n return;\n }\n\n this.pause();\n this.totalMilliseconds = 0;\n this.counting = false;\n\n if (this.emitEvents) {\n /**\n * Countdown end event.\n * @event Countdown#end\n */\n this.$emit('end');\n }\n },\n\n /**\n * Updates the count.\n * @private\n */\n update: function update() {\n if (this.counting) {\n this.totalMilliseconds = Math.max(0, this.endTime - this.now());\n }\n },\n\n /**\n * visibility change event handler.\n * @private\n */\n handleVisibilityChange: function handleVisibilityChange() {\n switch (document.visibilityState) {\n case 'visible':\n this.update();\n this.continue();\n break;\n\n case 'hidden':\n this.pause();\n break;\n\n default:\n }\n }\n },\n mounted: function mounted() {\n document.addEventListener(EVENT_VISIBILITY_CHANGE, this.handleVisibilityChange);\n },\n beforeDestroy: function beforeDestroy() {\n document.removeEventListener(EVENT_VISIBILITY_CHANGE, this.handleVisibilityChange);\n this.pause();\n }\n };\n\n return index;\n\n}));\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'\n ]\n ]\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'\n ]\n ]\n }\n};\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arKw = moment.defineLocale('ar-kw', {\n months : 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort : 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays : 'الأØد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'اØد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'ÙÙŠ %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arKw;\n\n})));\n","module.exports = require('events').EventEmitter;\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[\"VueEventCalendar\"] = factory();\n\telse\n\t\troot[\"VueEventCalendar\"] = 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// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 9);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = dateTimeFormatter;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = isEqualDateStr;\nfunction dateTimeFormatter(date, format) {\n // æ—¶é—´æ ¼å¼åŒ–辅助函数 date:毫秒数 format:'yyyy-MM-dd hh:mm:ss'\n if (!date || date == \"\") {\n return \"\";\n }\n\n if (typeof date === \"string\") {\n var mts = date.match(/(\\/Date\\((\\d+)\\)\\/)/);\n if (mts && mts.length >= 3) {\n date = parseInt(mts[2]);\n }\n }\n\n date = new Date(date);\n if (!date || date.toUTCString() == \"Invalid Date\") {\n return \"\";\n }\n\n var map = {\n \"M\": date.getMonth() + 1, //月份\n \"d\": date.getDate(), //æ—¥\n \"h\": date.getHours(), //å°æ—¶\n \"m\": date.getMinutes(), //分\n \"s\": date.getSeconds(), //秒\n \"q\": Math.floor((date.getMonth() + 3) / 3), //å£åº¦\n \"S\": date.getMilliseconds() //毫秒\n };\n\n format = format.replace(/([yMdhmsqS])+/g, function (all, t) {\n var v = map[t];\n if (v !== undefined) {\n if (all.length > 1) {\n v = '0' + v;\n v = v.substr(v.length - 2);\n }\n return v;\n } else if (t === 'y') {\n return (date.getFullYear() + '').substr(4 - all.length);\n }\n return all;\n });\n\n return format;\n}\nfunction isEqualDateStr(dateStr1, dateStr2) {\n var dateArr1 = dateStr1.split('/');\n var dateArr2 = dateStr2.split('/');\n if (parseInt(dateArr1[0], 10) !== parseInt(dateArr2[0], 10)) {\n return false;\n }\n if (parseInt(dateArr1[1], 10) !== parseInt(dateArr2[1], 10)) {\n return false;\n }\n if (parseInt(dateArr1[2], 10) !== parseInt(dateArr2[2], 10)) {\n return false;\n }\n return true;\n}\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n scopeId,\n cssModules\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n // inject cssModules\n if (cssModules) {\n var computed = options.computed || (options.computed = {})\n Object.keys(cssModules).forEach(function (key) {\n var module = cssModules[key]\n computed[key] = function () { return module }\n })\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n en: {\n dayNames: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n monthNames: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n format: 'MM/yyyy',\n fullFormat: 'dd/MM/yyyy',\n dayEventsTitle: 'All Events',\n notHaveEvents: 'Not Have Events'\n },\n zh: {\n dayNames: [\"æ—¥\", \"一\", \"二\", \"三\", \"å››\", \"五\", \"å…\"],\n monthNames: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"å…月\", \"七月\", \"八月\", \"ä¹æœˆ\", \"å月\", \"å一月\", \"å二月\"],\n format: 'yyyyå¹´MM月',\n fullFormat: 'yyyyå¹´MM月ddæ—¥',\n dayEventsTitle: '全部事件',\n notHaveEvents: '没有事件'\n },\n us: {\n dayNames: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n monthNames: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n format: 'MM/yyyy',\n fullFormat: 'MM/dd/yyyy',\n dayEventsTitle: 'All Events',\n notHaveEvents: 'Not Have Events'\n },\n es: {\n dayNames: [\"Do\", \"Lu\", \"Ma\", \"Mi\", \"Ju\", \"Vi\", \"Sá\"],\n monthNames: [\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"],\n format: 'MM/yyyy',\n fullFormat: 'dd/MM/yyyy',\n dayEventsTitle: 'Todos los eventos',\n notHaveEvents: 'Nada'\n },\n 'pt-br': {\n dayNames: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\"],\n monthNames: [\"Janeiro\", \"Fevereiro\", \"Março\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"],\n format: 'MM/yyyy',\n fullFormat: 'dd/MM/yyyy',\n dayEventsTitle: 'Todos os eventos',\n notHaveEvents: 'Nenhum evento'\n },\n ja: {\n dayNames: [\"æ—¥\", \"月\", \"ç«\", \"æ°´\", \"木\", \"金\", \"土\"],\n monthNames: [\"1月\", \"2月\", \"3月\", \"4月\", \"5月\", \"6月\", \"7月\", \"8月\", \"9月\", \"10月\", \"11月\", \"12月\"],\n format: 'yyyy/MM',\n fullFormat: 'yyyy/MM/dd',\n dayEventsTitle: 'å…¨ã¦ã®ã‚¤ãƒ™ãƒ³ãƒˆ',\n notHaveEvents: 'イベントã¯ã‚ã‚Šã¾ã›ã‚“'\n },\n ko: {\n dayNames: [\"ì¼\", \"ì›”\", \"í™”\", \"수\", \"목\", \"금\", \"í† \"],\n monthNames: [\"1ì›”\", \"2ì›”\", \"3ì›”\", \"4ì›”\", \"5ì›”\", \"6ì›”\", \"7ì›”\", \"8ì›”\", \"9ì›”\", \"10ì›”\", \"11ì›”\", \"12ì›”\"],\n format: 'yyyy/MM',\n fullFormat: 'yyyy/MM/dd',\n dayEventsTitle: 'ëª¨ë“ ì´ë²¤íŠ¸',\n notHaveEvents: 'ì¼ì •ì´ 없습니다'\n },\n fr: {\n dayNames: [\"Dim\", \"Lun\", \"Mar\", \"Mer\", \"Jeu\", \"Ven\", \"Sam\"],\n monthNames: [\"Janvier\", \"Février\", \"Mars\", \"Avril\", \"Mai\", \"Juin\", \"Juillet\", \"Août\", \"Septembre\", \"Octobre\", \"Novembre\", \"Décembre\"],\n format: 'MM/yyyy',\n fullFormat: 'dd/MM/yyyy',\n dayEventsTitle: 'Tous les événements',\n notHaveEvents: 'Aucun événement'\n },\n it: {\n dayNames: [\"Dom\", \"Lun\", \"Mar\", \"Mer\", \"Gio\", \"Ven\", \"Sab\"],\n monthNames: [\"Gennaio\", \"Febbraio\", \"Marzo\", \"Aprile\", \"Maggio\", \"Giugno\", \"Luglio\", \"Agosto\", \"Settembre\", \"Ottobre\", \"Novembre\", \"Dicembre\"],\n format: 'MM/yyyy',\n fullFormat: 'dd/MM/yyyy',\n dayEventsTitle: 'Tutti gli eventi',\n notHaveEvents: 'Nessun evento'\n },\n ru: {\n dayNames: [\"Ð’Ñ\", \"Пн\", \"Ð’Ñ‚\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"],\n monthNames: [\"Январь\", \"Февраль\", \"Март\", \"Ðпрель\", \"Май\", \"Июнь\", \"Июль\", \"ÐвгуÑÑ‚\", \"СентÑбрь\", \"ОктÑбрь\", \"ÐоÑбрь\", \"Декабрь\"],\n format: 'MM.yyyy',\n fullFormat: 'dd.MM.yyyy',\n dayEventsTitle: 'Ð’Ñе ÑобытиÑ',\n notHaveEvents: 'Ð¡Ð¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð¾Ñ‚ÑутÑтвуют'\n },\n sv: {\n dayNames: [\"Sön\", \"MÃ¥n\", \"Tis\", \"Ons\", \"Tor\", \"Fre\", \"Lör\"],\n monthNames: [\"Januari\", \"Februari\", \"Mars\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"Augusti\", \"September\", \"Oktober\", \"November\", \"December\"],\n format: 'MM/yyyy',\n fullFormat: 'dd/MM/yyyy',\n dayEventsTitle: 'Alla händelser',\n notHaveEvents: 'Inga händelser'\n },\n de: {\n dayNames: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\n monthNames: [\"Januar\", \"Februar\", \"März\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Dezember\"],\n format: 'MM/yyyy',\n fullFormat: 'dd.MM.yyyy',\n dayEventsTitle: 'Alle Veranstaltungen',\n notHaveEvents: 'Keine Veranstaltungen'\n },\n vi: {\n dayNames: [\"T2\", \"T3\", \"T4\", \"T5\", \"T6\", \"T7\", \"CN\"],\n monthNames: [\"Tháng 1\", \"Tháng 2\", \"Tháng 3\", \"Tháng 4\", \"Tháng 5\", \"Tháng 6\", \"Tháng 7\", \"Tháng 8\", \"Tháng 9\", \"Tháng 10\", \"Tháng 11\", \"Tháng 12\"],\n format: 'MM/yyyy',\n fullFormat: 'dd/MM/yyyy',\n dayEventsTitle: 'Tất cả sá»± kiện',\n notHaveEvents: 'Không có sá»± kiện nà o'\n }\n});\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(10)\n\nvar Component = __webpack_require__(1)(\n /* script */\n __webpack_require__(8),\n /* template */\n __webpack_require__(16),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(originalModule) {\r\n\tif(!originalModule.webpackPolyfill) {\r\n\t\tvar module = Object.create(originalModule);\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"exports\", {\r\n\t\t\tenumerable: true,\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__i18n_js__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__tools_js__ = __webpack_require__(0);\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n data: function data() {\n return {\n i18n: __WEBPACK_IMPORTED_MODULE_0__i18n_js__[\"a\" /* default */]\n };\n },\n\n props: {\n event: {\n type: Object,\n required: true\n },\n index: {\n type: Number,\n required: true\n },\n locale: {\n type: String,\n required: true\n }\n },\n methods: {\n dateTimeFormatter: __WEBPACK_IMPORTED_MODULE_1__tools_js__[\"b\" /* dateTimeFormatter */]\n }\n});\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__i18n_js__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__tools_js__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__cal_event_item_vue__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__cal_event_item_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__cal_event_item_vue__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'cal-events',\n data: function data() {\n return {\n i18n: __WEBPACK_IMPORTED_MODULE_0__i18n_js__[\"a\" /* default */]\n };\n },\n\n components: {\n 'cal-event-item': __WEBPACK_IMPORTED_MODULE_2__cal_event_item_vue___default.a\n },\n props: {\n title: String,\n dayEvents: {\n type: Object,\n required: true\n },\n locale: {\n type: String,\n required: true\n },\n color: {\n type: String,\n required: true\n }\n },\n computed: {\n dayEventsTitle: function dayEventsTitle() {\n if (this.title) return this.title;\n if (this.dayEvents.date !== 'all') {\n var tempDate = void 0;\n if (this.dayEvents.events.length !== 0) {\n tempDate = Date.parse(new Date(this.dayEvents.events[0].date));\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__tools_js__[\"b\" /* dateTimeFormatter */])(tempDate, __WEBPACK_IMPORTED_MODULE_0__i18n_js__[\"a\" /* default */][this.locale].fullFormat);\n } else {\n tempDate = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__tools_js__[\"b\" /* dateTimeFormatter */])(Date.parse(new Date(this.dayEvents.date)), __WEBPACK_IMPORTED_MODULE_0__i18n_js__[\"a\" /* default */][this.locale].fullFormat);\n return tempDate + ' ' + __WEBPACK_IMPORTED_MODULE_0__i18n_js__[\"a\" /* default */][this.locale].notHaveEvents;\n }\n } else {\n return __WEBPACK_IMPORTED_MODULE_0__i18n_js__[\"a\" /* default */][this.locale].dayEventsTitle;\n }\n },\n events: function events() {\n return this.dayEvents.events;\n },\n bgColor: function bgColor() {\n return { backgroundColor: this.color };\n }\n },\n methods: {\n dateTimeFormatter: __WEBPACK_IMPORTED_MODULE_1__tools_js__[\"b\" /* dateTimeFormatter */]\n }\n});\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__i18n_js__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__tools_js__ = __webpack_require__(0);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\nvar inBrowser = typeof window !== 'undefined';\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'cal-panel',\n data: function data() {\n return {\n i18n: __WEBPACK_IMPORTED_MODULE_0__i18n_js__[\"a\" /* default */]\n };\n },\n\n props: {\n events: {\n type: Array,\n required: true\n },\n calendar: {\n type: Object,\n required: true\n },\n selectedDay: {\n type: String,\n required: false\n }\n },\n computed: {\n dayList: function dayList() {\n var firstDay = new Date(this.calendar.params.curYear, this.calendar.params.curMonth, 1);\n var dayOfWeek = firstDay.getDay();\n // æ ¹æ®å½“å‰æ—¥æœŸè®¡ç®—åç§»é‡ // Calculate the offset based on the current date\n if (this.calendar.options.weekStartOn > dayOfWeek) {\n dayOfWeek = dayOfWeek - this.calendar.options.weekStartOn + 7;\n } else {\n dayOfWeek = dayOfWeek - this.calendar.options.weekStartOn;\n }\n\n var startDate = new Date(firstDay);\n startDate.setDate(firstDay.getDate() - dayOfWeek);\n\n var item = void 0,\n status = void 0,\n tempArr = [],\n tempItem = void 0;\n for (var i = 0; i < 42; i++) {\n item = new Date(startDate);\n item.setDate(startDate.getDate() + i);\n\n if (this.calendar.params.curMonth === item.getMonth()) {\n status = 1;\n } else {\n status = 0;\n }\n tempItem = {\n date: item.getFullYear() + '/' + (item.getMonth() + 1) + '/' + item.getDate(),\n status: status,\n customClass: []\n };\n this.events.forEach(function (event) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__tools_js__[\"a\" /* isEqualDateStr */])(event.date, tempItem.date)) {\n tempItem.title = event.title;\n tempItem.desc = event.desc || '';\n if (event.customClass) tempItem.customClass.push(event.customClass);\n }\n });\n tempArr.push(tempItem);\n }\n return tempArr;\n },\n today: function today() {\n var dateObj = new Date();\n return dateObj.getFullYear() + '/' + (dateObj.getMonth() + 1) + '/' + dateObj.getDate();\n },\n curYearMonth: function curYearMonth() {\n var tempDate = Date.parse(new Date(this.calendar.params.curYear + '/' + (this.calendar.params.curMonth + 1) + '/01'));\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__tools_js__[\"b\" /* dateTimeFormatter */])(tempDate, this.i18n[this.calendar.options.locale].format);\n },\n customColor: function customColor() {\n return this.calendar.options.color;\n }\n },\n methods: {\n nextMonth: function nextMonth() {\n this.$EventCalendar.nextMonth();\n this.$emit('month-changed', this.curYearMonth);\n },\n preMonth: function preMonth() {\n this.$EventCalendar.preMonth();\n this.$emit('month-changed', this.curYearMonth);\n },\n handleChangeCurday: function handleChangeCurday(date) {\n if (date.status) {\n this.$emit('cur-day-changed', date.date);\n }\n }\n }\n});\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tools_js__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_cal_events_vue__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_cal_events_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__components_cal_events_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_cal_panel_vue__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_cal_panel_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__components_cal_panel_vue__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\nvar inBrowser = typeof window !== 'undefined';\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'vue-event-calendar',\n components: {\n 'cal-events': __WEBPACK_IMPORTED_MODULE_1__components_cal_events_vue___default.a,\n 'cal-panel': __WEBPACK_IMPORTED_MODULE_2__components_cal_panel_vue___default.a\n },\n data: function data() {\n return {\n selectedDayEvents: {\n date: 'all',\n events: this.events || [] //default show all event\n }\n };\n },\n\n props: {\n title: String,\n events: {\n type: Array,\n required: true,\n default: [],\n validator: function validator(events) {\n var validate = true;\n events.forEach(function (event, index) {\n if (!event.date) {\n console.error('Vue-Event-Calendar-Error:' + 'Prop events Wrong at index ' + index);\n validate = false;\n }\n });\n return validate;\n }\n }\n },\n computed: {\n calendarOptions: function calendarOptions() {\n var dateObj = new Date();\n if (inBrowser) {\n return window.VueCalendarBarEventBus.CALENDAR_EVENTS_DATA;\n } else {\n return {\n options: {\n locale: 'en', //zh\n color: ' #f29543'\n },\n params: {\n curYear: dateObj.getFullYear(),\n curMonth: dateObj.getMonth(),\n curDate: dateObj.getDate(),\n curEventsDate: 'all'\n }\n };\n }\n },\n calendarParams: function calendarParams() {\n var dateObj = new Date();\n if (inBrowser) {\n return window.VueCalendarBarEventBus.CALENDAR_EVENTS_DATA.params;\n } else {\n return {\n curYear: dateObj.getFullYear(),\n curMonth: dateObj.getMonth(),\n curDate: dateObj.getDate(),\n curEventsDate: 'all'\n };\n }\n }\n },\n created: function created() {\n if (this.calendarParams.curEventsDate !== 'all') {\n this.handleChangeCurDay(this.calendarParams.curEventsDate);\n }\n },\n\n methods: {\n handleChangeCurDay: function handleChangeCurDay(date) {\n var events = this.events.filter(function (event) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__tools_js__[\"a\" /* isEqualDateStr */])(event.date, date);\n });\n if (events.length > 0) {\n this.selectedDayEvents = {\n date: date,\n events: events\n };\n }\n this.$emit('day-changed', {\n date: date,\n events: events\n });\n },\n handleMonthChanged: function handleMonthChanged(yearMonth) {\n this.$emit('month-changed', yearMonth);\n }\n },\n watch: {\n calendarParams: function calendarParams() {\n var _this = this;\n\n if (this.calendarParams.curEventsDate !== 'all') {\n var events = this.events.filter(function (event) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__tools_js__[\"a\" /* isEqualDateStr */])(event.date, _this.calendarParams.curEventsDate);\n });\n this.selectedDayEvents = {\n date: this.calendarParams.curEventsDate,\n events: events\n };\n } else {\n this.selectedDayEvents = {\n date: 'all',\n events: this.events\n };\n }\n },\n events: function events() {\n this.selectedDayEvents = {\n date: 'all',\n events: this.events || []\n };\n }\n }\n});\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* WEBPACK VAR INJECTION */(function(module) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__vue_event_calendar_vue__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__vue_event_calendar_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__vue_event_calendar_vue__);\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\n\n\nfunction install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var isVueNext = Vue.version.split('.')[0] === '2';\n var inBrowser = typeof window !== 'undefined';\n var dateObj = new Date();\n var DEFAULT_OPTION = {\n locale: 'zh', // en\n color: ' #f29543',\n className: 'selected-day',\n weekStartOn: 0 // 0 mean sunday\n };\n var Calendar = {\n $vm: null,\n bindEventBus: function bindEventBus(vm) {\n this.$vm = vm;\n },\n toDate: function toDate(dateString) {\n if (dateString === 'all') {\n this.$vm.CALENDAR_EVENTS_DATA.params = {\n curYear: dateObj.getFullYear(),\n curMonth: dateObj.getMonth(),\n curDate: dateObj.getDate(),\n curEventsDate: 'all'\n };\n } else {\n var dateArr = dateString.split('/');\n dateArr = dateArr.map(function (item) {\n return parseInt(item, 10);\n });\n this.$vm.CALENDAR_EVENTS_DATA.params = {\n curYear: dateArr[0],\n curMonth: dateArr[1] - 1,\n curDate: dateArr[2],\n curEventsDate: dateString\n };\n }\n },\n nextMonth: function nextMonth() {\n if (this.$vm.CALENDAR_EVENTS_DATA.params.curMonth < 11) {\n this.$vm.CALENDAR_EVENTS_DATA.params.curMonth++;\n } else {\n this.$vm.CALENDAR_EVENTS_DATA.params.curYear++;\n this.$vm.CALENDAR_EVENTS_DATA.params.curMonth = 0;\n }\n },\n preMonth: function preMonth() {\n if (this.$vm.CALENDAR_EVENTS_DATA.params.curMonth > 0) {\n this.$vm.CALENDAR_EVENTS_DATA.params.curMonth--;\n } else {\n this.$vm.CALENDAR_EVENTS_DATA.params.curYear--;\n this.$vm.CALENDAR_EVENTS_DATA.params.curMonth = 11;\n }\n }\n };\n\n var calendarOptions = Object.assign(DEFAULT_OPTION, options);\n\n var VueCalendarBarEventBus = new Vue({\n data: {\n CALENDAR_EVENTS_DATA: {\n options: calendarOptions,\n params: {\n curYear: dateObj.getFullYear(),\n curMonth: dateObj.getMonth(),\n curDate: dateObj.getDate(),\n curEventsDate: 'all'\n }\n }\n }\n });\n\n if (inBrowser) {\n window.VueCalendarBarEventBus = VueCalendarBarEventBus;\n Calendar.bindEventBus(VueCalendarBarEventBus);\n }\n\n Vue.component('vue-event-calendar', __WEBPACK_IMPORTED_MODULE_0__vue_event_calendar_vue___default.a);\n\n Vue.prototype.$EventCalendar = Calendar;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (install);\n\nif (( false ? 'undefined' : _typeof(module)) === 'object' && module.exports) {\n module.exports.install = install;\n}\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(4)(module)))\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(1)(\n /* script */\n __webpack_require__(5),\n /* template */\n __webpack_require__(14),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(1)(\n /* script */\n __webpack_require__(6),\n /* template */\n __webpack_require__(15),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(1)(\n /* script */\n __webpack_require__(7),\n /* template */\n __webpack_require__(17),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"wrapper\"\n }, [_c('h3', {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(_vm.index + 1) + \". \" + _vm._s(_vm.event.title))]), _vm._v(\" \"), _c('p', {\n staticClass: \"time\"\n }, [_vm._v(_vm._s(_vm.dateTimeFormatter(Date.parse(new Date(_vm.event.date)), _vm.i18n[_vm.locale].fullFormat)))]), _vm._v(\" \"), _c('p', {\n staticClass: \"desc\"\n }, [_vm._v(_vm._s(_vm.event.desc))])])\n},staticRenderFns: []}\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"events-wrapper\",\n style: (_vm.bgColor)\n }, [_c('h2', {\n staticClass: \"date\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.dayEventsTitle) + \"\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"cal-events\"\n }, [_vm._t(\"default\", _vm._l((_vm.events), function(event, index) {\n return _c('div', {\n staticClass: \"event-item\"\n }, [_c('cal-event-item', {\n attrs: {\n \"event\": event,\n \"index\": index,\n \"locale\": _vm.locale\n }\n })], 1)\n }))], 2)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"__vev_calendar-wrapper\"\n }, [_c('cal-panel', {\n attrs: {\n \"events\": _vm.events,\n \"calendar\": _vm.calendarOptions,\n \"selectedDay\": _vm.selectedDayEvents.date\n },\n on: {\n \"cur-day-changed\": _vm.handleChangeCurDay,\n \"month-changed\": _vm.handleMonthChanged\n }\n }), _vm._v(\" \"), _c('cal-events', {\n attrs: {\n \"title\": _vm.title,\n \"dayEvents\": _vm.selectedDayEvents,\n \"locale\": _vm.calendarOptions.options.locale,\n \"color\": _vm.calendarOptions.options.color\n }\n }, [_vm._t(\"default\", null, {\n showEvents: _vm.selectedDayEvents.events\n })], 2)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"cal-wrapper\"\n }, [_c('div', {\n staticClass: \"cal-header\"\n }, [_c('div', {\n staticClass: \"l\",\n on: {\n \"click\": _vm.preMonth\n }\n }, [_c('div', {\n staticClass: \"arrow-left icon\"\n }, [_vm._v(\" \")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(_vm.curYearMonth))]), _vm._v(\" \"), _c('div', {\n staticClass: \"r\",\n on: {\n \"click\": _vm.nextMonth\n }\n }, [_c('div', {\n staticClass: \"arrow-right icon\"\n }, [_vm._v(\" \")])])]), _vm._v(\" \"), _c('div', {\n staticClass: \"cal-body\"\n }, [_c('div', {\n staticClass: \"weeks\"\n }, _vm._l((_vm.i18n[_vm.calendar.options.locale].dayNames), function(dayName, dayIndex) {\n return _c('span', {\n key: dayIndex,\n staticClass: \"item\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.i18n[_vm.calendar.options.locale].dayNames[(dayIndex + _vm.calendar.options.weekStartOn) % 7]) + \"\\n \")])\n })), _vm._v(\" \"), _c('div', {\n staticClass: \"dates\"\n }, _vm._l((_vm.dayList), function(date) {\n return _c('div', {\n key: date.date,\n staticClass: \"item\",\n class: [( _obj = {\n today: date.status ? (_vm.today == date.date) : false,\n event: date.status ? (date.title != undefined) : false\n }, _obj[_vm.calendar.options.className] = (date.date == _vm.selectedDay), _obj ) ].concat( date.customClass)\n }, [_c('p', {\n staticClass: \"date-num\",\n style: ({\n color: date.title != undefined ? ((date.date == _vm.selectedDay) ? '#fff' : _vm.customColor) : 'inherit'\n }),\n on: {\n \"click\": function($event) {\n _vm.handleChangeCurday(date)\n }\n }\n }, [_vm._v(\"\\n \" + _vm._s(date.status ? date.date.split('/')[2] : ' '))]), _vm._v(\" \"), (date.status ? (_vm.today == date.date) : false) ? _c('span', {\n staticClass: \"is-today\",\n style: ({\n backgroundColor: _vm.customColor\n })\n }) : _vm._e(), _vm._v(\" \"), (date.status ? (date.title != undefined) : false) ? _c('span', {\n staticClass: \"is-event\",\n style: ({\n borderColor: _vm.customColor,\n backgroundColor: (date.date == _vm.selectedDay) ? _vm.customColor : 'inherit'\n })\n }) : _vm._e()])\n var _obj;\n }))])])\n},staticRenderFns: []}\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=index.js.map","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eng Minutt', 'enger Minutt'],\n 'h': ['eng Stonn', 'enger Stonn'],\n 'd': ['een Dag', 'engem Dag'],\n 'M': ['ee Mount', 'engem Mount'],\n 'y': ['ee Joer', 'engem Joer']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10, firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n }\n },\n relativeTime : {\n future : processFutureTime,\n past : processPastTime,\n s : 'e puer Sekonnen',\n ss : '%d Sekonnen',\n m : processRelativeTime,\n mm : '%d Minutten',\n h : processRelativeTime,\n hh : '%d Stonnen',\n d : processRelativeTime,\n dd : '%d Deeg',\n M : processRelativeTime,\n MM : '%d Méint',\n y : processRelativeTime,\n yy : '%d Joer'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lb;\n\n})));\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array<Bytes>|Object} sig -\n* @param {Array<Bytes>|Point} [sig.R] - R point as Point or bytes\n* @param {Array<Bytes>|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array<Bytes>} [sig.Rencoded] - R point encoded\n* @param {Array<Bytes>} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength)\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı'\n };\n\n var az = moment.defineLocale('az', {\n months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),\n monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays : 'Bazar_Bazar ertÉ™si_ÇərÅŸÉ™nbÉ™ axÅŸamı_ÇərÅŸÉ™nbÉ™_CümÉ™ axÅŸamı_CümÉ™_ŞənbÉ™'.split('_'),\n weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[sabah saat] LT',\n nextWeek : '[gÉ™lÉ™n hÉ™ftÉ™] dddd [saat] LT',\n lastDay : '[dünÉ™n] LT',\n lastWeek : '[keçən hÉ™ftÉ™] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s É™vvÉ™l',\n s : 'birneçə saniyÉ™',\n ss : '%d saniyÉ™',\n m : 'bir dÉ™qiqÉ™',\n mm : '%d dÉ™qiqÉ™',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir il',\n yy : '%d il'\n },\n meridiemParse: /gecÉ™|sÉ™hÉ™r|gündüz|axÅŸam/,\n isPM : function (input) {\n return /^(gündüz|axÅŸam)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecÉ™';\n } else if (hour < 12) {\n return 'sÉ™hÉ™r';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axÅŸam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal : function (number) {\n if (number === 0) { // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return az;\n\n})));\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhHk = moment.defineLocale('zh-hk', {\n months : '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort : '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin : 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYYå¹´M月Dæ—¥',\n LLL : 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL : 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l : 'YYYY/M/D',\n ll : 'YYYYå¹´M月Dæ—¥',\n lll : 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll : 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天]LT',\n nextDay : '[明天]LT',\n nextWeek : '[下]ddddLT',\n lastDay : '[昨天]LT',\n lastWeek : '[上]ddddLT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd' :\n case 'D' :\n case 'DDD' :\n return number + 'æ—¥';\n case 'M' :\n return number + '月';\n case 'w' :\n case 'W' :\n return number + '週';\n default :\n return number;\n }\n },\n relativeTime : {\n future : '%så…§',\n past : '%så‰',\n s : '幾秒',\n ss : '%d 秒',\n m : '1 分é˜',\n mm : '%d 分é˜',\n h : '1 å°æ™‚',\n hh : '%d å°æ™‚',\n d : '1 天',\n dd : '%d 天',\n M : '1 個月',\n MM : '%d 個月',\n y : '1 å¹´',\n yy : '%d å¹´'\n }\n });\n\n return zhHk;\n\n})));\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueSelect=e():t.VueSelect=e()}(\"undefined\"!=typeof self?self:this,function(){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var i=e[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)n.d(o,i,function(e){return t[e]}.bind(null,i));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"/\",n(n.s=9)}([function(t,e){function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function o(e){return\"function\"==typeof Symbol&&\"symbol\"===n(Symbol.iterator)?t.exports=o=function(t){return n(t)}:t.exports=o=function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":n(t)},o(e)}t.exports=o},function(t,e,n){},function(t,e){t.exports=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},function(t,e,n){var o=n(5),i=n(6),s=n(7);t.exports=function(t){return o(t)||i(t)||s()}},function(t,e,n){var o=n(2);t.exports=function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},i=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),i.forEach(function(e){o(t,e,n[e])})}return t}},function(t,e){t.exports=function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}},function(t,e){t.exports=function(t){if(Symbol.iterator in Object(t)||\"[object Arguments]\"===Object.prototype.toString.call(t))return Array.from(t)}},function(t,e){t.exports=function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}},function(t,e,n){\"use strict\";var o=n(1);n.n(o).a},function(t,e,n){\"use strict\";n.r(e);var o=n(3),i=n.n(o),s=n(2),r=n.n(s),a=n(0),l=n.n(a),u=n(4),c=n.n(u),h={watch:{typeAheadPointer:function(){this.maybeAdjustScroll()}},methods:{maybeAdjustScroll:function(){var t=this.pixelsToPointerTop(),e=this.pixelsToPointerBottom();return t<=this.viewport().top?this.scrollTo(t):e>=this.viewport().bottom?this.scrollTo(this.viewport().top+this.pointerHeight()):void 0},pixelsToPointerTop:function(){var t=0;if(this.$refs.dropdownMenu)for(var e=0;e<this.typeAheadPointer;e++)t+=this.$refs.dropdownMenu.children[e].offsetHeight;return t},pixelsToPointerBottom:function(){return this.pixelsToPointerTop()+this.pointerHeight()},pointerHeight:function(){var t=!!this.$refs.dropdownMenu&&this.$refs.dropdownMenu.children[this.typeAheadPointer];return t?t.offsetHeight:0},viewport:function(){return{top:this.$refs.dropdownMenu?this.$refs.dropdownMenu.scrollTop:0,bottom:this.$refs.dropdownMenu?this.$refs.dropdownMenu.offsetHeight+this.$refs.dropdownMenu.scrollTop:0}},scrollTo:function(t){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.scrollTop=t:null}}},p={data:function(){return{typeAheadPointer:-1}},watch:{filteredOptions:function(){this.typeAheadPointer=0}},methods:{typeAheadUp:function(){this.typeAheadPointer>0&&(this.typeAheadPointer--,this.maybeAdjustScroll&&this.maybeAdjustScroll())},typeAheadDown:function(){this.typeAheadPointer<this.filteredOptions.length-1&&(this.typeAheadPointer++,this.maybeAdjustScroll&&this.maybeAdjustScroll())},typeAheadSelect:function(){this.filteredOptions[this.typeAheadPointer]?this.select(this.filteredOptions[this.typeAheadPointer]):this.taggable&&this.search.length&&this.select(this.search),this.clearSearchOnSelect&&(this.search=\"\")}}},d={props:{loading:{type:Boolean,default:!1}},data:function(){return{mutableLoading:!1}},watch:{search:function(){this.$emit(\"search\",this.search,this.toggleLoading)},loading:function(t){this.mutableLoading=t}},methods:{toggleLoading:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return this.mutableLoading=null==t?!this.mutableLoading:t}}};function f(t,e,n,o,i,s,r,a){var l,u=\"function\"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=n,u._compiled=!0),o&&(u.functional=!0),s&&(u._scopeId=\"data-v-\"+s),r?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},u._ssrRegister=l):i&&(l=a?function(){i.call(this,this.$root.$options.shadowRoot)}:i),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(t,e){return l.call(e),c(t,e)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,l):[l]}return{exports:t,options:u}}var y={Deselect:f({},function(){var t=this.$createElement,e=this._self._c||t;return e(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"10\",height:\"10\"}},[e(\"path\",{attrs:{d:\"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\"}})])},[],!1,null,null,null).exports,OpenIndicator:f({},function(){var t=this.$createElement,e=this._self._c||t;return e(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"14\",height:\"10\"}},[e(\"path\",{attrs:{d:\"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\"}})])},[],!1,null,null,null).exports},b={components:c()({},y),mixins:[h,p,d],props:{value:{},components:{type:Object,default:function(){return{}}},options:{type:Array,default:function(){return[]}},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:\"\"},transition:{type:String,default:\"vs__fade\"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:\"label\"},autocomplete:{type:String,default:\"off\"},reduce:{type:Function,default:function(t){return t}},getOptionLabel:{type:Function,default:function(t){if(\"object\"===l()(t)){if(!t.hasOwnProperty(this.label))return;return t[this.label]}return t}},getOptionKey:{type:Function,default:function(t){if(\"object\"===l()(t)&&t.id)return t.id;try{return JSON.stringify(t)}catch(t){return}}},onTab:{type:Function,default:function(){this.selectOnTab&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default:function(t,e,n){return(e||\"\").toLowerCase().indexOf(n.toLowerCase())>-1}},filter:{type:Function,default:function(t,e){var n=this;return t.filter(function(t){var o=n.getOptionLabel(t);return\"number\"==typeof o&&(o=o.toString()),n.filterBy(t,o,e)})}},createOption:{type:Function,default:function(t){return\"object\"===l()(this.optionList[0])&&(t=r()({},this.label,t)),this.$emit(\"option:created\",t),t}},resetOnOptionsChange:{type:Boolean,default:!1},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:\"auto\"},selectOnTab:{type:Boolean,default:!1},searchInputQuerySelector:{type:String,default:\"[type=search]\"}},data:function(){return{search:\"\",open:!1,pushedTags:[],_value:[]}},watch:{options:function(t){!this.taggable&&this.resetOnOptionsChange&&this.clearSelection(),this.value&&this.isTrackingValues&&this.setInternalValueFromOptions(this.value)},value:function(t){this.isTrackingValues&&this.setInternalValueFromOptions(t)},multiple:function(){this.clearSelection()}},created:function(){this.mutableLoading=this.loading,void 0!==this.value&&this.isTrackingValues&&this.setInternalValueFromOptions(this.value),this.$on(\"option:created\",this.maybePushTag)},methods:{setInternalValueFromOptions:function(t){var e=this;Array.isArray(t)?this.$data._value=t.map(function(t){return e.findOptionFromReducedValue(t)}):this.$data._value=this.findOptionFromReducedValue(t)},select:function(t){this.isOptionSelected(t)||(this.taggable&&!this.optionExists(t)&&(t=this.createOption(t)),this.multiple&&(t=this.selectedValue.concat(t)),this.updateValue(t)),this.onAfterSelect(t)},deselect:function(t){var e=this;this.updateValue(this.selectedValue.filter(function(n){return!e.optionComparator(n,t)}))},clearSelection:function(){this.updateValue(this.multiple?[]:null)},onAfterSelect:function(t){this.closeOnSelect&&(this.open=!this.open,this.searchEl.blur()),this.clearSearchOnSelect&&(this.search=\"\")},updateValue:function(t){var e=this;this.isTrackingValues&&(this.$data._value=t),null!==t&&(t=Array.isArray(t)?t.map(function(t){return e.reduce(t)}):this.reduce(t)),this.$emit(\"input\",t)},toggleDropdown:function(t){var e=t.target,n=[this.$el,this.searchEl,this.$refs.toggle];void 0!==this.$refs.openIndicator&&n.push.apply(n,[this.$refs.openIndicator.$el].concat(i()(Array.prototype.slice.call(this.$refs.openIndicator.$el.childNodes)))),(n.indexOf(e)>-1||e.classList.contains(\"vs__selected\"))&&(this.open?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus()))},isOptionSelected:function(t){var e=this;return this.selectedValue.some(function(n){return e.optionComparator(n,t)})},optionComparator:function(t,e){if(\"object\"!==l()(t)&&\"object\"!==l()(e)){if(t===e)return!0}else{if(t===this.reduce(e))return!0;if(this.getOptionLabel(t)===this.getOptionLabel(e)||this.getOptionLabel(t)===e)return!0;if(this.reduce(t)===this.reduce(e))return!0}return!1},findOptionFromReducedValue:function(t){var e=this;return this.options.find(function(n){return JSON.stringify(e.reduce(n))===JSON.stringify(t)})||t},closeSearchOptions:function(){this.open=!1,this.$emit(\"search:blur\")},maybeDeleteValue:function(){if(!this.searchEl.value.length&&this.selectedValue&&this.clearable){var t=null;this.multiple&&(t=i()(this.selectedValue.slice(0,this.selectedValue.length-1))),this.updateValue(t)}},optionExists:function(t){var e=this;return this.optionList.some(function(n){return\"object\"===l()(n)&&e.getOptionLabel(n)===t||n===t})},normalizeOptionForSlot:function(t){return\"object\"===l()(t)?t:r()({},this.label,t)},maybePushTag:function(t){this.pushTags&&this.pushedTags.push(t)},onEscape:function(){this.search.length?this.search=\"\":this.searchEl.blur()},onSearchBlur:function(){if(!this.mousedown||this.searching)return this.clearSearchOnBlur&&(this.search=\"\"),void this.closeSearchOptions();this.mousedown=!1,0!==this.search.length||0!==this.options.length||this.closeSearchOptions()},onSearchFocus:function(){this.open=!0,this.$emit(\"search:focus\")},onMousedown:function(){this.mousedown=!0},onMouseUp:function(){this.mousedown=!1},onSearchKeyDown:function(t){switch(t.keyCode){case 8:return this.maybeDeleteValue();case 9:return this.onTab()}},onSearchKeyUp:function(t){switch(t.keyCode){case 27:return this.onEscape();case 38:return t.preventDefault(),this.typeAheadUp();case 40:return t.preventDefault(),this.typeAheadDown();case 13:return t.preventDefault(),this.typeAheadSelect()}}},computed:{isTrackingValues:function(){return void 0===this.value||this.$options.propsData.hasOwnProperty(\"reduce\")},selectedValue:function(){var t=this.value;return this.isTrackingValues&&(t=this.$data._value),t?[].concat(t):[]},optionList:function(){return this.options.concat(this.pushedTags)},searchEl:function(){return this.$scopedSlots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope:function(){var t=this;return{search:{attributes:{disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,\"aria-expanded\":this.dropdownOpen,\"aria-label\":\"Search for option\",ref:\"search\",role:\"combobox\",type:\"search\",autocomplete:\"off\",value:this.search},events:{keydown:this.onSearchKeyDown,keyup:this.onSearchKeyUp,blur:this.onSearchBlur,focus:this.onSearchFocus,input:function(e){return t.search=e.target.value}}},spinner:{loading:this.mutableLoading},openIndicator:{attributes:{ref:\"openIndicator\",role:\"presentation\",class:\"vs__open-indicator\"}}}},childComponents:function(){return c()({},y,this.components)},stateClasses:function(){return{\"vs--open\":this.dropdownOpen,\"vs--single\":!this.multiple,\"vs--searching\":this.searching&&!this.noDrop,\"vs--searchable\":this.searchable&&!this.noDrop,\"vs--unsearchable\":!this.searchable,\"vs--loading\":this.mutableLoading,\"vs--disabled\":this.disabled}},clearSearchOnBlur:function(){return this.clearSearchOnSelect&&!this.multiple},searching:function(){return!!this.search},dropdownOpen:function(){return!this.noDrop&&(this.open&&!this.mutableLoading)},searchPlaceholder:function(){if(this.isValueEmpty&&this.placeholder)return this.placeholder},filteredOptions:function(){var t=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return t;var e=this.search.length?this.filter(t,this.search,this):t;return this.taggable&&this.search.length&&!this.optionExists(this.search)&&e.unshift(this.search),e},isValueEmpty:function(){return 0===this.selectedValue.length},showClearButton:function(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}}},g=(n(8),f(b,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"v-select\",class:t.stateClasses,attrs:{dir:t.dir}},[n(\"div\",{ref:\"toggle\",staticClass:\"vs__dropdown-toggle\",on:{mousedown:function(e){return e.preventDefault(),t.toggleDropdown(e)}}},[n(\"div\",{ref:\"selectedOptions\",staticClass:\"vs__selected-options\"},[t._l(t.selectedValue,function(e){return t._t(\"selected-option-container\",[n(\"span\",{key:t.getOptionKey(e),staticClass:\"vs__selected\"},[t._t(\"selected-option\",[t._v(\"\\n \"+t._s(t.getOptionLabel(e))+\"\\n \")],null,t.normalizeOptionForSlot(e)),t._v(\" \"),t.multiple?n(\"button\",{staticClass:\"vs__deselect\",attrs:{disabled:t.disabled,type:\"button\",\"aria-label\":\"Deselect option\"},on:{click:function(n){return t.deselect(e)}}},[n(t.childComponents.Deselect,{tag:\"component\"})],1):t._e()],2)],{option:t.normalizeOptionForSlot(e),deselect:t.deselect,multiple:t.multiple,disabled:t.disabled})}),t._v(\" \"),t._t(\"search\",[n(\"input\",t._g(t._b({staticClass:\"vs__search\"},\"input\",t.scope.search.attributes,!1),t.scope.search.events))],null,t.scope.search)],2),t._v(\" \"),n(\"div\",{staticClass:\"vs__actions\"},[n(\"button\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.showClearButton,expression:\"showClearButton\"}],staticClass:\"vs__clear\",attrs:{disabled:t.disabled,type:\"button\",title:\"Clear selection\"},on:{click:t.clearSelection}},[n(t.childComponents.Deselect,{tag:\"component\"})],1),t._v(\" \"),t._t(\"open-indicator\",[t.noDrop?t._e():n(t.childComponents.OpenIndicator,t._b({tag:\"component\"},\"component\",t.scope.openIndicator.attributes,!1))],null,t.scope.openIndicator),t._v(\" \"),t._t(\"spinner\",[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.mutableLoading,expression:\"mutableLoading\"}],staticClass:\"vs__spinner\"},[t._v(\"Loading...\")])],null,t.scope.spinner)],2)]),t._v(\" \"),n(\"transition\",{attrs:{name:t.transition}},[t.dropdownOpen?n(\"ul\",{ref:\"dropdownMenu\",staticClass:\"vs__dropdown-menu\",attrs:{role:\"listbox\"},on:{mousedown:t.onMousedown,mouseup:t.onMouseUp}},[t._l(t.filteredOptions,function(e,o){return n(\"li\",{key:t.getOptionKey(e),staticClass:\"vs__dropdown-option\",class:{\"vs__dropdown-option--selected\":t.isOptionSelected(e),\"vs__dropdown-option--highlight\":o===t.typeAheadPointer},attrs:{role:\"option\"},on:{mouseover:function(e){t.typeAheadPointer=o},mousedown:function(n){return n.preventDefault(),n.stopPropagation(),t.select(e)}}},[t._t(\"option\",[t._v(\"\\n \"+t._s(t.getOptionLabel(e))+\"\\n \")],null,t.normalizeOptionForSlot(e))],2)}),t._v(\" \"),t.filteredOptions.length?t._e():n(\"li\",{staticClass:\"vs__no-options\",on:{mousedown:function(t){t.stopPropagation()}}},[t._t(\"no-options\",[t._v(\"Sorry, no matching options.\")])],2)],2):t._e()])],1)},[],!1,null,null,null).exports),m={ajax:d,pointer:p,pointerScroll:h};n.d(e,\"VueSelect\",function(){return g}),n.d(e,\"mixins\",function(){return m});e.default=g}])});\n//# sourceMappingURL=vue-select.js.map","(function(t,e){\"object\"===typeof exports&&\"object\"===typeof module?module.exports=e():\"function\"===typeof define&&define.amd?define([],e):\"object\"===typeof exports?exports[\"vueScrollbar\"]=e():t[\"vueScrollbar\"]=e()})(\"undefined\"!==typeof self?self:this,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"===typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t[\"default\"]}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=\"a667\")}({\"3ae1\":function(t,e,n){\"use strict\";var r=n(\"f5fc\"),i=n.n(r);i.a},\"4ccc\":function(t,e,n){e=t.exports=n(\"690e\")(!1),e.push([t.i,\".ps{overflow:hidden!important;overflow-anchor:none;-ms-overflow-style:none;touch-action:auto;-ms-touch-action:auto}.ps__rail-x{height:15px;bottom:0}.ps__rail-x,.ps__rail-y{display:none;opacity:0;transition:background-color .2s linear,opacity .2s linear;-webkit-transition:background-color .2s linear,opacity .2s linear;position:absolute}.ps__rail-y{width:15px;right:0}.ps--active-x>.ps__rail-x,.ps--active-y>.ps__rail-y{display:block;background-color:transparent}.ps--focus>.ps__rail-x,.ps--focus>.ps__rail-y,.ps--scrolling-x>.ps__rail-x,.ps--scrolling-y>.ps__rail-y,.ps:hover>.ps__rail-x,.ps:hover>.ps__rail-y{opacity:.6}.ps .ps__rail-x.ps--clicking,.ps .ps__rail-x:focus,.ps .ps__rail-x:hover,.ps .ps__rail-y.ps--clicking,.ps .ps__rail-y:focus,.ps .ps__rail-y:hover{background-color:#eee;opacity:.9}.ps__thumb-x{transition:background-color .2s linear,height .2s ease-in-out;-webkit-transition:background-color .2s linear,height .2s ease-in-out;height:6px;bottom:2px}.ps__thumb-x,.ps__thumb-y{background-color:#aaa;border-radius:6px;position:absolute}.ps__thumb-y{transition:background-color .2s linear,width .2s ease-in-out;-webkit-transition:background-color .2s linear,width .2s ease-in-out;width:6px;right:2px}.ps__rail-x.ps--clicking .ps__thumb-x,.ps__rail-x:focus>.ps__thumb-x,.ps__rail-x:hover>.ps__thumb-x{background-color:#999;height:11px}.ps__rail-y.ps--clicking .ps__thumb-y,.ps__rail-y:focus>.ps__thumb-y,.ps__rail-y:hover>.ps__thumb-y{background-color:#999;width:11px}@supports (-ms-overflow-style:none){.ps{overflow:auto!important}}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ps{overflow:auto!important}}\",\"\"])},\"690e\":function(t,e){function n(t,e){var n=t[1]||\"\",i=t[3];if(!i)return n;if(e&&\"function\"===typeof btoa){var o=r(i),l=i.sources.map(function(t){return\"/*# sourceURL=\"+i.sourceRoot+t+\" */\"});return[n].concat(l).concat([o]).join(\"\\n\")}return[n].join(\"\\n\")}function r(t){var e=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),n=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\"+e;return\"/*# \"+n+\" */\"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var r=n(e,t);return e[2]?\"@media \"+e[2]+\"{\"+r+\"}\":r}).join(\"\")},e.i=function(t,n){\"string\"===typeof t&&(t=[[null,t,\"\"]]);for(var r={},i=0;i<this.length;i++){var o=this[i][0];\"number\"===typeof o&&(r[o]=!0)}for(i=0;i<t.length;i++){var l=t[i];\"number\"===typeof l[0]&&r[l[0]]||(n&&!l[2]?l[2]=n:n&&(l[2]=\"(\"+l[2]+\") and (\"+n+\")\"),e.push(l))}},e}},\"85cb\":function(t,e,n){\"use strict\";function r(t,e){for(var n=[],r={},i=0;i<e.length;i++){var o=e[i],l=o[0],s=o[1],a=o[2],c=o[3],h={id:t+\":\"+i,css:s,media:a,sourceMap:c};r[l]?r[l].parts.push(h):n.push(r[l]={id:l,parts:[h]})}return n}n.r(e),n.d(e,\"default\",function(){return f});var i=\"undefined\"!==typeof document;if(\"undefined\"!==typeof DEBUG&&DEBUG&&!i)throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");var o={},l=i&&(document.head||document.getElementsByTagName(\"head\")[0]),s=null,a=0,c=!1,h=function(){},u=null,d=\"data-vue-ssr-id\",p=\"undefined\"!==typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function f(t,e,n,i){c=n,u=i||{};var l=r(t,e);return b(l),function(e){for(var n=[],i=0;i<l.length;i++){var s=l[i],a=o[s.id];a.refs--,n.push(a)}e?(l=r(t,e),b(l)):l=[];for(i=0;i<n.length;i++){a=n[i];if(0===a.refs){for(var c=0;c<a.parts.length;c++)a.parts[c]();delete o[a.id]}}}}function b(t){for(var e=0;e<t.length;e++){var n=t[e],r=o[n.id];if(r){r.refs++;for(var i=0;i<r.parts.length;i++)r.parts[i](n.parts[i]);for(;i<n.parts.length;i++)r.parts.push(v(n.parts[i]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{var l=[];for(i=0;i<n.parts.length;i++)l.push(v(n.parts[i]));o[n.id]={id:n.id,refs:1,parts:l}}}}function g(){var t=document.createElement(\"style\");return t.type=\"text/css\",l.appendChild(t),t}function v(t){var e,n,r=document.querySelector(\"style[\"+d+'~=\"'+t.id+'\"]');if(r){if(c)return h;r.parentNode.removeChild(r)}if(p){var i=a++;r=s||(s=g()),e=y.bind(null,r,i,!1),n=y.bind(null,r,i,!0)}else r=g(),e=_.bind(null,r),n=function(){r.parentNode.removeChild(r)};return e(t),function(r){if(r){if(r.css===t.css&&r.media===t.media&&r.sourceMap===t.sourceMap)return;e(t=r)}else n()}}var m=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join(\"\\n\")}}();function y(t,e,n,r){var i=n?\"\":r.css;if(t.styleSheet)t.styleSheet.cssText=m(e,i);else{var o=document.createTextNode(i),l=t.childNodes;l[e]&&t.removeChild(l[e]),l.length?t.insertBefore(o,l[e]):t.appendChild(o)}}function _(t,e){var n=e.css,r=e.media,i=e.sourceMap;if(r&&t.setAttribute(\"media\",r),u.ssrId&&t.setAttribute(d,e.id),i&&(n+=\"\\n/*# sourceURL=\"+i.sources[0]+\" */\",n+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+\" */\"),t.styleSheet)t.styleSheet.cssText=n;else{while(t.firstChild)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}},\"9d3c\":function(t,e,n){e=t.exports=n(\"690e\")(!1),e.i(n(\"4ccc\"),\"\"),e.push([t.i,\".ps-container{position:relative}\",\"\"])},a667:function(t,e,n){\"use strict\";var r;(n.r(e),\"undefined\"!==typeof window)&&(n(\"e67d\"),(r=window.document.currentScript)&&(r=r.src.match(/(.+\\/)[^\\/]+\\.js(\\?.*)?$/))&&(n.p=r[1]));var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(t.$props.tagname,{tag:\"section\",staticClass:\"ps-container\",on:{\"ps-scroll-y\":t.scrollHandle,\"ps-scroll-x\":t.scrollHandle,\"ps-scroll-up\":t.scrollHandle,\"ps-scroll-down\":t.scrollHandle,\"ps-scroll-left\":t.scrollHandle,\"ps-scroll-right\":t.scrollHandle,\"ps-y-reach-start\":t.scrollHandle,\"ps-y-reach-end\":t.scrollHandle,\"ps-x-reach-start\":t.scrollHandle,\"ps-x-reach-end\":t.scrollHandle}},[t._t(\"default\")],2)},o=[];\n/*!\n * perfect-scrollbar v1.4.0\n * (c) 2018 Hyunje Jun\n * @license MIT\n */\nfunction l(t){return getComputedStyle(t)}function s(t,e){for(var n in e){var r=e[n];\"number\"===typeof r&&(r+=\"px\"),t.style[n]=r}return t}function a(t){var e=document.createElement(\"div\");return e.className=t,e}var c=\"undefined\"!==typeof Element&&(Element.prototype.matches||Element.prototype.webkitMatchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector);function h(t,e){if(!c)throw new Error(\"No element matching method supported\");return c.call(t,e)}function u(t){t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)}function d(t,e){return Array.prototype.filter.call(t.children,function(t){return h(t,e)})}var p={main:\"ps\",element:{thumb:function(t){return\"ps__thumb-\"+t},rail:function(t){return\"ps__rail-\"+t},consuming:\"ps__child--consume\"},state:{focus:\"ps--focus\",clicking:\"ps--clicking\",active:function(t){return\"ps--active-\"+t},scrolling:function(t){return\"ps--scrolling-\"+t}}},f={x:null,y:null};function b(t,e){var n=t.element.classList,r=p.state.scrolling(e);n.contains(r)?clearTimeout(f[e]):n.add(r)}function g(t,e){f[e]=setTimeout(function(){return t.isAlive&&t.element.classList.remove(p.state.scrolling(e))},t.settings.scrollingThreshold)}function v(t,e){b(t,e),g(t,e)}var m=function(t){this.element=t,this.handlers={}},y={isEmpty:{configurable:!0}};m.prototype.bind=function(t,e){\"undefined\"===typeof this.handlers[t]&&(this.handlers[t]=[]),this.handlers[t].push(e),this.element.addEventListener(t,e,!1)},m.prototype.unbind=function(t,e){var n=this;this.handlers[t]=this.handlers[t].filter(function(r){return!(!e||r===e)||(n.element.removeEventListener(t,r,!1),!1)})},m.prototype.unbindAll=function(){var t=this;for(var e in t.handlers)t.unbind(e)},y.isEmpty.get=function(){var t=this;return Object.keys(this.handlers).every(function(e){return 0===t.handlers[e].length})},Object.defineProperties(m.prototype,y);var _=function(){this.eventElements=[]};function w(t){if(\"function\"===typeof window.CustomEvent)return new CustomEvent(t);var e=document.createEvent(\"CustomEvent\");return e.initCustomEvent(t,!1,!1,void 0),e}_.prototype.eventElement=function(t){var e=this.eventElements.filter(function(e){return e.element===t})[0];return e||(e=new m(t),this.eventElements.push(e)),e},_.prototype.bind=function(t,e,n){this.eventElement(t).bind(e,n)},_.prototype.unbind=function(t,e,n){var r=this.eventElement(t);r.unbind(e,n),r.isEmpty&&this.eventElements.splice(this.eventElements.indexOf(r),1)},_.prototype.unbindAll=function(){this.eventElements.forEach(function(t){return t.unbindAll()}),this.eventElements=[]},_.prototype.once=function(t,e,n){var r=this.eventElement(t),i=function(t){r.unbind(e,i),n(t)};r.bind(e,i)};var Y=function(t,e,n,r,i){var o;if(void 0===r&&(r=!0),void 0===i&&(i=!1),\"top\"===e)o=[\"contentHeight\",\"containerHeight\",\"scrollTop\",\"y\",\"up\",\"down\"];else{if(\"left\"!==e)throw new Error(\"A proper axis should be provided\");o=[\"contentWidth\",\"containerWidth\",\"scrollLeft\",\"x\",\"left\",\"right\"]}X(t,n,o,r,i)};function X(t,e,n,r,i){var o=n[0],l=n[1],s=n[2],a=n[3],c=n[4],h=n[5];void 0===r&&(r=!0),void 0===i&&(i=!1);var u=t.element;t.reach[a]=null,u[s]<1&&(t.reach[a]=\"start\"),u[s]>t[o]-t[l]-1&&(t.reach[a]=\"end\"),e&&(u.dispatchEvent(w(\"ps-scroll-\"+a)),e<0?u.dispatchEvent(w(\"ps-scroll-\"+c)):e>0&&u.dispatchEvent(w(\"ps-scroll-\"+h)),r&&v(t,a)),t.reach[a]&&(e||i)&&u.dispatchEvent(w(\"ps-\"+a+\"-reach-\"+t.reach[a]))}function x(t){return parseInt(t,10)||0}function W(t){return h(t,\"input,[contenteditable]\")||h(t,\"select,[contenteditable]\")||h(t,\"textarea,[contenteditable]\")||h(t,\"button,[contenteditable]\")}function S(t){var e=l(t);return x(e.width)+x(e.paddingLeft)+x(e.paddingRight)+x(e.borderLeftWidth)+x(e.borderRightWidth)}var L={isWebKit:\"undefined\"!==typeof document&&\"WebkitAppearance\"in document.documentElement.style,supportsTouch:\"undefined\"!==typeof window&&(\"ontouchstart\"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),supportsIePointer:\"undefined\"!==typeof navigator&&navigator.msMaxTouchPoints,isChrome:\"undefined\"!==typeof navigator&&/Chrome/i.test(navigator&&navigator.userAgent)},R=function(t){var e=t.element,n=Math.floor(e.scrollTop);t.containerWidth=e.clientWidth,t.containerHeight=e.clientHeight,t.contentWidth=e.scrollWidth,t.contentHeight=e.scrollHeight,e.contains(t.scrollbarXRail)||(d(e,p.element.rail(\"x\")).forEach(function(t){return u(t)}),e.appendChild(t.scrollbarXRail)),e.contains(t.scrollbarYRail)||(d(e,p.element.rail(\"y\")).forEach(function(t){return u(t)}),e.appendChild(t.scrollbarYRail)),!t.settings.suppressScrollX&&t.containerWidth+t.settings.scrollXMarginOffset<t.contentWidth?(t.scrollbarXActive=!0,t.railXWidth=t.containerWidth-t.railXMarginWidth,t.railXRatio=t.containerWidth/t.railXWidth,t.scrollbarXWidth=T(t,x(t.railXWidth*t.containerWidth/t.contentWidth)),t.scrollbarXLeft=x((t.negativeScrollAdjustment+e.scrollLeft)*(t.railXWidth-t.scrollbarXWidth)/(t.contentWidth-t.containerWidth))):t.scrollbarXActive=!1,!t.settings.suppressScrollY&&t.containerHeight+t.settings.scrollYMarginOffset<t.contentHeight?(t.scrollbarYActive=!0,t.railYHeight=t.containerHeight-t.railYMarginHeight,t.railYRatio=t.containerHeight/t.railYHeight,t.scrollbarYHeight=T(t,x(t.railYHeight*t.containerHeight/t.contentHeight)),t.scrollbarYTop=x(n*(t.railYHeight-t.scrollbarYHeight)/(t.contentHeight-t.containerHeight))):t.scrollbarYActive=!1,t.scrollbarXLeft>=t.railXWidth-t.scrollbarXWidth&&(t.scrollbarXLeft=t.railXWidth-t.scrollbarXWidth),t.scrollbarYTop>=t.railYHeight-t.scrollbarYHeight&&(t.scrollbarYTop=t.railYHeight-t.scrollbarYHeight),H(e,t),t.scrollbarXActive?e.classList.add(p.state.active(\"x\")):(e.classList.remove(p.state.active(\"x\")),t.scrollbarXWidth=0,t.scrollbarXLeft=0,e.scrollLeft=0),t.scrollbarYActive?e.classList.add(p.state.active(\"y\")):(e.classList.remove(p.state.active(\"y\")),t.scrollbarYHeight=0,t.scrollbarYTop=0,e.scrollTop=0)};function T(t,e){return t.settings.minScrollbarLength&&(e=Math.max(e,t.settings.minScrollbarLength)),t.settings.maxScrollbarLength&&(e=Math.min(e,t.settings.maxScrollbarLength)),e}function H(t,e){var n={width:e.railXWidth},r=Math.floor(t.scrollTop);e.isRtl?n.left=e.negativeScrollAdjustment+t.scrollLeft+e.containerWidth-e.contentWidth:n.left=t.scrollLeft,e.isScrollbarXUsingBottom?n.bottom=e.scrollbarXBottom-r:n.top=e.scrollbarXTop+r,s(e.scrollbarXRail,n);var i={top:r,height:e.railYHeight};e.isScrollbarYUsingRight?e.isRtl?i.right=e.contentWidth-(e.negativeScrollAdjustment+t.scrollLeft)-e.scrollbarYRight-e.scrollbarYOuterWidth:i.right=e.scrollbarYRight-t.scrollLeft:e.isRtl?i.left=e.negativeScrollAdjustment+t.scrollLeft+2*e.containerWidth-e.contentWidth-e.scrollbarYLeft-e.scrollbarYOuterWidth:i.left=e.scrollbarYLeft+t.scrollLeft,s(e.scrollbarYRail,i),s(e.scrollbarX,{left:e.scrollbarXLeft,width:e.scrollbarXWidth-e.railBorderXWidth}),s(e.scrollbarY,{top:e.scrollbarYTop,height:e.scrollbarYHeight-e.railBorderYWidth})}var E=function(t){t.event.bind(t.scrollbarY,\"mousedown\",function(t){return t.stopPropagation()}),t.event.bind(t.scrollbarYRail,\"mousedown\",function(e){var n=e.pageY-window.pageYOffset-t.scrollbarYRail.getBoundingClientRect().top,r=n>t.scrollbarYTop?1:-1;t.element.scrollTop+=r*t.containerHeight,R(t),e.stopPropagation()}),t.event.bind(t.scrollbarX,\"mousedown\",function(t){return t.stopPropagation()}),t.event.bind(t.scrollbarXRail,\"mousedown\",function(e){var n=e.pageX-window.pageXOffset-t.scrollbarXRail.getBoundingClientRect().left,r=n>t.scrollbarXLeft?1:-1;t.element.scrollLeft+=r*t.containerWidth,R(t),e.stopPropagation()})},M=function(t){k(t,[\"containerWidth\",\"contentWidth\",\"pageX\",\"railXWidth\",\"scrollbarX\",\"scrollbarXWidth\",\"scrollLeft\",\"x\",\"scrollbarXRail\"]),k(t,[\"containerHeight\",\"contentHeight\",\"pageY\",\"railYHeight\",\"scrollbarY\",\"scrollbarYHeight\",\"scrollTop\",\"y\",\"scrollbarYRail\"])};function k(t,e){var n=e[0],r=e[1],i=e[2],o=e[3],l=e[4],s=e[5],a=e[6],c=e[7],h=e[8],u=t.element,d=null,f=null,v=null;function m(e){u[a]=d+v*(e[i]-f),b(t,c),R(t),e.stopPropagation(),e.preventDefault()}function y(){g(t,c),t[h].classList.remove(p.state.clicking),t.event.unbind(t.ownerDocument,\"mousemove\",m)}t.event.bind(t[l],\"mousedown\",function(e){d=u[a],f=e[i],v=(t[r]-t[n])/(t[o]-t[s]),t.event.bind(t.ownerDocument,\"mousemove\",m),t.event.once(t.ownerDocument,\"mouseup\",y),t[h].classList.add(p.state.clicking),e.stopPropagation(),e.preventDefault()})}var A=function(t){var e=t.element,n=function(){return h(e,\":hover\")},r=function(){return h(t.scrollbarX,\":focus\")||h(t.scrollbarY,\":focus\")};function i(n,r){var i=Math.floor(e.scrollTop);if(0===n){if(!t.scrollbarYActive)return!1;if(0===i&&r>0||i>=t.contentHeight-t.containerHeight&&r<0)return!t.settings.wheelPropagation}var o=e.scrollLeft;if(0===r){if(!t.scrollbarXActive)return!1;if(0===o&&n<0||o>=t.contentWidth-t.containerWidth&&n>0)return!t.settings.wheelPropagation}return!0}t.event.bind(t.ownerDocument,\"keydown\",function(o){if(!(o.isDefaultPrevented&&o.isDefaultPrevented()||o.defaultPrevented)&&(n()||r())){var l=document.activeElement?document.activeElement:t.ownerDocument.activeElement;if(l){if(\"IFRAME\"===l.tagName)l=l.contentDocument.activeElement;else while(l.shadowRoot)l=l.shadowRoot.activeElement;if(W(l))return}var s=0,a=0;switch(o.which){case 37:s=o.metaKey?-t.contentWidth:o.altKey?-t.containerWidth:-30;break;case 38:a=o.metaKey?t.contentHeight:o.altKey?t.containerHeight:30;break;case 39:s=o.metaKey?t.contentWidth:o.altKey?t.containerWidth:30;break;case 40:a=o.metaKey?-t.contentHeight:o.altKey?-t.containerHeight:-30;break;case 32:a=o.shiftKey?t.containerHeight:-t.containerHeight;break;case 33:a=t.containerHeight;break;case 34:a=-t.containerHeight;break;case 36:a=t.contentHeight;break;case 35:a=-t.contentHeight;break;default:return}t.settings.suppressScrollX&&0!==s||t.settings.suppressScrollY&&0!==a||(e.scrollTop-=a,e.scrollLeft+=s,R(t),i(s,a)&&o.preventDefault())}})},C=function(t){var e=t.element;function n(n,r){var i,o=Math.floor(e.scrollTop),l=0===e.scrollTop,s=o+e.offsetHeight===e.scrollHeight,a=0===e.scrollLeft,c=e.scrollLeft+e.offsetWidth===e.scrollWidth;return i=Math.abs(r)>Math.abs(n)?l||s:a||c,!i||!t.settings.wheelPropagation}function r(t){var e=t.deltaX,n=-1*t.deltaY;return\"undefined\"!==typeof e&&\"undefined\"!==typeof n||(e=-1*t.wheelDeltaX/6,n=t.wheelDeltaY/6),t.deltaMode&&1===t.deltaMode&&(e*=10,n*=10),e!==e&&n!==n&&(e=0,n=t.wheelDelta),t.shiftKey?[-n,-e]:[e,n]}function i(t,n,r){if(!L.isWebKit&&e.querySelector(\"select:focus\"))return!0;if(!e.contains(t))return!1;var i=t;while(i&&i!==e){if(i.classList.contains(p.element.consuming))return!0;var o=l(i),s=[o.overflow,o.overflowX,o.overflowY].join(\"\");if(s.match(/(scroll|auto)/)){var a=i.scrollHeight-i.clientHeight;if(a>0&&!(0===i.scrollTop&&r>0)&&!(i.scrollTop===a&&r<0))return!0;var c=i.scrollWidth-i.clientWidth;if(c>0&&!(0===i.scrollLeft&&n<0)&&!(i.scrollLeft===c&&n>0))return!0}i=i.parentNode}return!1}function o(o){var l=r(o),s=l[0],a=l[1];if(!i(o.target,s,a)){var c=!1;t.settings.useBothWheelAxes?t.scrollbarYActive&&!t.scrollbarXActive?(a?e.scrollTop-=a*t.settings.wheelSpeed:e.scrollTop+=s*t.settings.wheelSpeed,c=!0):t.scrollbarXActive&&!t.scrollbarYActive&&(s?e.scrollLeft+=s*t.settings.wheelSpeed:e.scrollLeft-=a*t.settings.wheelSpeed,c=!0):(e.scrollTop-=a*t.settings.wheelSpeed,e.scrollLeft+=s*t.settings.wheelSpeed),R(t),c=c||n(s,a),c&&!o.ctrlKey&&(o.stopPropagation(),o.preventDefault())}}\"undefined\"!==typeof window.onwheel?t.event.bind(e,\"wheel\",o):\"undefined\"!==typeof window.onmousewheel&&t.event.bind(e,\"mousewheel\",o)},P=function(t){if(L.supportsTouch||L.supportsIePointer){var e=t.element,n={},r=0,i={},o=null;L.supportsTouch?(t.event.bind(e,\"touchstart\",u),t.event.bind(e,\"touchmove\",f),t.event.bind(e,\"touchend\",b)):L.supportsIePointer&&(window.PointerEvent?(t.event.bind(e,\"pointerdown\",u),t.event.bind(e,\"pointermove\",f),t.event.bind(e,\"pointerup\",b)):window.MSPointerEvent&&(t.event.bind(e,\"MSPointerDown\",u),t.event.bind(e,\"MSPointerMove\",f),t.event.bind(e,\"MSPointerUp\",b)))}function s(n,r){var i=Math.floor(e.scrollTop),o=e.scrollLeft,l=Math.abs(n),s=Math.abs(r);if(s>l){if(r<0&&i===t.contentHeight-t.containerHeight||r>0&&0===i)return 0===window.scrollY&&r>0&&L.isChrome}else if(l>s&&(n<0&&o===t.contentWidth-t.containerWidth||n>0&&0===o))return!0;return!0}function a(n,r){e.scrollTop-=r,e.scrollLeft-=n,R(t)}function c(t){return t.targetTouches?t.targetTouches[0]:t}function h(t){return(!t.pointerType||\"pen\"!==t.pointerType||0!==t.buttons)&&(!(!t.targetTouches||1!==t.targetTouches.length)||!(!t.pointerType||\"mouse\"===t.pointerType||t.pointerType===t.MSPOINTER_TYPE_MOUSE))}function u(t){if(h(t)){var e=c(t);n.pageX=e.pageX,n.pageY=e.pageY,r=(new Date).getTime(),null!==o&&clearInterval(o)}}function d(t,n,r){if(!e.contains(t))return!1;var i=t;while(i&&i!==e){if(i.classList.contains(p.element.consuming))return!0;var o=l(i),s=[o.overflow,o.overflowX,o.overflowY].join(\"\");if(s.match(/(scroll|auto)/)){var a=i.scrollHeight-i.clientHeight;if(a>0&&!(0===i.scrollTop&&r>0)&&!(i.scrollTop===a&&r<0))return!0;var c=i.scrollLeft-i.clientWidth;if(c>0&&!(0===i.scrollLeft&&n<0)&&!(i.scrollLeft===c&&n>0))return!0}i=i.parentNode}return!1}function f(t){if(h(t)){var e=c(t),o={pageX:e.pageX,pageY:e.pageY},l=o.pageX-n.pageX,u=o.pageY-n.pageY;if(d(t.target,l,u))return;a(l,u),n=o;var p=(new Date).getTime(),f=p-r;f>0&&(i.x=l/f,i.y=u/f,r=p),s(l,u)&&t.preventDefault()}}function b(){t.settings.swipeEasing&&(clearInterval(o),o=setInterval(function(){t.isInitialized?clearInterval(o):i.x||i.y?Math.abs(i.x)<.01&&Math.abs(i.y)<.01?clearInterval(o):(a(30*i.x,30*i.y),i.x*=.8,i.y*=.8):clearInterval(o)},10))}},j=function(){return{handlers:[\"click-rail\",\"drag-thumb\",\"keyboard\",\"wheel\",\"touch\"],maxScrollbarLength:null,minScrollbarLength:null,scrollingThreshold:1e3,scrollXMarginOffset:0,scrollYMarginOffset:0,suppressScrollX:!1,suppressScrollY:!1,swipeEasing:!0,useBothWheelAxes:!1,wheelPropagation:!0,wheelSpeed:1}},N={\"click-rail\":E,\"drag-thumb\":M,keyboard:A,wheel:C,touch:P},D=function(t,e){var n=this;if(void 0===e&&(e={}),\"string\"===typeof t&&(t=document.querySelector(t)),!t||!t.nodeName)throw new Error(\"no element is specified to initialize PerfectScrollbar\");for(var r in this.element=t,t.classList.add(p.main),this.settings=j(),e)n.settings[r]=e[r];this.containerWidth=null,this.containerHeight=null,this.contentWidth=null,this.contentHeight=null;var i=function(){return t.classList.add(p.state.focus)},o=function(){return t.classList.remove(p.state.focus)};this.isRtl=\"rtl\"===l(t).direction,this.isNegativeScroll=function(){var e=t.scrollLeft,n=null;return t.scrollLeft=-1,n=t.scrollLeft<0,t.scrollLeft=e,n}(),this.negativeScrollAdjustment=this.isNegativeScroll?t.scrollWidth-t.clientWidth:0,this.event=new _,this.ownerDocument=t.ownerDocument||document,this.scrollbarXRail=a(p.element.rail(\"x\")),t.appendChild(this.scrollbarXRail),this.scrollbarX=a(p.element.thumb(\"x\")),this.scrollbarXRail.appendChild(this.scrollbarX),this.scrollbarX.setAttribute(\"tabindex\",0),this.event.bind(this.scrollbarX,\"focus\",i),this.event.bind(this.scrollbarX,\"blur\",o),this.scrollbarXActive=null,this.scrollbarXWidth=null,this.scrollbarXLeft=null;var c=l(this.scrollbarXRail);this.scrollbarXBottom=parseInt(c.bottom,10),isNaN(this.scrollbarXBottom)?(this.isScrollbarXUsingBottom=!1,this.scrollbarXTop=x(c.top)):this.isScrollbarXUsingBottom=!0,this.railBorderXWidth=x(c.borderLeftWidth)+x(c.borderRightWidth),s(this.scrollbarXRail,{display:\"block\"}),this.railXMarginWidth=x(c.marginLeft)+x(c.marginRight),s(this.scrollbarXRail,{display:\"\"}),this.railXWidth=null,this.railXRatio=null,this.scrollbarYRail=a(p.element.rail(\"y\")),t.appendChild(this.scrollbarYRail),this.scrollbarY=a(p.element.thumb(\"y\")),this.scrollbarYRail.appendChild(this.scrollbarY),this.scrollbarY.setAttribute(\"tabindex\",0),this.event.bind(this.scrollbarY,\"focus\",i),this.event.bind(this.scrollbarY,\"blur\",o),this.scrollbarYActive=null,this.scrollbarYHeight=null,this.scrollbarYTop=null;var h=l(this.scrollbarYRail);this.scrollbarYRight=parseInt(h.right,10),isNaN(this.scrollbarYRight)?(this.isScrollbarYUsingRight=!1,this.scrollbarYLeft=x(h.left)):this.isScrollbarYUsingRight=!0,this.scrollbarYOuterWidth=this.isRtl?S(this.scrollbarY):null,this.railBorderYWidth=x(h.borderTopWidth)+x(h.borderBottomWidth),s(this.scrollbarYRail,{display:\"block\"}),this.railYMarginHeight=x(h.marginTop)+x(h.marginBottom),s(this.scrollbarYRail,{display:\"\"}),this.railYHeight=null,this.railYRatio=null,this.reach={x:t.scrollLeft<=0?\"start\":t.scrollLeft>=this.contentWidth-this.containerWidth?\"end\":null,y:t.scrollTop<=0?\"start\":t.scrollTop>=this.contentHeight-this.containerHeight?\"end\":null},this.isAlive=!0,this.settings.handlers.forEach(function(t){return N[t](n)}),this.lastScrollTop=Math.floor(t.scrollTop),this.lastScrollLeft=t.scrollLeft,this.event.bind(this.element,\"scroll\",function(t){return n.onScroll(t)}),R(this)};D.prototype.update=function(){this.isAlive&&(this.negativeScrollAdjustment=this.isNegativeScroll?this.element.scrollWidth-this.element.clientWidth:0,s(this.scrollbarXRail,{display:\"block\"}),s(this.scrollbarYRail,{display:\"block\"}),this.railXMarginWidth=x(l(this.scrollbarXRail).marginLeft)+x(l(this.scrollbarXRail).marginRight),this.railYMarginHeight=x(l(this.scrollbarYRail).marginTop)+x(l(this.scrollbarYRail).marginBottom),s(this.scrollbarXRail,{display:\"none\"}),s(this.scrollbarYRail,{display:\"none\"}),R(this),Y(this,\"top\",0,!1,!0),Y(this,\"left\",0,!1,!0),s(this.scrollbarXRail,{display:\"\"}),s(this.scrollbarYRail,{display:\"\"}))},D.prototype.onScroll=function(t){this.isAlive&&(R(this),Y(this,\"top\",this.element.scrollTop-this.lastScrollTop),Y(this,\"left\",this.element.scrollLeft-this.lastScrollLeft),this.lastScrollTop=Math.floor(this.element.scrollTop),this.lastScrollLeft=this.element.scrollLeft)},D.prototype.destroy=function(){this.isAlive&&(this.event.unbindAll(),u(this.scrollbarX),u(this.scrollbarY),u(this.scrollbarXRail),u(this.scrollbarYRail),this.removePsClasses(),this.element=null,this.scrollbarX=null,this.scrollbarY=null,this.scrollbarXRail=null,this.scrollbarYRail=null,this.isAlive=!1)},D.prototype.removePsClasses=function(){this.element.className=this.element.className.split(\" \").filter(function(t){return!t.match(/^ps([-_].+|)$/)}).join(\" \")};var O=D,B={name:\"vue-custom-scrollbar\",props:{settings:{default:null},swicher:{type:Boolean,default:!0},tagname:{type:String,default:\"section\"}},data:function(){return{ps:null}},methods:{scrollHandle:function(t){this.$emit(t.type,t)},update:function(){this.ps&&this.ps.update()},__init:function(){this.swicher&&(this._ps_inited?this.ps.update():(this._ps_inited=!0,this.ps=new O(this.$el,this.settings)))},__uninit:function(){this.ps&&(this.ps.destroy(),this.ps=null,this._ps_inited=!1)}},watch:{swicher:function(t){t&&!this._ps_inited&&this.__init(),!t&&this._ps_inited&&this.__uninit()},settings:{deep:!0,handler:function(){this.__uninit(),this.__init()}},$route:function(){this.update()}},mounted:function(){this.$isServer||this.__init()},updated:function(){this.$nextTick(this.update)},activated:function(){this.__init()},deactivated:function(){this.__uninit()},beforeDestroy:function(){this.__uninit()}},I=B;n(\"3ae1\");function U(t,e,n,r,i,o,l,s){var a,c=\"function\"===typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),r&&(c.functional=!0),o&&(c._scopeId=\"data-v-\"+o),l?(a=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(l)},c._ssrRegister=a):i&&(a=s?function(){i.call(this,this.$root.$options.shadowRoot)}:i),a)if(c.functional){c._injectStyles=a;var h=c.render;c.render=function(t,e){return a.call(e),h(t,e)}}else{var u=c.beforeCreate;c.beforeCreate=u?[].concat(u,a):[a]}return{exports:t,options:c}}var $=U(I,i,o,!1,null,null,null),K=$.exports;e[\"default\"]=K},e67d:function(t,e){(function(t){var e=\"currentScript\",n=t.getElementsByTagName(\"script\");e in t||Object.defineProperty(t,e,{get:function(){try{throw new Error}catch(r){var t,e=(/.*at [^\\(]*\\((.*):.+:.+\\)$/gi.exec(r.stack)||[!1])[1];for(t in n)if(n[t].src==e||\"interactive\"==n[t].readyState)return n[t];return null}}})})(document)},f5fc:function(t,e,n){var r=n(\"9d3c\");\"string\"===typeof r&&(r=[[t.i,r,\"\"]]),r.locals&&(t.exports=r.locals);var i=n(\"85cb\").default;i(\"4cb9b1f6\",r,!0,{sourceMap:!1,shadowMode:!1})}})[\"default\"]});\n//# sourceMappingURL=vueScrollbar.umd.min.js.map","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months : {\n format: 'sijeÄnja_veljaÄe_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),\n standalone: 'sijeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n },\n monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort : 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin : 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danas u] LT',\n nextDay : '[sutra u] LT',\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juÄer u] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[proÅ¡lu] dddd [u] LT';\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'par sekundi',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : 'dan',\n dd : translate,\n M : 'mjesec',\n MM : translate,\n y : 'godinu',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return hr;\n\n})));\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\nfunction isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = isInteger;\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r\\+\\/\\=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r\\+\\/\\=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = new Buffer(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar des = require('../des');\nvar utils = des.utils;\nvar Cipher = des.Cipher;\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var id = moment.defineLocale('id', {\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Besok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kemarin pukul] LT',\n lastWeek : 'dddd [lalu pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lalu',\n s : 'beberapa detik',\n ss : '%d detik',\n m : 'semenit',\n mm : '%d menit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n\n var months = [\n 'Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Méitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deaireadh Fómhair', 'Samhain', 'Nollaig'\n ];\n\n var monthsShort = ['Eaná', 'Feab', 'Márt', 'Aibr', 'Beal', 'Méit', 'Iúil', 'Lúna', 'Meán', 'Deai', 'Samh', 'Noll'];\n\n var weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Satharn'];\n\n var weekdaysShort = ['Dom', 'Lua', 'Mái', 'Céa', 'Déa', 'hAo', 'Sat'];\n\n var weekdaysMin = ['Do', 'Lu', 'Má', 'Ce', 'Dé', 'hA', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné aig] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mÃ',\n MM: '%d mÃ',\n y: 'bliain',\n yy: '%d bliain'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ga;\n\n})));\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'جنوری',\n 'Ùروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر'\n ];\n var days = [\n 'اتوار',\n 'پیر',\n 'منگل',\n 'بدھ',\n 'جمعرات',\n 'جمعÛ',\n 'ÛÙتÛ'\n ];\n\n var ur = moment.defineLocale('ur', {\n months : months,\n monthsShort : months,\n weekdays : days,\n weekdaysShort : days,\n weekdaysMin : days,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'ddddØŒ D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبØ|شام/,\n isPM : function (input) {\n return 'شام' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n return 'شام';\n },\n calendar : {\n sameDay : '[آج بوقت] LT',\n nextDay : '[Ú©Ù„ بوقت] LT',\n nextWeek : 'dddd [بوقت] LT',\n lastDay : '[Ú¯Ø°Ø´ØªÛ Ø±ÙˆØ² بوقت] LT',\n lastWeek : '[گذشتÛ] dddd [بوقت] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s بعد',\n past : '%s قبل',\n s : 'چند سیکنڈ',\n ss : '%d سیکنڈ',\n m : 'ایک منٹ',\n mm : '%d منٹ',\n h : 'ایک گھنٹÛ',\n hh : '%d گھنٹے',\n d : 'ایک دن',\n dd : '%d دن',\n M : 'ایک ماÛ',\n MM : '%d ماÛ',\n y : 'ایک سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ur;\n\n})));\n","exports.f = {}.propertyIsEnumerable;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ss = moment.defineLocale('ss', {\n months : \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\n weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Namuhla nga] LT',\n nextDay : '[Kusasa nga] LT',\n nextWeek : 'dddd [nga] LT',\n lastDay : '[Itolo nga] LT',\n lastWeek : 'dddd [leliphelile] [nga] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'nga %s',\n past : 'wenteka nga %s',\n s : 'emizuzwana lomcane',\n ss : '%d mzuzwana',\n m : 'umzuzu',\n mm : '%d emizuzu',\n h : 'lihora',\n hh : '%d emahora',\n d : 'lilanga',\n dd : '%d emalanga',\n M : 'inyanga',\n MM : '%d tinyanga',\n y : 'umnyaka',\n yy : '%d iminyaka'\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : '%d',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ss;\n\n})));\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","'use strict'\n\nfunction extend(dest, src) {\n if (src) {\n var props = Object.keys(src)\n for (var i = 0, l = props.length; i < l ; i++) {\n dest[props[i]] = src[props[i]]\n }\n }\n return dest\n}\n\nfunction copy(obj) {\n return extend({}, obj)\n}\n\n/**\n * Merge an object defining format characters into the defaults.\n * Passing null/undefined for en existing format character removes it.\n * Passing a definition for an existing format character overrides it.\n * @param {?Object} formatCharacters.\n */\nfunction mergeFormatCharacters(formatCharacters) {\n var merged = copy(DEFAULT_FORMAT_CHARACTERS)\n if (formatCharacters) {\n var chars = Object.keys(formatCharacters)\n for (var i = 0, l = chars.length; i < l ; i++) {\n var char = chars[i]\n if (formatCharacters[char] == null) {\n delete merged[char]\n }\n else {\n merged[char] = formatCharacters[char]\n }\n }\n }\n return merged\n}\n\nvar ESCAPE_CHAR = '\\\\'\n\nvar DIGIT_RE = /^\\d$/\nvar LETTER_RE = /^[A-Za-z]$/\nvar ALPHANNUMERIC_RE = /^[\\dA-Za-z]$/\n\nvar DEFAULT_PLACEHOLDER_CHAR = '_'\nvar DEFAULT_FORMAT_CHARACTERS = {\n '*': {\n validate: function(char) { return ALPHANNUMERIC_RE.test(char) }\n },\n '1': {\n validate: function(char) { return DIGIT_RE.test(char) }\n },\n 'a': {\n validate: function(char) { return LETTER_RE.test(char) }\n },\n 'A': {\n validate: function(char) { return LETTER_RE.test(char) },\n transform: function(char) { return char.toUpperCase() }\n },\n '#': {\n validate: function(char) { return ALPHANNUMERIC_RE.test(char) },\n transform: function(char) { return char.toUpperCase() }\n }\n}\n\n/**\n * @param {string} source\n * @patam {?Object} formatCharacters\n */\nfunction Pattern(source, formatCharacters, placeholderChar, isRevealingMask) {\n if (!(this instanceof Pattern)) {\n return new Pattern(source, formatCharacters, placeholderChar)\n }\n\n /** Placeholder character */\n this.placeholderChar = placeholderChar || DEFAULT_PLACEHOLDER_CHAR\n /** Format character definitions. */\n this.formatCharacters = formatCharacters || DEFAULT_FORMAT_CHARACTERS\n /** Pattern definition string with escape characters. */\n this.source = source\n /** Pattern characters after escape characters have been processed. */\n this.pattern = []\n /** Length of the pattern after escape characters have been processed. */\n this.length = 0\n /** Index of the first editable character. */\n this.firstEditableIndex = null\n /** Index of the last editable character. */\n this.lastEditableIndex = null\n /** Lookup for indices of editable characters in the pattern. */\n this._editableIndices = {}\n /** If true, only the pattern before the last valid value character shows. */\n this.isRevealingMask = isRevealingMask || false\n\n this._parse()\n}\n\nPattern.prototype._parse = function parse() {\n var sourceChars = this.source.split('')\n var patternIndex = 0\n var pattern = []\n\n for (var i = 0, l = sourceChars.length; i < l; i++) {\n var char = sourceChars[i]\n if (char === ESCAPE_CHAR) {\n if (i === l - 1) {\n throw new Error('InputMask: pattern ends with a raw ' + ESCAPE_CHAR)\n }\n char = sourceChars[++i]\n }\n else if (char in this.formatCharacters) {\n if (this.firstEditableIndex === null) {\n this.firstEditableIndex = patternIndex\n }\n this.lastEditableIndex = patternIndex\n this._editableIndices[patternIndex] = true\n }\n\n pattern.push(char)\n patternIndex++\n }\n\n if (this.firstEditableIndex === null) {\n throw new Error(\n 'InputMask: pattern \"' + this.source + '\" does not contain any editable characters.'\n )\n }\n\n this.pattern = pattern\n this.length = pattern.length\n}\n\n/**\n * @param {Array<string>} value\n * @return {Array<string>}\n */\nPattern.prototype.formatValue = function format(value) {\n var valueBuffer = new Array(this.length)\n var valueIndex = 0\n\n for (var i = 0, l = this.length; i < l ; i++) {\n if (this.isEditableIndex(i)) {\n if (this.isRevealingMask &&\n value.length <= valueIndex &&\n !this.isValidAtIndex(value[valueIndex], i)) {\n break\n }\n valueBuffer[i] = (value.length > valueIndex && this.isValidAtIndex(value[valueIndex], i)\n ? this.transform(value[valueIndex], i)\n : this.placeholderChar)\n valueIndex++\n }\n else {\n valueBuffer[i] = this.pattern[i]\n // Also allow the value to contain static values from the pattern by\n // advancing its index.\n if (value.length > valueIndex && value[valueIndex] === this.pattern[i]) {\n valueIndex++\n }\n }\n }\n\n return valueBuffer\n}\n\n/**\n * @param {number} index\n * @return {boolean}\n */\nPattern.prototype.isEditableIndex = function isEditableIndex(index) {\n return !!this._editableIndices[index]\n}\n\n/**\n * @param {string} char\n * @param {number} index\n * @return {boolean}\n */\nPattern.prototype.isValidAtIndex = function isValidAtIndex(char, index) {\n return this.formatCharacters[this.pattern[index]].validate(char)\n}\n\nPattern.prototype.transform = function transform(char, index) {\n var format = this.formatCharacters[this.pattern[index]]\n return typeof format.transform == 'function' ? format.transform(char) : char\n}\n\nfunction InputMask(options) {\n if (!(this instanceof InputMask)) { return new InputMask(options) }\n options = extend({\n formatCharacters: null,\n pattern: null,\n isRevealingMask: false,\n placeholderChar: DEFAULT_PLACEHOLDER_CHAR,\n selection: {start: 0, end: 0},\n value: ''\n }, options)\n\n if (options.pattern == null) {\n throw new Error('InputMask: you must provide a pattern.')\n }\n\n if (typeof options.placeholderChar !== 'string' || options.placeholderChar.length > 1) {\n throw new Error('InputMask: placeholderChar should be a single character or an empty string.')\n }\n\n this.placeholderChar = options.placeholderChar\n this.formatCharacters = mergeFormatCharacters(options.formatCharacters)\n this.setPattern(options.pattern, {\n value: options.value,\n selection: options.selection,\n isRevealingMask: options.isRevealingMask\n })\n}\n\n// Editing\n\n/**\n * Applies a single character of input based on the current selection.\n * @param {string} char\n * @return {boolean} true if a change has been made to value or selection as a\n * result of the input, false otherwise.\n */\nInputMask.prototype.input = function input(char) {\n // Ignore additional input if the cursor's at the end of the pattern\n if (this.selection.start === this.selection.end &&\n this.selection.start === this.pattern.length) {\n return false\n }\n\n var selectionBefore = copy(this.selection)\n var valueBefore = this.getValue()\n\n var inputIndex = this.selection.start\n\n // If the cursor or selection is prior to the first editable character, make\n // sure any input given is applied to it.\n if (inputIndex < this.pattern.firstEditableIndex) {\n inputIndex = this.pattern.firstEditableIndex\n }\n\n // Bail out or add the character to input\n if (this.pattern.isEditableIndex(inputIndex)) {\n if (!this.pattern.isValidAtIndex(char, inputIndex)) {\n return false\n }\n this.value[inputIndex] = this.pattern.transform(char, inputIndex)\n }\n\n // If multiple characters were selected, blank the remainder out based on the\n // pattern.\n var end = this.selection.end - 1\n while (end > inputIndex) {\n if (this.pattern.isEditableIndex(end)) {\n this.value[end] = this.placeholderChar\n }\n end--\n }\n\n // Advance the cursor to the next character\n this.selection.start = this.selection.end = inputIndex + 1\n\n // Skip over any subsequent static characters\n while (this.pattern.length > this.selection.start &&\n !this.pattern.isEditableIndex(this.selection.start)) {\n this.selection.start++\n this.selection.end++\n }\n\n // History\n if (this._historyIndex != null) {\n // Took more input after undoing, so blow any subsequent history away\n this._history.splice(this._historyIndex, this._history.length - this._historyIndex)\n this._historyIndex = null\n }\n if (this._lastOp !== 'input' ||\n selectionBefore.start !== selectionBefore.end ||\n this._lastSelection !== null && selectionBefore.start !== this._lastSelection.start) {\n this._history.push({value: valueBefore, selection: selectionBefore, lastOp: this._lastOp})\n }\n this._lastOp = 'input'\n this._lastSelection = copy(this.selection)\n\n return true\n}\n\n/**\n * Attempts to delete from the value based on the current cursor position or\n * selection.\n * @return {boolean} true if the value or selection changed as the result of\n * backspacing, false otherwise.\n */\nInputMask.prototype.backspace = function backspace() {\n // If the cursor is at the start there's nothing to do\n if (this.selection.start === 0 && this.selection.end === 0) {\n return false\n }\n\n var selectionBefore = copy(this.selection)\n var valueBefore = this.getValue()\n\n // No range selected - work on the character preceding the cursor\n if (this.selection.start === this.selection.end) {\n if (this.pattern.isEditableIndex(this.selection.start - 1)) {\n this.value[this.selection.start - 1] = this.placeholderChar\n }\n this.selection.start--\n this.selection.end--\n }\n // Range selected - delete characters and leave the cursor at the start of the selection\n else {\n var end = this.selection.end - 1\n while (end >= this.selection.start) {\n if (this.pattern.isEditableIndex(end)) {\n this.value[end] = this.placeholderChar\n }\n end--\n }\n this.selection.end = this.selection.start\n }\n\n // History\n if (this._historyIndex != null) {\n // Took more input after undoing, so blow any subsequent history away\n this._history.splice(this._historyIndex, this._history.length - this._historyIndex)\n }\n if (this._lastOp !== 'backspace' ||\n selectionBefore.start !== selectionBefore.end ||\n this._lastSelection !== null && selectionBefore.start !== this._lastSelection.start) {\n this._history.push({value: valueBefore, selection: selectionBefore, lastOp: this._lastOp})\n }\n this._lastOp = 'backspace'\n this._lastSelection = copy(this.selection)\n\n return true\n}\n\n/**\n * Attempts to paste a string of input at the current cursor position or over\n * the top of the current selection.\n * Invalid content at any position will cause the paste to be rejected, and it\n * may contain static parts of the mask's pattern.\n * @param {string} input\n * @return {boolean} true if the paste was successful, false otherwise.\n */\nInputMask.prototype.paste = function paste(input) {\n // This is necessary because we're just calling input() with each character\n // and rolling back if any were invalid, rather than checking up-front.\n var initialState = {\n value: this.value.slice(),\n selection: copy(this.selection),\n _lastOp: this._lastOp,\n _history: this._history.slice(),\n _historyIndex: this._historyIndex,\n _lastSelection: copy(this._lastSelection)\n }\n\n // If there are static characters at the start of the pattern and the cursor\n // or selection is within them, the static characters must match for a valid\n // paste.\n if (this.selection.start < this.pattern.firstEditableIndex) {\n for (var i = 0, l = this.pattern.firstEditableIndex - this.selection.start; i < l; i++) {\n if (input.charAt(i) !== this.pattern.pattern[i]) {\n return false\n }\n }\n\n // Continue as if the selection and input started from the editable part of\n // the pattern.\n input = input.substring(this.pattern.firstEditableIndex - this.selection.start)\n this.selection.start = this.pattern.firstEditableIndex\n }\n\n for (i = 0, l = input.length;\n i < l && this.selection.start <= this.pattern.lastEditableIndex;\n i++) {\n var valid = this.input(input.charAt(i))\n // Allow static parts of the pattern to appear in pasted input - they will\n // already have been stepped over by input(), so verify that the value\n // deemed invalid by input() was the expected static character.\n if (!valid) {\n if (this.selection.start > 0) {\n // XXX This only allows for one static character to be skipped\n var patternIndex = this.selection.start - 1\n if (!this.pattern.isEditableIndex(patternIndex) &&\n input.charAt(i) === this.pattern.pattern[patternIndex]) {\n continue\n }\n }\n extend(this, initialState)\n return false\n }\n }\n\n return true\n}\n\n// History\n\nInputMask.prototype.undo = function undo() {\n // If there is no history, or nothing more on the history stack, we can't undo\n if (this._history.length === 0 || this._historyIndex === 0) {\n return false\n }\n\n var historyItem\n if (this._historyIndex == null) {\n // Not currently undoing, set up the initial history index\n this._historyIndex = this._history.length - 1\n historyItem = this._history[this._historyIndex]\n // Add a new history entry if anything has changed since the last one, so we\n // can redo back to the initial state we started undoing from.\n var value = this.getValue()\n if (historyItem.value !== value ||\n historyItem.selection.start !== this.selection.start ||\n historyItem.selection.end !== this.selection.end) {\n this._history.push({value: value, selection: copy(this.selection), lastOp: this._lastOp, startUndo: true})\n }\n }\n else {\n historyItem = this._history[--this._historyIndex]\n }\n\n this.value = historyItem.value.split('')\n this.selection = historyItem.selection\n this._lastOp = historyItem.lastOp\n return true\n}\n\nInputMask.prototype.redo = function redo() {\n if (this._history.length === 0 || this._historyIndex == null) {\n return false\n }\n var historyItem = this._history[++this._historyIndex]\n // If this is the last history item, we're done redoing\n if (this._historyIndex === this._history.length - 1) {\n this._historyIndex = null\n // If the last history item was only added to start undoing, remove it\n if (historyItem.startUndo) {\n this._history.pop()\n }\n }\n this.value = historyItem.value.split('')\n this.selection = historyItem.selection\n this._lastOp = historyItem.lastOp\n return true\n}\n\n// Getters & setters\n\nInputMask.prototype.setPattern = function setPattern(pattern, options) {\n options = extend({\n selection: {start: 0, end: 0},\n value: ''\n }, options)\n this.pattern = new Pattern(pattern, this.formatCharacters, this.placeholderChar, options.isRevealingMask)\n this.setValue(options.value)\n this.emptyValue = this.pattern.formatValue([]).join('')\n this.selection = options.selection\n this._resetHistory()\n}\n\nInputMask.prototype.setSelection = function setSelection(selection) {\n this.selection = copy(selection)\n if (this.selection.start === this.selection.end) {\n if (this.selection.start < this.pattern.firstEditableIndex) {\n this.selection.start = this.selection.end = this.pattern.firstEditableIndex\n return true\n }\n // Set selection to the first editable, non-placeholder character before the selection\n // OR to the beginning of the pattern\n var index = this.selection.start\n while (index >= this.pattern.firstEditableIndex) {\n if (this.pattern.isEditableIndex(index - 1) &&\n this.value[index - 1] !== this.placeholderChar ||\n index === this.pattern.firstEditableIndex) {\n this.selection.start = this.selection.end = index\n break\n }\n index--\n }\n return true\n }\n return false\n}\n\nInputMask.prototype.setValue = function setValue(value) {\n if (value == null) {\n value = ''\n }\n this.value = this.pattern.formatValue(value.split(''))\n}\n\nInputMask.prototype.getValue = function getValue() {\n return this.value.join('')\n}\n\nInputMask.prototype.getRawValue = function getRawValue() {\n var rawValue = []\n for (var i = 0; i < this.value.length; i++) {\n if (this.pattern._editableIndices[i] === true) {\n rawValue.push(this.value[i])\n }\n }\n return rawValue.join('')\n}\n\nInputMask.prototype._resetHistory = function _resetHistory() {\n this._history = []\n this._historyIndex = null\n this._lastOp = null\n this._lastSelection = copy(this.selection)\n}\n\nInputMask.Pattern = Pattern\n\nmodule.exports = InputMask\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'MM/DD/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY h:mm A',\n LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un dÃa',\n dd : '%d dÃas',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return esUs;\n\n})));\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tet = moment.defineLocale('tet', {\n months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin : 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'iha %s',\n past : '%s liuba',\n s : 'minutu balun',\n ss : 'minutu %d',\n m : 'minutu ida',\n mm : 'minutu %d',\n h : 'oras ida',\n hh : 'oras %d',\n d : 'loron ida',\n dd : 'loron %d',\n M : 'fulan ida',\n MM : 'fulan %d',\n y : 'tinan ida',\n yy : 'tinan %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tet;\n\n})));\n","import Swal from 'sweetalert2';\nvar VueSweetalert2 = (function () {\n function VueSweetalert2() {\n }\n VueSweetalert2.install = function (vue, options) {\n var _swal = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (options) {\n var mixed = Swal.mixin(options);\n return mixed.fire.apply(mixed, args);\n }\n return Swal.fire.apply(Swal, args);\n };\n var _loop_1 = function (k) {\n if (Swal.hasOwnProperty(k) && typeof Swal[k] === 'function') {\n _swal[k] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return Swal[k].apply(Swal, args);\n };\n }\n };\n for (var k in Swal) {\n _loop_1(k);\n }\n vue['swal'] = _swal;\n if (!vue.prototype.hasOwnProperty('$swal')) {\n vue.prototype.$swal = _swal;\n }\n };\n return VueSweetalert2;\n}());\nexport default VueSweetalert2;\n//# sourceMappingURL=index.js.map","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'Þ–Þ¬Þ‚ÞªÞ‡Þ¦ÞƒÞ©',\n 'ÞŠÞ¬Þ„Þ°ÞƒÞªÞ‡Þ¦ÞƒÞ©',\n 'Þ‰Þ§ÞƒÞ¨Þ—Þª',\n 'Þ‡ÞÞ•Þ°ÞƒÞ©ÞÞª',\n 'Þ‰Þ',\n 'Þ–Þ«Þ‚Þ°',\n 'Þ–ÞªÞÞ¦Þ‡Þ¨',\n 'Þ‡Þ¯ÞŽÞ¦ÞÞ°Þ“Þª',\n 'ÞÞ¬Þ•Þ°Þ“Þ¬Þ‰Þ°Þ„Þ¦ÞƒÞª',\n 'Þ‡Þ®Þ†Þ°Þ“Þ¯Þ„Þ¦ÞƒÞª',\n 'Þ‚Þ®ÞˆÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª',\n 'Þ‘Þ¨ÞÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª'\n ], weekdays = [\n 'އާދިއްތަ',\n 'Þ€Þ¯Þ‰Þ¦',\n 'Þ‡Þ¦Þ‚Þ°ÞŽÞ§ÞƒÞ¦',\n 'Þ„ÞªÞ‹Þ¦',\n 'Þ„ÞªÞƒÞ§Þްފަތި',\n 'Þ€ÞªÞ†ÞªÞƒÞª',\n 'Þ€Þ®Þ‚Þ¨Þ€Þ¨ÞƒÞª'\n ];\n\n var dv = moment.defineLocale('dv', {\n months : months,\n monthsShort : months,\n weekdays : weekdays,\n weekdaysShort : weekdays,\n weekdaysMin : 'Þ‡Þ§Þ‹Þ¨_Þ€Þ¯Þ‰Þ¦_Þ‡Þ¦Þ‚Þ°_Þ„ÞªÞ‹Þ¦_Þ„ÞªÞƒÞ§_Þ€ÞªÞ†Þª_Þ€Þ®Þ‚Þ¨'.split('_'),\n longDateFormat : {\n\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/M/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /Þ‰Þ†|Þ‰ÞŠ/,\n isPM : function (input) {\n return 'Þ‰ÞŠ' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Þ‰Þ†';\n } else {\n return 'Þ‰ÞŠ';\n }\n },\n calendar : {\n sameDay : '[Þ‰Þ¨Þ‡Þ¦Þ‹Þª] LT',\n nextDay : '[Þ‰Þ§Þ‹Þ¦Þ‰Þ§] LT',\n nextWeek : 'dddd LT',\n lastDay : '[Þ‡Þ¨Þ‡Þ°Þ”Þ¬] LT',\n lastWeek : '[ފާއިތުވި] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ތެރÞÞŽÞ¦Þ‡Þ¨ %s',\n past : 'Þ†ÞªÞƒÞ¨Þ‚Þ° %s',\n s : 'Þިކުންތުކޮޅެއް',\n ss : 'd% Þިކުންތު',\n m : 'Þ‰Þ¨Þ‚Þ¨Þ“Þ¬Þ‡Þ°',\n mm : 'Þ‰Þ¨Þ‚Þ¨Þ“Þª %d',\n h : 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞ¬Þ‡Þ°',\n hh : 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞª %d',\n d : 'Þ‹ÞªÞˆÞ¦Þ€Þ¬Þ‡Þ°',\n dd : 'Þ‹ÞªÞˆÞ¦ÞÞ° %d',\n M : 'Þ‰Þ¦Þ€Þ¬Þ‡Þ°',\n MM : 'Þ‰Þ¦ÞÞ° %d',\n y : 'Þ‡Þ¦Þ€Þ¦ÞƒÞ¬Þ‡Þ°',\n yy : 'Þ‡Þ¦Þ€Þ¦ÞƒÞª %d'\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 7, // Sunday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return dv;\n\n})));\n","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\nvar defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = defaultsDeep;\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var weekEndings = 'vasárnap hétfÅ‘n kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\n }\n\n var hu = moment.defineLocale('hu', {\n months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),\n weekdays : 'vasárnap_hétfÅ‘_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY. MMMM D.',\n LLL : 'YYYY. MMMM D. H:mm',\n LLLL : 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar : {\n sameDay : '[ma] LT[-kor]',\n nextDay : '[holnap] LT[-kor]',\n nextWeek : function () {\n return week.call(this, true);\n },\n lastDay : '[tegnap] LT[-kor]',\n lastWeek : function () {\n return week.call(this, false);\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s múlva',\n past : '%s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return hu;\n\n})));\n","var Flatted = (function (Primitive, primitive) {\n\n /*!\n * ISC License\n *\n * Copyright (c) 2018, Andrea Giammarchi, @WebReflection\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE\n * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n var Flatted = {\n\n parse: function parse(text, reviver) {\n var input = JSON.parse(text, Primitives).map(primitives);\n var value = input[0];\n var $ = reviver || noop;\n var tmp = typeof value === 'object' && value ?\n revive(input, new Set, value, $) :\n value;\n return $.call({'': tmp}, '', tmp);\n },\n\n stringify: function stringify(value, replacer, space) {\n for (var\n firstRun,\n known = new Map,\n input = [],\n output = [],\n $ = replacer && typeof replacer === typeof input ?\n function (k, v) {\n if (k === '' || -1 < replacer.indexOf(k)) return v;\n } :\n (replacer || noop),\n i = +set(known, input, $.call({'': value}, '', value)),\n replace = function (key, value) {\n if (firstRun) {\n firstRun = !firstRun;\n return value;\n // this was invoking twice each root object\n // return i < 1 ? value : $.call(this, key, value);\n }\n var after = $.call(this, key, value);\n switch (typeof after) {\n case 'object':\n if (after === null) return after;\n case primitive:\n return known.get(after) || set(known, input, after);\n }\n return after;\n };\n i < input.length; i++\n ) {\n firstRun = true;\n output[i] = JSON.stringify(input[i], replace, space);\n }\n return '[' + output.join(',') + ']';\n }\n\n };\n\n return Flatted;\n\n function noop(key, value) {\n return value;\n }\n\n function revive(input, parsed, output, $) {\n return Object.keys(output).reduce(\n function (output, key) {\n var value = output[key];\n if (value instanceof Primitive) {\n var tmp = input[value];\n if (typeof tmp === 'object' && !parsed.has(tmp)) {\n parsed.add(tmp);\n output[key] = $.call(output, key, revive(input, parsed, tmp, $));\n } else {\n output[key] = $.call(output, key, tmp);\n }\n } else\n output[key] = $.call(output, key, value);\n return output;\n },\n output\n );\n }\n\n function set(known, input, value) {\n var index = Primitive(input.push(value) - 1);\n known.set(value, index);\n return index;\n }\n\n // the two kinds of primitives\n // 1. the real one\n // 2. the wrapped one\n\n function primitives(value) {\n return value instanceof Primitive ? Primitive(value) : value;\n }\n\n function Primitives(key, value) {\n return typeof value === primitive ? new Primitive(value) : value;\n }\n\n}(String, 'string'));\nexport default Flatted;\nexport var parse = Flatted.parse;\nexport var stringify = Flatted.stringify;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhCn = moment.defineLocale('zh-cn', {\n months : '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort : '周日_周一_周二_周三_周四_周五_周å…'.split('_'),\n weekdaysMin : 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYYå¹´M月Dæ—¥',\n LLL : 'YYYYå¹´M月Dæ—¥Ah点mm分',\n LLLL : 'YYYYå¹´M月Dæ—¥ddddAh点mm分',\n l : 'YYYY/M/D',\n ll : 'YYYYå¹´M月Dæ—¥',\n lll : 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll : 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' ||\n meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // 'ä¸åˆ'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天]LT',\n nextDay : '[明天]LT',\n nextWeek : '[下]ddddLT',\n lastDay : '[昨天]LT',\n lastWeek : '[上]ddddLT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|周)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime : {\n future : '%s内',\n past : '%så‰',\n s : 'å‡ ç§’',\n ss : '%d 秒',\n m : '1 分钟',\n mm : '%d 分钟',\n h : '1 å°æ—¶',\n hh : '%d å°æ—¶',\n d : '1 天',\n dd : '%d 天',\n M : '1 个月',\n MM : '%d 个月',\n y : '1 å¹´',\n yy : '%d å¹´'\n },\n week : {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return zhCn;\n\n})));\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var te = moment.defineLocale('te', {\n months : 'జనవరి_à°«à°¿à°¬à±à°°à°µà°°à°¿_మారà±à°šà°¿_à°à°ªà±à°°à°¿à°²à±_మే_జూనà±_à°œà±à°²à±ˆ_ఆగసà±à°Ÿà±_సెపà±à°Ÿà±†à°‚బరà±_à°…à°•à±à°Ÿà±‹à°¬à°°à±_నవంబరà±_డిసెంబరà±'.split('_'),\n monthsShort : 'జన._à°«à°¿à°¬à±à°°._మారà±à°šà°¿_à°à°ªà±à°°à°¿._మే_జూనà±_à°œà±à°²à±ˆ_ఆగ._సెపà±._à°…à°•à±à°Ÿà±‹._నవ._డిసె.'.split('_'),\n monthsParseExact : true,\n weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_à°¬à±à°§à°µà°¾à°°à°‚_à°—à±à°°à±à°µà°¾à°°à°‚_à°¶à±à°•à±à°°à°µà°¾à°°à°‚_శనివారం'.split('_'),\n weekdaysShort : 'ఆది_సోమ_మంగళ_à°¬à±à°§_à°—à±à°°à±_à°¶à±à°•à±à°°_శని'.split('_'),\n weekdaysMin : 'à°†_సో_మం_à°¬à±_à°—à±_à°¶à±_à°¶'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[నేడà±] LT',\n nextDay : '[రేపà±] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[నినà±à°¨] LT',\n lastWeek : '[à°—à°¤] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s లో',\n past : '%s à°•à±à°°à°¿à°¤à°‚',\n s : 'కొనà±à°¨à°¿ à°•à±à°·à°£à°¾à°²à±',\n ss : '%d సెకనà±à°²à±',\n m : 'à°’à°• నిమిషం',\n mm : '%d నిమిషాలà±',\n h : 'à°’à°• à°—à°‚à°Ÿ',\n hh : '%d à°—à°‚à°Ÿà°²à±',\n d : 'à°’à°• రోజà±',\n dd : '%d రోజà±à°²à±',\n M : 'à°’à°• నెల',\n MM : '%d నెలలà±',\n y : 'à°’à°• సంవతà±à°¸à°°à°‚',\n yy : '%d సంవతà±à°¸à°°à°¾à°²à±'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}à°µ/,\n ordinal : '%dà°µ',\n meridiemParse: /రాతà±à°°à°¿|ఉదయం|మధà±à°¯à°¾à°¹à±à°¨à°‚|సాయంతà±à°°à°‚/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాతà±à°°à°¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధà±à°¯à°¾à°¹à±à°¨à°‚') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంతà±à°°à°‚') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాతà±à°°à°¿';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధà±à°¯à°¾à°¹à±à°¨à°‚';\n } else if (hour < 20) {\n return 'సాయంతà±à°°à°‚';\n } else {\n return 'రాతà±à°°à°¿';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return te;\n\n})));\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","//\n// Single point of contact for Vue\n//\n// TODO:\n// Conditionally import Vue if no global Vue\n//\nimport Vue from 'vue';\nexport default Vue;","import { isBrowser, hasPromiseSupport, hasMutationObserverSupport, getNoWarn } from './env';\n/**\n * Log a warning message to the console with BootstrapVue formatting\n * @param {string} message\n */\n\nexport var warn = function warn(message)\n/* istanbul ignore next */\n{\n if (!getNoWarn()) {\n console.warn(\"[BootstrapVue warn]: \".concat(message));\n }\n};\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNotClient = function warnNotClient(source) {\n /* istanbul ignore else */\n if (isBrowser) {\n return false;\n } else {\n warn(\"\".concat(source, \": Can not be called during SSR.\"));\n return true;\n }\n};\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNoPromiseSupport = function warnNoPromiseSupport(source) {\n /* istanbul ignore else */\n if (hasPromiseSupport) {\n return false;\n } else {\n warn(\"\".concat(source, \": Requires Promise support.\"));\n return true;\n }\n};\n/**\n * Warn when no MutationObserver support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNoMutationObserverSupport = function warnNoMutationObserverSupport(source) {\n /* istanbul ignore else */\n if (hasMutationObserverSupport) {\n return false;\n } else {\n warn(\"\".concat(source, \": Requires MutationObserver support.\"));\n return true;\n }\n}; // Default export\n\nexport default warn;","// --- Static ---\nexport var from = Array.from;\nexport var isArray = Array.isArray; // --- Instance ---\n\nexport var arrayIncludes = function arrayIncludes(array, value) {\n return array.indexOf(value) !== -1;\n};\nexport var concat = function concat() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return Array.prototype.concat.apply([], args);\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { isArray } from './array'; // --- Static ---\n\nexport var assign = Object.assign;\nexport var getOwnPropertyNames = Object.getOwnPropertyNames;\nexport var keys = Object.keys;\nexport var defineProperties = Object.defineProperties;\nexport var defineProperty = Object.defineProperty;\nexport var freeze = Object.freeze;\nexport var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nexport var getOwnPropertySymbols = Object.getOwnPropertySymbols;\nexport var getPrototypeOf = Object.getPrototypeOf;\nexport var create = Object.create;\nexport var isFrozen = Object.isFrozen;\nexport var is = Object.is; // --- \"Instance\" ---\n\nexport var hasOwnProperty = function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n};\nexport var toString = function toString(obj) {\n return Object.prototype.toString.call(obj);\n}; // --- Utilities ---\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n * Note object could be a complex type like array, date, etc.\n */\n\nexport var isObject = function isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n};\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\n\nexport var isPlainObject = function isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}; // @link https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\n\nexport var omit = function omit(obj, props) {\n return keys(obj).filter(function (key) {\n return props.indexOf(key) === -1;\n }).reduce(function (result, key) {\n return _objectSpread({}, result, _defineProperty({}, key, obj[key]));\n }, {});\n};\nexport var readonlyDescriptor = function readonlyDescriptor() {\n return {\n enumerable: true,\n configurable: false,\n writable: false\n };\n};\n/**\n * Deep-freezes and object, making it immutable / read-only.\n * Returns the same object passed-in, but frozen.\n * Freezes inner object/array/values first.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n * Note: this method will not work for property values using Symbol() as a key\n */\n\nexport var deepFreeze = function deepFreeze(obj) {\n // Retrieve the property names defined on object/array\n // Note: `keys` will ignore properties that are keyed by a `Symbol()`\n var props = keys(obj); // Iterate over each prop and recursively freeze it\n\n props.forEach(function (prop) {\n var value = obj[prop]; // If value is a plain object or array, we deepFreeze it\n\n obj[prop] = value && (isPlainObject(value) || isArray(value)) ? deepFreeze(value) : value;\n });\n return freeze(obj);\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport { isArray, isPlainObject } from './inspect';\nimport { keys } from './object';\nexport var cloneDeep = function cloneDeep(obj) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : obj;\n\n if (isArray(obj)) {\n return obj.reduce(function (result, val) {\n return [].concat(_toConsumableArray(result), [cloneDeep(val, val)]);\n }, []);\n }\n\n if (isPlainObject(obj)) {\n return keys(obj).reduce(function (result, key) {\n return _objectSpread({}, result, _defineProperty({}, key, cloneDeep(obj[key], obj[key])));\n }, {});\n }\n\n return defaultValue;\n};\nexport default cloneDeep;","import { isArray, isObject } from './inspect';\n/**\n * Get property defined by dot/array notation in string.\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @param {*} defaultValue (optional)\n * @return {*}\n */\n\nvar get = function get(obj, path) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n // Handle array of path values\n path = isArray(path) ? path.join('.') : path; // If no path or no object passed\n\n if (!path || !isObject(obj)) {\n return defaultValue;\n } // Handle edge case where user has dot(s) in top-level item field key\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2762\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n\n\n if (path in obj) {\n return obj[path];\n } // Handle string array notation (numeric indices only)\n\n\n path = String(path).replace(/\\[(\\d+)]/g, '.$1');\n var steps = path.split('.').filter(Boolean); // Handle case where someone passes a string of only dots\n\n if (steps.length === 0) {\n return defaultValue;\n } // Traverse path in object to find result\n // We use `!=` vs `!==` to test for both `null` and `undefined`\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n\n\n return steps.every(function (step) {\n return isObject(obj) && step in obj && (obj = obj[step]) != null;\n }) ? obj : defaultValue;\n};\n\nexport default get;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { isArray } from './array';\nimport { isObject, isPlainObject } from './object'; // --- Convenience inspection utilities ---\n\nexport var toType = function toType(val) {\n return _typeof(val);\n};\nexport var toRawType = function toRawType(val) {\n return Object.prototype.toString.call(val).slice(8, -1);\n};\nexport var toRawTypeLC = function toRawTypeLC(val) {\n return toRawType(val).toLowerCase();\n};\nexport var isUndefined = function isUndefined(val) {\n return val === undefined;\n};\nexport var isNull = function isNull(val) {\n return val === null;\n};\nexport var isUndefinedOrNull = function isUndefinedOrNull(val) {\n return isUndefined(val) || isNull(val);\n};\nexport var isFunction = function isFunction(val) {\n return toType(val) === 'function';\n};\nexport var isBoolean = function isBoolean(val) {\n return toType(val) === 'boolean';\n};\nexport var isString = function isString(val) {\n return toType(val) === 'string';\n};\nexport var isNumber = function isNumber(val) {\n return toType(val) === 'number';\n};\nexport var isPrimitive = function isPrimitive(val) {\n return isBoolean(val) || isString(val) || isNumber(val);\n};\nexport var isDate = function isDate(val) {\n return val instanceof Date;\n};\nexport var isEvent = function isEvent(val) {\n return val instanceof Event;\n};\nexport var isRegExp = function isRegExp(val) {\n return toRawType(val) === 'RegExp';\n};\nexport var isPromise = function isPromise(val) {\n return !isUndefinedOrNull(val) && isFunction(val.then) && isFunction(val.catch);\n}; // Extra convenience named re-exports\n\nexport { isArray, isObject, isPlainObject };","import { deepFreeze } from './object'; // --- General BootstrapVue configuration ---\n// NOTES\n//\n// The global config SHALL NOT be used to set defaults for Boolean props, as the props\n// would loose their semantic meaning, and force people writing 3rd party components to\n// explicity set a true or false value using the v-bind syntax on boolean props\n//\n// Supported config values (depending on the prop's supported type(s)):\n// `String`, `Array`, `Object`, `null` or `undefined`\n// BREAKPOINT DEFINITIONS\n//\n// Some components (`<b-col>` and `<b-form-group>`) generate props based on breakpoints,\n// and this occurs when the component is first loaded (evaluated), which may happen\n// before the config is created/modified\n//\n// To get around this we make these components' props async (lazy evaluation)\n// The component definition is only called/executed when the first access to the\n// component is used (and cached on subsequent uses)\n// PROP DEFAULTS\n//\n// For default values on props, we use the default value factory function approach so\n// that the default values are pulled in at each component instantiation\n//\n// props: {\n// variant: {\n// type: String,\n// default: () => getConfigComponent('BAlert', 'variant')\n// }\n// }\n//\n// We also provide a cached getter for breakpoints, which are \"frozen\" on first access\n// prettier-ignore\n\nexport default deepFreeze({\n // Breakpoints\n breakpoints: ['xs', 'sm', 'md', 'lg', 'xl'],\n // Form controls\n formControls: {\n size: null\n },\n // Component specific defaults are keyed by the component\n // name (PascalCase) and prop name (camelCase)\n BAlert: {\n dismissLabel: 'Close',\n variant: 'info'\n },\n BBadge: {\n variant: 'secondary'\n },\n BButton: {\n size: null,\n variant: 'secondary'\n },\n BButtonClose: {\n // `textVariant` is `null` to inherit the current text color\n textVariant: null,\n ariaLabel: 'Close'\n },\n BCardSubTitle: {\n // `<b-card>` and `<b-card-body>` also inherit this prop\n subTitleTextVariant: 'muted'\n },\n BCarousel: {\n labelPrev: 'Previous Slide',\n labelNext: 'Next Slide',\n labelGotoSlide: 'Goto Slide',\n labelIndicators: 'Select a slide to display'\n },\n BDropdown: {\n toggleText: 'Toggle Dropdown',\n size: null,\n variant: 'secondary',\n splitVariant: null\n },\n BFormFile: {\n browseText: 'Browse',\n // Chrome default file prompt\n placeholder: 'No file chosen',\n dropPlaceholder: 'Drop files here'\n },\n BFormText: {\n textVariant: 'muted'\n },\n BImg: {\n blankColor: 'transparent'\n },\n BImgLazy: {\n blankColor: 'transparent'\n },\n BInputGroup: {\n size: null\n },\n BJumbotron: {\n bgVariant: null,\n borderVariant: null,\n textVariant: null\n },\n BListGroupItem: {\n variant: null\n },\n BModal: {\n titleTag: 'h5',\n size: 'md',\n headerBgVariant: null,\n headerBorderVariant: null,\n headerTextVariant: null,\n headerCloseVariant: null,\n bodyBgVariant: null,\n bodyTextVariant: null,\n footerBgVariant: null,\n footerBorderVariant: null,\n footerTextVariant: null,\n cancelTitle: 'Cancel',\n cancelVariant: 'secondary',\n okTitle: 'OK',\n okVariant: 'primary',\n headerCloseLabel: 'Close'\n },\n BNavbar: {\n variant: null\n },\n BNavbarToggle: {\n label: 'Toggle navigation'\n },\n BPagination: {\n size: null\n },\n BPaginationNav: {\n size: null\n },\n BPopover: {\n boundary: 'scrollParent',\n boundaryPadding: 5,\n customClass: null,\n delay: 50,\n variant: null\n },\n BProgress: {\n variant: null\n },\n BProgressBar: {\n variant: null\n },\n BSpinner: {\n variant: null\n },\n BTable: {\n selectedVariant: 'primary',\n headVariant: null,\n footVariant: null\n },\n BToast: {\n toaster: 'b-toaster-top-right',\n autoHideDelay: 5000,\n variant: null,\n toastClass: null,\n headerClass: null,\n bodyClass: null\n },\n BToaster: {\n ariaLive: null,\n ariaAtomic: null,\n role: null\n },\n BTooltip: {\n boundary: 'scrollParent',\n boundaryPadding: 5,\n customClass: null,\n delay: 50,\n variant: null\n }\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport OurVue from './vue';\nimport cloneDeep from './clone-deep';\nimport get from './get';\nimport warn from './warn';\nimport { isArray, isPlainObject, isString, isUndefined } from './inspect';\nimport { getOwnPropertyNames, hasOwnProperty } from './object';\nimport DEFAULTS from './config-defaults'; // --- Constants ---\n\nvar PROP_NAME = '$bvConfig'; // Config manager class\n\nvar BvConfig =\n/*#__PURE__*/\nfunction () {\n function BvConfig() {\n _classCallCheck(this, BvConfig);\n\n // TODO: pre-populate with default config values (needs updated tests)\n // this.$_config = cloneDeep(DEFAULTS)\n this.$_config = {};\n this.$_cachedBreakpoints = null;\n }\n\n _createClass(BvConfig, [{\n key: \"getDefaults\",\n // Returns the defaults\n value: function getDefaults()\n /* istanbul ignore next */\n {\n return this.defaults;\n } // Method to merge in user config parameters\n\n }, {\n key: \"setConfig\",\n value: function setConfig() {\n var _this = this;\n\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!isPlainObject(config)) {\n /* istanbul ignore next */\n return;\n }\n\n var configKeys = getOwnPropertyNames(config);\n configKeys.forEach(function (cmpName) {\n /* istanbul ignore next */\n if (!hasOwnProperty(DEFAULTS, cmpName)) {\n warn(\"config: unknown config property \\\"\".concat(cmpName, \"\\\"\"));\n return;\n }\n\n var cmpConfig = config[cmpName];\n\n if (cmpName === 'breakpoints') {\n // Special case for breakpoints\n var breakpoints = config.breakpoints;\n /* istanbul ignore if */\n\n if (!isArray(breakpoints) || breakpoints.length < 2 || breakpoints.some(function (b) {\n return !isString(b) || b.length === 0;\n })) {\n warn('config: \"breakpoints\" must be an array of at least 2 breakpoint names');\n } else {\n _this.$_config.breakpoints = cloneDeep(breakpoints);\n }\n } else if (isPlainObject(cmpConfig)) {\n // Component prop defaults\n var props = getOwnPropertyNames(cmpConfig);\n props.forEach(function (prop) {\n /* istanbul ignore if */\n if (!hasOwnProperty(DEFAULTS[cmpName], prop)) {\n warn(\"config: unknown config property \\\"\".concat(cmpName, \".\").concat(prop, \"\\\"\"));\n } else {\n // TODO: If we pre-populate the config with defaults, we can skip this line\n _this.$_config[cmpName] = _this.$_config[cmpName] || {};\n\n if (!isUndefined(cmpConfig[prop])) {\n _this.$_config[cmpName][prop] = cloneDeep(cmpConfig[prop]);\n }\n }\n });\n }\n });\n } // Clear the config. For testing purposes only\n\n }, {\n key: \"resetConfig\",\n value: function resetConfig() {\n this.$_config = {};\n } // Returns a deep copy of the user config\n\n }, {\n key: \"getConfig\",\n value: function getConfig() {\n return cloneDeep(this.$_config);\n }\n }, {\n key: \"getConfigValue\",\n value: function getConfigValue(key) {\n // First we try the user config, and if key not found we fall back to default value\n // NOTE: If we deep clone DEFAULTS into config, then we can skip the fallback for get\n return cloneDeep(get(this.$_config, key, get(DEFAULTS, key)));\n }\n }, {\n key: \"defaults\",\n get: function get()\n /* istanbul ignore next */\n {\n return DEFAULTS;\n }\n }], [{\n key: \"Defaults\",\n get: function get()\n /* istanbul ignore next */\n {\n return DEFAULTS;\n }\n }]);\n\n return BvConfig;\n}(); // Method for applying a global config\n\n\nexport var setConfig = function setConfig() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var Vue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OurVue;\n // Ensure we have a $bvConfig Object on the Vue prototype.\n // We set on Vue and OurVue just in case consumer has not set an alias of `vue`.\n Vue.prototype[PROP_NAME] = OurVue.prototype[PROP_NAME] = Vue.prototype[PROP_NAME] || OurVue.prototype[PROP_NAME] || new BvConfig(); // Apply the config values\n\n Vue.prototype[PROP_NAME].setConfig(config);\n}; // Method for resetting the user config. Exported for testing purposes only.\n\nexport var resetConfig = function resetConfig() {\n if (OurVue.prototype[PROP_NAME] && OurVue.prototype[PROP_NAME].resetConfig) {\n OurVue.prototype[PROP_NAME].resetConfig();\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport OurVue from './vue';\nimport warn from './warn';\nimport { setConfig } from './config-set';\nimport { hasWindowSupport, isJSDOM } from './env';\n/**\n * Checks if there are multiple instances of Vue, and warns (once) about possible issues.\n * @param {object} Vue\n */\n\nexport var checkMultipleVue = function () {\n var checkMultipleVueWarned = false;\n var MULTIPLE_VUE_WARNING = ['Multiple instances of Vue detected!', 'You may need to set up an alias for Vue in your bundler config.', 'See: https://bootstrap-vue.js.org/docs#using-module-bundlers'].join('\\n');\n return function (Vue) {\n /* istanbul ignore next */\n if (!checkMultipleVueWarned && OurVue !== Vue && !isJSDOM) {\n warn(MULTIPLE_VUE_WARNING);\n }\n\n checkMultipleVueWarned = true;\n };\n}();\n/**\n * Plugin install factory function.\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\n\nexport var installFactory = function installFactory() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n components = _ref.components,\n directives = _ref.directives,\n plugins = _ref.plugins;\n\n var install = function install(Vue) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (install.installed) {\n /* istanbul ignore next */\n return;\n }\n\n install.installed = true;\n checkMultipleVue(Vue);\n setConfig(config, Vue);\n registerComponents(Vue, components);\n registerDirectives(Vue, directives);\n registerPlugins(Vue, plugins);\n };\n\n install.installed = false;\n return install;\n};\n/**\n * Plugin object factory function.\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\n\nexport var pluginFactory = function pluginFactory() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread({}, extend, {\n install: installFactory(opts)\n });\n};\n/**\n * Load a group of plugins.\n * @param {object} Vue\n * @param {object} Plugin definitions\n */\n\nexport var registerPlugins = function registerPlugins(Vue) {\n var plugins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var plugin in plugins) {\n if (plugin && plugins[plugin]) {\n Vue.use(plugins[plugin]);\n }\n }\n};\n/**\n * Load a component.\n * @param {object} Vue\n * @param {string} Component name\n * @param {object} Component definition\n */\n\nexport var registerComponent = function registerComponent(Vue, name, def) {\n if (Vue && name && def) {\n Vue.component(name, def);\n }\n};\n/**\n * Load a group of components.\n * @param {object} Vue\n * @param {object} Object of component definitions\n */\n\nexport var registerComponents = function registerComponents(Vue) {\n var components = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var component in components) {\n registerComponent(Vue, component, components[component]);\n }\n};\n/**\n * Load a directive.\n * @param {object} Vue\n * @param {string} Directive name\n * @param {object} Directive definition\n */\n\nexport var registerDirective = function registerDirective(Vue, name, def) {\n if (Vue && name && def) {\n // Ensure that any leading V is removed from the\n // name, as Vue adds it automatically\n Vue.directive(name.replace(/^VB/, 'B'), def);\n }\n};\n/**\n * Load a group of directives.\n * @param {object} Vue\n * @param {object} Object of directive definitions\n */\n\nexport var registerDirectives = function registerDirectives(Vue) {\n var directives = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var directive in directives) {\n registerDirective(Vue, directive, directives[directive]);\n }\n};\n/**\n * Install plugin if window.Vue available\n * @param {object} Plugin definition\n */\n\nexport var vueUse = function vueUse(VuePlugin) {\n /* istanbul ignore next */\n if (hasWindowSupport && window.Vue) {\n window.Vue.use(VuePlugin);\n }\n /* istanbul ignore next */\n\n\n if (hasWindowSupport && VuePlugin.NAME) {\n window[VuePlugin.NAME] = VuePlugin;\n }\n};","import { create } from './object';\n\nvar memoize = function memoize(fn) {\n var cache = create(null);\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsKey = JSON.stringify(args);\n return cache[argsKey] = cache[argsKey] || fn.apply(null, args);\n };\n};\n\nexport default memoize;","import Vue from './vue';\nimport cloneDeep from './clone-deep';\nimport get from './get';\nimport memoize from './memoize';\nimport DEFAULTS from './config-defaults'; // --- Constants ---\n\nvar PROP_NAME = '$bvConfig';\nvar VueProto = Vue.prototype; // --- Getter methods ---\n// All methods return a deep clone (immutable) copy of the config\n// value, to prevent mutation of the user config object.\n// Get the current user config. For testing purposes only\n\nexport var getConfig = function getConfig() {\n return VueProto[PROP_NAME] ? VueProto[PROP_NAME].getConfig() : {};\n}; // Method to grab a config value based on a dotted/array notation key\n\nexport var getConfigValue = function getConfigValue(key) {\n return VueProto[PROP_NAME] ? VueProto[PROP_NAME].getConfigValue(key) : cloneDeep(get(DEFAULTS, key));\n}; // Method to grab a config value for a particular component\n\nexport var getComponentConfig = function getComponentConfig(cmpName) {\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n // Return the particular config value for key for if specified,\n // otherwise we return the full config (or an empty object if not found)\n return key ? getConfigValue(\"\".concat(cmpName, \".\").concat(key)) : getConfigValue(cmpName) || {};\n}; // Convenience method for getting all breakpoint names\n\nexport var getBreakpoints = function getBreakpoints() {\n return getConfigValue('breakpoints');\n}; // Private function for caching / locking-in breakpoint names\n\nvar _getBreakpointsCached = memoize(function () {\n return getBreakpoints();\n}); // Convenience method for getting all breakpoint names.\n// Caches the results after first access.\n\n\nexport var getBreakpointsCached = function getBreakpointsCached() {\n return cloneDeep(_getBreakpointsCached());\n}; // Convenience method for getting breakpoints with\n// the smallest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\n\nexport var getBreakpointsUp = function getBreakpointsUp() {\n var breakpoints = getBreakpoints();\n breakpoints[0] = '';\n return breakpoints;\n}; // Convenience method for getting breakpoints with\n// the smallest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\n// Caches the results after first access.\n\nexport var getBreakpointsUpCached = memoize(function () {\n var breakpoints = getBreakpointsCached();\n breakpoints[0] = '';\n return breakpoints;\n}); // Convenience method for getting breakpoints with\n// the largest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\n\nexport var getBreakpointsDown = function getBreakpointsDown() {\n var breakpoints = getBreakpoints();\n breakpoints[breakpoints.length - 1] = '';\n return breakpoints;\n}; // Convenience method for getting breakpoints with\n// the largest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\n// Caches the results after first access.\n\n/* istanbul ignore next: we don't use this method anywhere, yet */\n\nexport var getBreakpointsDownCached = function getBreakpointsDownCached()\n/* istanbul ignore next */\n{\n var breakpoints = getBreakpointsCached();\n breakpoints[breakpoints.length - 1] = '';\n return breakpoints;\n};","import { from as arrayFrom } from './array';\nimport { hasWindowSupport, hasDocumentSupport, hasPassiveEventSupport } from './env';\nimport { isFunction, isNull, isObject } from '../utils/inspect'; // --- Constants ---\n\nvar w = hasWindowSupport ? window : {};\nvar d = hasDocumentSupport ? document : {};\nvar elProto = typeof Element !== 'undefined' ? Element.prototype : {}; // --- Normalization utils ---\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n\n/* istanbul ignore next */\n\nexport var matchesEl = elProto.matches || elProto.msMatchesSelector || elProto.webkitMatchesSelector; // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n\n/* istanbul ignore next */\n\nexport var closestEl = elProto.closest || function (sel)\n/* istanbul ignore next */\n{\n var el = this;\n\n do {\n // Use our \"patched\" matches function\n if (matches(el, sel)) {\n return el;\n }\n\n el = el.parentElement || el.parentNode;\n } while (!isNull(el) && el.nodeType === Node.ELEMENT_NODE);\n\n return null;\n}; // `requestAnimationFrame()` convenience method\n\nexport var requestAF = w.requestAnimationFrame || w.webkitRequestAnimationFrame || w.mozRequestAnimationFrame || w.msRequestAnimationFrame || w.oRequestAnimationFrame || // Fallback, but not a true polyfill\n// Only needed for Opera Mini\n\n/* istanbul ignore next */\nfunction (cb) {\n return setTimeout(cb, 16);\n};\nexport var MutationObs = w.MutationObserver || w.WebKitMutationObserver || w.MozMutationObserver || null; // --- Utils ---\n// Normalize event options based on support of passive option\n// Exported only for testing purposes\n\nexport var parseEventOptions = function parseEventOptions(options) {\n /* istanbul ignore else: can't test in JSDOM, as it supports passive */\n if (hasPassiveEventSupport) {\n return isObject(options) ? options : {\n useCapture: Boolean(options || false)\n };\n } else {\n // Need to translate to actual Boolean value\n return Boolean(isObject(options) ? options.useCapture : options);\n }\n}; // Attach an event listener to an element\n\nexport var eventOn = function eventOn(el, evtName, handler, options) {\n if (el && el.addEventListener) {\n el.addEventListener(evtName, handler, parseEventOptions(options));\n }\n}; // Remove an event listener from an element\n\nexport var eventOff = function eventOff(el, evtName, handler, options) {\n if (el && el.removeEventListener) {\n el.removeEventListener(evtName, handler, parseEventOptions(options));\n }\n}; // Determine if an element is an HTML Element\n\nexport var isElement = function isElement(el) {\n return Boolean(el && el.nodeType === Node.ELEMENT_NODE);\n}; // Determine if an HTML element is visible - Faster than CSS check\n\nexport var isVisible = function isVisible(el) {\n if (!isElement(el) || !contains(d.body, el)) {\n return false;\n }\n\n if (el.style.display === 'none') {\n // We do this check to help with vue-test-utils when using v-show\n\n /* istanbul ignore next */\n return false;\n } // All browsers support getBoundingClientRect(), except JSDOM as it returns all 0's for values :(\n // So any tests that need isVisible will fail in JSDOM\n // Except when we override the getBCR prototype in some tests\n\n\n var bcr = getBCR(el);\n return Boolean(bcr && bcr.height > 0 && bcr.width > 0);\n}; // Determine if an element is disabled\n\nexport var isDisabled = function isDisabled(el) {\n return !isElement(el) || el.disabled || Boolean(getAttr(el, 'disabled')) || hasClass(el, 'disabled');\n}; // Cause/wait-for an element to reflow it's content (adjusting it's height/width)\n\nexport var reflow = function reflow(el) {\n // Requesting an elements offsetHight will trigger a reflow of the element content\n\n /* istanbul ignore next: reflow doesn't happen in JSDOM */\n return isElement(el) && el.offsetHeight;\n}; // Select all elements matching selector. Returns `[]` if none found\n\nexport var selectAll = function selectAll(selector, root) {\n return arrayFrom((isElement(root) ? root : d).querySelectorAll(selector));\n}; // Select a single element, returns `null` if not found\n\nexport var select = function select(selector, root) {\n return (isElement(root) ? root : d).querySelector(selector) || null;\n}; // Determine if an element matches a selector\n\nexport var matches = function matches(el, selector) {\n if (!isElement(el)) {\n return false;\n }\n\n return matchesEl.call(el, selector);\n}; // Finds closest element matching selector. Returns `null` if not found\n\nexport var closest = function closest(selector, root) {\n if (!isElement(root)) {\n return null;\n }\n\n var el = closestEl.call(root, selector); // Emulate jQuery closest and return `null` if match is the passed in element (root)\n\n return el === root ? null : el;\n}; // Returns true if the parent element contains the child element\n\nexport var contains = function contains(parent, child) {\n if (!parent || !isFunction(parent.contains)) {\n return false;\n }\n\n return parent.contains(child);\n}; // Get an element given an ID\n\nexport var getById = function getById(id) {\n return d.getElementById(/^#/.test(id) ? id.slice(1) : id) || null;\n}; // Add a class to an element\n\nexport var addClass = function addClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.add(className);\n }\n}; // Remove a class from an element\n\nexport var removeClass = function removeClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.remove(className);\n }\n}; // Test if an element has a class\n\nexport var hasClass = function hasClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n return el.classList.contains(className);\n }\n\n return false;\n}; // Set an attribute on an element\n\nexport var setAttr = function setAttr(el, attr, val) {\n if (attr && isElement(el)) {\n el.setAttribute(attr, val);\n }\n}; // Remove an attribute from an element\n\nexport var removeAttr = function removeAttr(el, attr) {\n if (attr && isElement(el)) {\n el.removeAttribute(attr);\n }\n}; // Get an attribute value from an element\n// Returns `null` if not found\n\nexport var getAttr = function getAttr(el, attr) {\n return attr && isElement(el) ? el.getAttribute(attr) : null;\n}; // Determine if an attribute exists on an element\n// Returns `true` or `false`, or `null` if element not found\n\nexport var hasAttr = function hasAttr(el, attr) {\n return attr && isElement(el) ? el.hasAttribute(attr) : null;\n}; // Return the Bounding Client Rect of an element\n// Returns `null` if not an element\n\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n\nexport var getBCR = function getBCR(el) {\n return isElement(el) ? el.getBoundingClientRect() : null;\n}; // Get computed style object for an element\n\n/* istanbul ignore next: getComputedStyle() doesn't work in JSDOM */\n\nexport var getCS = function getCS(el) {\n return hasWindowSupport && isElement(el) ? w.getComputedStyle(el) : {};\n}; // Returns a `Selection` object representing the range of text selected\n// Returns `null` if no window support is given\n\n/* istanbul ignore next: getSelection() doesn't work in JSDOM */\n\nexport var getSel = function getSel() {\n return hasWindowSupport && w.getSelection ? w.getSelection() : null;\n}; // Return an element's offset with respect to document element\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset\n\nexport var offset = function offset(el)\n/* istanbul ignore next: getBoundingClientRect(), getClientRects() doesn't work in JSDOM */\n{\n var _offset = {\n top: 0,\n left: 0\n };\n\n if (!isElement(el) || el.getClientRects().length === 0) {\n return _offset;\n }\n\n var bcr = getBCR(el);\n\n if (bcr) {\n var win = el.ownerDocument.defaultView;\n _offset.top = bcr.top + win.pageYOffset;\n _offset.left = bcr.left + win.pageXOffset;\n }\n\n return _offset;\n}; // Return an element's offset with respect to to it's offsetParent\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.position\n\nexport var position = function position(el)\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n{\n var _offset = {\n top: 0,\n left: 0\n };\n\n if (!isElement(el)) {\n return _offset;\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n var elStyles = getCS(el);\n\n if (elStyles.position === 'fixed') {\n _offset = getBCR(el) || _offset;\n } else {\n _offset = offset(el);\n var doc = el.ownerDocument;\n var offsetParent = el.offsetParent || doc.documentElement;\n\n while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && getCS(offsetParent).position === 'static') {\n offsetParent = offsetParent.parentNode;\n }\n\n if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {\n parentOffset = offset(offsetParent);\n var offsetParentStyles = getCS(offsetParent);\n parentOffset.top += parseFloat(offsetParentStyles.borderTopWidth);\n parentOffset.left += parseFloat(offsetParentStyles.borderLeftWidth);\n }\n }\n\n return {\n top: _offset.top - parentOffset.top - parseFloat(elStyles.marginTop),\n left: _offset.left - parentOffset.left - parseFloat(elStyles.marginLeft)\n };\n};","var e=function(){return(e=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},t={kebab:/-(\\w)/g,styleProp:/:(.*)/,styleList:/;(?![^(]*\\))/g};function r(e,t){return t?t.toUpperCase():\"\"}function s(e){for(var s,a={},c=0,o=e.split(t.styleList);c<o.length;c++){var n=o[c].split(t.styleProp),i=n[0],l=n[1];(i=i.trim())&&(\"string\"==typeof l&&(l=l.trim()),a[(s=i,s.replace(t.kebab,r))]=l)}return a}function a(){for(var t,r,a={},c=arguments.length;c--;)for(var o=0,n=Object.keys(arguments[c]);o<n.length;o++)switch(t=n[o]){case\"class\":case\"style\":case\"directives\":if(Array.isArray(a[t])||(a[t]=[]),\"style\"===t){var i=void 0;i=Array.isArray(arguments[c].style)?arguments[c].style:[arguments[c].style];for(var l=0;l<i.length;l++){var y=i[l];\"string\"==typeof y&&(i[l]=s(y))}arguments[c].style=i}a[t]=a[t].concat(arguments[c][t]);break;case\"staticClass\":if(!arguments[c][t])break;void 0===a[t]&&(a[t]=\"\"),a[t]&&(a[t]+=\" \"),a[t]+=arguments[c][t].trim();break;case\"on\":case\"nativeOn\":a[t]||(a[t]={});for(var p=0,f=Object.keys(arguments[c][t]||{});p<f.length;p++)r=f[p],a[t][r]?a[t][r]=[].concat(a[t][r],arguments[c][t][r]):a[t][r]=arguments[c][t][r];break;case\"attrs\":case\"props\":case\"domProps\":case\"scopedSlots\":case\"staticStyle\":case\"hook\":case\"transition\":a[t]||(a[t]={}),a[t]=e({},arguments[c][t],a[t]);break;case\"slot\":case\"key\":case\"ref\":case\"tag\":case\"show\":case\"keepAlive\":default:a[t]||(a[t]=arguments[c][t])}return a}export{a as mergeData};\n//# sourceMappingURL=lib.esm.js.map\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Generic Bootstrap v4 fade (no-fade) transition component\n//\n// Assumes that `show` class is not required when\n// the transition has finished the enter transition\n// (show and fade classes are only applied during transition)\nimport Vue from './vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { isPlainObject } from './inspect';\nvar NO_FADE_PROPS = {\n name: '',\n enterClass: '',\n enterActiveClass: '',\n enterToClass: 'show',\n leaveClass: 'show',\n leaveActiveClass: '',\n leaveToClass: ''\n};\n\nvar FADE_PROPS = _objectSpread({}, NO_FADE_PROPS, {\n enterActiveClass: 'fade',\n leaveActiveClass: 'fade'\n});\n\nexport var BVTransition =\n/*#__PURE__*/\nVue.extend({\n name: 'BVTransition',\n functional: true,\n props: {\n noFade: {\n // Only applicable to the built in transition\n // Has no effect if `trans-props` provided\n type: Boolean,\n default: false\n },\n appear: {\n // Has no effect if `trans-props` provided\n type: Boolean,\n default: false\n },\n mode: {\n // Can be overridden by user supplied trans-props\n type: String // default: undefined\n\n },\n // For user supplied transitions (if needed)\n transProps: {\n type: Object,\n default: null\n }\n },\n render: function render(h, _ref) {\n var children = _ref.children,\n data = _ref.data,\n listeners = _ref.listeners,\n props = _ref.props;\n var transProps = props.transProps;\n\n if (!isPlainObject(transProps)) {\n transProps = props.noFade ? NO_FADE_PROPS : FADE_PROPS;\n\n if (props.appear) {\n // Default the appear classes to equal the enter classes\n transProps = _objectSpread({}, transProps, {\n appear: true,\n appearClass: transProps.enterClass,\n appearActiveClass: transProps.enterActiveClass,\n appearToClass: transProps.enterToClass\n });\n }\n }\n\n transProps = _objectSpread({\n mode: props.mode\n }, transProps, {\n // We always need `css` true\n css: true\n });\n return h('transition', // Any transition event listeners will get merged here\n mergeData(data, {\n props: transProps\n }), children);\n }\n});\nexport default BVTransition;","import { concat } from './array';\nimport { isFunction } from './inspect'; // Note for functional components:\n// In functional components, `slots` is a function so it must be called\n// first before passing to the below methods. `scopedSlots` is always an\n// object and may be undefined (for Vue < 2.6.x)\n\n/**\n * Returns true if either scoped or unscoped named slot exists\n *\n * @param {String, Array} name or name[]\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\nvar hasNormalizedSlot = function hasNormalizedSlot(names) {\n var $scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var $slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n // Ensure names is an array\n names = concat(names).filter(Boolean); // Returns true if the either a $scopedSlot or $slot exists with the specified name\n\n return names.some(function (name) {\n return $scopedSlots[name] || $slots[name];\n });\n};\n/**\n * Returns VNodes for named slot either scoped or unscoped\n *\n * @param {String, Array} name or name[]\n * @param {String} scope\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\n\nvar normalizeSlot = function normalizeSlot(names) {\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var $scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var $slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n // Ensure names is an array\n names = concat(names).filter(Boolean);\n var slot;\n\n for (var i = 0; i < names.length && !slot; i++) {\n var name = names[i];\n slot = $scopedSlots[name] || $slots[name];\n } // Note: in Vue 2.6.x, all named slots are also scoped slots\n\n\n return isFunction(slot) ? slot(scope) : slot;\n}; // Named exports\n\n\nexport { hasNormalizedSlot, normalizeSlot }; // Default export (backwards compatibility)\n\nexport default normalizeSlot;","import { hasNormalizedSlot as _hasNormalizedSlot, normalizeSlot as _normalizeSlot } from '../utils/normalize-slot';\nimport { concat } from '../utils/array';\nexport default {\n methods: {\n hasNormalizedSlot: function hasNormalizedSlot(names) {\n // Returns true if the either a $scopedSlot or $slot exists with the specified name\n // `names` can be a string name or an array of names\n return _hasNormalizedSlot(names, this.$scopedSlots, this.$slots);\n },\n normalizeSlot: function normalizeSlot(names) {\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // Returns an array of rendered VNodes if slot found.\n // Returns undefined if not found.\n // `names` can be a string name or an array of names\n var vNodes = _normalizeSlot(names, scope, this.$scopedSlots, this.$slots);\n\n return vNodes ? concat(vNodes) : vNodes;\n }\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { getComponentConfig } from '../../utils/config';\nimport { isEvent } from '../../utils/inspect';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nvar NAME = 'BButtonClose';\nvar props = {\n disabled: {\n type: Boolean,\n default: false\n },\n ariaLabel: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'ariaLabel');\n }\n },\n textVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'textVariant');\n }\n }\n}; // @vue/component\n\nexport var BButtonClose =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n listeners = _ref.listeners,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var componentData = {\n staticClass: 'close',\n class: _defineProperty({}, \"text-\".concat(props.textVariant), props.textVariant),\n attrs: {\n type: 'button',\n disabled: props.disabled,\n 'aria-label': props.ariaLabel ? String(props.ariaLabel) : null\n },\n on: {\n click: function click(evt) {\n // Ensure click on button HTML content is also disabled\n\n /* istanbul ignore if: bug in JSDOM still emits click on inner element */\n if (props.disabled && isEvent(evt)) {\n evt.stopPropagation();\n evt.preventDefault();\n }\n }\n }\n }; // Careful not to override the default slot with innerHTML\n\n if (!hasNormalizedSlot('default', $scopedSlots, $slots)) {\n componentData.domProps = {\n innerHTML: '×'\n };\n }\n\n return h('button', mergeData(data, componentData), normalizeSlot('default', {}, $scopedSlots, $slots));\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { getComponentConfig } from '../../utils/config';\nimport { requestAF } from '../../utils/dom';\nimport { isBoolean } from '../../utils/inspect';\nimport BVTransition from '../../utils/bv-transition';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport { BButtonClose } from '../button/button-close';\nvar NAME = 'BAlert'; // Convert `show` value to a number\n\nvar parseCountDown = function parseCountDown(show) {\n if (show === '' || isBoolean(show)) {\n return 0;\n }\n\n show = parseInt(show, 10);\n return show > 0 ? show : 0;\n}; // Convert `show` value to a boolean\n\n\nvar parseShow = function parseShow(show) {\n if (show === '' || show === true) {\n return true;\n }\n\n if (parseInt(show, 10) < 1) {\n // Boolean will always return false for the above comparison\n return false;\n }\n\n return Boolean(show);\n}; // Is a value number like (i.e. a number or a number as string)\n\n\nvar isNumericLike = function isNumericLike(value) {\n return !isNaN(parseInt(value, 10));\n}; // @vue/component\n\n\nexport var BAlert =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n mixins: [normalizeSlotMixin],\n model: {\n prop: 'show',\n event: 'input'\n },\n props: {\n variant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'variant');\n }\n },\n dismissible: {\n type: Boolean,\n default: false\n },\n dismissLabel: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'dismissLabel');\n }\n },\n show: {\n type: [Boolean, Number, String],\n default: false\n },\n fade: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n countDownTimerId: null,\n countDown: 0,\n // If initially shown, we need to set these for SSR\n localShow: parseShow(this.show)\n };\n },\n watch: {\n show: function show(newVal) {\n this.countDown = parseCountDown(newVal);\n this.localShow = parseShow(newVal);\n },\n countDown: function countDown(newVal) {\n var _this = this;\n\n this.clearTimer();\n\n if (isNumericLike(this.show)) {\n // Ignore if this.show transitions to a boolean value.\n this.$emit('dismiss-count-down', newVal);\n\n if (this.show !== newVal) {\n // Update the v-model if needed\n this.$emit('input', newVal);\n }\n\n if (newVal > 0) {\n this.localShow = true;\n this.countDownTimerId = setTimeout(function () {\n _this.countDown--;\n }, 1000);\n } else {\n // Slightly delay the hide to allow any UI updates\n this.$nextTick(function () {\n requestAF(function () {\n _this.localShow = false;\n });\n });\n }\n }\n },\n localShow: function localShow(newVal) {\n if (!newVal && (this.dismissible || isNumericLike(this.show))) {\n // Only emit dismissed events for dismissible or auto dismissing alerts\n this.$emit('dismissed');\n }\n\n if (!isNumericLike(this.show) && this.show !== newVal) {\n // Only emit booleans if we weren't passed a number via `this.show`\n this.$emit('input', newVal);\n }\n }\n },\n created: function created() {\n this.countDown = parseCountDown(this.show);\n this.localShow = parseShow(this.show);\n },\n mounted: function mounted() {\n this.countDown = parseCountDown(this.show);\n this.localShow = parseShow(this.show);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearTimer();\n },\n methods: {\n dismiss: function dismiss() {\n this.clearTimer();\n this.countDown = 0;\n this.localShow = false;\n },\n clearTimer: function clearTimer() {\n if (this.countDownTimerId) {\n clearInterval(this.countDownTimerId);\n this.countDownTimerId = null;\n }\n }\n },\n render: function render(h) {\n var $alert; // undefined\n\n if (this.localShow) {\n var $dismissBtn = h();\n\n if (this.dismissible) {\n // Add dismiss button\n $dismissBtn = h(BButtonClose, {\n attrs: {\n 'aria-label': this.dismissLabel\n },\n on: {\n click: this.dismiss\n }\n }, [this.normalizeSlot('dismiss')]);\n }\n\n $alert = h('div', {\n key: this._uid,\n staticClass: 'alert',\n class: _defineProperty({\n 'alert-dismissible': this.dismissible\n }, \"alert-\".concat(this.variant), this.variant),\n attrs: {\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-atomic': true\n }\n }, [$dismissBtn, this.normalizeSlot('default')]);\n $alert = [$alert];\n }\n\n return h(BVTransition, {\n props: {\n noFade: !this.fade\n }\n }, $alert);\n }\n});","import { BAlert } from './alert';\nimport { pluginFactory } from '../../utils/plugins';\nvar AlertPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BAlert: BAlert\n }\n});\nexport { AlertPlugin, BAlert };","var identity = function identity(x) {\n return x;\n};\n\nexport default identity;","import identity from './identity';\nimport { isArray } from './inspect';\nimport { keys } from './object';\n/**\n * Given an array of properties or an object of property keys,\n * plucks all the values off the target object, returning a new object\n * that has props that reference the original prop values\n *\n * @param {{}|string[]} keysToPluck\n * @param {{}} objToPluck\n * @param {Function} transformFn\n * @return {{}}\n */\n\nvar pluckProps = function pluckProps(keysToPluck, objToPluck) {\n var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity;\n return (isArray(keysToPluck) ? keysToPluck.slice() : keys(keysToPluck)).reduce(function (memo, prop) {\n memo[transformFn(prop)] = objToPluck[prop];\n return memo;\n }, {});\n};\n\nexport default pluckProps;","import { isArray, isPlainObject, isUndefinedOrNull } from './inspect';\n/**\n * Convert a value to a string that can be rendered.\n */\n\nvar toString = function toString(val) {\n var spaces = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n return isUndefinedOrNull(val) ? '' : isArray(val) || isPlainObject(val) && val.toString === Object.prototype.toString ? JSON.stringify(val, null, spaces) : String(val);\n};\n\nexport default toString;","import toString from './to-string';\nimport { isArray, isNull, isPlainObject, isString, isUndefined } from './inspect';\nimport { keys } from './object';\nvar ANCHOR_TAG = 'a'; // Precompile RegExp\n\nvar commaRE = /%2C/g;\nvar encodeReserveRE = /[!'()*]/g; // Method to replace reserved chars\n\nvar encodeReserveReplacer = function encodeReserveReplacer(c) {\n return '%' + c.charCodeAt(0).toString(16);\n}; // Fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\n\n\nvar encode = function encode(str) {\n return encodeURIComponent(toString(str)).replace(encodeReserveRE, encodeReserveReplacer).replace(commaRE, ',');\n};\n\nvar decode = decodeURIComponent; // Stringifies an object of query parameters\n// See: https://github.com/vuejs/vue-router/blob/dev/src/util/query.js\n\nexport var stringifyQueryObj = function stringifyQueryObj(obj) {\n if (!isPlainObject(obj)) {\n return '';\n }\n\n var query = keys(obj).map(function (key) {\n var val = obj[key];\n\n if (isUndefined(val)) {\n return '';\n } else if (isNull(val)) {\n return encode(key);\n } else if (isArray(val)) {\n return val.reduce(function (results, val2) {\n if (isNull(val2)) {\n results.push(encode(key));\n } else if (!isUndefined(val2)) {\n // Faster than string interpolation\n results.push(encode(key) + '=' + encode(val2));\n }\n\n return results;\n }, []).join('&');\n } // Faster than string interpolation\n\n\n return encode(key) + '=' + encode(val);\n })\n /* must check for length, as we only want to filter empty strings, not things that look falsey! */\n .filter(function (x) {\n return x.length > 0;\n }).join('&');\n return query ? \"?\".concat(query) : '';\n};\nexport var parseQuery = function parseQuery(query) {\n var parsed = {};\n query = toString(query).trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return parsed;\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (isUndefined(parsed[key])) {\n parsed[key] = val;\n } else if (isArray(parsed[key])) {\n parsed[key].push(val);\n } else {\n parsed[key] = [parsed[key], val];\n }\n });\n return parsed;\n};\nexport var isRouterLink = function isRouterLink(tag) {\n return toString(tag).toLowerCase() !== ANCHOR_TAG;\n};\nexport var computeTag = function computeTag() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n to = _ref.to,\n disabled = _ref.disabled;\n\n var thisOrParent = arguments.length > 1 ? arguments[1] : undefined;\n return thisOrParent.$router && to && !disabled ? thisOrParent.$nuxt ? 'nuxt-link' : 'router-link' : ANCHOR_TAG;\n};\nexport var computeRel = function computeRel() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n target = _ref2.target,\n rel = _ref2.rel;\n\n if (target === '_blank' && isNull(rel)) {\n return 'noopener';\n }\n\n return rel || null;\n};\nexport var computeHref = function computeHref() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n href = _ref3.href,\n to = _ref3.to;\n\n var tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ANCHOR_TAG;\n var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '#';\n var toFallback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '/';\n\n // We've already checked the $router in computeTag(), so isRouterLink() indicates a live router.\n // When deferring to Vue Router's router-link, don't use the href attribute at all.\n // We return null, and then remove href from the attributes passed to router-link\n if (isRouterLink(tag)) {\n return null;\n } // Return `href` when explicitly provided\n\n\n if (href) {\n return href;\n } // Reconstruct `href` when `to` used, but no router\n\n\n if (to) {\n // Fallback to `to` prop (if `to` is a string)\n if (isString(to)) {\n return to || toFallback;\n } // Fallback to `to.path + to.query + to.hash` prop (if `to` is an object)\n\n\n if (isPlainObject(to) && (to.path || to.query || to.hash)) {\n var path = toString(to.path);\n var query = stringifyQueryObj(to.query);\n var hash = toString(to.hash);\n hash = !hash || hash.charAt(0) === '#' ? hash : \"#\".concat(hash);\n return \"\".concat(path).concat(query).concat(hash) || toFallback;\n }\n } // If nothing is provided return the fallback\n\n\n return fallback;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport { concat } from '../../utils/array';\nimport { isEvent, isFunction, isUndefined } from '../../utils/inspect';\nimport { computeHref, computeRel, computeTag, isRouterLink as _isRouterLink } from '../../utils/router';\n/**\n * The Link component is used in many other BV components.\n * As such, sharing its props makes supporting all its features easier.\n * However, some components need to modify the defaults for their own purpose.\n * Prefer sharing a fresh copy of the props to ensure mutations\n * do not affect other component references to the props.\n *\n * https://github.com/vuejs/vue-router/blob/dev/src/components/link.js\n * @return {{}}\n */\n\nexport var propsFactory = function propsFactory() {\n return {\n href: {\n type: String,\n default: null\n },\n rel: {\n type: String,\n default: null\n },\n target: {\n type: String,\n default: '_self'\n },\n active: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n // router-link specific props\n to: {\n type: [String, Object],\n default: null\n },\n append: {\n type: Boolean,\n default: false\n },\n replace: {\n type: Boolean,\n default: false\n },\n event: {\n type: [String, Array],\n default: 'click'\n },\n activeClass: {\n type: String // default: undefined\n\n },\n exact: {\n type: Boolean,\n default: false\n },\n exactActiveClass: {\n type: String // default: undefined\n\n },\n routerTag: {\n type: String,\n default: 'a'\n },\n // nuxt-link specific prop(s)\n noPrefetch: {\n type: Boolean,\n default: false\n }\n };\n};\nexport var props = propsFactory(); // @vue/component\n\nexport var BLink =\n/*#__PURE__*/\nVue.extend({\n name: 'BLink',\n mixins: [normalizeSlotMixin],\n inheritAttrs: false,\n props: propsFactory(),\n computed: {\n computedTag: function computedTag() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n return computeTag({\n to: this.to,\n disabled: this.disabled\n }, this);\n },\n isRouterLink: function isRouterLink() {\n return _isRouterLink(this.computedTag);\n },\n computedRel: function computedRel() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n return computeRel({\n target: this.target,\n rel: this.rel\n });\n },\n computedHref: function computedHref() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n return computeHref({\n to: this.to,\n href: this.href\n }, this.computedTag);\n },\n computedProps: function computedProps() {\n return this.isRouterLink ? _objectSpread({}, this.$props, {\n tag: this.routerTag\n }) : {};\n }\n },\n methods: {\n onClick: function onClick(evt) {\n var _arguments = arguments;\n var evtIsEvent = isEvent(evt);\n var isRouterLink = this.isRouterLink;\n var suppliedHandler = this.$listeners.click;\n\n if (evtIsEvent && this.disabled) {\n // Stop event from bubbling up\n evt.stopPropagation(); // Kill the event loop attached to this specific `EventTarget`\n // Needed to prevent `vue-router` for doing it's thing\n\n evt.stopImmediatePropagation();\n } else {\n /* istanbul ignore next: difficult to test, but we know it works */\n if (isRouterLink && evt.currentTarget.__vue__) {\n // Router links do not emit instance `click` events, so we\n // add in an $emit('click', evt) on it's vue instance\n evt.currentTarget.__vue__.$emit('click', evt);\n } // Call the suppliedHandler(s), if any provided\n\n\n concat(suppliedHandler).filter(function (h) {\n return isFunction(h);\n }).forEach(function (handler) {\n handler.apply(void 0, _toConsumableArray(_arguments));\n }); // Emit the global $root click event\n\n this.$root.$emit('clicked::link', evt);\n } // Stop scroll-to-top behavior or navigation on\n // regular links when href is just '#'\n\n\n if (evtIsEvent && (this.disabled || !isRouterLink && this.computedHref === '#')) {\n evt.preventDefault();\n }\n },\n focus: function focus() {\n if (this.$el && this.$el.focus) {\n this.$el.focus();\n }\n },\n blur: function blur() {\n if (this.$el && this.$el.blur) {\n this.$el.blur();\n }\n }\n },\n render: function render(h) {\n var tag = this.computedTag;\n var rel = this.computedRel;\n var href = this.computedHref;\n var isRouterLink = this.isRouterLink;\n var componentData = {\n class: {\n active: this.active,\n disabled: this.disabled\n },\n attrs: _objectSpread({}, this.$attrs, {\n rel: rel,\n target: this.target,\n tabindex: this.disabled ? '-1' : isUndefined(this.$attrs.tabindex) ? null : this.$attrs.tabindex,\n 'aria-disabled': this.disabled ? 'true' : null\n }),\n props: this.computedProps\n }; // Add the event handlers. We must use `navtiveOn` for\n // `<router-link>`/`<nuxt-link>` instead of `on`\n\n componentData[isRouterLink ? 'nativeOn' : 'on'] = _objectSpread({}, this.$listeners, {\n // We want to overwrite any click handler since our callback\n // will invoke the user supplied handler(s) if `!this.disabled`\n click: this.onClick\n }); // If href attribute exists on <router-link> (even undefined or null) it fails working on\n // SSR, so we explicitly add it here if needed (i.e. if computedHref() is truthy)\n\n if (href) {\n componentData.attrs.href = href;\n } else {\n // Ensure the prop HREF does not exist for router links\n delete componentData.props.href;\n }\n\n return h(tag, componentData, this.normalizeSlot('default'));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { getComponentConfig } from '../../utils/config';\nimport pluckProps from '../../utils/pluck-props';\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link';\nvar NAME = 'BBadge';\nvar linkProps = linkPropsFactory();\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = _objectSpread({}, linkProps, {\n tag: {\n type: String,\n default: 'span'\n },\n variant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'variant');\n }\n },\n pill: {\n type: Boolean,\n default: false\n }\n}); // @vue/component\n\nexport var BBadge =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tag = !props.href && !props.to ? props.tag : BLink;\n var componentData = {\n staticClass: 'badge',\n class: [props.variant ? \"badge-\".concat(props.variant) : 'badge-secondary', {\n 'badge-pill': Boolean(props.pill),\n active: props.active,\n disabled: props.disabled\n }],\n props: pluckProps(linkProps, props)\n };\n return h(tag, mergeData(data, componentData), children);\n }\n});","import { BBadge } from './badge';\nimport { pluginFactory } from '../../utils/plugins';\nvar BadgePlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BBadge: BBadge\n }\n});\nexport { BadgePlugin, BBadge };","var stripTagsRegex = /(<([^>]+)>)/gi; // Removes any thing that looks like an HTML tag from the supplied string\n\nexport var stripTags = function stripTags() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return String(text).replace(stripTagsRegex, '');\n}; // Generate a domProps object for either innerHTML, textContent or nothing\n\nexport var htmlOrText = function htmlOrText(innerHTML, textContent) {\n return innerHTML ? {\n innerHTML: innerHTML\n } : textContent ? {\n textContent: textContent\n } : {};\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport pluckProps from '../../utils/pluck-props';\nimport { htmlOrText } from '../../utils/html';\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link';\nexport var props = _objectSpread({}, linkPropsFactory(), {\n text: {\n type: String,\n default: null\n },\n html: {\n type: String,\n default: null\n },\n ariaCurrent: {\n type: String,\n default: 'location'\n }\n}); // @vue/component\n\nexport var BBreadcrumbLink =\n/*#__PURE__*/\nVue.extend({\n name: 'BBreadcrumbLink',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var suppliedProps = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tag = suppliedProps.active ? 'span' : BLink;\n var componentData = {\n props: pluckProps(props, suppliedProps)\n };\n\n if (suppliedProps.active) {\n componentData.attrs = {\n 'aria-current': suppliedProps.ariaCurrent\n };\n }\n\n if (!children) {\n componentData.domProps = htmlOrText(suppliedProps.html, suppliedProps.text);\n }\n\n return h(tag, mergeData(data, componentData), children);\n }\n});","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { BBreadcrumbLink, props } from './breadcrumb-link'; // @vue/component\n\nexport var BBreadcrumbItem =\n/*#__PURE__*/\nVue.extend({\n name: 'BBreadcrumbItem',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('li', mergeData(data, {\n staticClass: 'breadcrumb-item',\n class: {\n active: props.active\n }\n }), [h(BBreadcrumbLink, {\n props: props\n }, children)]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport toString from '../../utils/to-string';\nimport { isArray, isObject } from '../../utils/inspect';\nimport { BBreadcrumbItem } from './breadcrumb-item';\nexport var props = {\n items: {\n type: Array,\n default: null\n }\n}; // @vue/component\n\nexport var BBreadcrumb =\n/*#__PURE__*/\nVue.extend({\n name: 'BBreadcrumb',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var childNodes = children; // Build child nodes from items if given.\n\n if (isArray(props.items)) {\n var activeDefined = false;\n childNodes = props.items.map(function (item, idx) {\n if (!isObject(item)) {\n item = {\n text: toString(item)\n };\n } // Copy the value here so we can normalize it.\n\n\n var active = item.active;\n\n if (active) {\n activeDefined = true;\n }\n\n if (!active && !activeDefined) {\n // Auto-detect active by position in list.\n active = idx + 1 === props.items.length;\n }\n\n return h(BBreadcrumbItem, {\n props: _objectSpread({}, item, {\n active: active\n })\n });\n });\n }\n\n return h('ol', mergeData(data, {\n staticClass: 'breadcrumb'\n }), childNodes);\n }\n});","import { BBreadcrumb } from './breadcrumb';\nimport { BBreadcrumbItem } from './breadcrumb-item';\nimport { BBreadcrumbLink } from './breadcrumb-link';\nimport { pluginFactory } from '../../utils/plugins';\nvar BreadcrumbPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BBreadcrumb: BBreadcrumb,\n BBreadcrumbItem: BBreadcrumbItem,\n BBreadcrumbLink: BBreadcrumbLink\n }\n});\nexport { BreadcrumbPlugin, BBreadcrumb, BBreadcrumbItem, BBreadcrumbLink };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport pluckProps from '../../utils/pluck-props';\nimport { concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { addClass, removeClass } from '../../utils/dom';\nimport { isBoolean, isEvent, isFunction } from '../../utils/inspect';\nimport { keys } from '../../utils/object';\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'; // --- Constants --\n\nvar NAME = 'BButton';\nvar btnProps = {\n block: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'size');\n }\n },\n variant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'variant');\n }\n },\n type: {\n type: String,\n default: 'button'\n },\n tag: {\n type: String,\n default: 'button'\n },\n pill: {\n type: Boolean,\n default: false\n },\n squared: {\n type: Boolean,\n default: false\n },\n pressed: {\n // tri-state prop: true, false or null\n // => on, off, not a toggle\n type: Boolean,\n default: null\n }\n};\nvar linkProps = linkPropsFactory();\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nvar linkPropKeys = keys(linkProps);\nexport var props = _objectSpread({}, linkProps, {}, btnProps); // --- Helper methods ---\n// Focus handler for toggle buttons. Needs class of 'focus' when focused.\n\nvar handleFocus = function handleFocus(evt) {\n if (evt.type === 'focusin') {\n addClass(evt.target, 'focus');\n } else if (evt.type === 'focusout') {\n removeClass(evt.target, 'focus');\n }\n}; // Is the requested button a link?\n\n\nvar isLink = function isLink(props) {\n // If tag prop is set to `a`, we use a b-link to get proper disabled handling\n return Boolean(props.href || props.to || props.tag && String(props.tag).toLowerCase() === 'a');\n}; // Is the button to be a toggle button?\n\n\nvar isToggle = function isToggle(props) {\n return isBoolean(props.pressed);\n}; // Is the button \"really\" a button?\n\n\nvar isButton = function isButton(props) {\n if (isLink(props)) {\n return false;\n } else if (props.tag && String(props.tag).toLowerCase() !== 'button') {\n return false;\n }\n\n return true;\n}; // Is the requested tag not a button or link?\n\n\nvar isNonStandardTag = function isNonStandardTag(props) {\n return !isLink(props) && !isButton(props);\n}; // Compute required classes (non static classes)\n\n\nvar computeClass = function computeClass(props) {\n var _ref;\n\n return [\"btn-\".concat(props.variant || getComponentConfig(NAME, 'variant')), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(props.size), Boolean(props.size)), _defineProperty(_ref, 'btn-block', props.block), _defineProperty(_ref, 'rounded-pill', props.pill), _defineProperty(_ref, 'rounded-0', props.squared && !props.pill), _defineProperty(_ref, \"disabled\", props.disabled), _defineProperty(_ref, \"active\", props.pressed), _ref)];\n}; // Compute the link props to pass to b-link (if required)\n\n\nvar computeLinkProps = function computeLinkProps(props) {\n return isLink(props) ? pluckProps(linkPropKeys, props) : null;\n}; // Compute the attributes for a button\n\n\nvar computeAttrs = function computeAttrs(props, data) {\n var button = isButton(props);\n var link = isLink(props);\n var toggle = isToggle(props);\n var nonStdTag = isNonStandardTag(props);\n var role = data.attrs && data.attrs.role ? data.attrs.role : null;\n var tabindex = data.attrs ? data.attrs.tabindex : null;\n\n if (nonStdTag) {\n tabindex = '0';\n }\n\n return {\n // Type only used for \"real\" buttons\n type: button && !link ? props.type : null,\n // Disabled only set on \"real\" buttons\n disabled: button ? props.disabled : null,\n // We add a role of button when the tag is not a link or button for ARIA.\n // Don't bork any role provided in data.attrs when isLink or isButton\n role: nonStdTag ? 'button' : role,\n // We set the aria-disabled state for non-standard tags\n 'aria-disabled': nonStdTag ? String(props.disabled) : null,\n // For toggles, we need to set the pressed state for ARIA\n 'aria-pressed': toggle ? String(props.pressed) : null,\n // autocomplete off is needed in toggle mode to prevent some browsers from\n // remembering the previous setting when using the back button.\n autocomplete: toggle ? 'off' : null,\n // Tab index is used when the component is not a button.\n // Links are tabbable, but don't allow disabled, while non buttons or links\n // are not tabbable, so we mimic that functionality by disabling tabbing\n // when disabled, and adding a tabindex of '0' to non buttons or non links.\n tabindex: props.disabled && !button ? '-1' : tabindex\n };\n}; // @vue/component\n\n\nexport var BButton =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n functional: true,\n props: props,\n render: function render(h, _ref2) {\n var props = _ref2.props,\n data = _ref2.data,\n listeners = _ref2.listeners,\n children = _ref2.children;\n var toggle = isToggle(props);\n var link = isLink(props);\n var on = {\n click: function click(evt) {\n /* istanbul ignore if: blink/button disabled should handle this */\n if (props.disabled && isEvent(evt)) {\n evt.stopPropagation();\n evt.preventDefault();\n } else if (toggle && listeners && listeners['update:pressed']) {\n // Send .sync updates to any \"pressed\" prop (if .sync listeners)\n // Concat will normalize the value to an array\n // without double wrapping an array value in an array.\n concat(listeners['update:pressed']).forEach(function (fn) {\n if (isFunction(fn)) {\n fn(!props.pressed);\n }\n });\n }\n }\n };\n\n if (toggle) {\n on.focusin = handleFocus;\n on.focusout = handleFocus;\n }\n\n var componentData = {\n staticClass: 'btn',\n class: computeClass(props),\n props: computeLinkProps(props),\n attrs: computeAttrs(props, data),\n on: on\n };\n return h(link ? BLink : props.tag, mergeData(data, componentData), children);\n }\n});","import { BButton } from './button';\nimport { BButtonClose } from './button-close';\nimport { pluginFactory } from '../../utils/plugins';\nvar ButtonPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BButton: BButton,\n BBtn: BButton,\n BButtonClose: BButtonClose,\n BBtnClose: BButtonClose\n }\n});\nexport { ButtonPlugin, BButton, BButtonClose };","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { getComponentConfig } from '../../utils/config';\nvar NAME = 'BButtonGroup';\nexport var props = {\n vertical: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: function _default() {\n return getComponentConfig('BButton', 'size');\n }\n },\n tag: {\n type: String,\n default: 'div'\n },\n ariaRole: {\n type: String,\n default: 'group'\n }\n}; // @vue/component\n\nexport var BButtonGroup =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n 'btn-group': !props.vertical,\n 'btn-group-vertical': props.vertical\n }, \"btn-group-\".concat(props.size), Boolean(props.size)),\n attrs: {\n role: props.ariaRole\n }\n }), children);\n }\n});","import { BButtonGroup } from './button-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar ButtonGroupPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BButtonGroup: BButtonGroup,\n BBtnGroup: BButtonGroup\n }\n});\nexport { ButtonGroupPlugin, BButtonGroup };","/*\n * Key Codes (events)\n */\nvar KEY_CODES = {\n SPACE: 32,\n ENTER: 13,\n ESC: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n PAGEUP: 33,\n PAGEDOWN: 34,\n HOME: 36,\n END: 35,\n TAB: 9,\n SHIFT: 16,\n CTRL: 17,\n BACKSPACE: 8,\n ALT: 18,\n PAUSE: 19,\n BREAK: 19,\n INSERT: 45,\n INS: 45,\n DELETE: 46\n};\nexport default KEY_CODES;","import Vue from '../../utils/vue';\nimport { isVisible, selectAll } from '../../utils/dom';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport KeyCodes from '../../utils/key-codes';\nvar ITEM_SELECTOR = ['.btn:not(.disabled):not([disabled]):not(.dropdown-item)', '.form-control:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'input[type=\"checkbox\"]:not(.disabled)', 'input[type=\"radio\"]:not(.disabled)'].join(','); // @vue/component\n\nexport var BButtonToolbar =\n/*#__PURE__*/\nVue.extend({\n name: 'BButtonToolbar',\n mixins: [normalizeSlotMixin],\n props: {\n justify: {\n type: Boolean,\n default: false\n },\n keyNav: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n if (this.keyNav) {\n // Pre-set the tabindexes if the markup does not include tabindex=\"-1\" on the toolbar items\n this.getItems();\n }\n },\n methods: {\n onFocusin: function onFocusin(evt) {\n if (evt.target === this.$el) {\n evt.preventDefault();\n evt.stopPropagation();\n this.focusFirst(evt);\n }\n },\n stop: function stop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n },\n onKeydown: function onKeydown(evt) {\n if (!this.keyNav) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var key = evt.keyCode;\n var shift = evt.shiftKey;\n\n if (key === KeyCodes.UP || key === KeyCodes.LEFT) {\n this.stop(evt);\n shift ? this.focusFirst(evt) : this.focusPrev(evt);\n } else if (key === KeyCodes.DOWN || key === KeyCodes.RIGHT) {\n this.stop(evt);\n shift ? this.focusLast(evt) : this.focusNext(evt);\n }\n },\n setItemFocus: function setItemFocus(item) {\n item && item.focus && item.focus();\n },\n focusFirst: function focusFirst(evt) {\n var items = this.getItems();\n this.setItemFocus(items[0]);\n },\n focusPrev: function focusPrev(evt) {\n var items = this.getItems();\n var index = items.indexOf(evt.target);\n\n if (index > -1) {\n items = items.slice(0, index).reverse();\n this.setItemFocus(items[0]);\n }\n },\n focusNext: function focusNext(evt) {\n var items = this.getItems();\n var index = items.indexOf(evt.target);\n\n if (index > -1) {\n items = items.slice(index + 1);\n this.setItemFocus(items[0]);\n }\n },\n focusLast: function focusLast(evt) {\n var items = this.getItems().reverse();\n this.setItemFocus(items[0]);\n },\n getItems: function getItems() {\n var items = selectAll(ITEM_SELECTOR, this.$el);\n items.forEach(function (item) {\n // Ensure tabfocus is -1 on any new elements\n item.tabIndex = -1;\n });\n return items.filter(function (el) {\n return isVisible(el);\n });\n }\n },\n render: function render(h) {\n return h('div', {\n staticClass: 'btn-toolbar',\n class: {\n 'justify-content-between': this.justify\n },\n attrs: {\n role: 'toolbar',\n tabindex: this.keyNav ? '0' : null\n },\n on: this.keyNav ? {\n focusin: this.onFocusin,\n keydown: this.onKeydown\n } : {}\n }, [this.normalizeSlot('default')]);\n }\n});","import { BButtonToolbar } from './button-toolbar';\nimport { pluginFactory } from '../../utils/plugins';\nvar ButtonToolbarPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BButtonToolbar: BButtonToolbar,\n BBtnToolbar: BButtonToolbar\n }\n});\nexport { ButtonToolbarPlugin, BButtonToolbar };","import { isString } from './inspect';\n/**\n * Transform the first character to uppercase\n * @param {string} str\n */\n\nvar upperFirst = function upperFirst(str) {\n if (!isString(str)) {\n str = String(str);\n }\n\n str = str.trim();\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nexport default upperFirst;","import upperFirst from './upper-first';\n/**\n * @param {string} prefix\n * @param {string} value\n */\n\nvar prefixPropName = function prefixPropName(prefix, value) {\n return prefix + upperFirst(value);\n};\n\nexport default prefixPropName;","/**\n * @param {string} str\n */\nvar lowerFirst = function lowerFirst(str) {\n str = String(str);\n return str.charAt(0).toLowerCase() + str.slice(1);\n};\n\nexport default lowerFirst;","import lowerFirst from './lower-first';\n/**\n * @param {string} prefix\n * @param {string} value\n */\n\nvar unprefixPropName = function unprefixPropName(prefix, value) {\n return lowerFirst(value.replace(prefix, ''));\n};\n\nexport default unprefixPropName;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport identity from './identity';\nimport { isArray, isObject } from './inspect';\n/**\n * Copies props from one array/object to a new array/object. Prop values\n * are also cloned as new references to prevent possible mutation of original\n * prop object values. Optionally accepts a function to transform the prop name.\n *\n * @param {[]|{}} props\n * @param {Function} transformFn\n */\n\nvar copyProps = function copyProps(props) {\n var transformFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identity;\n\n if (isArray(props)) {\n return props.map(transformFn);\n } // Props as an object.\n\n\n var copied = {};\n\n for (var prop in props) {\n /* istanbul ignore else */\n // eslint-disable-next-line no-prototype-builtins\n if (props.hasOwnProperty(prop)) {\n // If the prop value is an object, do a shallow clone to prevent\n // potential mutations to the original object.\n copied[transformFn(prop)] = isObject(props[prop]) ? _objectSpread({}, props[prop]) : props[prop];\n }\n }\n\n return copied;\n};\n\nexport default copyProps;","// @vue/component\nexport default {\n props: {\n tag: {\n type: String,\n default: 'div'\n },\n bgVariant: {\n type: String,\n default: null\n },\n borderVariant: {\n type: String,\n default: null\n },\n textVariant: {\n type: String,\n default: null\n }\n }\n};","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n title: {\n type: String,\n default: ''\n },\n titleTag: {\n type: String,\n default: 'h4'\n }\n}; // @vue/component\n\nexport var BCardTitle =\n/*#__PURE__*/\nVue.extend({\n name: 'BCardTitle',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.titleTag, mergeData(data, {\n staticClass: 'card-title'\n }), children || props.title);\n }\n});","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { getComponentConfig } from '../../utils/config';\nvar NAME = 'BCardSubTitle';\nexport var props = {\n subTitle: {\n type: String,\n default: ''\n },\n subTitleTag: {\n type: String,\n default: 'h6'\n },\n subTitleTextVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'subTitleTextVariant');\n }\n }\n}; // @vue/component\n\nexport var BCardSubTitle =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.subTitleTag, mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n }), children || props.subTitle);\n }\n});","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport prefixPropName from '../../utils/prefix-prop-name';\nimport copyProps from '../../utils/copy-props';\nimport pluckProps from '../../utils/pluck-props';\nimport cardMixin from '../../mixins/card';\nimport { BCardTitle, props as titleProps } from './card-title';\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title';\nexport var props = _objectSpread({}, copyProps(cardMixin.props, prefixPropName.bind(null, 'body')), {\n bodyClass: {\n type: [String, Object, Array],\n default: null\n }\n}, titleProps, {}, subTitleProps, {\n overlay: {\n type: Boolean,\n default: false\n }\n}); // @vue/component\n\nexport var BCardBody =\n/*#__PURE__*/\nVue.extend({\n name: 'BCardBody',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var cardTitle = h();\n var cardSubTitle = h();\n var cardContent = children || [h()];\n\n if (props.title) {\n cardTitle = h(BCardTitle, {\n props: pluckProps(titleProps, props)\n });\n }\n\n if (props.subTitle) {\n cardSubTitle = h(BCardSubTitle, {\n props: pluckProps(subTitleProps, props),\n class: ['mb-2']\n });\n }\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, \"bg-\".concat(props.bodyBgVariant), Boolean(props.bodyBgVariant)), _defineProperty(_ref2, \"border-\".concat(props.bodyBorderVariant), Boolean(props.bodyBorderVariant)), _defineProperty(_ref2, \"text-\".concat(props.bodyTextVariant), Boolean(props.bodyTextVariant)), _ref2), props.bodyClass || {}]\n }), [cardTitle, cardSubTitle].concat(_toConsumableArray(cardContent)));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport prefixPropName from '../../utils/prefix-prop-name';\nimport copyProps from '../../utils/copy-props';\nimport { htmlOrText } from '../../utils/html';\nimport cardMixin from '../../mixins/card';\nexport var props = _objectSpread({}, copyProps(cardMixin.props, prefixPropName.bind(null, 'header')), {\n header: {\n type: String,\n default: null\n },\n headerHtml: {\n type: String,\n default: null\n },\n headerClass: {\n type: [String, Object, Array],\n default: null\n }\n}); // @vue/component\n\nexport var BCardHeader =\n/*#__PURE__*/\nVue.extend({\n name: 'BCardHeader',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(props.headerBgVariant), Boolean(props.headerBgVariant)), _defineProperty(_ref2, \"border-\".concat(props.headerBorderVariant), Boolean(props.headerBorderVariant)), _defineProperty(_ref2, \"text-\".concat(props.headerTextVariant), Boolean(props.headerTextVariant)), _ref2)]\n }), children || [h('div', {\n domProps: htmlOrText(props.headerHtml, props.header)\n })]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport prefixPropName from '../../utils/prefix-prop-name';\nimport copyProps from '../../utils/copy-props';\nimport { htmlOrText } from '../../utils/html';\nimport cardMixin from '../../mixins/card';\nexport var props = _objectSpread({}, copyProps(cardMixin.props, prefixPropName.bind(null, 'footer')), {\n footer: {\n type: String,\n default: null\n },\n footerHtml: {\n type: String,\n default: null\n },\n footerClass: {\n type: [String, Object, Array],\n default: null\n }\n}); // @vue/component\n\nexport var BCardFooter =\n/*#__PURE__*/\nVue.extend({\n name: 'BCardFooter',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(props.footerBgVariant), Boolean(props.footerBgVariant)), _defineProperty(_ref2, \"border-\".concat(props.footerBorderVariant), Boolean(props.footerBorderVariant)), _defineProperty(_ref2, \"text-\".concat(props.footerTextVariant), Boolean(props.footerTextVariant)), _ref2)]\n }), children || [h('div', {\n domProps: htmlOrText(props.footerHtml, props.footer)\n })]);\n }\n});","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n src: {\n type: String,\n default: null,\n required: true\n },\n alt: {\n type: String,\n default: null\n },\n top: {\n type: Boolean,\n default: false\n },\n bottom: {\n type: Boolean,\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n start: {\n type: Boolean,\n default: false // alias of 'left'\n\n },\n right: {\n type: Boolean,\n default: false\n },\n end: {\n type: Boolean,\n default: false // alias of 'right'\n\n },\n height: {\n type: String,\n default: null\n },\n width: {\n type: String,\n default: null\n }\n}; // @vue/component\n\nexport var BCardImg =\n/*#__PURE__*/\nVue.extend({\n name: 'BCardImg',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h('img', mergeData(data, {\n class: [baseClass],\n attrs: {\n src: props.src,\n alt: props.alt,\n height: props.height,\n width: props.width\n }\n }));\n }\n});","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport prefixPropName from '../../utils/prefix-prop-name';\nimport unPrefixPropName from '../../utils/unprefix-prop-name';\nimport copyProps from '../../utils/copy-props';\nimport pluckProps from '../../utils/pluck-props';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport cardMixin from '../../mixins/card';\nimport { BCardBody, props as bodyProps } from './card-body';\nimport { BCardHeader, props as headerProps } from './card-header';\nimport { BCardFooter, props as footerProps } from './card-footer';\nimport { BCardImg, props as imgProps } from './card-img';\nvar cardImgProps = copyProps(imgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\nexport var props = _objectSpread({}, bodyProps, {}, headerProps, {}, footerProps, {}, cardImgProps, {}, copyProps(cardMixin.props), {\n align: {\n type: String,\n default: null\n },\n noBody: {\n type: Boolean,\n default: false\n }\n}); // @vue/component\n\nexport var BCard =\n/*#__PURE__*/\nVue.extend({\n name: 'BCard',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots(); // Vue < 2.6.x may return undefined for scopedSlots\n\n var $scopedSlots = scopedSlots || {}; // Create placeholder elements for each section\n\n var imgFirst = h();\n var header = h();\n var content = h();\n var footer = h();\n var imgLast = h();\n\n if (props.imgSrc) {\n var img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unPrefixPropName.bind(null, 'img'))\n });\n\n if (props.imgBottom) {\n imgLast = img;\n } else {\n imgFirst = img;\n }\n }\n\n if (props.header || hasNormalizedSlot('header', $scopedSlots, $slots)) {\n header = h(BCardHeader, {\n props: pluckProps(headerProps, props)\n }, normalizeSlot('header', {}, $scopedSlots, $slots));\n }\n\n content = normalizeSlot('default', {}, $scopedSlots, $slots) || [];\n\n if (!props.noBody) {\n // Wrap content in card-body\n content = [h(BCardBody, {\n props: pluckProps(bodyProps, props)\n }, _toConsumableArray(content))];\n }\n\n if (props.footer || hasNormalizedSlot('footer', $scopedSlots, $slots)) {\n footer = h(BCardFooter, {\n props: pluckProps(footerProps, props)\n }, normalizeSlot('footer', {}, $scopedSlots, $slots));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {\n 'flex-row': props.imgLeft || props.imgStart,\n 'flex-row-reverse': (props.imgRight || props.imgEnd) && !(props.imgLeft || props.imgStart)\n }, _defineProperty(_class, \"text-\".concat(props.align), Boolean(props.align)), _defineProperty(_class, \"bg-\".concat(props.bgVariant), Boolean(props.bgVariant)), _defineProperty(_class, \"border-\".concat(props.borderVariant), Boolean(props.borderVariant)), _defineProperty(_class, \"text-\".concat(props.textVariant), Boolean(props.textVariant)), _class)\n }), [imgFirst, header].concat(_toConsumableArray(content), [footer, imgLast]));\n }\n});","import { keys } from './object';\nimport { isArray, isDate, isObject } from './inspect'; // Assumes both a and b are arrays!\n// Handles when arrays are \"sparse\" (array.every(...) doesn't handle sparse)\n\nvar compareArrays = function compareArrays(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n var equal = true;\n\n for (var i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n\n return equal;\n};\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n * Returns boolean true or false\n */\n\n\nvar looseEqual = function looseEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n var aValidType = isDate(a);\n var bValidType = isDate(b);\n\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n\n aValidType = isArray(a);\n bValidType = isArray(b);\n\n if (aValidType || bValidType) {\n return aValidType && bValidType ? compareArrays(a, b) : false;\n }\n\n aValidType = isObject(a);\n bValidType = isObject(b);\n\n if (aValidType || bValidType) {\n /* istanbul ignore if: this if will probably never be called */\n if (!aValidType || !bValidType) {\n return false;\n }\n\n var aKeysCount = keys(a).length;\n var bKeysCount = keys(b).length;\n\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n\n for (var key in a) {\n // eslint-disable-next-line no-prototype-builtins\n var aHasKey = a.hasOwnProperty(key); // eslint-disable-next-line no-prototype-builtins\n\n var bHasKey = b.hasOwnProperty(key);\n\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n\n return String(a) === String(b);\n};\n\nexport default looseEqual;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// v-b-visible\n// Private visibility check directive\n// Based on IntersectionObserver\n//\n// Usage:\n// v-b-visibility.<margin>.<once>=\"<callback>\"\n//\n// Value:\n// <callback>: method to be called when visibility state changes, receives one arg:\n// true: element is visible\n// false: element is not visible\n// null: IntersectionObserver not supported\n//\n// Modifiers:\n// <margin>: a positive decimal value of pixels away from viewport edge\n// before being considered \"visible\". default is 0\n// <once>: keyword 'once', meaning when the element becomes visible and\n// callback is called observation/notification will stop.\n//\n// When used in a render function:\n// export default {\n// directives: { 'b-visible': VBVisible },\n// render(h) {\n// h(\n// 'div',\n// {\n// directives: [\n// { name: 'b-visible', value=this.callback, modifiers: { '123':true, 'once':true } }\n// ]\n// }\n// )\n// }\nimport looseEqual from '../utils/loose-equal';\nimport { requestAF } from '../utils/dom';\nimport { isFunction } from '../utils/inspect';\nimport { keys } from '../utils/object';\nvar OBSERVER_PROP_NAME = '__bv__visibility_observer';\n\nvar VisibilityObserver =\n/*#__PURE__*/\nfunction () {\n function VisibilityObserver(el, options, vnode) {\n _classCallCheck(this, VisibilityObserver);\n\n this.el = el;\n this.callback = options.callback;\n this.margin = options.margin || 0;\n this.once = options.once || false;\n this.observer = null;\n this.visible = undefined;\n this.doneOnce = false; // Create the observer instance (if possible)\n\n this.createObserver(vnode);\n }\n\n _createClass(VisibilityObserver, [{\n key: \"createObserver\",\n value: function createObserver(vnode) {\n var _this = this;\n\n // Remove any previous observer\n if (this.observer) {\n /* istanbul ignore next */\n this.stop();\n } // Should only be called once and `callback` prop should be a function\n\n\n if (this.doneOnce || !isFunction(this.callback)) {\n /* istanbul ignore next */\n return;\n } // Create the observer instance\n\n\n try {\n // Future: Possibly add in other modifiers for left/right/top/bottom\n // offsets, root element reference, and thresholds\n this.observer = new IntersectionObserver(this.handler.bind(this), {\n // `null` = 'viewport'\n root: null,\n // Pixels away from view port to consider \"visible\"\n rootMargin: this.margin,\n // Intersection ratio of el and root (as a value from 0 to 1)\n threshold: 0\n });\n } catch (_unused) {\n // No IntersectionObserver support, so just stop trying to observe\n this.doneOnce = true;\n this.observer = undefined;\n this.callback(null);\n return;\n } // Start observing in a `$nextTick()` (to allow DOM to complete rendering)\n\n /* istanbul ignore next: IntersectionObserver not supported in JSDOM */\n\n\n vnode.context.$nextTick(function () {\n requestAF(function () {\n // Placed in an `if` just in case we were destroyed before\n // this `requestAnimationFrame` runs\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n });\n }\n }, {\n key: \"handler\",\n value: function handler(entries)\n /* istanbul ignore next: IntersectionObserver not supported in JSDOM */\n {\n var entry = entries ? entries[0] : {};\n var isIntersecting = Boolean(entry.isIntersecting || entry.intersectionRatio > 0.0);\n\n if (isIntersecting !== this.visible) {\n this.visible = isIntersecting;\n this.callback(isIntersecting);\n\n if (this.once && this.visible) {\n this.doneOnce = true;\n this.stop();\n }\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n var observer = this.observer;\n /* istanbul ignore next */\n\n if (observer && observer.disconnect) {\n observer.disconnect();\n }\n\n this.observer = null;\n }\n }]);\n\n return VisibilityObserver;\n}();\n\nvar destroy = function destroy(el) {\n var observer = el[OBSERVER_PROP_NAME];\n\n if (observer && observer.stop) {\n observer.stop();\n }\n\n delete el[OBSERVER_PROP_NAME];\n};\n\nvar bind = function bind(el, _ref, vnode) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n // `value` is the callback function\n var options = {\n margin: '0px',\n once: false,\n callback: value\n }; // Parse modifiers\n\n keys(modifiers).forEach(function (mod) {\n /* istanbul ignore else: Until <b-img-lazy> is switched to use this directive */\n if (/^\\d+$/.test(mod)) {\n options.margin = \"\".concat(mod, \"px\");\n } else if (mod.toLowerCase() === 'once') {\n options.once = true;\n }\n }); // Destroy any previous observer\n\n destroy(el); // Create new observer\n\n el[OBSERVER_PROP_NAME] = new VisibilityObserver(el, options, vnode); // Store the current modifiers on the object (cloned)\n\n el[OBSERVER_PROP_NAME]._prevModifiers = _objectSpread({}, modifiers);\n}; // When the directive options may have been updated (or element)\n\n\nvar componentUpdated = function componentUpdated(el, _ref2, vnode) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n\n // Compare value/oldValue and modifiers to see if anything has changed\n // and if so, destroy old observer and create new observer\n\n /* istanbul ignore next */\n if (value !== oldValue || !el[OBSERVER_PROP_NAME] || !looseEqual(modifiers, el[OBSERVER_PROP_NAME]._prevModifiers)) {\n // Re-bind on element\n bind(el, {\n value: value,\n modifiers: modifiers\n }, vnode);\n }\n}; // When directive un-binds from element\n\n\nvar unbind = function unbind(el) {\n // Remove the observer\n destroy(el);\n}; // Export the directive\n\n\nexport var VBVisible = {\n bind: bind,\n componentUpdated: componentUpdated,\n unbind: unbind\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { getComponentConfig } from '../../utils/config';\nimport { isString } from '../../utils/inspect'; // --- Constants --\n\nvar NAME = 'BImg'; // Blank image with fill template\n\nvar BLANK_TEMPLATE = '<svg width=\"%{w}\" height=\"%{h}\" ' + 'xmlns=\"http://www.w3.org/2000/svg\" ' + 'viewBox=\"0 0 %{w} %{h}\" preserveAspectRatio=\"none\">' + '<rect width=\"100%\" height=\"100%\" style=\"fill:%{f};\"></rect>' + '</svg>';\nexport var props = {\n src: {\n type: String,\n default: null\n },\n alt: {\n type: String,\n default: null\n },\n width: {\n type: [Number, String],\n default: null\n },\n height: {\n type: [Number, String],\n default: null\n },\n block: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n fluidGrow: {\n // Gives fluid images class `w-100` to make them grow to fit container\n type: Boolean,\n default: false\n },\n rounded: {\n // rounded can be:\n // false: no rounding of corners\n // true: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n type: [Boolean, String],\n default: false\n },\n thumbnail: {\n type: Boolean,\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n right: {\n type: Boolean,\n default: false\n },\n center: {\n type: Boolean,\n default: false\n },\n blank: {\n type: Boolean,\n default: false\n },\n blankColor: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'blankColor');\n }\n }\n}; // --- Helper methods ---\n\nvar makeBlankImgSrc = function makeBlankImgSrc(width, height, color) {\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', String(width)).replace('%{h}', String(height)).replace('%{f}', color));\n return \"data:image/svg+xml;charset=UTF-8,\".concat(src);\n}; // @vue/component\n\n\nexport var BImg =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data;\n var src = props.src;\n var width = parseInt(props.width, 10) ? parseInt(props.width, 10) : null;\n var height = parseInt(props.height, 10) ? parseInt(props.height, 10) : null;\n var align = null;\n var block = props.block;\n\n if (props.blank) {\n if (!height && Boolean(width)) {\n height = width;\n } else if (!width && Boolean(height)) {\n width = height;\n }\n\n if (!width && !height) {\n width = 1;\n height = 1;\n } // Make a blank SVG image\n\n\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent');\n }\n\n if (props.left) {\n align = 'float-left';\n } else if (props.right) {\n align = 'float-right';\n } else if (props.center) {\n align = 'mx-auto';\n block = true;\n }\n\n return h('img', mergeData(data, {\n attrs: {\n src: src,\n alt: props.alt,\n width: width ? String(width) : null,\n height: height ? String(height) : null\n },\n class: (_class = {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || props.fluidGrow,\n 'w-100': props.fluidGrow,\n rounded: props.rounded === '' || props.rounded === true\n }, _defineProperty(_class, \"rounded-\".concat(props.rounded), isString(props.rounded) && props.rounded !== ''), _defineProperty(_class, align, Boolean(align)), _defineProperty(_class, 'd-block', block), _class)\n }));\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { getComponentConfig } from '../../utils/config';\nimport { hasIntersectionObserverSupport } from '../../utils/env';\nimport { VBVisible } from '../../directives/visible';\nimport { BImg } from './img';\nvar NAME = 'BImgLazy';\nexport var props = {\n src: {\n type: String,\n default: null,\n required: true\n },\n alt: {\n type: String,\n default: null\n },\n width: {\n type: [Number, String],\n default: null\n },\n height: {\n type: [Number, String],\n default: null\n },\n blankSrc: {\n // If null, a blank image is generated\n type: String,\n default: null\n },\n blankColor: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'blankColor');\n }\n },\n blankWidth: {\n type: [Number, String],\n default: null\n },\n blankHeight: {\n type: [Number, String],\n default: null\n },\n show: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n fluidGrow: {\n type: Boolean,\n default: false\n },\n block: {\n type: Boolean,\n default: false\n },\n thumbnail: {\n type: Boolean,\n default: false\n },\n rounded: {\n type: [Boolean, String],\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n right: {\n type: Boolean,\n default: false\n },\n center: {\n type: Boolean,\n default: false\n },\n offset: {\n // Distance away from viewport (in pixels) before being\n // considered \"visible\"\n type: [Number, String],\n default: 360\n }\n}; // @vue/component\n\nexport var BImgLazy =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n directives: {\n bVisible: VBVisible\n },\n props: props,\n data: function data() {\n return {\n isShown: this.show\n };\n },\n computed: {\n computedSrc: function computedSrc() {\n return !this.blankSrc || this.isShown ? this.src : this.blankSrc;\n },\n computedBlank: function computedBlank() {\n return !(this.isShown || this.blankSrc);\n },\n computedWidth: function computedWidth() {\n return this.isShown ? this.width : this.blankWidth || this.width;\n },\n computedHeight: function computedHeight() {\n return this.isShown ? this.height : this.blankHeight || this.height;\n }\n },\n watch: {\n show: function show(newVal, oldVal) {\n if (newVal !== oldVal) {\n // If IntersectionObserver support is not available, image is always shown\n var visible = hasIntersectionObserverSupport ? newVal : true;\n this.isShown = visible;\n\n if (visible !== newVal) {\n // Ensure the show prop is synced (when no IntersectionObserver)\n this.$nextTick(this.updateShowProp);\n }\n }\n },\n isShown: function isShown(newVal, oldVal) {\n if (newVal !== oldVal) {\n // Update synched show prop\n this.updateShowProp();\n }\n }\n },\n mounted: function mounted() {\n // If IntersectionObserver is not available, image is always shown\n this.isShown = hasIntersectionObserverSupport ? this.show : true;\n },\n methods: {\n updateShowProp: function updateShowProp() {\n this.$emit('update:show', this.isShown);\n },\n doShow: function doShow(visible) {\n // If IntersectionObserver is not supported, the callback\n // will be called with `null` rather than `true` or `false`\n if ((visible || visible === null) && !this.isShown) {\n this.isShown = true;\n }\n }\n },\n render: function render(h) {\n var directives = [];\n\n if (!this.isShown) {\n var _modifiers;\n\n // We only add the visible directive if we are not shown\n directives.push({\n // Visible directive will silently do nothing if\n // IntersectionObserver is not supported\n name: 'b-visible',\n // Value expects a callback (passed one arg of `visible` = `true` or `false`)\n value: this.doShow,\n modifiers: (_modifiers = {}, _defineProperty(_modifiers, \"\".concat(parseInt(this.offset, 10) || 0), true), _defineProperty(_modifiers, \"once\", true), _modifiers)\n });\n }\n\n return h(BImg, {\n directives: directives,\n props: {\n // Computed value props\n src: this.computedSrc,\n blank: this.computedBlank,\n width: this.computedWidth,\n height: this.computedHeight,\n // Passthrough props\n alt: this.alt,\n blankColor: this.blankColor,\n fluid: this.fluid,\n fluidGrow: this.fluidGrow,\n block: this.block,\n thumbnail: this.thumbnail,\n rounded: this.rounded,\n left: this.left,\n right: this.right,\n center: this.center\n }\n });\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { omit } from '../../utils/object';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { BImgLazy, props as imgLazyProps } from '../image/img-lazy'; // Copy of `<b-img-lazy>` props, and remove conflicting/non-applicable props\n// The `omit()` util creates a new object, so we can just pass the original props\n\nvar lazyProps = omit(imgLazyProps, ['left', 'right', 'center', 'block', 'rounded', 'thumbnail', 'fluid', 'fluidGrow']);\nexport var props = _objectSpread({}, lazyProps, {\n top: {\n type: Boolean,\n default: false\n },\n bottom: {\n type: Boolean,\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n start: {\n type: Boolean,\n default: false // alias of 'left'\n\n },\n right: {\n type: Boolean,\n default: false\n },\n end: {\n type: Boolean,\n default: false // alias of 'right'\n\n }\n}); // @vue/component\n\nexport var BCardImgLazy =\n/*#__PURE__*/\nVue.extend({\n name: 'BCardImgLazy',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n } // False out the left/center/right props before passing to b-img-lazy\n\n\n var lazyProps = _objectSpread({}, props, {\n left: false,\n right: false,\n center: false\n });\n\n return h(BImgLazy, mergeData(data, {\n class: [baseClass],\n props: lazyProps\n }));\n }\n});","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n textTag: {\n type: String,\n default: 'p'\n }\n}; // @vue/component\n\nexport var BCardText =\n/*#__PURE__*/\nVue.extend({\n name: 'BCardText',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.textTag, mergeData(data, {\n staticClass: 'card-text'\n }), children);\n }\n});","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n deck: {\n type: Boolean,\n default: false\n },\n columns: {\n type: Boolean,\n default: false\n }\n}; // @vue/component\n\nexport var BCardGroup =\n/*#__PURE__*/\nVue.extend({\n name: 'BCardGroup',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var baseClass = 'card-group';\n\n if (props.deck) {\n baseClass = 'card-deck';\n } else if (props.columns) {\n baseClass = 'card-columns';\n }\n\n return h(props.tag, mergeData(data, {\n class: baseClass\n }), children);\n }\n});","import { BCard } from './card';\nimport { BCardHeader } from './card-header';\nimport { BCardBody } from './card-body';\nimport { BCardTitle } from './card-title';\nimport { BCardSubTitle } from './card-sub-title';\nimport { BCardFooter } from './card-footer';\nimport { BCardImg } from './card-img';\nimport { BCardImgLazy } from './card-img-lazy';\nimport { BCardText } from './card-text';\nimport { BCardGroup } from './card-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar CardPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BCard: BCard,\n BCardHeader: BCardHeader,\n BCardBody: BCardBody,\n BCardTitle: BCardTitle,\n BCardSubTitle: BCardSubTitle,\n BCardFooter: BCardFooter,\n BCardImg: BCardImg,\n BCardImgLazy: BCardImgLazy,\n BCardText: BCardText,\n BCardGroup: BCardGroup\n }\n});\nexport { CardPlugin, BCard, BCardHeader, BCardBody, BCardTitle, BCardSubTitle, BCardFooter, BCardImg, BCardImgLazy, BCardText, BCardGroup };","var noop = function noop() {};\n\nexport default noop;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { MutationObs, isElement } from './dom';\nimport { warnNoMutationObserverSupport } from './warn';\n/**\n * Observe a DOM element changes, falls back to eventListener mode\n * @param {Element} el The DOM element to observe\n * @param {Function} callback callback to be called on change\n * @param {object} [opts={childList: true, subtree: true}] observe options\n * @see http://stackoverflow.com/questions/3219758\n */\n\nvar observeDom = function observeDom(el, callback, opts)\n/* istanbul ignore next: difficult to test in JSDOM */\n{\n // Handle cases where we might be passed a Vue instance\n el = el ? el.$el || el : null; // Early exit when we have no element\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n if (!isElement(el)) {\n return null;\n } // Exit and throw a warning when `MutationObserver` isn't available\n\n\n if (warnNoMutationObserverSupport('observeDom')) {\n return null;\n } // Define a new observer\n\n\n var obs = new MutationObs(function (mutations) {\n var changed = false; // A mutation can contain several change records, so we loop\n // through them to see what has changed\n // We break out of the loop early if any \"significant\" change\n // has been detected\n\n for (var i = 0; i < mutations.length && !changed; i++) {\n // The mutation record\n var mutation = mutations[i]; // Mutation type\n\n var type = mutation.type; // DOM node (could be any DOM node type - HTMLElement, Text, comment, etc.)\n\n var target = mutation.target; // Detect whether a change happened based on type and target\n\n if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {\n // We ignore nodes that are not TEXT (i.e. comments, etc)\n // as they don't change layout\n changed = true;\n } else if (type === 'attributes') {\n changed = true;\n } else if (type === 'childList' && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)) {\n // This includes HTMLElement and text nodes being\n // added/removed/re-arranged\n changed = true;\n }\n } // We only call the callback if a change that could affect\n // layout/size truely happened\n\n\n if (changed) {\n callback();\n }\n }); // Have the observer observe foo for changes in children, etc\n\n obs.observe(el, _objectSpread({\n childList: true,\n subtree: true\n }, opts)); // We return a reference to the observer so that `obs.disconnect()`\n // can be called if necessary\n // To reduce overhead when the root element is hidden\n\n return obs;\n};\n\nexport default observeDom;","/*\n * SSR Safe Client Side ID attribute generation\n * id's can only be generated client side, after mount.\n * this._uid is not synched between server and client.\n */\n// @vue/component\nexport default {\n props: {\n id: {\n type: String,\n default: null\n }\n },\n data: function data() {\n return {\n localId_: null\n };\n },\n computed: {\n safeId: function safeId() {\n // Computed property that returns a dynamic function for creating the ID.\n // Reacts to changes in both .id and .localId_ And regens a new function\n var id = this.id || this.localId_; // We return a function that accepts an optional suffix string\n // So this computed prop looks and works like a method!!!\n // But benefits from Vue's Computed prop caching\n\n var fn = function fn(suffix) {\n if (!id) {\n return null;\n }\n\n suffix = String(suffix || '').replace(/\\s+/g, '_');\n return suffix ? id + '_' + suffix : id;\n };\n\n return fn;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // mounted only occurs client side\n this.$nextTick(function () {\n // Update dom with auto ID after dom loaded to prevent\n // SSR hydration errors.\n _this.localId_ = \"__BVID__\".concat(_this._uid);\n });\n }\n};","import Vue from '../../utils/vue';\nimport KeyCodes from '../../utils/key-codes';\nimport noop from '../../utils/noop';\nimport observeDom from '../../utils/observe-dom';\nimport { getComponentConfig } from '../../utils/config';\nimport { selectAll, reflow, addClass, removeClass, setAttr, eventOn, eventOff } from '../../utils/dom';\nimport { isBrowser, hasTouchSupport, hasPointerEventSupport } from '../../utils/env';\nimport { isUndefined } from '../../utils/inspect';\nimport idMixin from '../../mixins/id';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nvar NAME = 'BCarousel'; // Slide directional classes\n\nvar DIRECTION = {\n next: {\n dirClass: 'carousel-item-left',\n overlayClass: 'carousel-item-next'\n },\n prev: {\n dirClass: 'carousel-item-right',\n overlayClass: 'carousel-item-prev'\n }\n}; // Fallback Transition duration (with a little buffer) in ms\n\nvar TRANS_DURATION = 600 + 50; // Time for mouse compat events to fire after touch\n\nvar TOUCH_EVENT_COMPAT_WAIT = 500; // Number of pixels to consider touch move a swipe\n\nvar SWIPE_THRESHOLD = 40; // PointerEvent pointer types\n\nvar PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}; // Transition Event names\n\nvar TransitionEndEvents = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'otransitionend oTransitionEnd',\n transition: 'transitionend'\n};\nvar EventOptions = {\n passive: true,\n capture: false\n}; // Return the browser specific transitionEnd event name\n\nvar getTransitionEndEvent = function getTransitionEndEvent(el) {\n for (var name in TransitionEndEvents) {\n if (!isUndefined(el.style[name])) {\n return TransitionEndEvents[name];\n }\n } // Fallback\n\n /* istanbul ignore next */\n\n\n return null;\n}; // @vue/component\n\n\nexport var BCarousel =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n mixins: [idMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvCarousel: this\n };\n },\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n labelPrev: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'labelPrev');\n }\n },\n labelNext: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'labelNext');\n }\n },\n labelGotoSlide: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'labelGotoSlide');\n }\n },\n labelIndicators: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'labelIndicators');\n }\n },\n interval: {\n type: Number,\n default: 5000\n },\n indicators: {\n type: Boolean,\n default: false\n },\n controls: {\n type: Boolean,\n default: false\n },\n noAnimation: {\n // Disable slide/fade animation\n type: Boolean,\n default: false\n },\n fade: {\n // Enable cross-fade animation instead of slide animation\n type: Boolean,\n default: false\n },\n noWrap: {\n // Disable wrapping/looping when start/end is reached\n type: Boolean,\n default: false\n },\n noTouch: {\n // Sniffed by carousel-slide\n type: Boolean,\n default: false\n },\n noHoverPause: {\n // Disable pause on hover\n type: Boolean,\n default: false\n },\n imgWidth: {\n // Sniffed by carousel-slide\n type: [Number, String] // default: undefined\n\n },\n imgHeight: {\n // Sniffed by carousel-slide\n type: [Number, String] // default: undefined\n\n },\n background: {\n type: String // default: undefined\n\n },\n value: {\n type: Number,\n default: 0\n }\n },\n data: function data() {\n return {\n index: this.value || 0,\n isSliding: false,\n transitionEndEvent: null,\n slides: [],\n direction: null,\n isPaused: !(parseInt(this.interval, 10) > 0),\n // Touch event handling values\n touchStartX: 0,\n touchDeltaX: 0\n };\n },\n computed: {\n numSlides: function numSlides() {\n return this.slides.length;\n }\n },\n watch: {\n value: function value(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.setSlide(parseInt(newVal, 10) || 0);\n }\n },\n interval: function interval(newVal, oldVal) {\n if (newVal === oldVal) {\n /* istanbul ignore next */\n return;\n }\n\n if (!newVal) {\n // Pausing slide show\n this.pause(false);\n } else {\n // Restarting or Changing interval\n this.pause(true);\n this.start(false);\n }\n },\n isPaused: function isPaused(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.$emit(newVal ? 'paused' : 'unpaused');\n }\n },\n index: function index(to, from) {\n if (to === from || this.isSliding) {\n /* istanbul ignore next */\n return;\n }\n\n this.doSlide(to, from);\n }\n },\n created: function created() {\n // Create private non-reactive props\n this._intervalId = null;\n this._animationTimeout = null;\n this._touchTimeout = null; // Set initial paused state\n\n this.isPaused = !(parseInt(this.interval, 10) > 0);\n },\n mounted: function mounted() {\n // Cache current browser transitionend event name\n this.transitionEndEvent = getTransitionEndEvent(this.$el) || null; // Get all slides\n\n this.updateSlides(); // Observe child changes so we can update slide list\n\n observeDom(this.$refs.inner, this.updateSlides.bind(this), {\n subtree: false,\n childList: true,\n attributes: true,\n attributeFilter: ['id']\n });\n },\n beforeDestroy: function beforeDestroy() {\n clearTimeout(this._animationTimeout);\n clearTimeout(this._touchTimeout);\n clearInterval(this._intervalId);\n this._intervalId = null;\n this._animationTimeout = null;\n this._touchTimeout = null;\n },\n methods: {\n // Set slide\n setSlide: function setSlide(slide) {\n var _this = this;\n\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // Don't animate when page is not visible\n\n /* istanbul ignore if: difficult to test */\n if (isBrowser && document.visibilityState && document.hidden) {\n return;\n }\n\n var noWrap = this.noWrap;\n var numSlides = this.numSlides; // Make sure we have an integer (you never know!)\n\n slide = Math.floor(slide); // Don't do anything if nothing to slide to\n\n if (numSlides === 0) {\n return;\n } // Don't change slide while transitioning, wait until transition is done\n\n\n if (this.isSliding) {\n // Schedule slide after sliding complete\n this.$once('sliding-end', function () {\n return _this.setSlide(slide, direction);\n });\n return;\n }\n\n this.direction = direction; // Set new slide index\n // Wrap around if necessary (if no-wrap not enabled)\n\n this.index = slide >= numSlides ? noWrap ? numSlides - 1 : 0 : slide < 0 ? noWrap ? 0 : numSlides - 1 : slide; // Ensure the v-model is synched up if no-wrap is enabled\n // and user tried to slide pass either ends\n\n if (noWrap && this.index !== slide && this.index !== this.value) {\n this.$emit('input', this.index);\n }\n },\n // Previous slide\n prev: function prev() {\n this.setSlide(this.index - 1, 'prev');\n },\n // Next slide\n next: function next() {\n this.setSlide(this.index + 1, 'next');\n },\n // Pause auto rotation\n pause: function pause(evt) {\n if (!evt) {\n this.isPaused = true;\n }\n\n if (this._intervalId) {\n clearInterval(this._intervalId);\n this._intervalId = null;\n }\n },\n // Start auto rotate slides\n start: function start(evt) {\n if (!evt) {\n this.isPaused = false;\n }\n /* istanbul ignore next: most likely will never happen, but just in case */\n\n\n if (this._intervalId) {\n clearInterval(this._intervalId);\n this._intervalId = null;\n } // Don't start if no interval, or less than 2 slides\n\n\n if (this.interval && this.numSlides > 1) {\n this._intervalId = setInterval(this.next, Math.max(1000, this.interval));\n }\n },\n // Restart auto rotate slides when focus/hover leaves the carousel\n restart: function restart(evt)\n /* istanbul ignore next: difficult to test */\n {\n if (!this.$el.contains(document.activeElement)) {\n this.start();\n }\n },\n doSlide: function doSlide(to, from) {\n var _this2 = this;\n\n var isCycling = Boolean(this.interval); // Determine sliding direction\n\n var direction = this.calcDirection(this.direction, from, to);\n var overlayClass = direction.overlayClass;\n var dirClass = direction.dirClass; // Determine current and next slides\n\n var currentSlide = this.slides[from];\n var nextSlide = this.slides[to]; // Don't do anything if there aren't any slides to slide to\n\n if (!currentSlide || !nextSlide) {\n /* istanbul ignore next */\n return;\n } // Start animating\n\n\n this.isSliding = true;\n\n if (isCycling) {\n this.pause(false);\n }\n\n this.$emit('sliding-start', to); // Update v-model\n\n this.$emit('input', this.index);\n\n if (this.noAnimation) {\n addClass(nextSlide, 'active');\n removeClass(currentSlide, 'active');\n this.isSliding = false; // Notify ourselves that we're done sliding (slid)\n\n this.$nextTick(function () {\n return _this2.$emit('sliding-end', to);\n });\n } else {\n addClass(nextSlide, overlayClass); // Trigger a reflow of next slide\n\n reflow(nextSlide);\n addClass(currentSlide, dirClass);\n addClass(nextSlide, dirClass); // Transition End handler\n\n var called = false;\n /* istanbul ignore next: difficult to test */\n\n var onceTransEnd = function onceTransEnd(evt) {\n if (called) {\n return;\n }\n\n called = true;\n /* istanbul ignore if: transition events cant be tested in JSDOM */\n\n if (_this2.transitionEndEvent) {\n var events = _this2.transitionEndEvent.split(/\\s+/);\n\n events.forEach(function (evt) {\n return eventOff(currentSlide, evt, onceTransEnd, EventOptions);\n });\n }\n\n _this2._animationTimeout = null;\n removeClass(nextSlide, dirClass);\n removeClass(nextSlide, overlayClass);\n addClass(nextSlide, 'active');\n removeClass(currentSlide, 'active');\n removeClass(currentSlide, dirClass);\n removeClass(currentSlide, overlayClass);\n setAttr(currentSlide, 'aria-current', 'false');\n setAttr(nextSlide, 'aria-current', 'true');\n setAttr(currentSlide, 'aria-hidden', 'true');\n setAttr(nextSlide, 'aria-hidden', 'false');\n _this2.isSliding = false;\n _this2.direction = null; // Notify ourselves that we're done sliding (slid)\n\n _this2.$nextTick(function () {\n return _this2.$emit('sliding-end', to);\n });\n }; // Set up transitionend handler\n\n /* istanbul ignore if: transition events cant be tested in JSDOM */\n\n\n if (this.transitionEndEvent) {\n var events = this.transitionEndEvent.split(/\\s+/);\n events.forEach(function (event) {\n return eventOn(currentSlide, event, onceTransEnd, EventOptions);\n });\n } // Fallback to setTimeout()\n\n\n this._animationTimeout = setTimeout(onceTransEnd, TRANS_DURATION);\n }\n\n if (isCycling) {\n this.start(false);\n }\n },\n // Update slide list\n updateSlides: function updateSlides() {\n this.pause(true); // Get all slides as DOM elements\n\n this.slides = selectAll('.carousel-item', this.$refs.inner);\n var numSlides = this.slides.length; // Keep slide number in range\n\n var index = Math.max(0, Math.min(Math.floor(this.index), numSlides - 1));\n this.slides.forEach(function (slide, idx) {\n var n = idx + 1;\n\n if (idx === index) {\n addClass(slide, 'active');\n setAttr(slide, 'aria-current', 'true');\n } else {\n removeClass(slide, 'active');\n setAttr(slide, 'aria-current', 'false');\n }\n\n setAttr(slide, 'aria-posinset', String(n));\n setAttr(slide, 'aria-setsize', String(numSlides));\n }); // Set slide as active\n\n this.setSlide(index);\n this.start(this.isPaused);\n },\n calcDirection: function calcDirection() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var curIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var nextIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!direction) {\n return nextIndex > curIndex ? DIRECTION.next : DIRECTION.prev;\n }\n\n return DIRECTION[direction];\n },\n handleClick: function handleClick(evt, fn) {\n var keyCode = evt.keyCode;\n\n if (evt.type === 'click' || keyCode === KeyCodes.SPACE || keyCode === KeyCodes.ENTER) {\n evt.preventDefault();\n evt.stopPropagation();\n fn();\n }\n },\n handleSwipe: function handleSwipe()\n /* istanbul ignore next: JSDOM doesn't support touch events */\n {\n var absDeltaX = Math.abs(this.touchDeltaX);\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n\n var direction = absDeltaX / this.touchDeltaX; // Reset touch delta X\n // https://github.com/twbs/bootstrap/pull/28558\n\n this.touchDeltaX = 0;\n\n if (direction > 0) {\n // Swipe left\n this.prev();\n } else if (direction < 0) {\n // Swipe right\n this.next();\n }\n },\n touchStart: function touchStart(evt)\n /* istanbul ignore next: JSDOM doesn't support touch events */\n {\n if (hasPointerEventSupport && PointerType[evt.pointerType.toUpperCase()]) {\n this.touchStartX = evt.clientX;\n } else if (!hasPointerEventSupport) {\n this.touchStartX = evt.touches[0].clientX;\n }\n },\n touchMove: function touchMove(evt)\n /* istanbul ignore next: JSDOM doesn't support touch events */\n {\n // Ensure swiping with one touch and not pinching\n if (evt.touches && evt.touches.length > 1) {\n this.touchDeltaX = 0;\n } else {\n this.touchDeltaX = evt.touches[0].clientX - this.touchStartX;\n }\n },\n touchEnd: function touchEnd(evt)\n /* istanbul ignore next: JSDOM doesn't support touch events */\n {\n if (hasPointerEventSupport && PointerType[evt.pointerType.toUpperCase()]) {\n this.touchDeltaX = evt.clientX - this.touchStartX;\n }\n\n this.handleSwipe(); // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause(false);\n\n if (this._touchTimeout) {\n clearTimeout(this._touchTimeout);\n }\n\n this._touchTimeout = setTimeout(this.start, TOUCH_EVENT_COMPAT_WAIT + Math.max(1000, this.interval));\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n // Wrapper for slides\n var inner = h('div', {\n ref: 'inner',\n class: ['carousel-inner'],\n attrs: {\n id: this.safeId('__BV_inner_'),\n role: 'list'\n }\n }, [this.normalizeSlot('default')]); // Prev and next controls\n\n var controls = h();\n\n if (this.controls) {\n controls = [h('a', {\n class: ['carousel-control-prev'],\n attrs: {\n href: '#',\n role: 'button',\n 'aria-controls': this.safeId('__BV_inner_')\n },\n on: {\n click: function click(evt) {\n _this3.handleClick(evt, _this3.prev);\n },\n keydown: function keydown(evt) {\n _this3.handleClick(evt, _this3.prev);\n }\n }\n }, [h('span', {\n class: ['carousel-control-prev-icon'],\n attrs: {\n 'aria-hidden': 'true'\n }\n }), h('span', {\n class: ['sr-only']\n }, [this.labelPrev])]), h('a', {\n class: ['carousel-control-next'],\n attrs: {\n href: '#',\n role: 'button',\n 'aria-controls': this.safeId('__BV_inner_')\n },\n on: {\n click: function click(evt) {\n _this3.handleClick(evt, _this3.next);\n },\n keydown: function keydown(evt) {\n _this3.handleClick(evt, _this3.next);\n }\n }\n }, [h('span', {\n class: ['carousel-control-next-icon'],\n attrs: {\n 'aria-hidden': 'true'\n }\n }), h('span', {\n class: ['sr-only']\n }, [this.labelNext])])];\n } // Indicators\n\n\n var indicators = h('ol', {\n class: ['carousel-indicators'],\n directives: [{\n name: 'show',\n rawName: 'v-show',\n value: this.indicators,\n expression: 'indicators'\n }],\n attrs: {\n id: this.safeId('__BV_indicators_'),\n 'aria-hidden': this.indicators ? 'false' : 'true',\n 'aria-label': this.labelIndicators,\n 'aria-owns': this.safeId('__BV_inner_')\n }\n }, this.slides.map(function (slide, n) {\n return h('li', {\n key: \"slide_\".concat(n),\n class: {\n active: n === _this3.index\n },\n attrs: {\n role: 'button',\n id: _this3.safeId(\"__BV_indicator_\".concat(n + 1, \"_\")),\n tabindex: _this3.indicators ? '0' : '-1',\n 'aria-current': n === _this3.index ? 'true' : 'false',\n 'aria-label': \"\".concat(_this3.labelGotoSlide, \" \").concat(n + 1),\n 'aria-describedby': _this3.slides[n].id || null,\n 'aria-controls': _this3.safeId('__BV_inner_')\n },\n on: {\n click: function click(evt) {\n _this3.handleClick(evt, function () {\n _this3.setSlide(n);\n });\n },\n keydown: function keydown(evt) {\n _this3.handleClick(evt, function () {\n _this3.setSlide(n);\n });\n }\n }\n });\n }));\n var on = {\n mouseenter: this.noHoverPause ? noop : this.pause,\n mouseleave: this.noHoverPause ? noop : this.restart,\n focusin: this.pause,\n focusout: this.restart,\n keydown: function keydown(evt) {\n if (/input|textarea/i.test(evt.target.tagName)) {\n /* istanbul ignore next */\n return;\n }\n\n var keyCode = evt.keyCode;\n\n if (keyCode === KeyCodes.LEFT || keyCode === KeyCodes.RIGHT) {\n evt.preventDefault();\n evt.stopPropagation();\n\n _this3[keyCode === KeyCodes.LEFT ? 'prev' : 'next']();\n }\n }\n }; // Touch support event handlers for environment\n\n if (!this.noTouch && hasTouchSupport) {\n // Attach appropriate listeners (prepend event name with '&' for passive mode)\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n if (hasPointerEventSupport) {\n on['&pointerdown'] = this.touchStart;\n on['&pointerup'] = this.touchEnd;\n } else {\n on['&touchstart'] = this.touchStart;\n on['&touchmove'] = this.touchMove;\n on['&touchend'] = this.touchEnd;\n }\n } // Return the carousel\n\n\n return h('div', {\n staticClass: 'carousel',\n class: {\n slide: !this.noAnimation,\n 'carousel-fade': !this.noAnimation && this.fade,\n 'pointer-event': !this.noTouch && hasTouchSupport && hasPointerEventSupport\n },\n style: {\n background: this.background\n },\n attrs: {\n role: 'region',\n id: this.safeId(),\n 'aria-busy': this.isSliding ? 'true' : 'false'\n },\n on: on\n }, [inner, controls, indicators]);\n }\n});","import Vue from '../../utils/vue';\nimport idMixin from '../../mixins/id';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport { hasTouchSupport } from '../../utils/env';\nimport { htmlOrText } from '../../utils/html';\nimport { BImg } from '../image/img';\nexport var props = {\n imgSrc: {\n type: String // default: undefined\n\n },\n imgAlt: {\n type: String // default: undefined\n\n },\n imgWidth: {\n type: [Number, String] // default: undefined\n\n },\n imgHeight: {\n type: [Number, String] // default: undefined\n\n },\n imgBlank: {\n type: Boolean,\n default: false\n },\n imgBlankColor: {\n type: String,\n default: 'transparent'\n },\n contentVisibleUp: {\n type: String\n },\n contentTag: {\n type: String,\n default: 'div'\n },\n caption: {\n type: String\n },\n captionHtml: {\n type: String\n },\n captionTag: {\n type: String,\n default: 'h3'\n },\n text: {\n type: String\n },\n textHtml: {\n type: String\n },\n textTag: {\n type: String,\n default: 'p'\n },\n background: {\n type: String\n }\n}; // @vue/component\n\nexport var BCarouselSlide =\n/*#__PURE__*/\nVue.extend({\n name: 'BCarouselSlide',\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvCarousel: {\n default: function _default() {\n return {\n // Explicitly disable touch if not a child of carousel\n noTouch: true\n };\n }\n }\n },\n props: props,\n computed: {\n contentClasses: function contentClasses() {\n return [this.contentVisibleUp ? 'd-none' : '', this.contentVisibleUp ? \"d-\".concat(this.contentVisibleUp, \"-block\") : ''];\n },\n computedWidth: function computedWidth() {\n // Use local width, or try parent width\n return this.imgWidth || this.bvCarousel.imgWidth || null;\n },\n computedHeight: function computedHeight() {\n // Use local height, or try parent height\n return this.imgHeight || this.bvCarousel.imgHeight || null;\n }\n },\n render: function render(h) {\n var noDrag = !this.bvCarousel.noTouch && hasTouchSupport;\n var img = this.normalizeSlot('img');\n\n if (!img && (this.imgSrc || this.imgBlank)) {\n img = h(BImg, {\n props: {\n fluidGrow: true,\n block: true,\n src: this.imgSrc,\n blank: this.imgBlank,\n blankColor: this.imgBlankColor,\n width: this.computedWidth,\n height: this.computedHeight,\n alt: this.imgAlt\n },\n // Touch support event handler\n on: noDrag ? {\n dragstart: function dragstart(e) {\n /* istanbul ignore next: difficult to test in JSDOM */\n e.preventDefault();\n }\n } : {}\n });\n }\n\n if (!img) {\n img = h();\n }\n\n var content = h();\n var contentChildren = [this.caption || this.captionHtml ? h(this.captionTag, {\n domProps: htmlOrText(this.captionHtml, this.caption)\n }) : false, this.text || this.textHtml ? h(this.textTag, {\n domProps: htmlOrText(this.textHtml, this.text)\n }) : false, this.normalizeSlot('default') || false];\n\n if (contentChildren.some(Boolean)) {\n content = h(this.contentTag, {\n staticClass: 'carousel-caption',\n class: this.contentClasses\n }, contentChildren.map(function (i) {\n return i || h();\n }));\n }\n\n return h('div', {\n staticClass: 'carousel-item',\n style: {\n background: this.background || this.bvCarousel.background || null\n },\n attrs: {\n id: this.safeId(),\n role: 'listitem'\n }\n }, [img, content]);\n }\n});","import { BCarousel } from './carousel';\nimport { BCarouselSlide } from './carousel-slide';\nimport { pluginFactory } from '../../utils/plugins';\nvar CarouselPlugin =\n/*#__PURE*/\npluginFactory({\n components: {\n BCarousel: BCarousel,\n BCarouselSlide: BCarouselSlide\n }\n});\nexport { CarouselPlugin, BCarousel, BCarouselSlide };","/**\n * Issue #569: collapse::toggle::state triggered too many times\n * @link https://github.com/bootstrap-vue/bootstrap-vue/issues/569\n */\n// @vue/component\nexport default {\n methods: {\n /**\n * Safely register event listeners on the root Vue node.\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on root and is destroyed,\n * this orphans a callback because the node is gone,\n * but the root does not clear the callback.\n *\n * When registering a $root listener, it also registers a listener on\n * the component's `beforeDestroy` hook to automatically remove the\n * event listener from the $root instance.\n *\n * @param {string} event\n * @param {function} callback\n * @chainable\n */\n listenOnRoot: function listenOnRoot(event, callback) {\n var _this = this;\n\n this.$root.$on(event, callback);\n this.$on('hook:beforeDestroy', function () {\n _this.$root.$off(event, callback);\n }); // Return this for easy chaining\n\n return this;\n },\n\n /**\n * Safely register a $once event listener on the root Vue node.\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on root and is destroyed,\n * this orphans a callback because the node is gone,\n * but the root does not clear the callback.\n *\n * When registering a $root listener, it also registers a listener on\n * the component's `beforeDestroy` hook to automatically remove the\n * event listener from the $root instance.\n *\n * @param {string} event\n * @param {function} callback\n * @chainable\n */\n listenOnRootOnce: function listenOnRootOnce(event, callback) {\n var _this2 = this;\n\n this.$root.$once(event, callback);\n this.$on('hook:beforeDestroy', function () {\n _this2.$root.$off(event, callback);\n }); // Return this for easy chaining\n\n return this;\n },\n\n /**\n * Convenience method for calling vm.$emit on vm.$root.\n * @param {string} event\n * @param {*} args\n * @chainable\n */\n emitOnRoot: function emitOnRoot(event) {\n var _this$$root;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_this$$root = this.$root).$emit.apply(_this$$root, [event].concat(args)); // Return this for easy chaining\n\n\n return this;\n }\n }\n};","import Vue from '../../utils/vue';\nimport idMixin from '../../mixins/id';\nimport listenOnRootMixin from '../../mixins/listen-on-root';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport { isBrowser } from '../../utils/env';\nimport { addClass, hasClass, removeClass, closest, matches, reflow, getCS, getBCR, eventOn, eventOff } from '../../utils/dom'; // Events we emit on $root\n\nvar EVENT_STATE = 'bv::collapse::state';\nvar EVENT_ACCORDION = 'bv::collapse::accordion'; // Private event we emit on `$root` to ensure the toggle state is\n// always synced. It gets emitted even if the state has not changed!\n// This event is NOT to be documented as people should not be using it\n\nvar EVENT_STATE_SYNC = 'bv::collapse::sync::state'; // Events we listen to on `$root`\n\nvar EVENT_TOGGLE = 'bv::toggle::collapse';\nvar EVENT_STATE_REQUEST = 'bv::request::collapse::state'; // Event listener options\n\nvar EventOptions = {\n passive: true,\n capture: false\n}; // @vue/component\n\nexport var BCollapse =\n/*#__PURE__*/\nVue.extend({\n name: 'BCollapse',\n mixins: [idMixin, listenOnRootMixin, normalizeSlotMixin],\n model: {\n prop: 'visible',\n event: 'input'\n },\n props: {\n isNav: {\n type: Boolean,\n default: false\n },\n accordion: {\n type: String,\n default: null\n },\n visible: {\n type: Boolean,\n default: false\n },\n tag: {\n type: String,\n default: 'div'\n }\n },\n data: function data() {\n return {\n show: this.visible,\n transitioning: false\n };\n },\n computed: {\n classObject: function classObject() {\n return {\n 'navbar-collapse': this.isNav,\n collapse: !this.transitioning,\n show: this.show && !this.transitioning\n };\n }\n },\n watch: {\n visible: function visible(newVal) {\n if (newVal !== this.show) {\n this.show = newVal;\n }\n },\n show: function show(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.emitState();\n }\n }\n },\n created: function created() {\n this.show = this.visible;\n },\n mounted: function mounted() {\n var _this = this;\n\n this.show = this.visible; // Listen for toggle events to open/close us\n\n this.listenOnRoot(EVENT_TOGGLE, this.handleToggleEvt); // Listen to other collapses for accordion events\n\n this.listenOnRoot(EVENT_ACCORDION, this.handleAccordionEvt);\n\n if (this.isNav) {\n // Set up handlers\n this.setWindowEvents(true);\n this.handleResize();\n }\n\n this.$nextTick(function () {\n _this.emitState();\n }); // Listen for \"Sync state\" requests from `v-b-toggle`\n\n this.listenOnRoot(EVENT_STATE_REQUEST, function (id) {\n if (id === _this.safeId()) {\n _this.$nextTick(_this.emitSync);\n }\n });\n },\n updated: function updated() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.emitSync();\n },\n deactivated: function deactivated()\n /* istanbul ignore next */\n {\n if (this.isNav) {\n this.setWindowEvents(false);\n }\n },\n activated: function activated()\n /* istanbul ignore next */\n {\n if (this.isNav) {\n this.setWindowEvents(true);\n }\n\n this.emitSync();\n },\n beforeDestroy: function beforeDestroy() {\n // Trigger state emit if needed\n this.show = false;\n\n if (this.isNav && isBrowser) {\n this.setWindowEvents(false);\n }\n },\n methods: {\n setWindowEvents: function setWindowEvents(on) {\n var method = on ? eventOn : eventOff;\n method(window, 'resize', this.handleResize, EventOptions);\n method(window, 'orientationchange', this.handleResize, EventOptions);\n },\n toggle: function toggle() {\n this.show = !this.show;\n },\n onEnter: function onEnter(el) {\n el.style.height = 0;\n reflow(el);\n el.style.height = el.scrollHeight + 'px';\n this.transitioning = true; // This should be moved out so we can add cancellable events\n\n this.$emit('show');\n },\n onAfterEnter: function onAfterEnter(el) {\n el.style.height = null;\n this.transitioning = false;\n this.$emit('shown');\n },\n onLeave: function onLeave(el) {\n el.style.height = 'auto';\n el.style.display = 'block';\n el.style.height = getBCR(el).height + 'px';\n reflow(el);\n this.transitioning = true;\n el.style.height = 0; // This should be moved out so we can add cancellable events\n\n this.$emit('hide');\n },\n onAfterLeave: function onAfterLeave(el) {\n el.style.height = null;\n this.transitioning = false;\n this.$emit('hidden');\n },\n emitState: function emitState() {\n this.$emit('input', this.show); // Let v-b-toggle know the state of this collapse\n\n this.$root.$emit(EVENT_STATE, this.safeId(), this.show);\n\n if (this.accordion && this.show) {\n // Tell the other collapses in this accordion to close\n this.$root.$emit(EVENT_ACCORDION, this.safeId(), this.accordion);\n }\n },\n emitSync: function emitSync() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.$root.$emit(EVENT_STATE_SYNC, this.safeId(), this.show);\n },\n checkDisplayBlock: function checkDisplayBlock() {\n // Check to see if the collapse has `display: block !important;` set.\n // We can't set `display: none;` directly on this.$el, as it would\n // trigger a new transition to start (or cancel a current one).\n var restore = hasClass(this.$el, 'show');\n removeClass(this.$el, 'show');\n var isBlock = getCS(this.$el).display === 'block';\n restore && addClass(this.$el, 'show');\n return isBlock;\n },\n clickHandler: function clickHandler(evt) {\n // If we are in a nav/navbar, close the collapse when non-disabled link clicked\n var el = evt.target;\n\n if (!this.isNav || !el || getCS(this.$el).display !== 'block') {\n /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n return;\n }\n\n if (matches(el, '.nav-link,.dropdown-item') || closest('.nav-link,.dropdown-item', el)) {\n if (!this.checkDisplayBlock()) {\n // Only close the collapse if it is not forced to be 'display: block !important;'\n this.show = false;\n }\n }\n },\n handleToggleEvt: function handleToggleEvt(target) {\n if (target !== this.safeId()) {\n return;\n }\n\n this.toggle();\n },\n handleAccordionEvt: function handleAccordionEvt(openedId, accordion) {\n if (!this.accordion || accordion !== this.accordion) {\n return;\n }\n\n if (openedId === this.safeId()) {\n // Open this collapse if not shown\n if (!this.show) {\n this.toggle();\n }\n } else {\n // Close this collapse if shown\n if (this.show) {\n this.toggle();\n }\n }\n },\n handleResize: function handleResize() {\n // Handler for orientation/resize to set collapsed state in nav/navbar\n this.show = getCS(this.$el).display === 'block';\n }\n },\n render: function render(h) {\n var content = h(this.tag, {\n class: this.classObject,\n directives: [{\n name: 'show',\n value: this.show\n }],\n attrs: {\n id: this.safeId()\n },\n on: {\n click: this.clickHandler\n }\n }, [this.normalizeSlot('default')]);\n return h('transition', {\n props: {\n enterClass: '',\n enterActiveClass: 'collapsing',\n enterToClass: '',\n leaveClass: '',\n leaveActiveClass: 'collapsing',\n leaveToClass: ''\n },\n on: {\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n }, [content]);\n }\n});","import { keys } from './object';\nimport { eventOn, eventOff } from './dom';\nvar allListenTypes = {\n hover: true,\n click: true,\n focus: true\n};\nvar BVBoundListeners = '__BV_boundEventListeners__';\n\nvar getTargets = function getTargets(binding) {\n var targets = keys(binding.modifiers || {}).filter(function (t) {\n return !allListenTypes[t];\n });\n\n if (binding.value) {\n targets.push(binding.value);\n }\n\n return targets;\n};\n\nvar bindTargets = function bindTargets(vnode, binding, listenTypes, fn) {\n var targets = getTargets(binding);\n\n var listener = function listener() {\n fn({\n targets: targets,\n vnode: vnode\n });\n };\n\n keys(allListenTypes).forEach(function (type) {\n if (listenTypes[type] || binding.modifiers[type]) {\n eventOn(vnode.elm, type, listener);\n var boundListeners = vnode.elm[BVBoundListeners] || {};\n boundListeners[type] = boundListeners[type] || [];\n boundListeners[type].push(listener);\n vnode.elm[BVBoundListeners] = boundListeners;\n }\n }); // Return the list of targets\n\n return targets;\n};\n\nvar unbindTargets = function unbindTargets(vnode, binding, listenTypes) {\n keys(allListenTypes).forEach(function (type) {\n if (listenTypes[type] || binding.modifiers[type]) {\n var boundListeners = vnode.elm[BVBoundListeners] && vnode.elm[BVBoundListeners][type];\n\n if (boundListeners) {\n boundListeners.forEach(function (listener) {\n return eventOff(vnode.elm, type, listener);\n });\n delete vnode.elm[BVBoundListeners][type];\n }\n }\n });\n};\n\nexport { bindTargets, unbindTargets, getTargets };\nexport default bindTargets;","import looseEqual from '../../utils/loose-equal';\nimport { addClass, hasAttr, removeAttr, removeClass, setAttr } from '../../utils/dom';\nimport { isBrowser } from '../../utils/env';\nimport { bindTargets, getTargets, unbindTargets } from '../../utils/target'; // Target listen types\n\nvar listenTypes = {\n click: true\n}; // Property key for handler storage\n\nvar BV_TOGGLE = '__BV_toggle__';\nvar BV_TOGGLE_STATE = '__BV_toggle_STATE__';\nvar BV_TOGGLE_CONTROLS = '__BV_toggle_CONTROLS__';\nvar BV_TOGGLE_TARGETS = '__BV_toggle_TARGETS__'; // Emitted control event for collapse (emitted to collapse)\n\nvar EVENT_TOGGLE = 'bv::toggle::collapse'; // Listen to event for toggle state update (emitted by collapse)\n\nvar EVENT_STATE = 'bv::collapse::state'; // Private event emitted on $root to ensure the toggle state is always synced.\n// Gets emitted even if the state of b-collapse has not changed.\n// This event is NOT to be documented as people should not be using it.\n\nvar EVENT_STATE_SYNC = 'bv::collapse::sync::state'; // Private event we send to collapse to request state update sync event\n\nvar EVENT_STATE_REQUEST = 'bv::request::collapse::state'; // Reset and remove a property from the provided element\n\nvar resetProp = function resetProp(el, prop) {\n el[prop] = null;\n delete el[prop];\n}; // Handle targets update\n\n\nvar handleTargets = function handleTargets(_ref) {\n var targets = _ref.targets,\n vnode = _ref.vnode;\n targets.forEach(function (target) {\n vnode.context.$root.$emit(EVENT_TOGGLE, target);\n });\n}; // Handle directive updates\n\n/* istanbul ignore next: not easy to test */\n\n\nvar handleUpdate = function handleUpdate(el, binding, vnode) {\n if (!isBrowser) {\n return;\n }\n\n if (!looseEqual(getTargets(binding), el[BV_TOGGLE_TARGETS])) {\n // Targets have changed, so update accordingly\n unbindTargets(vnode, binding, listenTypes);\n var targets = bindTargets(vnode, binding, listenTypes, handleTargets); // Update targets array to element\n\n el[BV_TOGGLE_TARGETS] = targets; // Add aria attributes to element\n\n el[BV_TOGGLE_CONTROLS] = targets.join(' '); // ensure aria-controls is up to date\n\n setAttr(el, 'aria-controls', el[BV_TOGGLE_CONTROLS]); // Request a state update from targets so that we can ensure\n // expanded state is correct\n\n targets.forEach(function (target) {\n vnode.context.$root.$emit(EVENT_STATE_REQUEST, target);\n });\n } // Ensure the collapse class and aria-* attributes persist\n // after element is updated (either by parent re-rendering\n // or changes to this element or it's contents\n\n\n if (el[BV_TOGGLE_STATE] === true) {\n addClass(el, 'collapsed');\n setAttr(el, 'aria-expanded', 'true');\n } else if (el[BV_TOGGLE_STATE] === false) {\n removeClass(el, 'collapsed');\n setAttr(el, 'aria-expanded', 'false');\n }\n\n setAttr(el, 'aria-controls', el[BV_TOGGLE_CONTROLS]);\n};\n/*\n * Export our directive\n */\n\n\nexport var VBToggle = {\n bind: function bind(el, binding, vnode) {\n var targets = bindTargets(vnode, binding, listenTypes, handleTargets);\n\n if (isBrowser && vnode.context && targets.length > 0) {\n // Add targets array to element\n el[BV_TOGGLE_TARGETS] = targets; // Add aria attributes to element\n\n el[BV_TOGGLE_CONTROLS] = targets.join(' '); // State is initially collapsed until we receive a state event\n\n el[BV_TOGGLE_STATE] = false;\n setAttr(el, 'aria-controls', el[BV_TOGGLE_CONTROLS]);\n setAttr(el, 'aria-expanded', 'false'); // If element is not a button, we add `role=\"button\"` for accessibility\n\n if (el.tagName !== 'BUTTON' && !hasAttr(el, 'role')) {\n setAttr(el, 'role', 'button');\n } // Toggle state handler\n\n\n var toggleDirectiveHandler = function toggleDirectiveHandler(id, state) {\n var targets = el[BV_TOGGLE_TARGETS] || [];\n\n if (targets.indexOf(id) !== -1) {\n // Set aria-expanded state\n setAttr(el, 'aria-expanded', state ? 'true' : 'false'); // Set/Clear 'collapsed' class state\n\n el[BV_TOGGLE_STATE] = state;\n\n if (state) {\n removeClass(el, 'collapsed');\n } else {\n addClass(el, 'collapsed');\n }\n }\n }; // Store the toggle handler on the element\n\n\n el[BV_TOGGLE] = toggleDirectiveHandler; // Listen for toggle state changes (public)\n\n vnode.context.$root.$on(EVENT_STATE, el[BV_TOGGLE]); // Listen for toggle state sync (private)\n\n vnode.context.$root.$on(EVENT_STATE_SYNC, el[BV_TOGGLE]);\n }\n },\n componentUpdated: handleUpdate,\n updated: handleUpdate,\n unbind: function unbind(el, binding, vnode)\n /* istanbul ignore next */\n {\n unbindTargets(vnode, binding, listenTypes); // Remove our $root listener\n\n if (el[BV_TOGGLE]) {\n vnode.context.$root.$off(EVENT_STATE, el[BV_TOGGLE]);\n vnode.context.$root.$off(EVENT_STATE_SYNC, el[BV_TOGGLE]);\n } // Reset custom props\n\n\n resetProp(el, BV_TOGGLE);\n resetProp(el, BV_TOGGLE_STATE);\n resetProp(el, BV_TOGGLE_CONTROLS);\n resetProp(el, BV_TOGGLE_TARGETS); // Reset classes/attrs\n\n removeClass(el, 'collapsed');\n removeAttr(el, 'aria-expanded');\n removeAttr(el, 'aria-controls');\n removeAttr(el, 'role');\n }\n};","import { BCollapse } from './collapse';\nimport { VBToggle } from '../../directives/toggle/toggle';\nimport { pluginFactory } from '../../utils/plugins';\nvar CollapsePlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BCollapse: BCollapse\n },\n directives: {\n VBToggle: VBToggle\n }\n});\nexport { CollapsePlugin, BCollapse };","/**\n * SSR safe types\n */\nimport { hasWindowSupport } from './env';\nvar w = hasWindowSupport ? window : {};\nexport var HTMLElement = w.HTMLElement || Object;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { assign, defineProperty, defineProperties, readonlyDescriptor } from './object';\n\nvar BvEvent =\n/*#__PURE__*/\nfunction () {\n function BvEvent(type) {\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvEvent);\n\n // Start by emulating native Event constructor\n if (!type) {\n /* istanbul ignore next */\n throw new TypeError(\"Failed to construct '\".concat(this.constructor.name, \"'. 1 argument required, \").concat(arguments.length, \" given.\"));\n } // Merge defaults first, the eventInit, and the type last\n // so it can't be overwritten\n\n\n assign(this, BvEvent.Defaults, this.constructor.Defaults, eventInit, {\n type: type\n }); // Freeze some props as readonly, but leave them enumerable\n\n defineProperties(this, {\n type: readonlyDescriptor(),\n cancelable: readonlyDescriptor(),\n nativeEvent: readonlyDescriptor(),\n target: readonlyDescriptor(),\n relatedTarget: readonlyDescriptor(),\n vueTarget: readonlyDescriptor(),\n componentId: readonlyDescriptor()\n }); // Create a private variable using closure scoping\n\n var defaultPrevented = false; // Recreate preventDefault method. One way setter\n\n this.preventDefault = function preventDefault() {\n if (this.cancelable) {\n defaultPrevented = true;\n }\n }; // Create `defaultPrevented` publicly accessible prop that\n // can only be altered by the preventDefault method\n\n\n defineProperty(this, 'defaultPrevented', {\n enumerable: true,\n get: function get() {\n return defaultPrevented;\n }\n });\n }\n\n _createClass(BvEvent, null, [{\n key: \"Defaults\",\n get: function get() {\n return {\n type: '',\n cancelable: true,\n nativeEvent: null,\n target: null,\n relatedTarget: null,\n vueTarget: null,\n componentId: null\n };\n }\n }]);\n\n return BvEvent;\n}(); // Named Exports\n\n\nexport { BvEvent };","import { contains, eventOff, eventOn } from '../utils/dom'; // @vue/component\n\nexport default {\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'ontouchstart' in document.documentElement ? 'touchstart' : 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false);\n }\n },\n beforeDestroy: function beforeDestroy()\n /* istanbul ignore next */\n {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false);\n },\n methods: {\n isClickOut: function isClickOut(evt) {\n return !contains(this.$el, evt.target);\n },\n _clickOutHandler: function _clickOutHandler(evt) {\n if (this.clickOutHandler && this.isClickOut(evt)) {\n this.clickOutHandler(evt);\n }\n }\n }\n};","import { eventOff, eventOn } from '../utils/dom'; // @vue/component\n\nexport default {\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, false);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, false);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, false);\n }\n },\n beforeDestroy: function beforeDestroy()\n /* istanbul ignore next */\n {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, false);\n },\n methods: {\n _focusInHandler: function _focusInHandler(evt) {\n if (this.focusInHandler) {\n this.focusInHandler(evt);\n }\n }\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Popper from 'popper.js';\nimport { BvEvent } from '../utils/bv-event.class';\nimport KeyCodes from '../utils/key-codes';\nimport warn from '../utils/warn';\nimport { closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { isNull } from '../utils/inspect';\nimport clickOutMixin from './click-out';\nimport focusInMixin from './focus-in'; // Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // Dropdown item CSS selectors\n\n\nvar Selector = {\n FORM_CHILD: '.dropdown form',\n ITEM_SELECTOR: ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n }).join(', ')\n}; // Popper attachment positions\n\nvar AttachmentMap = {\n // Dropup left align\n TOP: 'top-start',\n // Dropup right align\n TOPEND: 'top-end',\n // Dropdown left align\n BOTTOM: 'bottom-start',\n // Dropdown right align\n BOTTOMEND: 'bottom-end',\n // Dropright left align\n RIGHT: 'right-start',\n // Dropright right align\n RIGHTEND: 'right-end',\n // Dropleft left align\n LEFT: 'left-start',\n // Dropleft right align\n LEFTEND: 'left-end'\n}; // @vue/component\n\nexport default {\n mixins: [clickOutMixin, focusInMixin],\n provide: function provide() {\n return {\n bvDropdown: this\n };\n },\n props: {\n disabled: {\n type: Boolean,\n default: false\n },\n text: {\n // Button label\n type: String,\n default: ''\n },\n html: {\n // Button label\n type: String\n },\n dropup: {\n // place on top if possible\n type: Boolean,\n default: false\n },\n dropright: {\n // place right if possible\n type: Boolean,\n default: false\n },\n dropleft: {\n // place left if possible\n type: Boolean,\n default: false\n },\n right: {\n // Right align menu (default is left align)\n type: Boolean,\n default: false\n },\n offset: {\n // Number of pixels to offset menu, or a CSS unit value (i.e. 1px, 1rem, etc)\n type: [Number, String],\n default: 0\n },\n noFlip: {\n // Disable auto-flipping of menu from bottom<=>top\n type: Boolean,\n default: false\n },\n lazy: {\n // If true, only render menu contents when open\n type: Boolean,\n default: false\n },\n popperOpts: {\n // type: Object,\n default: function _default() {}\n }\n },\n data: function data() {\n return {\n visible: false,\n inNavbar: null,\n visibleChangePrevented: false\n };\n },\n computed: {\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var evtName = newValue ? 'show' : 'hide';\n var bvEvt = new BvEvent(evtName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null\n });\n this.emitEvent(bvEvt);\n\n if (bvEvt.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered this.hide(true)\n\n this.$off('hidden', this.focusToggler);\n return;\n }\n\n if (evtName === 'show') {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create non-reactive property\n this._popper = null;\n },\n deactivated: function deactivated()\n /* istanbul ignore next: not easy to test */\n {\n // In case we are inside a `<keep-alive>`\n this.visible = false;\n this.whileOpenListen(false);\n this.removePopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.removePopper();\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvt) {\n var type = bvEvt.type;\n this.$emit(type, bvEvt);\n this.$root.$emit(\"bv::dropdown::\".concat(type), bvEvt);\n },\n showMenu: function showMenu() {\n var _this = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Ensure other menus are closed\n\n\n this.$root.$emit('bv::dropdown::shown', this); // Are we in a navbar ?\n\n if (isNull(this.inNavbar) && this.isNav) {\n // We should use an injection for this\n\n /* istanbul ignore next */\n this.inNavbar = Boolean(closest('.navbar', this.$el));\n } // Disable totally Popper.js for Dropdown in Navbar\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('b-dropdown: Popper.js not found. Falling back to CSS positioning.');\n } else {\n // for dropup with alignment we use the parent element as popper container\n var element = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\n\n element = element.$el || element; // Instantiate popper.js\n\n this.createPopper(element);\n }\n }\n\n this.whileOpenListen(true); // Wrap in nextTick to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this.focusMenu(); // Emit the shown event\n\n\n _this.$emit('shown');\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.$root.$emit('bv::dropdown::hidden', this);\n this.$emit('hidden');\n this.removePopper();\n },\n createPopper: function createPopper(element) {\n this.removePopper();\n this._popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n removePopper: function removePopper() {\n if (this._popper) {\n // Ensure popper event listeners are removed cleanly\n this._popper.destroy();\n }\n\n this._popper = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = AttachmentMap.BOTTOM;\n\n if (this.dropup) {\n placement = this.right ? AttachmentMap.TOPEND : AttachmentMap.TOP;\n } else if (this.dropright) {\n placement = AttachmentMap.RIGHT;\n } else if (this.dropleft) {\n placement = AttachmentMap.LEFT;\n } else if (this.right) {\n placement = AttachmentMap.BOTTOMEND;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n\n if (this.boundary) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: this.boundary\n };\n }\n\n return _objectSpread({}, popperConfig, {}, this.popperOpts || {});\n },\n whileOpenListen: function whileOpenListen(open) {\n // turn listeners on/off while open\n if (open) {\n // If another dropdown is opened\n this.$root.$on('bv::dropdown::shown', this.rootCloseListener); // Hide the dropdown when clicked outside\n\n this.listenForClickOut = true; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = true;\n } else {\n this.$root.$off('bv::dropdown::shown', this.rootCloseListener);\n this.listenForClickOut = false;\n this.listenForFocusIn = false;\n }\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n show: function show() {\n var _this2 = this;\n\n // Public method to show dropdown\n if (this.disabled) {\n return;\n } // Wrap in a requestAnimationFrame to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this2.visible = true;\n });\n },\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n // Public method to hide dropdown\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once('hidden', this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(evt) {\n evt = evt || {};\n var type = evt.type;\n var key = evt.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && (key === KeyCodes.ENTER || key === KeyCodes.SPACE || key === KeyCodes.DOWN))) {\n // We only toggle on Click, Enter, Space, and Arrow Down\n\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit('toggle', evt);\n evt.preventDefault();\n evt.stopPropagation(); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Called only in split button mode, for the split button\n click: function click(evt) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit('click', evt);\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(evt) {\n var key = evt.keyCode;\n\n if (key === KeyCodes.ESC) {\n // Close on ESC\n this.onEsc(evt);\n } else if (key === KeyCodes.DOWN) {\n // Down Arrow\n this.focusNext(evt, false);\n } else if (key === KeyCodes.UP) {\n // Up Arrow\n this.focusNext(evt, true);\n }\n },\n onEsc: function onEsc(evt) {\n if (this.visible) {\n this.visible = false;\n evt.preventDefault();\n evt.stopPropagation(); // Return focus to original trigger button\n\n this.$once('hidden', this.focusToggler);\n }\n },\n // Document click out listener\n clickOutHandler: function clickOutHandler() {\n if (this.visible) {\n this.visible = false;\n }\n },\n // Document focusin listener\n focusInHandler: function focusInHandler(evt) {\n var target = evt.target; // If focus leaves dropdown, hide it\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.visible = false;\n }\n },\n // Keyboard nav\n focusNext: function focusNext(evt, up) {\n var _this3 = this;\n\n // Ignore key up/down on form elements\n if (!this.visible || evt && closest(Selector.FORM_CHILD, evt.target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n evt.preventDefault();\n evt.stopPropagation();\n this.$nextTick(function () {\n var items = _this3.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(evt.target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this3.focusItem(index, items);\n });\n },\n focusItem: function focusItem(idx, items) {\n var el = items.find(function (el, i) {\n return i === idx;\n });\n\n if (el && el.focus) {\n el.focus();\n }\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(Selector.ITEM_SELECTOR, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n this.$refs.menu.focus && this.$refs.menu.focus();\n },\n focusToggler: function focusToggler() {\n var _this4 = this;\n\n this.$nextTick(function () {\n var toggler = _this4.toggler;\n\n if (toggler && toggler.focus) {\n toggler.focus();\n }\n });\n }\n }\n};","import Vue from '../../utils/vue';\nimport { arrayIncludes } from '../../utils/array';\nimport { stripTags } from '../../utils/html';\nimport { getComponentConfig } from '../../utils/config';\nimport { HTMLElement } from '../../utils/safe-types';\nimport idMixin from '../../mixins/id';\nimport dropdownMixin from '../../mixins/dropdown';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport { BButton } from '../button/button';\nvar NAME = 'BDropdown';\nexport var props = {\n toggleText: {\n // This really should be toggleLabel\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'toggleText');\n }\n },\n size: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'size');\n }\n },\n variant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'variant');\n }\n },\n menuClass: {\n type: [String, Array],\n default: null\n },\n toggleTag: {\n type: String,\n default: 'button'\n },\n toggleClass: {\n type: [String, Array],\n default: null\n },\n noCaret: {\n type: Boolean,\n default: false\n },\n split: {\n type: Boolean,\n default: false\n },\n splitHref: {\n type: String // default: undefined\n\n },\n splitTo: {\n type: [String, Object] // default: undefined\n\n },\n splitVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'splitVariant');\n }\n },\n splitButtonType: {\n type: String,\n default: 'button',\n validator: function validator(value) {\n return arrayIncludes(['button', 'submit', 'reset'], value);\n }\n },\n role: {\n type: String,\n default: 'menu'\n },\n boundary: {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n type: [String, HTMLElement],\n default: 'scrollParent'\n }\n}; // @vue/component\n\nexport var BDropdown =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n dropdownClasses: function dropdownClasses() {\n return [this.directionClass, {\n show: this.visible,\n // Position `static` is needed to allow menu to \"breakout\" of the scrollParent boundaries\n // when boundary is anything other than `scrollParent`\n // See https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n 'position-static': this.boundary !== 'scrollParent' || !this.boundary\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n return [this.toggleClass, {\n 'dropdown-toggle-split': this.split,\n 'dropdown-toggle-no-caret': this.noCaret && !this.split\n }];\n }\n },\n render: function render(h) {\n var split = h();\n var buttonContent = this.normalizeSlot('button-content') || this.html || stripTags(this.text);\n\n if (this.split) {\n var btnProps = {\n disabled: this.disabled,\n variant: this.splitVariant || this.variant,\n size: this.size\n }; // We add these as needed due to router-link issues with defined property with undefined/null values\n\n if (this.splitTo) {\n btnProps.to = this.splitTo;\n } else if (this.splitHref) {\n btnProps.href = this.splitHref;\n } else if (this.splitButtonType) {\n btnProps.type = this.splitButtonType;\n }\n\n split = h(BButton, {\n ref: 'button',\n props: btnProps,\n attrs: {\n id: this.safeId('_BV_button_')\n },\n on: {\n click: this.click\n }\n }, [buttonContent]);\n }\n\n var toggle = h(BButton, {\n ref: 'toggle',\n staticClass: 'dropdown-toggle',\n class: this.toggleClasses,\n props: {\n variant: this.variant,\n size: this.size,\n disabled: this.disabled,\n tag: this.toggleTag\n },\n attrs: {\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': this.visible ? 'true' : 'false'\n },\n on: {\n click: this.toggle,\n // click\n keydown: this.toggle // enter, space, down\n\n }\n }, [this.split ? h('span', {\n class: ['sr-only']\n }, [this.toggleText]) : buttonContent]);\n var menu = h('ul', {\n ref: 'menu',\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n role: this.role,\n tabindex: '-1',\n 'aria-labelledby': this.safeId(this.split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n keydown: this.onKeydown // up, down, esc\n\n }\n }, !this.lazy || this.visible ? this.normalizeSlot('default', {\n hide: this.hide\n }) : [h()]);\n return h('div', {\n staticClass: 'dropdown btn-group b-dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [split, toggle, menu]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { requestAF } from '../../utils/dom';\nimport nomalizeSlotMixin from '../../mixins/normalize-slot';\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link';\nexport var props = linkPropsFactory(); // @vue/component\n\nexport var BDropdownItem =\n/*#__PURE__*/\nVue.extend({\n name: 'BDropdownItem',\n mixins: [nomalizeSlotMixin],\n inheritAttrs: false,\n inject: {\n bvDropdown: {\n default: null\n }\n },\n props: _objectSpread({}, props, {\n variant: {\n type: String,\n default: null\n }\n }),\n methods: {\n closeDropdown: function closeDropdown() {\n var _this = this;\n\n // Close on next animation frame to allow <b-link> time to process\n requestAF(function () {\n if (_this.bvDropdown) {\n _this.bvDropdown.hide(true);\n }\n });\n },\n onClick: function onClick(evt) {\n this.$emit('click', evt);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n return h('li', {\n attrs: {\n role: 'presentation'\n }\n }, [h(BLink, {\n props: this.$props,\n staticClass: 'dropdown-item',\n class: _defineProperty({}, \"text-\".concat(this.variant), this.variant && !(this.active || this.disabled)),\n attrs: _objectSpread({}, this.$attrs, {\n role: 'menuitem'\n }),\n on: {\n click: this.onClick\n },\n ref: 'item'\n }, this.normalizeSlot('default'))]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport nomalizeSlotMixin from '../../mixins/normalize-slot';\nexport var props = {\n active: {\n type: Boolean,\n default: false\n },\n activeClass: {\n type: String,\n default: 'active'\n },\n disabled: {\n type: Boolean,\n default: false\n },\n variant: {\n type: String,\n default: null\n }\n}; // @vue/component\n\nexport var BDropdownItemButton =\n/*#__PURE__*/\nVue.extend({\n name: 'BDropdownItemButton',\n mixins: [nomalizeSlotMixin],\n inheritAttrs: false,\n inject: {\n bvDropdown: {\n default: null\n }\n },\n props: props,\n methods: {\n closeDropdown: function closeDropdown() {\n if (this.bvDropdown) {\n this.bvDropdown.hide(true);\n }\n },\n onClick: function onClick(evt) {\n this.$emit('click', evt);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var _class;\n\n return h('li', {\n attrs: {\n role: 'presentation'\n }\n }, [h('button', {\n staticClass: 'dropdown-item',\n class: (_class = {}, _defineProperty(_class, this.activeClass, this.active), _defineProperty(_class, \"text-\".concat(this.variant), this.variant && !(this.active || this.disabled)), _class),\n attrs: _objectSpread({}, this.$attrs, {\n role: 'menuitem',\n type: 'button',\n disabled: this.disabled\n }),\n on: {\n click: this.onClick\n },\n ref: 'button'\n }, this.normalizeSlot('default'))]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'header'\n },\n variant: {\n type: String,\n default: null\n }\n}; // @vue/component\n\nexport var BDropdownHeader =\n/*#__PURE__*/\nVue.extend({\n name: 'BDropdownHeader',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var $attrs = data.attrs || {};\n data.attrs = {};\n return h('li', mergeData(data, {\n attrs: {\n role: 'presentation'\n }\n }), [h(props.tag, {\n staticClass: 'dropdown-header',\n class: _defineProperty({}, \"text-\".concat(props.variant), props.variant),\n attrs: _objectSpread({}, $attrs, {\n id: props.id || null,\n role: 'heading'\n }),\n ref: 'header'\n }, children)]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n tag: {\n type: String,\n default: 'hr'\n }\n}; // @vue/component\n\nexport var BDropdownDivider =\n/*#__PURE__*/\nVue.extend({\n name: 'BDropdownDivider',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var $attrs = data.attrs || {};\n data.attrs = {};\n return h('li', mergeData(data, {\n attrs: {\n role: 'presentation'\n }\n }), [h(props.tag, {\n staticClass: 'dropdown-divider',\n attrs: _objectSpread({}, $attrs, {\n role: 'separator',\n 'aria-orientation': 'horizontal'\n }),\n ref: 'divider'\n })]);\n }\n});","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n id: {\n type: String,\n default: null\n },\n inline: {\n type: Boolean,\n default: false\n },\n novalidate: {\n type: Boolean,\n default: false\n },\n validated: {\n type: Boolean,\n default: false\n }\n}; // @vue/component\n\nexport var BForm =\n/*#__PURE__*/\nVue.extend({\n name: 'BForm',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { BForm, props as formProps } from '../form/form';\nexport var BDropdownForm =\n/*#__PURE__*/\nVue.extend({\n name: 'BDropdownForm',\n functional: true,\n props: _objectSpread({}, formProps, {\n disabled: {\n type: Boolean,\n default: false\n }\n }),\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var $attrs = data.attrs || {};\n var $listeners = data.on || {};\n data.attrs = {};\n data.on = {};\n return h('li', mergeData(data, {\n attrs: {\n role: 'presentation'\n }\n }), [h(BForm, {\n ref: 'form',\n staticClass: 'b-dropdown-form',\n class: {\n disabled: props.disabled\n },\n props: props,\n attrs: _objectSpread({}, $attrs, {\n disabled: props.disabled,\n // Tab index of -1 for keyboard navigation\n tabindex: props.disabled ? null : '-1'\n }),\n on: $listeners\n }, children)]);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge'; // @vue/component\n\nexport var BDropdownText =\n/*#__PURE__*/\nVue.extend({\n name: 'BDropdownText',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'p'\n },\n variant: {\n type: String,\n default: null\n }\n },\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var $attrs = data.attrs || {};\n data.attrs = {};\n return h('li', mergeData(data, {\n attrs: {\n role: 'presentation'\n }\n }), [h(props.tag, {\n staticClass: 'b-dropdown-text',\n class: _defineProperty({}, \"text-\".concat(props.variant), props.variant),\n props: props,\n attrs: $attrs,\n ref: 'text'\n }, children)]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nexport var props = {\n id: {\n type: String,\n default: null\n },\n header: {\n type: String,\n default: null\n },\n headerTag: {\n type: String,\n default: 'header'\n },\n headerVariant: {\n type: String,\n default: null\n },\n headerClasses: {\n type: [String, Array, Object],\n default: null\n },\n ariaDescribedby: {\n type: String,\n default: null\n }\n}; // @vue/component\n\nexport var BDropdownGroup =\n/*#__PURE__*/\nVue.extend({\n name: 'BDropdownGroup',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var $attrs = data.attrs || {};\n data.attrs = {};\n var header;\n var headerId = null;\n\n if (hasNormalizedSlot('header', $scopedSlots, $slots) || props.header) {\n headerId = props.id ? \"_bv_\".concat(props.id, \"_group_dd_header\") : null;\n header = h(props.headerTag, {\n staticClass: 'dropdown-header',\n class: [props.headerClasses, _defineProperty({}, \"text-\".concat(props.variant), props.variant)],\n attrs: {\n id: headerId,\n role: 'heading'\n }\n }, normalizeSlot('header', {}, $scopedSlots, $slots) || props.header);\n }\n\n var adb = [headerId, props.ariaDescribedBy].filter(Boolean).join(' ').trim();\n return h('li', mergeData(data, {\n attrs: {\n role: 'presentation'\n }\n }), [header || h(), h('ul', {\n staticClass: 'list-unstyled',\n attrs: _objectSpread({}, $attrs, {\n id: props.id || null,\n role: 'group',\n 'aria-describedby': adb || null\n })\n }, normalizeSlot('default', {}, $scopedSlots, $slots))]);\n }\n});","import { BDropdown } from './dropdown';\nimport { BDropdownItem } from './dropdown-item';\nimport { BDropdownItemButton } from './dropdown-item-button';\nimport { BDropdownHeader } from './dropdown-header';\nimport { BDropdownDivider } from './dropdown-divider';\nimport { BDropdownForm } from './dropdown-form';\nimport { BDropdownText } from './dropdown-text';\nimport { BDropdownGroup } from './dropdown-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar DropdownPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BDropdown: BDropdown,\n BDd: BDropdown,\n BDropdownItem: BDropdownItem,\n BDdItem: BDropdownItem,\n BDropdownItemButton: BDropdownItemButton,\n BDropdownItemBtn: BDropdownItemButton,\n BDdItemButton: BDropdownItemButton,\n BDdItemBtn: BDropdownItemButton,\n BDropdownHeader: BDropdownHeader,\n BDdHeader: BDropdownHeader,\n BDropdownDivider: BDropdownDivider,\n BDdDivider: BDropdownDivider,\n BDropdownForm: BDropdownForm,\n BDdForm: BDropdownForm,\n BDropdownText: BDropdownText,\n BDdText: BDropdownText,\n BDropdownGroup: BDropdownGroup,\n BDdGroup: BDropdownGroup\n }\n});\nexport { DropdownPlugin, BDropdown, BDropdownItem, BDropdownItemButton, BDropdownHeader, BDropdownDivider, BDropdownForm, BDropdownText, BDropdownGroup };","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { arrayIncludes } from '../../utils/array';\nexport var props = {\n type: {\n type: String,\n default: 'iframe',\n validator: function validator(str) {\n return arrayIncludes(['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy'], str);\n }\n },\n tag: {\n type: String,\n default: 'div'\n },\n aspect: {\n type: String,\n default: '16by9'\n }\n}; // @vue/component\n\nexport var BEmbed =\n/*#__PURE__*/\nVue.extend({\n name: 'BEmbed',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, {\n ref: data.ref,\n staticClass: 'embed-responsive',\n class: _defineProperty({}, \"embed-responsive-\".concat(props.aspect), Boolean(props.aspect))\n }, [h(props.type, mergeData(data, {\n ref: '',\n staticClass: 'embed-responsive-item'\n }), children)]);\n }\n});","import { BEmbed } from './embed';\nimport { pluginFactory } from '../../utils/plugins';\nvar EmbedPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BEmbed: BEmbed\n }\n});\nexport { EmbedPlugin, BEmbed };","import { stripTags } from '../utils/html';\nimport { isArray, isPlainObject, isUndefined } from '../utils/inspect';\nimport { keys } from '../utils/object'; // @vue/component\n\nexport default {\n props: {\n options: {\n type: [Array, Object],\n default: function _default() {\n return [];\n }\n },\n valueField: {\n type: String,\n default: 'value'\n },\n textField: {\n type: String,\n default: 'text'\n },\n htmlField: {\n type: String,\n default: 'html'\n },\n disabledField: {\n type: String,\n default: 'disabled'\n }\n },\n computed: {\n formOptions: function formOptions() {\n var options = this.options;\n var valueField = this.valueField;\n var textField = this.textField;\n var htmlField = this.htmlField;\n var disabledField = this.disabledField;\n\n if (isArray(options)) {\n // Normalize flat-ish arrays to Array of Objects\n return options.map(function (option) {\n if (isPlainObject(option)) {\n var value = option[valueField];\n var text = String(option[textField]);\n return {\n value: isUndefined(value) ? text : value,\n text: stripTags(text),\n html: option[htmlField],\n disabled: Boolean(option[disabledField])\n };\n }\n\n return {\n value: option,\n text: stripTags(String(option)),\n disabled: false\n };\n });\n } else {\n // options is Object\n // Normalize Objects to Array of Objects\n return keys(options).map(function (key) {\n var option = options[key] || {};\n\n if (isPlainObject(option)) {\n var value = option[valueField];\n var text = option[textField];\n return {\n value: isUndefined(value) ? key : value,\n text: isUndefined(text) ? stripTags(String(key)) : stripTags(String(text)),\n html: option[htmlField],\n disabled: Boolean(option[disabledField])\n };\n }\n\n return {\n value: key,\n text: stripTags(String(option)),\n disabled: false\n };\n });\n }\n }\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport formOptionsMixin from '../../mixins/form-options';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport { htmlOrText } from '../../utils/html'; // @vue/component\n\nexport var BFormDatalist =\n/*#__PURE__*/\nVue.extend({\n name: 'BFormDatalist',\n mixins: [formOptionsMixin, normalizeSlotMixin],\n props: {\n id: {\n type: String,\n default: null,\n required: true\n }\n },\n render: function render(h) {\n var options = this.formOptions.map(function (option, index) {\n return h('option', {\n key: \"option_\".concat(index, \"_opt\"),\n attrs: {\n disabled: option.disabled\n },\n domProps: _objectSpread({}, htmlOrText(option.html, option.text), {\n value: option.value\n })\n });\n });\n return h('datalist', {\n attrs: {\n id: this.id\n }\n }, [options, this.normalizeSlot('default')]);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { getComponentConfig } from '../../utils/config';\nvar NAME = 'BFormText';\nexport var props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'small'\n },\n textVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'textVariant');\n }\n },\n inline: {\n type: Boolean,\n default: false\n }\n}; // @vue/component\n\nexport var BFormText =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n 'form-text': !props.inline\n }, \"text-\".concat(props.textVariant), Boolean(props.textVariant)),\n attrs: {\n id: props.id\n }\n }), children);\n }\n});","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n },\n tooltip: {\n type: Boolean,\n default: false\n },\n forceShow: {\n type: Boolean,\n default: false\n },\n state: {\n type: Boolean,\n default: null\n },\n ariaLive: {\n type: String,\n default: null\n },\n role: {\n type: String,\n default: null\n }\n}; // @vue/component\n\nexport var BFormInvalidFeedback =\n/*#__PURE__*/\nVue.extend({\n name: 'BFormInvalidFeedback',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var show = props.forceShow === true || props.state === false;\n return h(props.tag, mergeData(data, {\n class: {\n 'invalid-feedback': !props.tooltip,\n 'invalid-tooltip': props.tooltip,\n 'd-block': show\n },\n attrs: {\n id: props.id,\n role: props.role,\n 'aria-live': props.ariaLive,\n 'aria-atomic': props.ariaLive ? 'true' : null\n }\n }), children);\n }\n});","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n },\n tooltip: {\n type: Boolean,\n default: false\n },\n forceShow: {\n type: Boolean,\n default: false\n },\n state: {\n type: Boolean,\n default: null\n },\n ariaLive: {\n type: String,\n default: null\n },\n role: {\n type: String,\n default: null\n }\n}; // @vue/component\n\nexport var BFormValidFeedback =\n/*#__PURE__*/\nVue.extend({\n name: 'BFormValidFeedback',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var show = props.forceShow === true || props.state === true;\n return h(props.tag, mergeData(data, {\n class: {\n 'valid-feedback': !props.tooltip,\n 'valid-tooltip': props.tooltip,\n 'd-block': show\n },\n attrs: {\n id: props.id,\n role: props.role,\n 'aria-live': props.ariaLive,\n 'aria-atomic': props.ariaLive ? 'true' : null\n }\n }), children);\n }\n});","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n }\n}; // @vue/component\n\nexport var BFormRow =\n/*#__PURE__*/\nVue.extend({\n name: 'BFormRow',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'form-row'\n }), children);\n }\n});","import { BForm } from './form';\nimport { BFormDatalist } from './form-datalist';\nimport { BFormText } from './form-text';\nimport { BFormInvalidFeedback } from './form-invalid-feedback';\nimport { BFormValidFeedback } from './form-valid-feedback';\nimport { BFormRow } from '../layout/form-row';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BForm: BForm,\n BFormDatalist: BFormDatalist,\n BDatalist: BFormDatalist,\n BFormText: BFormText,\n BFormInvalidFeedback: BFormInvalidFeedback,\n BFormFeedback: BFormInvalidFeedback,\n BFormValidFeedback: BFormValidFeedback,\n // Added here for convenience\n BFormRow: BFormRow\n }\n}); // BFormRow is not exported here as a named export, as it is exported by Layout\n\nexport { FormPlugin, BForm, BFormDatalist, BFormText, BFormInvalidFeedback, BFormValidFeedback };","/* Form control contextual state class computation\n *\n * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop\n * state can be one of five values:\n * - true for is-valid\n * - false for is-invalid\n * - null for no contextual state\n */\nimport { isBoolean } from '../utils/inspect'; // @vue/component\n\nexport default {\n props: {\n state: {\n // Tri-state prop: true, false, null (or undefined)\n type: Boolean,\n default: null\n }\n },\n computed: {\n computedState: function computedState() {\n // If not a boolean, ensure that value is null\n return isBoolean(this.state) ? this.state : null;\n },\n stateClass: function stateClass() {\n var state = this.computedState;\n\n if (state === true) {\n return 'is-valid';\n } else if (state === false) {\n return 'is-invalid';\n }\n\n return null;\n }\n }\n};","import upperFirst from './upper-first';\n/**\n * Suffix can be a falsey value so nothing is appended to string.\n * (helps when looping over props & some shouldn't change)\n * Use data last parameters to allow for currying.\n * @param {string} suffix\n * @param {string} str\n */\n\nvar suffixPropName = function suffixPropName(suffix, str) {\n return str + (suffix ? upperFirst(suffix) : '');\n};\n\nexport default suffixPropName;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport memoize from '../../utils/memoize';\nimport suffixPropName from '../../utils/suffix-prop-name';\nimport { arrayIncludes } from '../../utils/array';\nimport { isUndefined, isNull } from '../../utils/inspect';\nimport { keys, assign, create } from '../../utils/object';\nimport { getBreakpointsUpCached } from '../../utils/config'; // Generates a prop object with a type of `[Boolean, String, Number]`\n\nvar boolStrNum = function boolStrNum() {\n return {\n type: [Boolean, String, Number],\n default: false\n };\n}; // Generates a prop object with a type of `[String, Number]`\n\n\nvar strNum = function strNum() {\n return {\n type: [String, Number],\n default: null\n };\n}; // Compute a breakpoint class name\n\n\nvar computeBreakpoint = function computeBreakpoint(type, breakpoint, val) {\n var className = type;\n\n if (isUndefined(val) || isNull(val) || val === false) {\n return undefined;\n }\n\n if (breakpoint) {\n className += \"-\".concat(breakpoint);\n } // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert <b-col sm></b-col> to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n\n\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase();\n } // .order-md-6\n\n\n className += \"-\".concat(val);\n return className.toLowerCase();\n}; // Memoized function for better performance on generating class names\n\n\nvar computeBreakpointClass = memoize(computeBreakpoint); // Cached copy of the breakpoint prop names\n\nvar breakpointPropMap = create(null); // Lazy evaled props factory for BCol\n\nvar generateProps = function generateProps() {\n // Grab the breakpoints from the cached config (exclude the '' (xs) breakpoint)\n var breakpoints = getBreakpointsUpCached().filter(Boolean); // Supports classes like: .col-sm, .col-md-6, .col-lg-auto\n\n var breakpointCol = breakpoints.reduce(function (propMap, breakpoint) {\n if (breakpoint) {\n // We filter out the '' breakpoint (xs), as making a prop name ''\n // would not work. The `cols` prop is used for `xs`\n propMap[breakpoint] = boolStrNum();\n }\n\n return propMap;\n }, create(null)); // Supports classes like: .offset-md-1, .offset-lg-12\n\n var breakpointOffset = breakpoints.reduce(function (propMap, breakpoint) {\n propMap[suffixPropName(breakpoint, 'offset')] = strNum();\n return propMap;\n }, create(null)); // Supports classes like: .order-md-1, .order-lg-12\n\n var breakpointOrder = breakpoints.reduce(function (propMap, breakpoint) {\n propMap[suffixPropName(breakpoint, 'order')] = strNum();\n return propMap;\n }, create(null)); // For loop doesn't need to check hasOwnProperty\n // when using an object created from null\n\n breakpointPropMap = assign(create(null), {\n col: keys(breakpointCol),\n offset: keys(breakpointOffset),\n order: keys(breakpointOrder)\n }); // Return the generated props\n\n return _objectSpread({\n // Generic flexbox .col (xs)\n col: {\n type: Boolean,\n default: false\n },\n // .col-[1-12]|auto (xs)\n cols: strNum()\n }, breakpointCol, {\n offset: strNum()\n }, breakpointOffset, {\n order: strNum()\n }, breakpointOrder, {\n // Flex alignment\n alignSelf: {\n type: String,\n default: null,\n validator: function validator(str) {\n return arrayIncludes(['auto', 'start', 'end', 'center', 'baseline', 'stretch'], str);\n }\n },\n tag: {\n type: String,\n default: 'div'\n }\n });\n}; // We do not use Vue.extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\n\nexport var BCol = {\n name: 'BCol',\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var classList = []; // Loop through `col`, `offset`, `order` breakpoint props\n\n for (var type in breakpointPropMap) {\n // Returns colSm, offset, offsetSm, orderMd, etc.\n var _keys = breakpointPropMap[type];\n\n for (var i = 0; i < _keys.length; i++) {\n // computeBreakpoint(col, colSm => Sm, value=[String, Number, Boolean])\n var c = computeBreakpointClass(type, _keys[i].replace(type, ''), props[_keys[i]]); // If a class is returned, push it onto the array.\n\n if (c) {\n classList.push(c);\n }\n }\n }\n\n var hasColClasses = classList.some(function (className) {\n return /^col-/.test(className);\n });\n classList.push((_classList$push = {\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: props.col || !hasColClasses && !props.cols\n }, _defineProperty(_classList$push, \"col-\".concat(props.cols), props.cols), _defineProperty(_classList$push, \"offset-\".concat(props.offset), props.offset), _defineProperty(_classList$push, \"order-\".concat(props.order), props.order), _defineProperty(_classList$push, \"align-self-\".concat(props.alignSelf), props.alignSelf), _classList$push));\n return h(props.tag, mergeData(data, {\n class: classList\n }), children);\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Utils\nimport memoize from '../../utils/memoize';\nimport upperFirst from '../../utils/upper-first';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { select, selectAll, isVisible, setAttr, removeAttr, getAttr } from '../../utils/dom';\nimport { isBrowser } from '../../utils/env';\nimport { isBoolean } from '../../utils/inspect';\nimport { keys, create } from '../../utils/object'; // Mixins\n\nimport formStateMixin from '../../mixins/form-state';\nimport idMixin from '../../mixins/id';\nimport normalizeSlotMixin from '../../mixins/normalize-slot'; // Sub components\n\nimport { BCol } from '../layout/col';\nimport { BFormRow } from '../layout/form-row';\nimport { BFormText } from '../form/form-text';\nimport { BFormInvalidFeedback } from '../form/form-invalid-feedback';\nimport { BFormValidFeedback } from '../form/form-valid-feedback'; // Component name\n\nvar NAME = 'BFormGroup'; // Selector for finding first input in the form-group\n\nvar SELECTOR = 'input:not([disabled]),textarea:not([disabled]),select:not([disabled])'; // Render helper functions (here rather than polluting the instance with more methods)\n\nvar renderInvalidFeedback = function renderInvalidFeedback(h, ctx) {\n var content = ctx.normalizeSlot('invalid-feedback') || ctx.invalidFeedback;\n var invalidFeedback = h();\n\n if (content) {\n invalidFeedback = h(BFormInvalidFeedback, {\n props: {\n id: ctx.invalidFeedbackId,\n // If state is explicitly false, always show the feedback\n state: ctx.computedState,\n tooltip: ctx.tooltip,\n ariaLive: ctx.feedbackAriaLive,\n role: ctx.feedbackAriaLive ? 'alert' : null\n },\n attrs: {\n tabindex: content ? '-1' : null\n }\n }, [content]);\n }\n\n return invalidFeedback;\n};\n\nvar renderValidFeedback = function renderValidFeedback(h, ctx) {\n var content = ctx.normalizeSlot('valid-feedback') || ctx.validFeedback;\n var validFeedback = h();\n\n if (content) {\n validFeedback = h(BFormValidFeedback, {\n props: {\n id: ctx.validFeedbackId,\n // If state is explicitly true, always show the feedback\n state: ctx.computedState,\n tooltip: ctx.tooltip,\n ariaLive: ctx.feedbackAriaLive,\n role: ctx.feedbackAriaLive ? 'alert' : null\n },\n attrs: {\n tabindex: content ? '-1' : null\n }\n }, [content]);\n }\n\n return validFeedback;\n};\n\nvar renderHelpText = function renderHelpText(h, ctx) {\n // Form help text (description)\n var content = ctx.normalizeSlot('description') || ctx.description;\n var description = h();\n\n if (content) {\n description = h(BFormText, {\n attrs: {\n id: ctx.descriptionId,\n tabindex: content ? '-1' : null\n }\n }, [content]);\n }\n\n return description;\n};\n\nvar renderLabel = function renderLabel(h, ctx) {\n // Render label/legend inside b-col if necessary\n var content = ctx.normalizeSlot('label') || ctx.label;\n var labelFor = ctx.labelFor;\n var isLegend = !labelFor;\n var isHorizontal = ctx.isHorizontal;\n var labelTag = isLegend ? 'legend' : 'label';\n\n if (!content && !isHorizontal) {\n return h();\n } else if (ctx.labelSrOnly) {\n var label = h();\n\n if (content) {\n label = h(labelTag, {\n class: 'sr-only',\n attrs: {\n id: ctx.labelId,\n for: labelFor || null\n }\n }, [content]);\n }\n\n return h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? ctx.labelColProps : {}\n }, [label]);\n } else {\n return h(isHorizontal ? BCol : labelTag, {\n on: isLegend ? {\n click: ctx.legendClick\n } : {},\n props: isHorizontal ? _objectSpread({\n tag: labelTag\n }, ctx.labelColProps) : {},\n attrs: {\n id: ctx.labelId,\n for: labelFor || null,\n // We add a tab index to legend so that screen readers\n // will properly read the aria-labelledby in IE.\n tabindex: isLegend ? '-1' : null\n },\n class: [// When horizontal or if a legend is rendered, add col-form-label\n // for correct sizing as Bootstrap has inconsistent font styling\n // for legend in non-horizontal form-groups.\n // See: https://github.com/twbs/bootstrap/issues/27805\n isHorizontal || isLegend ? 'col-form-label' : '', // Emulate label padding top of 0 on legend when not horizontal\n !isHorizontal && isLegend ? 'pt-0' : '', // If not horizontal and not a legend, we add d-block to label\n // so that label-align works\n !isHorizontal && !isLegend ? 'd-block' : '', ctx.labelSize ? \"col-form-label-\".concat(ctx.labelSize) : '', ctx.labelAlignClasses, ctx.labelClass]\n }, [content]);\n }\n}; // -- BFormGroup Prop factory -- used for lazy generation of props\n// Memoize this function to return cached values to\n// save time in computed functions\n\n\nvar makePropName = memoize(function () {\n var breakpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var prefix = arguments.length > 1 ? arguments[1] : undefined;\n return \"\".concat(prefix).concat(upperFirst(breakpoint));\n}); // BFormGroup prop generator for lazy generation of props\n\nvar generateProps = function generateProps() {\n var BREAKPOINTS = getBreakpointsUpCached(); // Generate the labelCol breakpoint props\n\n var bpLabelColProps = BREAKPOINTS.reduce(function (props, breakpoint) {\n // i.e. label-cols, label-cols-sm, label-cols-md, ...\n props[makePropName(breakpoint, 'labelCols')] = {\n type: [Number, String, Boolean],\n default: breakpoint ? false : null\n };\n return props;\n }, create(null)); // Generate the labelAlign breakpoint props\n\n var bpLabelAlignProps = BREAKPOINTS.reduce(function (props, breakpoint) {\n // label-align, label-align-sm, label-align-md, ...\n props[makePropName(breakpoint, 'labelAlign')] = {\n type: String,\n // left, right, center\n default: null\n };\n return props;\n }, create(null));\n return _objectSpread({\n label: {\n type: String,\n default: null\n },\n labelFor: {\n type: String,\n default: null\n },\n labelSize: {\n type: String,\n default: null\n },\n labelSrOnly: {\n type: Boolean,\n default: false\n }\n }, bpLabelColProps, {}, bpLabelAlignProps, {\n labelClass: {\n type: [String, Array, Object],\n default: null\n },\n description: {\n type: String,\n default: null\n },\n invalidFeedback: {\n type: String,\n default: null\n },\n validFeedback: {\n type: String,\n default: null\n },\n tooltip: {\n // Enable tooltip style feedback\n type: Boolean,\n default: false\n },\n feedbackAriaLive: {\n type: String,\n default: 'assertive'\n },\n validated: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n }\n });\n}; // We do not use Vue.extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\n\nexport var BFormGroup = {\n name: NAME,\n mixins: [idMixin, formStateMixin, normalizeSlotMixin],\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n computed: {\n labelColProps: function labelColProps() {\n var _this = this;\n\n var props = {};\n getBreakpointsUpCached().forEach(function (breakpoint) {\n // Grab the value if the label column breakpoint prop\n var propVal = _this[makePropName(breakpoint, 'labelCols')]; // Handle case where the prop's value is an empty string,\n // which represents true\n\n\n propVal = propVal === '' ? true : propVal || false;\n\n if (!isBoolean(propVal)) {\n // Convert to column size to number\n propVal = parseInt(propVal, 10) || 0; // Ensure column size is greater than 0\n\n propVal = propVal > 0 ? propVal : false;\n }\n\n if (propVal) {\n // Add the prop to the list of props to give to b-col\n // If breakpoint is '' (labelCols=true), then we use the\n // col prop to make equal width at xs\n var bColPropName = breakpoint || (isBoolean(propVal) ? 'col' : 'cols'); // Add it to the props\n\n props[bColPropName] = propVal;\n }\n });\n return props;\n },\n labelAlignClasses: function labelAlignClasses() {\n var _this2 = this;\n\n var classes = [];\n getBreakpointsUpCached().forEach(function (breakpoint) {\n // Assemble the label column breakpoint align classes\n var propVal = _this2[makePropName(breakpoint, 'labelAlign')] || null;\n\n if (propVal) {\n var className = breakpoint ? \"text-\".concat(breakpoint, \"-\").concat(propVal) : \"text-\".concat(propVal);\n classes.push(className);\n }\n });\n return classes;\n },\n isHorizontal: function isHorizontal() {\n // Determine if the resultant form-group will be rendered\n // horizontal (meaning it has label-col breakpoints)\n return keys(this.labelColProps).length > 0;\n },\n labelId: function labelId() {\n return this.hasNormalizedSlot('label') || this.label ? this.safeId('_BV_label_') : null;\n },\n descriptionId: function descriptionId() {\n return this.hasNormalizedSlot('description') || this.description ? this.safeId('_BV_description_') : null;\n },\n hasInvalidFeedback: function hasInvalidFeedback() {\n // Used for computing aria-describedby\n return this.computedState === false && (this.hasNormalizedSlot('invalid-feedback') || this.invalidFeedback);\n },\n invalidFeedbackId: function invalidFeedbackId() {\n return this.hasInvalidFeedback ? this.safeId('_BV_feedback_invalid_') : null;\n },\n hasValidFeedback: function hasValidFeedback() {\n // Used for computing aria-describedby\n return this.computedState === true && (this.hasNormalizedSlot('valid-feedback') || this.validFeedback);\n },\n validFeedbackId: function validFeedbackId() {\n return this.hasValidFeedback ? this.safeId('_BV_feedback_valid_') : null;\n },\n describedByIds: function describedByIds() {\n // Screen readers will read out any content linked to by aria-describedby\n // even if the content is hidden with `display: none;`, hence we only include\n // feedback IDs if the form-group's state is explicitly valid or invalid.\n return [this.descriptionId, this.invalidFeedbackId, this.validFeedbackId].filter(Boolean).join(' ') || null;\n }\n },\n watch: {\n describedByIds: function describedByIds(add, remove) {\n if (add !== remove) {\n this.setInputDescribedBy(add, remove);\n }\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.$nextTick(function () {\n // Set the aria-describedby IDs on the input specified by label-for\n // We do this in a nextTick to ensure the children have finished rendering\n _this3.setInputDescribedBy(_this3.describedByIds);\n });\n },\n methods: {\n legendClick: function legendClick(evt) {\n if (this.labelFor) {\n // Don't do anything if labelFor is set\n\n /* istanbul ignore next: clicking a label will focus the input, so no need to test */\n return;\n }\n\n var tagName = evt.target ? evt.target.tagName : '';\n\n if (/^(input|select|textarea|label|button|a)$/i.test(tagName)) {\n // If clicked an interactive element inside legend,\n // we just let the default happen\n\n /* istanbul ignore next */\n return;\n }\n\n var inputs = selectAll(SELECTOR, this.$refs.content).filter(isVisible);\n\n if (inputs && inputs.length === 1 && inputs[0].focus) {\n // if only a single input, focus it, emulating label behaviour\n inputs[0].focus();\n }\n },\n setInputDescribedBy: function setInputDescribedBy(add, remove) {\n // Sets the `aria-describedby` attribute on the input if label-for is set.\n // Optionally accepts a string of IDs to remove as the second parameter.\n // Preserves any aria-describedby value(s) user may have on input.\n if (this.labelFor && isBrowser) {\n var input = select(\"#\".concat(this.labelFor), this.$refs.content);\n\n if (input) {\n var adb = 'aria-describedby';\n var ids = (getAttr(input, adb) || '').split(/\\s+/);\n add = (add || '').split(/\\s+/);\n remove = (remove || '').split(/\\s+/); // Update ID list, preserving any original IDs\n // and ensuring the ID's are unique\n\n ids = ids.filter(function (id) {\n return !arrayIncludes(remove, id);\n }).concat(add).filter(Boolean);\n ids = keys(ids.reduce(function (memo, id) {\n return _objectSpread({}, memo, _defineProperty({}, id, true));\n }, {})).join(' ').trim();\n\n if (ids) {\n setAttr(input, adb, ids);\n } else {\n // No IDs, so remove the attribute\n removeAttr(input, adb);\n }\n }\n }\n }\n },\n render: function render(h) {\n var isFieldset = !this.labelFor;\n var isHorizontal = this.isHorizontal; // Generate the label\n\n var label = renderLabel(h, this); // Generate the content\n\n var content = h(isHorizontal ? BCol : 'div', {\n ref: 'content',\n attrs: {\n tabindex: isFieldset ? '-1' : null,\n role: isFieldset ? 'group' : null\n }\n }, [this.normalizeSlot('default') || h(), renderInvalidFeedback(h, this), renderValidFeedback(h, this), renderHelpText(h, this)]); // Create the form-group\n\n var data = {\n staticClass: 'form-group',\n class: [this.validated ? 'was-validated' : null, this.stateClass],\n attrs: {\n id: this.safeId(),\n disabled: isFieldset ? this.disabled : null,\n role: isFieldset ? null : 'group',\n 'aria-invalid': this.computedState === false ? 'true' : null,\n // Only apply aria-labelledby if we are a horizontal fieldset\n // as the legend is no longer a direct child of fieldset\n 'aria-labelledby': isFieldset && isHorizontal ? this.labelId : null,\n // Only apply aria-describedby IDs if we are a fieldset\n // as the input will have the IDs when not a fieldset\n 'aria-describedby': isFieldset ? this.describedByIds : null\n }\n }; // Return it wrapped in a form-group\n // Note: Fieldsets do not support adding `row` or `form-row` directly\n // to them due to browser specific render issues, so we move the `form-row`\n // to an inner wrapper div when horizontal and using a fieldset\n\n return h(isFieldset ? 'fieldset' : isHorizontal ? BFormRow : 'div', data, isHorizontal && isFieldset ? [h(BFormRow, {}, [label, content])] : [label, content]);\n }\n};","import { BFormGroup } from './form-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormGroupPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BFormGroup: BFormGroup,\n BFormFieldset: BFormGroup\n }\n});\nexport { FormGroupPlugin, BFormGroup };","import looseEqual from './loose-equal';\n\nvar looseIndexOf = function looseIndexOf(arr, val) {\n // Assumes that the first argument is an array\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) {\n return i;\n }\n }\n\n return -1;\n};\n\nexport default looseIndexOf;","import { matches, select, isVisible, requestAF } from '../utils/dom';\nvar SELECTOR = 'input, textarea, select'; // @vue/component\n\nexport default {\n props: {\n name: {\n type: String // default: undefined\n\n },\n id: {\n type: String // default: undefined\n\n },\n disabled: {\n type: Boolean\n },\n required: {\n type: Boolean,\n default: false\n },\n form: {\n type: String,\n default: null\n },\n autofocus: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n this.handleAutofocus();\n },\n activated: function activated()\n /* istanbul ignore next */\n {\n this.handleAutofocus();\n },\n methods: {\n handleAutofocus: function handleAutofocus() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n var el = _this.$el;\n\n if (_this.autofocus && isVisible(el)) {\n if (!matches(el, SELECTOR)) {\n el = select(SELECTOR, el);\n }\n\n el && el.focus && el.focus();\n }\n });\n });\n }\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport normalizeSlotMixin from './normalize-slot'; // @vue/component\n\nexport default {\n mixins: [normalizeSlotMixin],\n inheritAttrs: false,\n model: {\n prop: 'checked',\n event: 'input'\n },\n props: {\n value: {// Value when checked\n // type: Object,\n // default: undefined\n },\n checked: {// This is the v-model\n // type: Object,\n // default: undefined\n },\n inline: {\n type: Boolean,\n default: false\n },\n plain: {\n type: Boolean,\n default: false\n },\n button: {\n // Only applicable in standalone mode (non group)\n type: Boolean,\n default: false\n },\n buttonVariant: {\n // Only applicable when rendered with button style\n type: String,\n default: null\n },\n ariaLabel: {\n // Placed on the input if present.\n type: String,\n default: null\n },\n ariaLabelledby: {\n // Placed on the input if present.\n type: String,\n default: null\n }\n },\n data: function data() {\n return {\n localChecked: this.isGroup ? this.bvGroup.checked : this.checked,\n hasFocus: false\n };\n },\n computed: {\n computedLocalChecked: {\n get: function get() {\n return this.isGroup ? this.bvGroup.localChecked : this.localChecked;\n },\n set: function set(val) {\n if (this.isGroup) {\n this.bvGroup.localChecked = val;\n } else {\n this.localChecked = val;\n }\n }\n },\n isGroup: function isGroup() {\n // Is this check/radio a child of check-group or radio-group?\n return Boolean(this.bvGroup);\n },\n isBtnMode: function isBtnMode() {\n // Support button style in single input mode\n return this.isGroup ? this.bvGroup.buttons : this.button;\n },\n isPlain: function isPlain() {\n return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain;\n },\n isCustom: function isCustom() {\n return this.isBtnMode ? false : !this.isPlain;\n },\n isSwitch: function isSwitch() {\n // Custom switch styling (checkboxes only)\n return this.isBtnMode || this.isRadio || this.isPlain ? false : this.isGroup ? this.bvGroup.switches : this.switch;\n },\n isInline: function isInline() {\n return this.isGroup ? this.bvGroup.inline : this.inline;\n },\n isDisabled: function isDisabled() {\n // Child can be disabled while parent isn't, but is always disabled if group is\n return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled;\n },\n isRequired: function isRequired() {\n // Required only works when a name is provided for the input(s)\n // Child can only be required when parent is\n // Groups will always have a name (either user supplied or auto generated)\n return Boolean(this.getName && (this.isGroup ? this.bvGroup.required : this.required));\n },\n getName: function getName() {\n // Group name preferred over local name\n return (this.isGroup ? this.bvGroup.groupName : this.name) || null;\n },\n getForm: function getForm() {\n return (this.isGroup ? this.bvGroup.form : this.form) || null;\n },\n getSize: function getSize() {\n return (this.isGroup ? this.bvGroup.size : this.size) || '';\n },\n getState: function getState() {\n return this.isGroup ? this.bvGroup.computedState : this.computedState;\n },\n getButtonVariant: function getButtonVariant() {\n // Local variant preferred over group variant\n if (this.buttonVariant) {\n return this.buttonVariant;\n } else if (this.isGroup && this.bvGroup.buttonVariant) {\n return this.bvGroup.buttonVariant;\n } // default variant\n\n\n return 'secondary';\n },\n buttonClasses: function buttonClasses() {\n var _ref;\n\n // Same for radio & check\n return ['btn', \"btn-\".concat(this.getButtonVariant), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(this.getSize), this.getSize), _defineProperty(_ref, \"disabled\", this.isDisabled), _defineProperty(_ref, \"active\", this.isChecked), _defineProperty(_ref, \"focus\", this.hasFocus), _ref)];\n }\n },\n watch: {\n checked: function checked(newVal, oldVal) {\n this.computedLocalChecked = newVal;\n }\n },\n methods: {\n handleFocus: function handleFocus(evt) {\n // When in buttons mode, we need to add 'focus' class to label when input focused\n // As it is the hidden input which has actual focus\n if (evt.target) {\n if (evt.type === 'focus') {\n this.hasFocus = true;\n } else if (evt.type === 'blur') {\n this.hasFocus = false;\n }\n }\n },\n // Convenience methods for focusing the input\n focus: function focus() {\n if (!this.isDisabled && this.$refs.input && this.$refs.input.focus) {\n this.$refs.input.focus();\n }\n },\n blur: function blur() {\n if (!this.isDisabled && this.$refs.input && this.$refs.input.blur) {\n this.$refs.input.blur();\n }\n }\n },\n render: function render(h) {\n var defaultSlot = this.normalizeSlot('default'); // Generate the input element\n\n var on = {\n change: this.handleChange\n };\n\n if (this.isBtnMode) {\n // Handlers for focus styling when in button mode\n on.focus = on.blur = this.handleFocus;\n }\n\n var input = h('input', {\n ref: 'input',\n key: 'input',\n on: on,\n class: {\n 'form-check-input': this.isPlain,\n 'custom-control-input': this.isCustom,\n 'is-valid': this.getState === true && !this.isBtnMode,\n 'is-invalid': this.getState === false && !this.isBtnMode,\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n 'position-static': this.isPlain && !defaultSlot\n },\n directives: [{\n name: 'model',\n rawName: 'v-model',\n value: this.computedLocalChecked,\n expression: 'computedLocalChecked'\n }],\n attrs: _objectSpread({}, this.$attrs, {\n id: this.safeId(),\n type: this.isRadio ? 'radio' : 'checkbox',\n name: this.getName,\n form: this.getForm,\n disabled: this.isDisabled,\n required: this.isRequired,\n autocomplete: 'off',\n 'aria-required': this.isRequired || null,\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || null\n }),\n domProps: {\n value: this.value,\n checked: this.isChecked\n }\n });\n\n if (this.isBtnMode) {\n // Button mode\n var button = h('label', {\n class: this.buttonClasses\n }, [input, defaultSlot]);\n\n if (!this.isGroup) {\n // Standalone button mode, so wrap in 'btn-group-toggle'\n // and flag it as inline-block to mimic regular buttons\n button = h('div', {\n class: ['btn-group-toggle', 'd-inline-block']\n }, [button]);\n }\n\n return button;\n } else {\n // Not button mode\n var label = h(); // If no label content in plain mode we dont render the label\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n\n if (!(this.isPlain && !defaultSlot)) {\n label = h('label', {\n class: {\n 'form-check-label': this.isPlain,\n 'custom-control-label': this.isCustom\n },\n attrs: {\n for: this.safeId()\n }\n }, defaultSlot);\n } // Wrap it in a div\n\n\n return h('div', {\n class: _defineProperty({\n 'form-check': this.isPlain,\n 'form-check-inline': this.isPlain && this.isInline,\n 'custom-control': this.isCustom,\n 'custom-control-inline': this.isCustom && this.isInline,\n 'custom-checkbox': this.isCustom && this.isCheck && !this.isSwitch,\n 'custom-switch': this.isSwitch,\n 'custom-radio': this.isCustom && this.isRadio\n }, \"b-custom-control-\".concat(this.getSize), Boolean(this.getSize && !this.isBtnMode))\n }, [input, label]);\n }\n }\n};","import { getComponentConfig } from '../utils/config'; // @vue/component\n\nexport default {\n props: {\n size: {\n type: String,\n default: function _default() {\n return getComponentConfig('formControls', 'size');\n }\n }\n },\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\".concat(this.size) : null];\n },\n sizeBtnClass: function sizeBtnClass()\n /* istanbul ignore next: don't think this is used */\n {\n return [this.size ? \"btn-\".concat(this.size) : null];\n }\n }\n};","import Vue from '../../utils/vue';\nimport looseEqual from '../../utils/loose-equal';\nimport looseIndexOf from '../../utils/loose-index-of';\nimport { isArray } from '../../utils/inspect';\nimport formMixin from '../../mixins/form';\nimport formRadioCheckMixin from '../../mixins/form-radio-check';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport idMixin from '../../mixins/id'; // @vue/component\n\nexport var BFormCheckbox =\n/*#__PURE__*/\nVue.extend({\n name: 'BFormCheckbox',\n mixins: [formRadioCheckMixin, // Includes shared render function\n idMixin, formMixin, formSizeMixin, formStateMixin],\n inject: {\n bvGroup: {\n from: 'bvCheckGroup',\n default: false\n }\n },\n props: {\n value: {\n // type: [Object, Boolean],\n default: true\n },\n uncheckedValue: {\n // type: [Object, Boolean],\n // Not applicable in multi-check mode\n default: false\n },\n indeterminate: {\n // Not applicable in multi-check mode\n type: Boolean,\n default: false\n },\n switch: {\n // Custom switch styling\n type: Boolean,\n default: false\n },\n checked: {\n // v-model\n type: [String, Number, Object, Array, Boolean],\n default: null\n }\n },\n computed: {\n isChecked: function isChecked() {\n var checked = this.computedLocalChecked;\n var value = this.value;\n\n if (isArray(checked)) {\n return looseIndexOf(checked, value) > -1;\n } else {\n return looseEqual(checked, value);\n }\n },\n isRadio: function isRadio() {\n return false;\n },\n isCheck: function isCheck() {\n return true;\n }\n },\n watch: {\n computedLocalChecked: function computedLocalChecked(newVal, oldVal) {\n this.$emit('input', newVal);\n\n if (this.$refs && this.$refs.input) {\n this.$emit('update:indeterminate', this.$refs.input.indeterminate);\n }\n },\n indeterminate: function indeterminate(newVal, oldVal) {\n this.setIndeterminate(newVal);\n }\n },\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this.indeterminate);\n },\n methods: {\n handleChange: function handleChange(_ref) {\n var _ref$target = _ref.target,\n checked = _ref$target.checked,\n indeterminate = _ref$target.indeterminate;\n var localChecked = this.computedLocalChecked;\n var value = this.value;\n var isArr = isArray(localChecked);\n var uncheckedValue = isArr ? null : this.uncheckedValue; // Update computedLocalChecked\n\n if (isArr) {\n var idx = looseIndexOf(localChecked, value);\n\n if (checked && idx < 0) {\n // Add value to array\n localChecked = localChecked.concat(value);\n } else if (!checked && idx > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, idx).concat(localChecked.slice(idx + 1));\n }\n } else {\n localChecked = checked ? value : uncheckedValue;\n }\n\n this.computedLocalChecked = localChecked; // Change is only emitted on user interaction\n\n this.$emit('change', checked ? value : uncheckedValue); // If this is a child of form-checkbox-group, we emit a change event on it as well\n\n if (this.isGroup) {\n this.bvGroup.$emit('change', localChecked);\n }\n\n this.$emit('update:indeterminate', indeterminate);\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false;\n }\n\n if (this.$refs && this.$refs.input) {\n this.$refs.input.indeterminate = state; // Emit update event to prop\n\n this.$emit('update:indeterminate', state);\n }\n }\n }\n});","import Vue from '../../utils/vue';\nimport idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formStateMixin from '../../mixins/form-state';\nimport formSizeMixin from '../../mixins/form-size';\nimport formRadioCheckMixin from '../../mixins/form-radio-check';\nimport looseEqual from '../../utils/loose-equal'; // @vue/component\n\nexport var BFormRadio =\n/*#__PURE__*/\nVue.extend({\n name: 'BFormRadio',\n mixins: [idMixin, formRadioCheckMixin, // Includes shared render function\n formMixin, formSizeMixin, formStateMixin],\n inject: {\n bvGroup: {\n from: 'bvRadioGroup',\n default: false\n }\n },\n props: {\n checked: {\n // v-model\n type: [String, Object, Number, Boolean],\n default: null\n }\n },\n computed: {\n // Radio Groups can only have a single value, so determining if checked is simple\n isChecked: function isChecked() {\n return looseEqual(this.value, this.computedLocalChecked);\n },\n // Flags for form-radio-check mixin\n isRadio: function isRadio() {\n return true;\n },\n isCheck: function isCheck() {\n return false;\n }\n },\n watch: {\n // Radio Groups can only have a single value, so our watchers are simple\n computedLocalChecked: function computedLocalChecked(newVal, oldVal) {\n this.$emit('input', this.computedLocalChecked);\n }\n },\n methods: {\n handleChange: function handleChange(_ref) {\n var checked = _ref.target.checked;\n var value = this.value;\n this.computedLocalChecked = value; // Change is only emitted on user interaction\n\n this.$emit('change', checked ? value : null); // If this is a child of form-radio-group, we emit a change event on it as well\n\n if (this.isGroup) {\n this.bvGroup.$emit('change', checked ? value : null);\n }\n }\n }\n});","import { htmlOrText } from '../utils/html';\nimport normalizeSlotMixin from './normalize-slot';\nimport { BFormCheckbox } from '../components/form-checkbox/form-checkbox';\nimport { BFormRadio } from '../components/form-radio/form-radio'; // @vue/component\n\nexport default {\n mixins: [normalizeSlotMixin],\n model: {\n prop: 'checked',\n event: 'input'\n },\n props: {\n validated: {\n type: Boolean,\n default: false\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n },\n stacked: {\n type: Boolean,\n default: false\n },\n plain: {\n type: Boolean,\n default: false\n },\n buttons: {\n // Render as button style\n type: Boolean,\n default: false\n },\n buttonVariant: {\n // Only applicable when rendered with button style\n type: String,\n default: 'secondary'\n }\n },\n computed: {\n inline: function inline() {\n return !this.stacked;\n },\n groupName: function groupName() {\n // Checks/Radios tied to the same model must have the same name,\n // especially for ARIA accessibility.\n return this.name || this.safeId();\n },\n groupClasses: function groupClasses() {\n if (this.buttons) {\n return ['btn-group-toggle', this.inline ? 'btn-group' : 'btn-group-vertical', this.size ? \"btn-group-\".concat(this.size) : '', this.validated ? \"was-validated\" : ''];\n }\n\n return [this.validated ? \"was-validated\" : ''];\n },\n computedAriaInvalid: function computedAriaInvalid() {\n var ariaInvalid = this.ariaInvalid;\n\n if (ariaInvalid === true || ariaInvalid === 'true' || ariaInvalid === '') {\n return 'true';\n }\n\n return this.computedState === false ? 'true' : null;\n }\n },\n watch: {\n checked: function checked(newVal, oldVal) {\n this.localChecked = newVal;\n },\n localChecked: function localChecked(newVal, oldVal) {\n this.$emit('input', newVal);\n }\n },\n render: function render(h) {\n var _this = this;\n\n var inputs = this.formOptions.map(function (option, idx) {\n var uid = \"_BV_option_\".concat(idx, \"_\");\n return h(_this.isRadioGroup ? BFormRadio : BFormCheckbox, {\n key: uid,\n props: {\n id: _this.safeId(uid),\n value: option.value,\n // Individual radios or checks can be disabled in a group\n disabled: option.disabled || false // We don't need to include these, since the input's will know they are inside here\n // name: this.groupName,\n // form: this.form || null,\n // required: Boolean(this.name && this.required)\n\n }\n }, [h('span', {\n domProps: htmlOrText(option.html, option.text)\n })]);\n });\n return h('div', {\n class: this.groupClasses,\n attrs: {\n id: this.safeId(),\n role: this.isRadioGroup ? 'radiogroup' : 'group',\n // Tabindex to allow group to be focused if needed\n tabindex: '-1',\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n }\n }, [this.normalizeSlot('first'), inputs, this.normalizeSlot('default')]);\n }\n};","import Vue from '../../utils/vue';\nimport idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formOptionsMixin from '../../mixins/form-options';\nimport formRadioCheckGroupMixin from '../../mixins/form-radio-check-group';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nexport var props = {\n switches: {\n // Custom switch styling\n type: Boolean,\n default: false\n },\n checked: {\n type: [String, Number, Object, Array, Boolean],\n default: null\n }\n}; // @vue/component\n\nexport var BFormCheckboxGroup =\n/*#__PURE__*/\nVue.extend({\n name: 'BFormCheckboxGroup',\n mixins: [idMixin, formMixin, formRadioCheckGroupMixin, // Includes render function\n formOptionsMixin, formSizeMixin, formStateMixin],\n provide: function provide() {\n return {\n bvCheckGroup: this\n };\n },\n props: props,\n data: function data() {\n return {\n localChecked: this.checked || []\n };\n },\n computed: {\n isRadioGroup: function isRadioGroup() {\n return false;\n }\n }\n});","import { BFormCheckbox } from './form-checkbox';\nimport { BFormCheckboxGroup } from './form-checkbox-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormCheckboxPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BFormCheckbox: BFormCheckbox,\n BCheckbox: BFormCheckbox,\n BCheck: BFormCheckbox,\n BFormCheckboxGroup: BFormCheckboxGroup,\n BCheckboxGroup: BFormCheckboxGroup,\n BCheckGroup: BFormCheckboxGroup\n }\n});\nexport { FormCheckboxPlugin, BFormCheckbox, BFormCheckboxGroup };","import Vue from '../../utils/vue';\nimport idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formOptionsMixin from '../../mixins/form-options';\nimport formRadioCheckGroupMixin from '../../mixins/form-radio-check-group';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nexport var props = {\n checked: {\n type: [String, Object, Number, Boolean],\n default: null\n }\n}; // @vue/component\n\nexport var BFormRadioGroup =\n/*#__PURE__*/\nVue.extend({\n name: 'BFormRadioGroup',\n mixins: [idMixin, formMixin, formRadioCheckGroupMixin, // Includes render function\n formOptionsMixin, formSizeMixin, formStateMixin],\n provide: function provide() {\n return {\n bvRadioGroup: this\n };\n },\n props: props,\n data: function data() {\n return {\n localChecked: this.checked\n };\n },\n computed: {\n isRadioGroup: function isRadioGroup() {\n return true;\n }\n }\n});","import { BFormRadio } from './form-radio';\nimport { BFormRadioGroup } from './form-radio-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormRadioPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BFormRadio: BFormRadio,\n BRadio: BFormRadio,\n BFormRadioGroup: BFormRadioGroup,\n BRadioGroup: BFormRadioGroup\n }\n});\nexport { FormRadioPlugin, BFormRadio, BFormRadioGroup };","import { isFunction, isNull, isUndefined } from '../utils/inspect'; // @vue/component\n\nexport default {\n model: {\n prop: 'value',\n event: 'update'\n },\n props: {\n value: {\n type: [String, Number],\n default: ''\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n },\n readonly: {\n type: Boolean,\n default: false\n },\n plaintext: {\n type: Boolean,\n default: false\n },\n autocomplete: {\n type: String,\n default: null\n },\n placeholder: {\n type: String,\n default: null\n },\n formatter: {\n type: Function,\n default: null\n },\n trim: {\n type: Boolean,\n default: false\n },\n number: {\n type: Boolean,\n default: false\n },\n lazyFormatter: {\n type: Boolean,\n value: false\n }\n },\n data: function data() {\n return {\n localValue: this.stringifyValue(this.value)\n };\n },\n computed: {\n computedClass: function computedClass() {\n return [{\n // Range input needs class custom-range\n 'custom-range': this.type === 'range',\n // plaintext not supported by type=range or type=color\n 'form-control-plaintext': this.plaintext && this.type !== 'range' && this.type !== 'color',\n // form-control not used by type=range or plaintext. Always used by type=color\n 'form-control': !this.plaintext && this.type !== 'range' || this.type === 'color'\n }, this.sizeFormClass, this.stateClass];\n },\n computedAriaInvalid: function computedAriaInvalid() {\n if (!this.ariaInvalid || this.ariaInvalid === 'false') {\n // this.ariaInvalid is null or false or 'false'\n return this.computedState === false ? 'true' : null;\n }\n\n if (this.ariaInvalid === true) {\n // User wants explicit aria-invalid=true\n return 'true';\n } // Most likely a string value (which could be the string 'true')\n\n\n return this.ariaInvalid;\n }\n },\n watch: {\n value: function value(newVal) {\n if (newVal !== this.localValue) {\n this.localValue = this.stringifyValue(newVal);\n }\n }\n },\n mounted: function mounted() {\n var value = this.stringifyValue(this.value);\n\n if (value !== this.localValue) {\n /* istanbul ignore next */\n this.localValue = value;\n }\n },\n methods: {\n stringifyValue: function stringifyValue(value) {\n return isUndefined(value) || isNull(value) ? '' : String(value);\n },\n getFormatted: function getFormatted(value, evt) {\n var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n value = this.stringifyValue(value);\n\n if ((!this.lazyFormatter || force) && isFunction(this.formatter)) {\n value = this.formatter(value, evt);\n }\n\n return value;\n },\n updateValue: function updateValue(value) {\n value = this.stringifyValue(value);\n\n if (value !== this.localValue) {\n // Keep the input set to the value before modifiers\n this.localValue = value;\n\n if (this.number) {\n // Emulate `.number` modifier behaviour\n var num = parseFloat(value);\n value = isNaN(num) ? value : num;\n } else if (this.trim) {\n // Emulate `.trim` modifier behaviour\n value = value.trim();\n } // Update the v-model\n\n\n this.$emit('update', value);\n } else if (this.$refs.input && value !== this.$refs.input.value) {\n // When the `localValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one.\n // Usually casued by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function.\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n\n /* istanbul ignore next: hard to test */\n this.$refs.input.value = value;\n }\n },\n onInput: function onInput(evt) {\n // `evt.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n\n /* istanbul ignore if: hard to test composition events */\n if (evt.target.composing) {\n return;\n }\n\n var formatted = this.getFormatted(evt.target.value, evt); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n if (formatted === false || evt.defaultPrevented) {\n /* istanbul ignore next */\n evt.preventDefault();\n return;\n }\n\n this.updateValue(formatted);\n this.$emit('input', formatted);\n },\n onChange: function onChange(evt) {\n // `evt.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n\n /* istanbul ignore if: hard to test composition events */\n if (evt.target.composing) {\n return;\n }\n\n var formatted = this.getFormatted(evt.target.value, evt); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n if (formatted === false || evt.defaultPrevented) {\n /* istanbul ignore next */\n evt.preventDefault();\n return;\n }\n\n this.updateValue(formatted);\n this.$emit('change', formatted);\n },\n onBlur: function onBlur(evt) {\n // Lazy formatter\n if (this.lazyFormatter) {\n var formatted = this.getFormatted(evt.target.value, evt, true); // Exit when the `formatter` function strictly returned `false`\n\n if (formatted === false) {\n return;\n }\n\n this.updateValue(formatted);\n } // Emit native blur event\n\n\n this.$emit('blur', evt);\n },\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n this.$el.focus();\n }\n },\n blur: function blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n this.$el.blur();\n }\n }\n }\n};","// @vue/component\nexport default {\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n get: function get()\n /* istanbul ignore next */\n {\n return this.$refs.input.selectionStart;\n },\n set: function set(val)\n /* istanbul ignore next */\n {\n this.$refs.input.selectionStart = val;\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n get: function get()\n /* istanbul ignore next */\n {\n return this.$refs.input.selectionEnd;\n },\n set: function set(val)\n /* istanbul ignore next */\n {\n this.$refs.input.selectionEnd = val;\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n get: function get()\n /* istanbul ignore next */\n {\n return this.$refs.input.selectionDirection;\n },\n set: function set(val)\n /* istanbul ignore next */\n {\n this.$refs.input.selectionDirection = val;\n }\n }\n },\n methods: {\n select: function select()\n /* istanbul ignore next */\n {\n var _this$$refs$input;\n\n // For external handler that may want a select() method\n (_this$$refs$input = this.$refs.input).select.apply(_this$$refs$input, arguments);\n },\n setSelectionRange: function setSelectionRange()\n /* istanbul ignore next */\n {\n var _this$$refs$input2;\n\n // For external handler that may want a setSelectionRange(a,b,c) method\n (_this$$refs$input2 = this.$refs.input).setSelectionRange.apply(_this$$refs$input2, arguments);\n },\n setRangeText: function setRangeText()\n /* istanbul ignore next */\n {\n var _this$$refs$input3;\n\n // For external handler that may want a setRangeText(a,b,c) method\n (_this$$refs$input3 = this.$refs.input).setRangeText.apply(_this$$refs$input3, arguments);\n }\n }\n};","// @vue/component\nexport default {\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n get: function get()\n /* istanbul ignore next */\n {\n return this.$refs.input.validity;\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n get: function get()\n /* istanbul ignore next */\n {\n return this.$refs.input.validationMessage;\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n get: function get()\n /* istanbul ignore next */\n {\n return this.$refs.input.willValidate;\n }\n }\n },\n methods: {\n setCustomValidity: function setCustomValidity()\n /* istanbul ignore next */\n {\n var _this$$refs$input;\n\n // For external handler that may want a setCustomValidity(...) method\n return (_this$$refs$input = this.$refs.input).setCustomValidity.apply(_this$$refs$input, arguments);\n },\n checkValidity: function checkValidity()\n /* istanbul ignore next */\n {\n var _this$$refs$input2;\n\n // For external handler that may want a checkValidity(...) method\n return (_this$$refs$input2 = this.$refs.input).checkValidity.apply(_this$$refs$input2, arguments);\n },\n reportValidity: function reportValidity()\n /* istanbul ignore next */\n {\n var _this$$refs$input3;\n\n // For external handler that may want a reportValidity(...) method\n return (_this$$refs$input3 = this.$refs.input).reportValidity.apply(_this$$refs$input3, arguments);\n }\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport formTextMixin from '../../mixins/form-text';\nimport formSelectionMixin from '../../mixins/form-selection';\nimport formValidityMixin from '../../mixins/form-validity';\nimport { arrayIncludes } from '../../utils/array';\nimport { eventOn, eventOff } from '../../utils/dom'; // Valid supported input types\n\nvar TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week']; // @vue/component\n\nexport var BFormInput =\n/*#__PURE__*/\nVue.extend({\n name: 'BFormInput',\n mixins: [idMixin, formMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: {\n // value prop defined in form-text mixin\n // value: { },\n type: {\n type: String,\n default: 'text',\n validator: function validator(type) {\n return arrayIncludes(TYPES, type);\n }\n },\n noWheel: {\n // Disable mousewheel to prevent wheel from changing values (i.e. number/date).\n type: Boolean,\n default: false\n },\n min: {\n type: [String, Number],\n default: null\n },\n max: {\n type: [String, Number],\n default: null\n },\n step: {\n type: [String, Number],\n default: null\n },\n list: {\n type: String,\n default: null\n }\n },\n computed: {\n localType: function localType() {\n // We only allow certain types\n return arrayIncludes(TYPES, this.type) ? this.type : 'text';\n }\n },\n watch: {\n noWheel: function noWheel(newVal) {\n this.setWheelStopper(newVal);\n }\n },\n mounted: function mounted() {\n this.setWheelStopper(this.noWheel);\n },\n deactivated: function deactivated() {\n // Turn off listeners when keep-alive component deactivated\n\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n activated: function activated() {\n // Turn on listeners (if no-wheel) when keep-alive component activated\n\n /* istanbul ignore next */\n this.setWheelStopper(this.noWheel);\n },\n beforeDestroy: function beforeDestroy() {\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n methods: {\n setWheelStopper: function setWheelStopper(on) {\n var input = this.$el; // We use native events, so that we don't interfere with propgation\n\n if (on) {\n eventOn(input, 'focus', this.onWheelFocus);\n eventOn(input, 'blur', this.onWheelBlur);\n } else {\n eventOff(input, 'focus', this.onWheelFocus);\n eventOff(input, 'blur', this.onWheelBlur);\n eventOff(document, 'wheel', this.stopWheel);\n }\n },\n onWheelFocus: function onWheelFocus(evt) {\n eventOn(document, 'wheel', this.stopWheel);\n },\n onWheelBlur: function onWheelBlur(evt) {\n eventOff(document, 'wheel', this.stopWheel);\n },\n stopWheel: function stopWheel(evt) {\n evt.preventDefault();\n this.$el.blur();\n }\n },\n render: function render(h) {\n var self = this;\n return h('input', {\n ref: 'input',\n class: self.computedClass,\n directives: [{\n name: 'model',\n rawName: 'v-model',\n value: self.localValue,\n expression: 'localValue'\n }],\n attrs: {\n id: self.safeId(),\n name: self.name,\n form: self.form || null,\n type: self.localType,\n disabled: self.disabled,\n placeholder: self.placeholder,\n required: self.required,\n autocomplete: self.autocomplete || null,\n readonly: self.readonly || self.plaintext,\n min: self.min,\n max: self.max,\n step: self.step,\n list: self.localType !== 'password' ? self.list : null,\n 'aria-required': self.required ? 'true' : null,\n 'aria-invalid': self.computedAriaInvalid\n },\n domProps: {\n value: self.localValue\n },\n on: _objectSpread({}, self.$listeners, {\n input: self.onInput,\n change: self.onChange,\n blur: self.onBlur\n })\n });\n }\n});","import { BFormInput } from './form-input';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormInputPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BFormInput: BFormInput,\n BInput: BFormInput\n }\n});\nexport { FormInputPlugin, BFormInput };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { VBVisible } from '../../directives/visible';\nimport idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport formTextMixin from '../../mixins/form-text';\nimport formSelectionMixin from '../../mixins/form-selection';\nimport formValidityMixin from '../../mixins/form-validity';\nimport listenOnRootMixin from '../../mixins/listen-on-root';\nimport { getCS, isVisible, requestAF } from '../../utils/dom';\nimport { isNull } from '../../utils/inspect'; // @vue/component\n\nexport var BFormTextarea =\n/*#__PURE__*/\nVue.extend({\n name: 'BFormTextarea',\n directives: {\n 'b-visible': VBVisible\n },\n mixins: [idMixin, listenOnRootMixin, formMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: {\n rows: {\n type: [Number, String],\n default: 2\n },\n maxRows: {\n type: [Number, String],\n default: null\n },\n wrap: {\n // 'soft', 'hard' or 'off'. Browser default is 'soft'\n type: String,\n default: 'soft'\n },\n noResize: {\n // Disable the resize handle of textarea\n type: Boolean,\n default: false\n },\n noAutoShrink: {\n // When in auto resize mode, disable shrinking to content height\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n heightInPx: null\n };\n },\n computed: {\n computedStyle: function computedStyle() {\n var styles = {\n // Setting `noResize` to true will disable the ability for the user to\n // manually resize the textarea. We also disable when in auto height mode\n resize: !this.computedRows || this.noResize ? 'none' : null\n };\n\n if (!this.computedRows) {\n // Conditionally set the computed CSS height when auto rows/height is enabled\n // We avoid setting the style to `null`, which can override user manual resize handle\n styles.height = this.heightInPx; // We always add a vertical scrollbar to the textarea when auto-height is\n // enabled so that the computed height calculation returns a stable value\n\n styles.overflowY = 'scroll';\n }\n\n return styles;\n },\n computedMinRows: function computedMinRows() {\n // Ensure rows is at least 2 and positive (2 is the native textarea value)\n // A value of 1 can cause issues in some browsers, and most browsers\n // only support 2 as the smallest value\n return Math.max(parseInt(this.rows, 10) || 2, 2);\n },\n computedMaxRows: function computedMaxRows() {\n return Math.max(this.computedMinRows, parseInt(this.maxRows, 10) || 0);\n },\n computedRows: function computedRows() {\n // This is used to set the attribute 'rows' on the textarea\n // If auto-height is enabled, then we return `null` as we use CSS to control height\n return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null;\n }\n },\n watch: {\n localValue: function localValue(newVal, oldVal) {\n this.setHeight();\n }\n },\n mounted: function mounted() {\n this.setHeight();\n },\n methods: {\n // Called by intersection observer directive\n visibleCallback: function visibleCallback(visible)\n /* istanbul ignore next */\n {\n if (visible) {\n // We use a `$nextTick()` here just to make sure any\n // transitions or portalling have completed\n this.$nextTick(this.setHeight);\n }\n },\n setHeight: function setHeight() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n _this.heightInPx = _this.computeHeight();\n });\n });\n },\n computeHeight: function computeHeight()\n /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n {\n if (this.$isServer || !isNull(this.computedRows)) {\n return null;\n }\n\n var el = this.$el; // Element must be visible (not hidden) and in document\n // Must be checked after above checks\n\n if (!isVisible(el)) {\n return null;\n } // Get current computed styles\n\n\n var computedStyle = getCS(el); // Height of one line of text in px\n\n var lineHeight = parseFloat(computedStyle.lineHeight); // Calculate height of border and padding\n\n var border = (parseFloat(computedStyle.borderTopWidth) || 0) + (parseFloat(computedStyle.borderBottomWidth) || 0);\n var padding = (parseFloat(computedStyle.paddingTop) || 0) + (parseFloat(computedStyle.paddingBottom) || 0); // Calculate offset\n\n var offset = border + padding; // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)\n\n var minHeight = lineHeight * this.computedMinRows + offset; // Get the current style height (with `px` units)\n\n var oldHeight = el.style.height || computedStyle.height; // Probe scrollHeight by temporarily changing the height to `auto`\n\n el.style.height = 'auto';\n var scrollHeight = el.scrollHeight; // Place the original old height back on the element, just in case `computedProp`\n // returns the same value as before\n\n el.style.height = oldHeight; // Calculate content height in 'rows' (scrollHeight includes padding but not border)\n\n var contentRows = Math.max((scrollHeight - padding) / lineHeight, 2); // Calculate number of rows to display (limited within min/max rows)\n\n var rows = Math.min(Math.max(contentRows, this.computedMinRows), this.computedMaxRows); // Calculate the required height of the textarea including border and padding (in pixels)\n\n var height = Math.max(Math.ceil(rows * lineHeight + offset), minHeight); // Computed height remains the larger of `oldHeight` and new `height`,\n // when height is in `sticky` mode (prop `no-auto-shrink` is true)\n\n if (this.noAutoShrink && (parseFloat(oldHeight) || 0) > height) {\n return oldHeight;\n } // Return the new computed CSS height in px units\n\n\n return \"\".concat(height, \"px\");\n }\n },\n render: function render(h) {\n // Using self instead of this helps reduce code size during minification\n var self = this;\n return h('textarea', {\n ref: 'input',\n class: self.computedClass,\n style: self.computedStyle,\n directives: [{\n name: 'model',\n value: self.localValue\n }, {\n name: 'b-visible',\n value: this.visibleCallback,\n // If textarea is within 640px of viewport, consider it visible\n modifiers: {\n '640': true\n }\n }],\n attrs: {\n id: self.safeId(),\n name: self.name,\n form: self.form || null,\n disabled: self.disabled,\n placeholder: self.placeholder,\n required: self.required,\n autocomplete: self.autocomplete || null,\n readonly: self.readonly || self.plaintext,\n rows: self.computedRows,\n wrap: self.wrap || null,\n 'aria-required': self.required ? 'true' : null,\n 'aria-invalid': self.computedAriaInvalid\n },\n domProps: {\n value: self.localValue\n },\n on: _objectSpread({}, self.$listeners, {\n input: self.onInput,\n change: self.onChange,\n blur: self.onBlur\n })\n });\n }\n});","import { BFormTextarea } from './form-textarea';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormTextareaPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BFormTextarea: BFormTextarea,\n BTextarea: BFormTextarea\n }\n});\nexport { FormTextareaPlugin, BFormTextarea };","// @vue/component\nexport default {\n props: {\n plain: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { from as arrayFrom, isArray, concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { isFunction } from '../../utils/inspect';\nimport formCustomMixin from '../../mixins/form-custom';\nimport formMixin from '../../mixins/form';\nimport formStateMixin from '../../mixins/form-state';\nimport idMixin from '../../mixins/id';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nvar NAME = 'BFormFile'; // @vue/component\n\nexport var BFormFile =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n mixins: [idMixin, formMixin, formStateMixin, formCustomMixin, normalizeSlotMixin],\n inheritAttrs: false,\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n size: {\n type: String,\n default: function _default() {\n return getComponentConfig('BFormControl', 'size');\n }\n },\n value: {\n // type: Object,\n default: null\n },\n accept: {\n type: String,\n default: ''\n },\n // Instruct input to capture from camera\n capture: {\n type: Boolean,\n default: false\n },\n placeholder: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'placeholder');\n }\n },\n browseText: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'browseText');\n }\n },\n dropPlaceholder: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'dropPlaceholder');\n }\n },\n multiple: {\n type: Boolean,\n default: false\n },\n directory: {\n type: Boolean,\n default: false\n },\n noTraverse: {\n type: Boolean,\n default: false\n },\n noDrop: {\n type: Boolean,\n default: false\n },\n fileNameFormatter: {\n type: Function,\n default: null\n }\n },\n data: function data() {\n return {\n selectedFile: null,\n dragging: false,\n hasFocus: false\n };\n },\n computed: {\n selectLabel: function selectLabel() {\n // Draging active\n if (this.dragging && this.dropPlaceholder) {\n return this.dropPlaceholder;\n } // No file chosen\n\n\n if (!this.selectedFile || this.selectedFile.length === 0) {\n return this.placeholder;\n } // Convert selectedFile to an array (if not already one)\n\n\n var files = concat(this.selectedFile).filter(Boolean);\n\n if (this.hasNormalizedSlot('file-name')) {\n // There is a slot for formatting the files/names\n return [this.normalizeSlot('file-name', {\n files: files,\n names: files.map(function (f) {\n return f.name;\n })\n })];\n } else {\n // Use the user supplied formatter, or the built in one.\n return isFunction(this.fileNameFormatter) ? String(this.fileNameFormatter(files)) : files.map(function (file) {\n return file.name;\n }).join(', ');\n }\n }\n },\n watch: {\n selectedFile: function selectedFile(newVal, oldVal) {\n // The following test is needed when the file input is \"reset\" or the\n // exact same file(s) are selected to prevent an infinite loop.\n // When in `multiple` mode we need to check for two empty arrays or\n // two arrays with identical files\n if (newVal === oldVal || isArray(newVal) && isArray(oldVal) && newVal.length === oldVal.length && newVal.every(function (v, i) {\n return v === oldVal[i];\n })) {\n return;\n }\n\n if (!newVal && this.multiple) {\n this.$emit('input', []);\n } else {\n this.$emit('input', newVal);\n }\n },\n value: function value(newVal) {\n if (!newVal || isArray(newVal) && newVal.length === 0) {\n this.reset();\n }\n }\n },\n methods: {\n focusHandler: function focusHandler(evt) {\n // Bootstrap v4 doesn't have focus styling for custom file input\n // Firefox has a '[type=file]:focus ~ sibling' selector issue,\n // so we add a 'focus' class to get around these bugs\n if (this.plain || evt.type === 'focusout') {\n this.hasFocus = false;\n } else {\n // Add focus styling for custom file input\n this.hasFocus = true;\n }\n },\n reset: function reset() {\n try {\n // Wrapped in try in case IE 11 craps out\n this.$refs.input.value = '';\n } catch (e) {} // IE 11 doesn't support setting `input.value` to '' or null\n // So we use this little extra hack to reset the value, just in case.\n // This also appears to work on modern browsers as well.\n\n\n this.$refs.input.type = '';\n this.$refs.input.type = 'file';\n this.selectedFile = this.multiple ? [] : null;\n },\n onFileChange: function onFileChange(evt) {\n var _this = this;\n\n // Always emit original event\n this.$emit('change', evt); // Check if special `items` prop is available on event (drop mode)\n // Can be disabled by setting no-traverse\n\n var items = evt.dataTransfer && evt.dataTransfer.items;\n /* istanbul ignore next: not supported in JSDOM */\n\n if (items && !this.noTraverse) {\n var queue = [];\n\n for (var i = 0; i < items.length; i++) {\n var item = items[i].webkitGetAsEntry();\n\n if (item) {\n queue.push(this.traverseFileTree(item));\n }\n }\n\n Promise.all(queue).then(function (filesArr) {\n _this.setFiles(arrayFrom(filesArr));\n });\n return;\n } // Normal handling\n\n\n this.setFiles(evt.target.files || evt.dataTransfer.files);\n },\n setFiles: function setFiles() {\n var files = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (!files) {\n /* istanbul ignore next: this will probably not happen */\n this.selectedFile = null;\n } else if (this.multiple) {\n // Convert files to array\n var filesArray = [];\n\n for (var i = 0; i < files.length; i++) {\n filesArray.push(files[i]);\n } // Return file(s) as array\n\n\n this.selectedFile = filesArray;\n } else {\n // Return single file object\n this.selectedFile = files[0] || null;\n }\n },\n onReset: function onReset() {\n // Triggered when the parent form (if any) is reset\n this.selectedFile = this.multiple ? [] : null;\n },\n onDragover: function onDragover(evt)\n /* istanbul ignore next: difficult to test in JSDOM */\n {\n evt.preventDefault();\n evt.stopPropagation();\n\n if (this.noDrop || !this.custom) {\n return;\n }\n\n this.dragging = true;\n evt.dataTransfer.dropEffect = 'copy';\n },\n onDragleave: function onDragleave(evt)\n /* istanbul ignore next: difficult to test in JSDOM */\n {\n evt.preventDefault();\n evt.stopPropagation();\n this.dragging = false;\n },\n onDrop: function onDrop(evt)\n /* istanbul ignore next: difficult to test in JSDOM */\n {\n evt.preventDefault();\n evt.stopPropagation();\n\n if (this.noDrop) {\n return;\n }\n\n this.dragging = false;\n\n if (evt.dataTransfer.files && evt.dataTransfer.files.length > 0) {\n this.onFileChange(evt);\n }\n },\n traverseFileTree: function traverseFileTree(item, path)\n /* istanbul ignore next: not supported in JSDOM */\n {\n var _this2 = this;\n\n // Based on http://stackoverflow.com/questions/3590058\n return new Promise(function (resolve) {\n path = path || '';\n\n if (item.isFile) {\n // Get file\n item.file(function (file) {\n file.$path = path; // Inject $path to file obj\n\n resolve(file);\n });\n } else if (item.isDirectory) {\n // Get folder contents\n item.createReader().readEntries(function (entries) {\n var queue = [];\n\n for (var i = 0; i < entries.length; i++) {\n queue.push(_this2.traverseFileTree(entries[i], path + item.name + '/'));\n }\n\n Promise.all(queue).then(function (filesArr) {\n resolve(arrayFrom(filesArr));\n });\n });\n }\n });\n }\n },\n render: function render(h) {\n // Form Input\n var input = h('input', {\n ref: 'input',\n class: [{\n 'form-control-file': this.plain,\n 'custom-file-input': this.custom,\n focus: this.custom && this.hasFocus\n }, this.stateClass],\n attrs: _objectSpread({}, this.$attrs, {\n type: 'file',\n id: this.safeId(),\n name: this.name,\n disabled: this.disabled,\n required: this.required,\n form: this.form || null,\n capture: this.capture || null,\n accept: this.accept || null,\n multiple: this.multiple,\n webkitdirectory: this.directory,\n 'aria-required': this.required ? 'true' : null\n }),\n on: {\n change: this.onFileChange,\n focusin: this.focusHandler,\n focusout: this.focusHandler,\n reset: this.onReset\n }\n });\n\n if (this.plain) {\n return input;\n } // Overlay Labels\n\n\n var label = h('label', {\n staticClass: 'custom-file-label',\n class: [this.dragging ? 'dragging' : null],\n attrs: {\n for: this.safeId(),\n 'data-browse': this.browseText || null\n }\n }, this.selectLabel); // Return rendered custom file input\n\n return h('div', {\n staticClass: 'custom-file b-form-file',\n class: [this.stateClass, _defineProperty({}, \"b-custom-control-\".concat(this.size), Boolean(this.size))],\n attrs: {\n id: this.safeId('_BV_file_outer_')\n },\n on: {\n dragover: this.onDragover,\n dragleave: this.onDragleave,\n drop: this.onDrop\n }\n }, [input, label]);\n }\n});","import { BFormFile } from './form-file';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormFilePlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BFormFile: BFormFile,\n BFile: BFormFile\n }\n});\nexport { FormFilePlugin, BFormFile };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport idMixin from '../../mixins/id';\nimport formOptionsMixin from '../../mixins/form-options';\nimport formMixin from '../../mixins/form';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport formCustomMixin from '../../mixins/form-custom';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport { from as arrayFrom } from '../../utils/array';\nimport { htmlOrText } from '../../utils/html'; // @vue/component\n\nexport var BFormSelect =\n/*#__PURE__*/\nVue.extend({\n name: 'BFormSelect',\n mixins: [idMixin, normalizeSlotMixin, formMixin, formSizeMixin, formStateMixin, formCustomMixin, formOptionsMixin],\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n value: {// type: [Object, Array, String, Number, Boolean],\n // default: undefined\n },\n multiple: {\n type: Boolean,\n default: false\n },\n selectSize: {\n // Browsers default size to 0, which shows 4 rows in most browsers in multiple mode\n // Size of 1 can bork out Firefox\n type: Number,\n default: 0\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n }\n },\n data: function data() {\n return {\n localValue: this.value\n };\n },\n computed: {\n computedSelectSize: function computedSelectSize() {\n // Custom selects with a size of zero causes the arrows to be hidden,\n // so dont render the size attribute in this case\n return !this.plain && this.selectSize === 0 ? null : this.selectSize;\n },\n inputClass: function inputClass() {\n return [this.plain ? 'form-control' : 'custom-select', this.size && this.plain ? \"form-control-\".concat(this.size) : null, this.size && !this.plain ? \"custom-select-\".concat(this.size) : null, this.stateClass];\n },\n computedAriaInvalid: function computedAriaInvalid() {\n if (this.ariaInvalid === true || this.ariaInvalid === 'true') {\n return 'true';\n }\n\n return this.stateClass === 'is-invalid' ? 'true' : null;\n }\n },\n watch: {\n value: function value(newVal, oldVal) {\n this.localValue = newVal;\n },\n localValue: function localValue(newVal, oldVal) {\n this.$emit('input', this.localValue);\n }\n },\n methods: {\n focus: function focus() {\n this.$refs.input.focus();\n },\n blur: function blur() {\n this.$refs.input.blur();\n }\n },\n render: function render(h) {\n var _this = this;\n\n var options = this.formOptions.map(function (option, index) {\n return h('option', {\n key: \"option_\".concat(index, \"_opt\"),\n attrs: {\n disabled: Boolean(option.disabled)\n },\n domProps: _objectSpread({}, htmlOrText(option.html, option.text), {\n value: option.value\n })\n });\n });\n return h('select', {\n ref: 'input',\n class: this.inputClass,\n directives: [{\n name: 'model',\n rawName: 'v-model',\n value: this.localValue,\n expression: 'localValue'\n }],\n attrs: {\n id: this.safeId(),\n name: this.name,\n form: this.form || null,\n multiple: this.multiple || null,\n size: this.computedSelectSize,\n disabled: this.disabled,\n required: this.required,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n },\n on: {\n change: function change(evt) {\n var target = evt.target;\n var selectedVal = arrayFrom(target.options).filter(function (o) {\n return o.selected;\n }).map(function (o) {\n return '_value' in o ? o._value : o.value;\n });\n _this.localValue = target.multiple ? selectedVal : selectedVal[0];\n\n _this.$nextTick(function () {\n _this.$emit('change', _this.localValue);\n });\n }\n }\n }, [this.normalizeSlot('first'), options, this.normalizeSlot('default')]);\n }\n});","import { BFormSelect } from './form-select';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormSelectPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BFormSelect: BFormSelect,\n BSelect: BFormSelect\n }\n});\nexport { FormSelectPlugin, BFormSelect };","import { BImg } from './img';\nimport { BImgLazy } from './img-lazy';\nimport { pluginFactory } from '../../utils/plugins';\nvar ImagePlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BImg: BImg,\n BImgLazy: BImgLazy\n }\n});\nexport { ImagePlugin, BImg, BImgLazy };","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n }\n}; // @vue/component\n\nexport var BInputGroupText =\n/*#__PURE__*/\nVue.extend({\n name: 'BInputGroupText',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group-text'\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { BInputGroupText } from './input-group-text';\nexport var commonProps = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n },\n isText: {\n type: Boolean,\n default: false\n }\n}; // @vue/component\n\nexport var BInputGroupAddon =\n/*#__PURE__*/\nVue.extend({\n name: 'BInputGroupAddon',\n functional: true,\n props: _objectSpread({}, commonProps, {\n append: {\n type: Boolean,\n default: false\n }\n }),\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n class: {\n 'input-group-append': props.append,\n 'input-group-prepend': !props.append\n },\n attrs: {\n id: props.id\n }\n }), props.isText ? [h(BInputGroupText, children)] : children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { BInputGroupAddon, commonProps } from './input-group-addon'; // @vue/component\n\nexport var BInputGroupPrepend =\n/*#__PURE__*/\nVue.extend({\n name: 'BInputGroupPrepend',\n functional: true,\n props: commonProps,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n // pass all our props/attrs down to child, and set`append` to false\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread({}, props, {\n append: false\n })\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { BInputGroupAddon, commonProps } from './input-group-addon'; // @vue/component\n\nexport var BInputGroupAppend =\n/*#__PURE__*/\nVue.extend({\n name: 'BInputGroupAppend',\n functional: true,\n props: commonProps,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n // pass all our props/attrs down to child, and set`append` to true\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread({}, props, {\n append: true\n })\n }), children);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { getComponentConfig } from '../../utils/config';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { BInputGroupPrepend } from './input-group-prepend';\nimport { BInputGroupAppend } from './input-group-append';\nimport { BInputGroupText } from './input-group-text';\nvar NAME = 'BInputGroup';\nexport var props = {\n id: {\n type: String\n },\n size: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'size');\n }\n },\n prepend: {\n type: String\n },\n prependHtml: {\n type: String\n },\n append: {\n type: String\n },\n appendHtml: {\n type: String\n },\n tag: {\n type: String,\n default: 'div'\n }\n}; // @vue/component\n\nexport var BInputGroup =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var childNodes = []; // Prepend prop/slot\n\n if (props.prepend || props.prependHtml || hasNormalizedSlot('prepend', $scopedSlots, $slots)) {\n childNodes.push(h(BInputGroupPrepend, [// Prop\n props.prepend || props.prependHtml ? h(BInputGroupText, {\n domProps: htmlOrText(props.prependHtml, props.prepend)\n }) : h(), // Slot\n normalizeSlot('prepend', {}, $scopedSlots, $slots) || h()]));\n } else {\n childNodes.push(h());\n } // Default slot\n\n\n if (hasNormalizedSlot('default', $scopedSlots, $slots)) {\n childNodes.push.apply(childNodes, _toConsumableArray(normalizeSlot('default', {}, $scopedSlots, $slots)));\n } else {\n childNodes.push(h());\n } // Append prop\n\n\n if (props.append || props.appendHtml || hasNormalizedSlot('append', $scopedSlots, $slots)) {\n childNodes.push(h(BInputGroupAppend, [// prop\n props.append || props.appendHtml ? h(BInputGroupText, {\n domProps: htmlOrText(props.appendHtml, props.append)\n }) : h(), // Slot\n normalizeSlot('append', {}, $scopedSlots, $slots) || h()]));\n } else {\n childNodes.push(h());\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group',\n class: _defineProperty({}, \"input-group-\".concat(props.size), Boolean(props.size)),\n attrs: {\n id: props.id || null,\n role: 'group'\n }\n }), childNodes);\n }\n});","import { BInputGroup } from './input-group';\nimport { BInputGroupAddon } from './input-group-addon';\nimport { BInputGroupPrepend } from './input-group-prepend';\nimport { BInputGroupAppend } from './input-group-append';\nimport { BInputGroupText } from './input-group-text';\nimport { pluginFactory } from '../../utils/plugins';\nvar InputGroupPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BInputGroup: BInputGroup,\n BInputGroupAddon: BInputGroupAddon,\n BInputGroupPrepend: BInputGroupPrepend,\n BInputGroupAppend: BInputGroupAppend,\n BInputGroupText: BInputGroupText\n }\n});\nexport { InputGroupPlugin, BInputGroup, BInputGroupAddon, BInputGroupPrepend, BInputGroupAppend, BInputGroupText };","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n fluid: {\n type: Boolean,\n default: false\n }\n}; // @vue/component\n\nexport var BContainer =\n/*#__PURE__*/\nVue.extend({\n name: 'BContainer',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n class: {\n container: !props.fluid,\n 'container-fluid': props.fluid\n }\n }), children);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { getComponentConfig } from '../../utils/config';\nimport { stripTags } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { BContainer } from '../layout/container';\nvar NAME = 'BJumbotron';\nexport var props = {\n fluid: {\n type: Boolean,\n default: false\n },\n containerFluid: {\n type: Boolean,\n default: false\n },\n header: {\n type: String,\n default: null\n },\n headerHtml: {\n type: String,\n default: null\n },\n headerTag: {\n type: String,\n default: 'h1'\n },\n headerLevel: {\n type: [Number, String],\n default: '3'\n },\n lead: {\n type: String,\n default: null\n },\n leadHtml: {\n type: String,\n default: null\n },\n leadTag: {\n type: String,\n default: 'p'\n },\n tag: {\n type: String,\n default: 'div'\n },\n bgVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'bgVariant');\n }\n },\n borderVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'borderVariant');\n }\n },\n textVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'textVariant');\n }\n }\n}; // @vue/component\n\nexport var BJumbotron =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class2;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n // The order of the conditionals matter.\n // We are building the component markup in order.\n var childNodes = [];\n var $slots = slots();\n var $scopedSlots = scopedSlots || {}; // Header\n\n if (props.header || hasNormalizedSlot('header', $scopedSlots, $slots) || props.headerHtml) {\n childNodes.push(h(props.headerTag, {\n class: _defineProperty({}, \"display-\".concat(props.headerLevel), Boolean(props.headerLevel))\n }, normalizeSlot('header', {}, $scopedSlots, $slots) || props.headerHtml || stripTags(props.header)));\n } // Lead\n\n\n if (props.lead || hasNormalizedSlot('lead', $scopedSlots, $slots) || props.leadHtml) {\n childNodes.push(h(props.leadTag, {\n staticClass: 'lead'\n }, normalizeSlot('lead', {}, $scopedSlots, $slots) || props.leadHtml || stripTags(props.lead)));\n } // Default slot\n\n\n if (hasNormalizedSlot('default', $scopedSlots, $slots)) {\n childNodes.push(normalizeSlot('default', {}, $scopedSlots, $slots));\n } // If fluid, wrap content in a container/container-fluid\n\n\n if (props.fluid) {\n // Children become a child of a container\n childNodes = [h(BContainer, {\n props: {\n fluid: props.containerFluid\n }\n }, childNodes)];\n } // Return the jumbotron\n\n\n return h(props.tag, mergeData(data, {\n staticClass: 'jumbotron',\n class: (_class2 = {\n 'jumbotron-fluid': props.fluid\n }, _defineProperty(_class2, \"text-\".concat(props.textVariant), Boolean(props.textVariant)), _defineProperty(_class2, \"bg-\".concat(props.bgVariant), Boolean(props.bgVariant)), _defineProperty(_class2, \"border-\".concat(props.borderVariant), Boolean(props.borderVariant)), _defineProperty(_class2, \"border\", Boolean(props.borderVariant)), _class2)\n }), childNodes);\n }\n});","import { BJumbotron } from './jumbotron';\nimport { pluginFactory } from '../../utils/plugins';\nvar JumbotronPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BJumbotron: BJumbotron\n }\n});\nexport { JumbotronPlugin, BJumbotron };","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { arrayIncludes } from '../../utils/array';\nvar COMMON_ALIGNMENT = ['start', 'end', 'center'];\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n noGutters: {\n type: Boolean,\n default: false\n },\n alignV: {\n type: String,\n default: null,\n validator: function validator(str) {\n return arrayIncludes(COMMON_ALIGNMENT.concat(['baseline', 'stretch']), str);\n }\n },\n alignH: {\n type: String,\n default: null,\n validator: function validator(str) {\n return arrayIncludes(COMMON_ALIGNMENT.concat(['between', 'around']), str);\n }\n },\n alignContent: {\n type: String,\n default: null,\n validator: function validator(str) {\n return arrayIncludes(COMMON_ALIGNMENT.concat(['between', 'around', 'stretch']), str);\n }\n }\n}; // @vue/component\n\nexport var BRow =\n/*#__PURE__*/\nVue.extend({\n name: 'BRow',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: (_class = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_class, \"align-items-\".concat(props.alignV), props.alignV), _defineProperty(_class, \"justify-content-\".concat(props.alignH), props.alignH), _defineProperty(_class, \"align-content-\".concat(props.alignContent), props.alignContent), _class)\n }), children);\n }\n});","import { BContainer } from './container';\nimport { BRow } from './row';\nimport { BCol } from './col';\nimport { BFormRow } from './form-row';\nimport { pluginFactory } from '../../utils/plugins';\nvar LayoutPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BContainer: BContainer,\n BRow: BRow,\n BCol: BCol,\n BFormRow: BFormRow\n }\n});\nexport { LayoutPlugin, BContainer, BRow, BCol, BFormRow };","import { BLink } from './link';\nimport { pluginFactory } from '../../utils/plugins';\nvar LinkPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BLink: BLink\n }\n});\nexport { LinkPlugin, BLink };","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { isString } from '../../utils/inspect';\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n flush: {\n type: Boolean,\n default: false\n },\n horizontal: {\n type: [Boolean, String],\n default: false\n }\n}; // @vue/component\n\nexport var BListGroup =\n/*#__PURE__*/\nVue.extend({\n name: 'BListGroup',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var horizontal = props.horizontal === '' ? true : props.horizontal;\n horizontal = props.flush ? false : horizontal;\n var componentData = {\n staticClass: 'list-group',\n class: _defineProperty({\n 'list-group-flush': props.flush,\n 'list-group-horizontal': horizontal === true\n }, \"list-group-horizontal-\".concat(horizontal), isString(horizontal))\n };\n return h(props.tag, mergeData(data, componentData), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport pluckProps from '../../utils/pluck-props';\nimport { arrayIncludes } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link';\nvar NAME = 'BListGroupItem';\nvar actionTags = ['a', 'router-link', 'button', 'b-link'];\nvar linkProps = linkPropsFactory();\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = _objectSpread({\n tag: {\n type: String,\n default: 'div'\n },\n action: {\n type: Boolean,\n default: null\n },\n button: {\n type: Boolean,\n default: null\n },\n variant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'variant');\n }\n }\n}, linkProps); // @vue/component\n\nexport var BListGroupItem =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tag = props.button ? 'button' : !props.href && !props.to ? props.tag : BLink;\n var isAction = Boolean(props.href || props.to || props.action || props.button || arrayIncludes(actionTags, props.tag));\n var attrs = {};\n var itemProps = {};\n\n if (tag === 'button') {\n if (!data.attrs || !data.attrs.type) {\n // Add a type for button is one not provided in passed attributes\n attrs.type = 'button';\n }\n\n if (props.disabled) {\n // Set disabled attribute if button and disabled\n attrs.disabled = true;\n }\n } else {\n itemProps = pluckProps(linkProps, props);\n }\n\n var componentData = {\n attrs: attrs,\n props: itemProps,\n staticClass: 'list-group-item',\n class: (_class = {}, _defineProperty(_class, \"list-group-item-\".concat(props.variant), Boolean(props.variant)), _defineProperty(_class, 'list-group-item-action', isAction), _defineProperty(_class, \"active\", props.active), _defineProperty(_class, \"disabled\", props.disabled), _class)\n };\n return h(tag, mergeData(data, componentData), children);\n }\n});","import { BListGroup } from './list-group';\nimport { BListGroupItem } from './list-group-item';\nimport { pluginFactory } from '../../utils/plugins';\nvar ListGroupPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BListGroup: BListGroup,\n BListGroupItem: BListGroupItem\n }\n});\nexport { ListGroupPlugin, BListGroup, BListGroupItem };","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n }\n}; // @vue/component\n\nexport var BMediaBody =\n/*#__PURE__*/\nVue.extend({\n name: 'BMediaBody',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-body'\n }), children);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n verticalAlign: {\n type: String,\n default: 'top'\n }\n}; // @vue/component\n\nexport var BMediaAside =\n/*#__PURE__*/\nVue.extend({\n name: 'BMediaAside',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var align = props.verticalAlign === 'top' ? 'start' : props.verticalAlign === 'bottom' ? 'end' : props.verticalAlign;\n return h(props.tag, mergeData(data, {\n staticClass: 'd-flex',\n class: _defineProperty({}, \"align-self-\".concat(align), align)\n }), children);\n }\n});","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { BMediaBody } from './media-body';\nimport { BMediaAside } from './media-aside';\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n rightAlign: {\n type: Boolean,\n default: false\n },\n verticalAlign: {\n type: String,\n default: 'top'\n },\n noBody: {\n type: Boolean,\n default: false\n }\n}; // @vue/component\n\nexport var BMedia =\n/*#__PURE__*/\nVue.extend({\n name: 'BMedia',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots,\n children = _ref.children;\n var childNodes = props.noBody ? children : [];\n\n if (!props.noBody) {\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var $aside = normalizeSlot('aside', {}, $scopedSlots, $slots);\n var $default = normalizeSlot('default', {}, $scopedSlots, $slots);\n\n if ($aside && !props.rightAlign) {\n childNodes.push(h(BMediaAside, {\n staticClass: 'mr-3',\n props: {\n verticalAlign: props.verticalAlign\n }\n }, $aside));\n }\n\n childNodes.push(h(BMediaBody, {}, $default));\n\n if ($aside && props.rightAlign) {\n childNodes.push(h(BMediaAside, {\n staticClass: 'ml-3',\n props: {\n verticalAlign: props.verticalAlign\n }\n }, $aside));\n }\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'media'\n }), childNodes);\n }\n});","import { BMedia } from './media';\nimport { BMediaAside } from './media-aside';\nimport { BMediaBody } from './media-body';\nimport { pluginFactory } from '../../utils/plugins';\nvar MediaPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BMedia: BMedia,\n BMediaAside: BMediaAside,\n BMediaBody: BMediaBody\n }\n});\nexport { MediaPlugin, BMedia, BMediaAside, BMediaBody };","import Vue from './vue';\nimport { concat } from './array';\nimport { select } from './dom';\nimport { isBrowser } from './env';\nimport { isFunction, isString } from './inspect';\nimport { HTMLElement } from './safe-types';\nimport normalizeSlotMixin from '../mixins/normalize-slot'; // BTransporterSingle/BTransporterTargetSingle:\n//\n// Single root node portaling of content, which retains parent/child hierarchy\n// Unlike Portal-Vue where portaled content is no longer a descendent of it's\n// intended parent components\n//\n// Private components for use by Tooltips, Popovers and Modals\n//\n// Based on vue-simple-portal\n// https://github.com/LinusBorg/vue-simple-portal\n// Transporter target used by BTransporterSingle\n// Supports only a single root element\n// @vue/component\n\nvar BTransporterTargetSingle =\n/*#__PURE__*/\nVue.extend({\n // As an abstract component, it doesn't appear in the $parent chain of\n // components, which means the next parent of any component rendered inside\n // of this one will be the parent from which is was portal'd\n abstract: true,\n name: 'BTransporterTargetSingle',\n props: {\n nodes: {\n // Even though we only support a single root element,\n // VNodes are always passed as an array\n type: [Array, Function] // default: undefined\n\n }\n },\n data: function data(vm) {\n return {\n updatedNodes: vm.nodes\n };\n },\n destroyed: function destroyed() {\n var el = this.$el;\n el && el.parentNode && el.parentNode.removeChild(el);\n },\n render: function render(h) {\n var nodes = isFunction(this.updatedNodes) ? this.updatedNodes({}) : this.updatedNodes;\n nodes = concat(nodes).filter(Boolean);\n /* istanbul ignore else */\n\n if (nodes && nodes.length > 0 && !nodes[0].text) {\n return nodes[0];\n } else {\n /* istanbul ignore next */\n return h();\n }\n }\n}); // This component has no root element, so only a single VNode is allowed\n// @vue/component\n\nexport var BTransporterSingle =\n/*#__PURE__*/\nVue.extend({\n name: 'BTransporterSingle',\n mixins: [normalizeSlotMixin],\n props: {\n disabled: {\n type: Boolean,\n default: false\n },\n container: {\n // String: CSS selector,\n // HTMLElement: Element reference\n // Mainly needed for tooltips/popovers inside modals\n type: [String, HTMLElement],\n default: 'body'\n },\n tag: {\n // This should be set to match the root element type\n type: String,\n default: 'div'\n }\n },\n watch: {\n disabled: {\n immediate: true,\n handler: function handler(disabled) {\n disabled ? this.unmountTarget() : this.$nextTick(this.mountTarget);\n }\n }\n },\n created: function created() {\n this._bv_defaultFn = null;\n this._bv_target = null;\n },\n beforeMount: function beforeMount() {\n this.mountTarget();\n },\n updated: function updated() {\n var _this = this;\n\n // Placed in a nextTick to ensure that children have completed\n // updating before rendering in the target\n this.$nextTick(function () {\n _this.updateTarget();\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.unmountTarget();\n this._bv_defaultFn = null;\n },\n methods: {\n // Get the element which the target should be appended to\n getContainer: function getContainer() {\n /* istanbul ignore else */\n if (isBrowser) {\n var container = this.container;\n return isString(container) ? select(container) : container;\n } else {\n return null;\n }\n },\n // Mount the target\n mountTarget: function mountTarget() {\n if (!this._bv_target) {\n var container = this.getContainer();\n\n if (container) {\n var el = document.createElement('div');\n container.appendChild(el);\n this._bv_target = new BTransporterTargetSingle({\n el: el,\n parent: this,\n propsData: {\n // Initial nodes to be rendered\n nodes: concat(this.normalizeSlot('default'))\n }\n });\n }\n }\n },\n // Update the content of the target\n updateTarget: function updateTarget() {\n if (isBrowser && this._bv_target) {\n var defaultFn = this.$scopedSlots.default;\n\n if (!this.disabled) {\n /* istanbul ignore else: only applicable in Vue 2.5.x */\n if (defaultFn && this._bv_defaultFn !== defaultFn) {\n // We only update the target component if the scoped slot\n // function is a fresh one. The new slot syntax (since Vue 2.6)\n // can cache unchanged slot functions and we want to respect that here\n this._bv_target.updatedNodes = defaultFn;\n } else if (!defaultFn) {\n // We also need to be back compatible with non-scoped default slot (i.e. 2.5.x)\n this._bv_target.updatedNodes = this.$slots.default;\n }\n } // Update the scoped slot function cache\n\n\n this._bv_defaultFn = defaultFn;\n }\n },\n // Unmount the target\n unmountTarget: function unmountTarget() {\n if (this._bv_target) {\n this._bv_target.$destroy();\n\n this._bv_target = null;\n }\n }\n },\n render: function render(h) {\n if (this.disabled) {\n var nodes = concat(this.normalizeSlot('default')).filter(Boolean);\n\n if (nodes.length > 0 && !nodes[0].text) {\n return nodes[0];\n }\n }\n\n return h();\n }\n});","// This method returns a component's scoped style attribute name: `data-v-xxxxxxx`\n// The `_scopeId` options property is added by vue-loader when using scoped styles\n// and will be `undefined` if no scoped styles are in use\nvar getScopeId = function getScopeId(vm) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return vm ? vm.$options._scopeId || defaultValue : defaultValue;\n};\n\nexport default getScopeId;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport getScopeId from '../utils/get-scope-id';\nexport default {\n computed: {\n scopedStyleAttrs: function scopedStyleAttrs() {\n var scopeId = getScopeId(this.$parent);\n return scopeId ? _defineProperty({}, scopeId, '') : {};\n }\n }\n};","/**\n * Private ModalManager helper\n * Handles controlling modal stacking zIndexes and body adjustments/classes\n */\nimport Vue from '../../../utils/vue';\nimport { getAttr, hasAttr, removeAttr, setAttr, addClass, removeClass, getBCR, getCS, selectAll, requestAF } from '../../../utils/dom';\nimport { isBrowser } from '../../../utils/env';\nimport { isNull } from '../../../utils/inspect'; // --- Constants ---\n// Default modal backdrop z-index\n\nvar DEFAULT_ZINDEX = 1040; // Selectors for padding/margin adjustments\n\nvar Selector = {\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top',\n NAVBAR_TOGGLER: '.navbar-toggler'\n}; // @vue/component\n\nvar ModalManager =\n/*#__PURE__*/\nVue.extend({\n data: function data() {\n return {\n modals: [],\n baseZIndex: null,\n scrollbarWidth: null,\n isBodyOverflowing: false\n };\n },\n computed: {\n modalCount: function modalCount() {\n return this.modals.length;\n },\n modalsAreOpen: function modalsAreOpen() {\n return this.modalCount > 0;\n }\n },\n watch: {\n modalCount: function modalCount(newCount, oldCount) {\n if (isBrowser) {\n this.getScrollbarWidth();\n\n if (newCount > 0 && oldCount === 0) {\n // Transitioning to modal(s) open\n this.checkScrollbar();\n this.setScrollbar();\n addClass(document.body, 'modal-open');\n } else if (newCount === 0 && oldCount > 0) {\n // Transitioning to modal(s) closed\n this.resetScrollbar();\n removeClass(document.body, 'modal-open');\n }\n\n setAttr(document.body, 'data-modal-open-count', String(newCount));\n }\n },\n modals: function modals(newVal, oldVal) {\n var _this = this;\n\n this.checkScrollbar();\n requestAF(function () {\n _this.updateModals(newVal || []);\n });\n }\n },\n methods: {\n // Public methods\n registerModal: function registerModal(modal) {\n var _this2 = this;\n\n // Register the modal if not already registered\n if (modal && this.modals.indexOf(modal) === -1) {\n // Add modal to modals array\n this.modals.push(modal);\n modal.$once('hook:beforeDestroy', function () {\n _this2.unregisterModal(modal);\n });\n }\n },\n unregisterModal: function unregisterModal(modal) {\n var index = this.modals.indexOf(modal);\n\n if (index > -1) {\n // Remove modal from modals array\n this.modals.splice(index, 1); // Reset the modal's data\n\n if (!(modal._isBeingDestroyed || modal._isDestroyed)) {\n this.resetModal(modal);\n }\n }\n },\n getBaseZIndex: function getBaseZIndex() {\n if (isNull(this.baseZIndex) && isBrowser) {\n // Create a temporary `div.modal-backdrop` to get computed z-index\n var div = document.createElement('div');\n div.className = 'modal-backdrop d-none';\n div.style.display = 'none';\n document.body.appendChild(div);\n this.baseZIndex = parseInt(getCS(div).zIndex || DEFAULT_ZINDEX, 10);\n document.body.removeChild(div);\n }\n\n return this.baseZIndex || DEFAULT_ZINDEX;\n },\n getScrollbarWidth: function getScrollbarWidth() {\n if (isNull(this.scrollbarWidth) && isBrowser) {\n // Create a temporary `div.measure-scrollbar` to get computed z-index\n var div = document.createElement('div');\n div.className = 'modal-scrollbar-measure';\n document.body.appendChild(div);\n this.scrollbarWidth = getBCR(div).width - div.clientWidth;\n document.body.removeChild(div);\n }\n\n return this.scrollbarWidth || 0;\n },\n // Private methods\n updateModals: function updateModals(modals) {\n var _this3 = this;\n\n var baseZIndex = this.getBaseZIndex();\n var scrollbarWidth = this.getScrollbarWidth();\n modals.forEach(function (modal, index) {\n // We update data values on each modal\n modal.zIndex = baseZIndex + index;\n modal.scrollbarWidth = scrollbarWidth;\n modal.isTop = index === _this3.modals.length - 1;\n modal.isBodyOverflowing = _this3.isBodyOverflowing;\n });\n },\n resetModal: function resetModal(modal) {\n if (modal) {\n modal.zIndex = this.getBaseZIndex();\n modal.isTop = true;\n modal.isBodyOverflowing = false;\n }\n },\n checkScrollbar: function checkScrollbar() {\n // Determine if the body element is overflowing\n var _getBCR = getBCR(document.body),\n left = _getBCR.left,\n right = _getBCR.right;\n\n this.isBodyOverflowing = left + right < window.innerWidth;\n },\n setScrollbar: function setScrollbar() {\n var body = document.body; // Storage place to cache changes to margins and padding\n // Note: This assumes the following element types are not added to the\n // document after the modal has opened.\n\n body._paddingChangedForModal = body._paddingChangedForModal || [];\n body._marginChangedForModal = body._marginChangedForModal || [];\n\n if (this.isBodyOverflowing) {\n var scrollbarWidth = this.scrollbarWidth; // Adjust fixed content padding\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(Selector.FIXED_CONTENT).forEach(function (el) {\n var actualPadding = el.style.paddingRight;\n var calculatedPadding = getCS(el).paddingRight || 0;\n setAttr(el, 'data-padding-right', actualPadding);\n el.style.paddingRight = \"\".concat(parseFloat(calculatedPadding) + scrollbarWidth, \"px\");\n\n body._paddingChangedForModal.push(el);\n }); // Adjust sticky content margin\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(Selector.STICKY_CONTENT).forEach(function (el)\n /* istanbul ignore next */\n {\n var actualMargin = el.style.marginRight;\n var calculatedMargin = getCS(el).marginRight || 0;\n setAttr(el, 'data-margin-right', actualMargin);\n el.style.marginRight = \"\".concat(parseFloat(calculatedMargin) - scrollbarWidth, \"px\");\n\n body._marginChangedForModal.push(el);\n }); // Adjust <b-navbar-toggler> margin\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(Selector.NAVBAR_TOGGLER).forEach(function (el)\n /* istanbul ignore next */\n {\n var actualMargin = el.style.marginRight;\n var calculatedMargin = getCS(el).marginRight || 0;\n setAttr(el, 'data-margin-right', actualMargin);\n el.style.marginRight = \"\".concat(parseFloat(calculatedMargin) + scrollbarWidth, \"px\");\n\n body._marginChangedForModal.push(el);\n }); // Adjust body padding\n\n var actualPadding = body.style.paddingRight;\n var calculatedPadding = getCS(body).paddingRight;\n setAttr(body, 'data-padding-right', actualPadding);\n body.style.paddingRight = \"\".concat(parseFloat(calculatedPadding) + scrollbarWidth, \"px\");\n }\n },\n resetScrollbar: function resetScrollbar() {\n var body = document.body;\n\n if (body._paddingChangedForModal) {\n // Restore fixed content padding\n body._paddingChangedForModal.forEach(function (el) {\n /* istanbul ignore next: difficult to test in JSDOM */\n if (hasAttr(el, 'data-padding-right')) {\n el.style.paddingRight = getAttr(el, 'data-padding-right') || '';\n removeAttr(el, 'data-padding-right');\n }\n });\n }\n\n if (body._marginChangedForModal) {\n // Restore sticky content and navbar-toggler margin\n body._marginChangedForModal.forEach(function (el) {\n /* istanbul ignore next: difficult to test in JSDOM */\n if (hasAttr(el, 'data-margin-right')) {\n el.style.marginRight = getAttr(el, 'data-margin-right') || '';\n removeAttr(el, 'data-margin-right');\n }\n });\n }\n\n body._paddingChangedForModal = null;\n body._marginChangedForModal = null; // Restore body padding\n\n if (hasAttr(body, 'data-padding-right')) {\n body.style.paddingRight = getAttr(body, 'data-padding-right') || '';\n removeAttr(body, 'data-padding-right');\n }\n }\n }\n}); // Create and export our modal manager instance\n\nexport var modalManager = new ModalManager();","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { defineProperties, readonlyDescriptor } from '../../../utils/object';\n\nvar BvModalEvent =\n/*#__PURE__*/\nfunction (_BvEvent) {\n _inherits(BvModalEvent, _BvEvent);\n\n function BvModalEvent(type) {\n var _this;\n\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvModalEvent);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(BvModalEvent).call(this, type, eventInit)); // Freeze our new props as readonly, but leave them enumerable\n\n defineProperties(_assertThisInitialized(_this), {\n trigger: readonlyDescriptor()\n });\n return _this;\n }\n\n _createClass(BvModalEvent, null, [{\n key: \"Defaults\",\n get: function get() {\n return _objectSpread({}, _get(_getPrototypeOf(BvModalEvent), \"Defaults\", this), {\n trigger: null\n });\n }\n }]);\n\n return BvModalEvent;\n}(BvEvent); // Named exports\n\n\nexport { BvModalEvent };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport BVTransition from '../../utils/bv-transition';\nimport KeyCodes from '../../utils/key-codes';\nimport observeDom from '../../utils/observe-dom';\nimport { arrayIncludes } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { contains, eventOff, eventOn, isVisible, requestAF, select, selectAll } from '../../utils/dom';\nimport { isBrowser } from '../../utils/env';\nimport { stripTags } from '../../utils/html';\nimport { isString, isUndefinedOrNull } from '../../utils/inspect';\nimport { BTransporterSingle } from '../../utils/transporter';\nimport idMixin from '../../mixins/id';\nimport listenOnRootMixin from '../../mixins/listen-on-root';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport scopedStyleAttrsMixin from '../../mixins/scoped-style-attrs';\nimport { BButton } from '../button/button';\nimport { BButtonClose } from '../button/button-close';\nimport { modalManager } from './helpers/modal-manager';\nimport { BvModalEvent } from './helpers/bv-modal-event.class'; // --- Constants ---\n\nvar NAME = 'BModal'; // ObserveDom config to detect changes in modal content\n// so that we can adjust the modal padding if needed\n\nvar OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n}; // Options for DOM event listeners\n\nvar EVT_OPTIONS = {\n passive: true,\n capture: false\n}; // Query selector to find all tabbable elements\n// (includes tabindex=\"-1\", which we filter out after)\n\nvar TABABLE_SELECTOR = ['button', '[href]:not(.disabled)', 'input', 'select', 'textarea', '[tabindex]', '[contenteditable]'].map(function (s) {\n return \"\".concat(s, \":not(:disabled):not([disabled])\");\n}).join(', '); // --- Utility methods ---\n// Attempt to focus an element, and return true if successful\n\nvar attemptFocus = function attemptFocus(el) {\n if (el && isVisible(el) && el.focus) {\n try {\n el.focus();\n } catch (_unused) {}\n } // If the element has focus, then return true\n\n\n return document.activeElement === el;\n}; // --- Props ---\n\n\nexport var props = {\n size: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'size');\n }\n },\n centered: {\n type: Boolean,\n default: false\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n buttonSize: {\n type: String,\n default: ''\n },\n noStacking: {\n type: Boolean,\n default: false\n },\n noFade: {\n type: Boolean,\n default: false\n },\n noCloseOnBackdrop: {\n type: Boolean,\n default: false\n },\n noCloseOnEsc: {\n type: Boolean,\n default: false\n },\n noEnforceFocus: {\n type: Boolean,\n default: false\n },\n title: {\n type: String,\n default: ''\n },\n titleHtml: {\n type: String\n },\n titleTag: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'titleTag');\n }\n },\n titleClass: {\n type: [String, Array, Object],\n default: null\n },\n titleSrOnly: {\n type: Boolean,\n default: false\n },\n ariaLabel: {\n type: String,\n default: null\n },\n headerBgVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'headerBgVariant');\n }\n },\n headerBorderVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'headerBorderVariant');\n }\n },\n headerTextVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'headerTextVariant');\n }\n },\n headerCloseVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'headerCloseVariant');\n }\n },\n headerClass: {\n type: [String, Array, Object],\n default: null\n },\n bodyBgVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'bodyBgVariant');\n }\n },\n bodyTextVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'bodyTextVariant');\n }\n },\n modalClass: {\n type: [String, Array, Object],\n default: null\n },\n dialogClass: {\n type: [String, Array, Object],\n default: null\n },\n contentClass: {\n type: [String, Array, Object],\n default: null\n },\n bodyClass: {\n type: [String, Array, Object],\n default: null\n },\n footerBgVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'footerBgVariant');\n }\n },\n footerBorderVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'footerBorderVariant');\n }\n },\n footerTextVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'footerTextVariant');\n }\n },\n footerClass: {\n type: [String, Array, Object],\n default: null\n },\n hideHeader: {\n type: Boolean,\n default: false\n },\n hideFooter: {\n type: Boolean,\n default: false\n },\n hideHeaderClose: {\n type: Boolean,\n default: false\n },\n hideBackdrop: {\n type: Boolean,\n default: false\n },\n okOnly: {\n type: Boolean,\n default: false\n },\n okDisabled: {\n type: Boolean,\n default: false\n },\n cancelDisabled: {\n type: Boolean,\n default: false\n },\n visible: {\n type: Boolean,\n default: false\n },\n returnFocus: {\n // type: Object,\n default: null\n },\n headerCloseLabel: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'headerCloseLabel');\n }\n },\n cancelTitle: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'cancelTitle');\n }\n },\n cancelTitleHtml: {\n type: String\n },\n okTitle: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'okTitle');\n }\n },\n okTitleHtml: {\n type: String\n },\n cancelVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'cancelVariant');\n }\n },\n okVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'okVariant');\n }\n },\n lazy: {\n type: Boolean,\n default: false\n },\n busy: {\n type: Boolean,\n default: false\n },\n static: {\n type: Boolean,\n default: false\n },\n autoFocusButton: {\n type: String,\n default: null,\n validator: function validator(val) {\n /* istanbul ignore next */\n return isUndefinedOrNull(val) || arrayIncludes(['ok', 'cancel', 'close'], val);\n }\n }\n}; // @vue/component\n\nexport var BModal =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n mixins: [idMixin, listenOnRootMixin, normalizeSlotMixin, scopedStyleAttrsMixin],\n inheritAttrs: false,\n model: {\n prop: 'visible',\n event: 'change'\n },\n props: props,\n data: function data() {\n return {\n isHidden: true,\n // If modal should not be in document\n isVisible: false,\n // Controls modal visible state\n isTransitioning: false,\n // Used for style control\n isShow: false,\n // Used for style control\n isBlock: false,\n // Used for style control\n isOpening: false,\n // To signal that the modal is in the process of opening\n isClosing: false,\n // To signal that the modal is in the process of closing\n ignoreBackdropClick: false,\n // Used to signify if click out listener should ignore the click\n isModalOverflowing: false,\n return_focus: this.returnFocus || null,\n // The following items are controlled by the modalManager instance\n scrollbarWidth: 0,\n zIndex: modalManager.getBaseZIndex(),\n isTop: true,\n isBodyOverflowing: false\n };\n },\n computed: {\n modalClasses: function modalClasses() {\n return [{\n fade: !this.noFade,\n show: this.isShow\n }, this.modalClass];\n },\n modalStyles: function modalStyles() {\n var sbWidth = \"\".concat(this.scrollbarWidth, \"px\");\n return {\n paddingLeft: !this.isBodyOverflowing && this.isModalOverflowing ? sbWidth : '',\n paddingRight: this.isBodyOverflowing && !this.isModalOverflowing ? sbWidth : '',\n // Needed to fix issue https://github.com/bootstrap-vue/bootstrap-vue/issues/3457\n // Even though we are using v-show, we must ensure 'none' is restored in the styles\n display: this.isBlock ? 'block' : 'none'\n };\n },\n dialogClasses: function dialogClasses() {\n var _ref;\n\n return [(_ref = {}, _defineProperty(_ref, \"modal-\".concat(this.size), Boolean(this.size)), _defineProperty(_ref, 'modal-dialog-centered', this.centered), _defineProperty(_ref, 'modal-dialog-scrollable', this.scrollable), _ref), this.dialogClass];\n },\n headerClasses: function headerClasses() {\n var _ref2;\n\n return [(_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(this.headerBgVariant), Boolean(this.headerBgVariant)), _defineProperty(_ref2, \"text-\".concat(this.headerTextVariant), Boolean(this.headerTextVariant)), _defineProperty(_ref2, \"border-\".concat(this.headerBorderVariant), Boolean(this.headerBorderVariant)), _ref2), this.headerClass];\n },\n titleClasses: function titleClasses() {\n return [{\n 'sr-only': this.titleSrOnly\n }, this.titleClass];\n },\n bodyClasses: function bodyClasses() {\n var _ref3;\n\n return [(_ref3 = {}, _defineProperty(_ref3, \"bg-\".concat(this.bodyBgVariant), Boolean(this.bodyBgVariant)), _defineProperty(_ref3, \"text-\".concat(this.bodyTextVariant), Boolean(this.bodyTextVariant)), _ref3), this.bodyClass];\n },\n footerClasses: function footerClasses() {\n var _ref4;\n\n return [(_ref4 = {}, _defineProperty(_ref4, \"bg-\".concat(this.footerBgVariant), Boolean(this.footerBgVariant)), _defineProperty(_ref4, \"text-\".concat(this.footerTextVariant), Boolean(this.footerTextVariant)), _defineProperty(_ref4, \"border-\".concat(this.footerBorderVariant), Boolean(this.footerBorderVariant)), _ref4), this.footerClass];\n },\n modalOuterStyle: function modalOuterStyle() {\n // Styles needed for proper stacking of modals\n return {\n position: 'absolute',\n zIndex: this.zIndex\n };\n },\n slotScope: function slotScope() {\n return {\n ok: this.onOk,\n cancel: this.onCancel,\n close: this.onClose,\n hide: this.hide,\n visible: this.isVisible\n };\n }\n },\n watch: {\n visible: function visible(newVal, oldVal) {\n if (newVal !== oldVal) {\n this[newVal ? 'show' : 'hide']();\n }\n }\n },\n created: function created() {\n // Define non-reactive properties\n this._observer = null;\n },\n mounted: function mounted() {\n // Set initial z-index as queried from the DOM\n this.zIndex = modalManager.getBaseZIndex(); // Listen for events from others to either open or close ourselves\n // and listen to all modals to enable/disable enforce focus\n\n this.listenOnRoot('bv::show::modal', this.showHandler);\n this.listenOnRoot('bv::hide::modal', this.hideHandler);\n this.listenOnRoot('bv::toggle::modal', this.toggleHandler); // Listen for `bv:modal::show events`, and close ourselves if the\n // opening modal not us\n\n this.listenOnRoot('bv::modal::show', this.modalListener); // Initially show modal?\n\n if (this.visible === true) {\n this.$nextTick(this.show);\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Ensure everything is back to normal\n if (this._observer) {\n this._observer.disconnect();\n\n this._observer = null;\n }\n\n this.setEnforceFocus(false);\n this.setResizeEvent(false);\n\n if (this.isVisible) {\n this.isVisible = false;\n this.isShow = false;\n this.isTransitioning = false;\n }\n },\n methods: {\n // Private method to update the v-model\n updateModel: function updateModel(val) {\n if (val !== this.visible) {\n this.$emit('change', val);\n }\n },\n // Private method to create a BvModalEvent object\n buildEvent: function buildEvent(type) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new BvModalEvent(type, _objectSpread({\n // Default options\n cancelable: false,\n target: this.$refs.modal || this.$el || null,\n relatedTarget: null,\n trigger: null\n }, opts, {\n // Options that can't be overridden\n vueTarget: this,\n componentId: this.safeId()\n }));\n },\n // Public method to show modal\n show: function show() {\n if (this.isVisible || this.isOpening) {\n // If already open, or in the process of opening, do nothing\n\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.isClosing) {\n // If we are in the process of closing, wait until hidden before re-opening\n\n /* istanbul ignore next */\n this.$once('hidden', this.show);\n /* istanbul ignore next */\n\n return;\n }\n\n this.isOpening = true; // Set the element to return focus to when closed\n\n this.return_focus = this.return_focus || this.getActiveElement();\n var showEvt = this.buildEvent('show', {\n cancelable: true\n });\n this.emitEvent(showEvt); // Don't show if canceled\n\n if (showEvt.defaultPrevented || this.isVisible) {\n this.isOpening = false; // Ensure the v-model reflects the current state\n\n this.updateModel(false);\n return;\n } // Show the modal\n\n\n this.doShow();\n },\n // Public method to hide modal\n hide: function hide() {\n var trigger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n if (!this.isVisible || this.isClosing) {\n /* istanbul ignore next */\n return;\n }\n\n this.isClosing = true;\n var hideEvt = this.buildEvent('hide', {\n cancelable: trigger !== 'FORCE',\n trigger: trigger || null\n }); // We emit specific event for one of the three built-in buttons\n\n if (trigger === 'ok') {\n this.$emit('ok', hideEvt);\n } else if (trigger === 'cancel') {\n this.$emit('cancel', hideEvt);\n } else if (trigger === 'headerclose') {\n this.$emit('close', hideEvt);\n }\n\n this.emitEvent(hideEvt); // Hide if not canceled\n\n if (hideEvt.defaultPrevented || !this.isVisible) {\n this.isClosing = false; // Ensure v-model reflects current state\n\n this.updateModel(true);\n return;\n } // Stop observing for content changes\n\n\n if (this._observer) {\n this._observer.disconnect();\n\n this._observer = null;\n } // Trigger the hide transition\n\n\n this.isVisible = false; // Update the v-model\n\n this.updateModel(false);\n },\n // Public method to toggle modal visibility\n toggle: function toggle(triggerEl) {\n if (triggerEl) {\n this.return_focus = triggerEl;\n }\n\n if (this.isVisible) {\n this.hide('toggle');\n } else {\n this.show();\n }\n },\n // Private method to get the current document active element\n getActiveElement: function getActiveElement() {\n if (isBrowser) {\n var activeElement = document.activeElement; // Note: On IE11, `document.activeElement` may be null.\n // So we test it for truthiness first.\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3206\n // Returning focus to document.body may cause unwanted scrolls, so we\n // exclude setting focus on body\n\n if (activeElement && activeElement !== document.body && activeElement.focus) {\n // Preset the fallback return focus value if it is not set\n // `document.activeElement` should be the trigger element that was clicked or\n // in the case of using the v-model, which ever element has current focus\n // Will be overridden by some commands such as toggle, etc.\n return activeElement;\n }\n }\n\n return null;\n },\n // Private method to get a list of all tabable elements within modal content\n getTabables: function getTabables() {\n // Find all tabable elements in the modal content\n // Assumes users have not used tabindex > 0 on elements!\n return selectAll(TABABLE_SELECTOR, this.$refs.content).filter(isVisible).filter(function (i) {\n return i.tabIndex > -1 && !i.disabled;\n });\n },\n // Private method to finish showing modal\n doShow: function doShow() {\n var _this = this;\n\n /* istanbul ignore next: commenting out for now until we can test stacking */\n if (modalManager.modalsAreOpen && this.noStacking) {\n // If another modal(s) is already open, wait for it(them) to close\n this.listenOnRootOnce('bv::modal::hidden', this.doShow);\n return;\n }\n\n modalManager.registerModal(this); // Place modal in DOM\n\n this.isHidden = false;\n this.$nextTick(function () {\n // We do this in `$nextTick()` to ensure the modal is in DOM first\n // before we show it\n _this.isVisible = true;\n _this.isOpening = false; // Update the v-model\n\n _this.updateModel(true);\n\n _this.$nextTick(function () {\n // In a nextTick in case modal content is lazy\n // Observe changes in modal content and adjust if necessary\n _this._observer = observeDom(_this.$refs.content, _this.checkModalOverflow.bind(_this), OBSERVER_CONFIG);\n });\n });\n },\n // Transition handlers\n onBeforeEnter: function onBeforeEnter() {\n this.isTransitioning = true;\n this.setResizeEvent(true);\n },\n onEnter: function onEnter() {\n this.isBlock = true;\n },\n onAfterEnter: function onAfterEnter() {\n var _this2 = this;\n\n this.checkModalOverflow();\n this.isShow = true;\n this.isTransitioning = false; // We use `requestAF()` to allow transition hooks to complete\n // before passing control over to the other handlers\n // This will allow users to not have to use `$nextTick()` or `requestAF()`\n // when trying to pre-focus an element\n\n requestAF(function () {\n _this2.emitEvent(_this2.buildEvent('shown'));\n\n _this2.setEnforceFocus(true);\n\n _this2.$nextTick(function () {\n // Delayed in a `$nextTick()` to allow users time to pre-focus\n // an element if the wish\n _this2.focusFirst();\n });\n });\n },\n onBeforeLeave: function onBeforeLeave() {\n this.isTransitioning = true;\n this.setResizeEvent(false);\n this.setEnforceFocus(false);\n },\n onLeave: function onLeave() {\n // Remove the 'show' class\n this.isShow = false;\n },\n onAfterLeave: function onAfterLeave() {\n var _this3 = this;\n\n this.isBlock = false;\n this.isTransitioning = false;\n this.isModalOverflowing = false;\n this.isHidden = true;\n this.$nextTick(function () {\n _this3.isClosing = false;\n modalManager.unregisterModal(_this3);\n\n _this3.returnFocusTo(); // TODO: Need to find a way to pass the `trigger` property\n // to the `hidden` event, not just only the `hide` event\n\n\n _this3.emitEvent(_this3.buildEvent('hidden'));\n });\n },\n // Event emitter\n emitEvent: function emitEvent(bvModalEvt) {\n var type = bvModalEvt.type; // We emit on root first incase a global listener wants to cancel\n // the event first before the instance emits it's event\n\n this.emitOnRoot(\"bv::modal::\".concat(type), bvModalEvt, bvModalEvt.componentId);\n this.$emit(type, bvModalEvt);\n },\n // UI event handlers\n onDialogMousedown: function onDialogMousedown() {\n var _this4 = this;\n\n // Watch to see if the matching mouseup event occurs outside the dialog\n // And if it does, cancel the clickOut handler\n var modal = this.$refs.modal;\n\n var onceModalMouseup = function onceModalMouseup(evt) {\n eventOff(modal, 'mouseup', onceModalMouseup, EVT_OPTIONS);\n\n if (evt.target === modal) {\n _this4.ignoreBackdropClick = true;\n }\n };\n\n eventOn(modal, 'mouseup', onceModalMouseup, EVT_OPTIONS);\n },\n onClickOut: function onClickOut(evt) {\n if (this.ignoreBackdropClick) {\n // Click was initiated inside the modal content, but finished outside.\n // Set by the above onDialogMousedown handler\n this.ignoreBackdropClick = false;\n return;\n } // Do nothing if not visible, backdrop click disabled, or element\n // that generated click event is no longer in document body\n\n\n if (!this.isVisible || this.noCloseOnBackdrop || !contains(document.body, evt.target)) {\n return;\n } // If backdrop clicked, hide modal\n\n\n if (!contains(this.$refs.content, evt.target)) {\n this.hide('backdrop');\n }\n },\n onOk: function onOk() {\n this.hide('ok');\n },\n onCancel: function onCancel() {\n this.hide('cancel');\n },\n onClose: function onClose() {\n this.hide('headerclose');\n },\n onEsc: function onEsc(evt) {\n // If ESC pressed, hide modal\n if (evt.keyCode === KeyCodes.ESC && this.isVisible && !this.noCloseOnEsc) {\n this.hide('esc');\n }\n },\n // Document focusin listener\n focusHandler: function focusHandler(evt) {\n // If focus leaves modal content, bring it back\n var content = this.$refs.content;\n var target = evt.target;\n\n if (!this.noEnforceFocus && this.isTop && this.isVisible && content && document !== target && !contains(content, target)) {\n var tabables = this.getTabables();\n\n if (this.$refs.bottomTrap && target === this.$refs.bottomTrap) {\n // If user pressed TAB out of modal into our bottom trab trap element\n // Find the first tabable element in the modal content and focus it\n if (attemptFocus(tabables[0])) {\n // Focus was successful\n return;\n }\n } else if (this.$refs.topTrap && target === this.$refs.topTrap) {\n // If user pressed CTRL-TAB out of modal and into our top tab trap element\n // Find the last tabable element in the modal content and focus it\n if (attemptFocus(tabables[tabables.length - 1])) {\n // Focus was successful\n return;\n }\n } // Otherwise focus the modal content container\n\n\n content.focus({\n preventScroll: true\n });\n }\n },\n // Turn on/off focusin listener\n setEnforceFocus: function setEnforceFocus(on) {\n var method = on ? eventOn : eventOff;\n method(document, 'focusin', this.focusHandler, EVT_OPTIONS);\n },\n // Resize listener\n setResizeEvent: function setResizeEvent(on) {\n var method = on ? eventOn : eventOff; // These events should probably also check if\n // body is overflowing\n\n method(window, 'resize', this.checkModalOverflow, EVT_OPTIONS);\n method(window, 'orientationchange', this.checkModalOverflow, EVT_OPTIONS);\n },\n // Root listener handlers\n showHandler: function showHandler(id, triggerEl) {\n if (id === this.safeId()) {\n this.return_focus = triggerEl || this.getActiveElement();\n this.show();\n }\n },\n hideHandler: function hideHandler(id) {\n if (id === this.safeId()) {\n this.hide('event');\n }\n },\n toggleHandler: function toggleHandler(id, triggerEl) {\n if (id === this.safeId()) {\n this.toggle(triggerEl);\n }\n },\n modalListener: function modalListener(bvEvt) {\n // If another modal opens, close this one if stacking not permitted\n if (this.noStacking && bvEvt.vueTarget !== this) {\n this.hide();\n }\n },\n // Focus control handlers\n focusFirst: function focusFirst() {\n var _this5 = this;\n\n // Don't try and focus if we are SSR\n if (isBrowser) {\n requestAF(function () {\n var modal = _this5.$refs.modal;\n var content = _this5.$refs.content;\n\n var activeElement = _this5.getActiveElement(); // If the modal contains the activeElement, we don't do anything\n\n\n if (modal && content && !(activeElement && contains(content, activeElement))) {\n var ok = _this5.$refs['ok-button'];\n var cancel = _this5.$refs['cancel-button'];\n var close = _this5.$refs['close-button']; // Focus the appropriate button or modal content wrapper\n\n var autoFocus = _this5.autoFocusButton;\n var el = autoFocus === 'ok' && ok ? ok.$el || ok : autoFocus === 'cancel' && cancel ? cancel.$el || cancel : autoFocus === 'close' && close ? close.$el || close : content; // Focus the element\n\n attemptFocus(el);\n\n if (el === content) {\n // Make sure top of modal is showing (if longer than the viewport)\n _this5.$nextTick(function () {\n modal.scrollTop = 0;\n });\n }\n }\n });\n }\n },\n returnFocusTo: function returnFocusTo() {\n // Prefer `returnFocus` prop over event specified\n // `return_focus` value\n var el = this.returnFocus || this.return_focus || null;\n this.return_focus = null;\n this.$nextTick(function () {\n // Is el a string CSS selector?\n el = isString(el) ? select(el) : el;\n\n if (el) {\n // Possibly could be a component reference\n el = el.$el || el;\n attemptFocus(el);\n }\n });\n },\n checkModalOverflow: function checkModalOverflow() {\n if (this.isVisible) {\n var modal = this.$refs.modal;\n this.isModalOverflowing = modal.scrollHeight > document.documentElement.clientHeight;\n }\n },\n makeModal: function makeModal(h) {\n // Modal header\n var header = h();\n\n if (!this.hideHeader) {\n var modalHeader = this.normalizeSlot('modal-header', this.slotScope);\n\n if (!modalHeader) {\n var closeButton = h();\n\n if (!this.hideHeaderClose) {\n closeButton = h(BButtonClose, {\n ref: 'close-button',\n props: {\n disabled: this.isTransitioning,\n ariaLabel: this.headerCloseLabel,\n textVariant: this.headerCloseVariant || this.headerTextVariant\n },\n on: {\n click: this.onClose\n }\n }, [this.normalizeSlot('modal-header-close')]);\n }\n\n var domProps = !this.hasNormalizedSlot('modal-title') && this.titleHtml ? {\n innerHTML: this.titleHtml\n } : {};\n modalHeader = [h(this.titleTag, {\n staticClass: 'modal-title',\n class: this.titleClasses,\n attrs: {\n id: this.safeId('__BV_modal_title_')\n },\n domProps: domProps\n }, [this.normalizeSlot('modal-title', this.slotScope) || stripTags(this.title)]), closeButton];\n }\n\n header = h('header', {\n ref: 'header',\n staticClass: 'modal-header',\n class: this.headerClasses,\n attrs: {\n id: this.safeId('__BV_modal_header_')\n }\n }, [modalHeader]);\n } // Modal body\n\n\n var body = h('div', {\n ref: 'body',\n staticClass: 'modal-body',\n class: this.bodyClasses,\n attrs: {\n id: this.safeId('__BV_modal_body_')\n }\n }, this.normalizeSlot('default', this.slotScope)); // Modal footer\n\n var footer = h();\n\n if (!this.hideFooter) {\n var modalFooter = this.normalizeSlot('modal-footer', this.slotScope);\n\n if (!modalFooter) {\n var cancelButton = h();\n\n if (!this.okOnly) {\n var cancelHtml = this.cancelTitleHtml ? {\n innerHTML: this.cancelTitleHtml\n } : null;\n cancelButton = h(BButton, {\n ref: 'cancel-button',\n props: {\n variant: this.cancelVariant,\n size: this.buttonSize,\n disabled: this.cancelDisabled || this.busy || this.isTransitioning\n },\n on: {\n click: this.onCancel\n }\n }, [this.normalizeSlot('modal-cancel') || (cancelHtml ? h('span', {\n domProps: cancelHtml\n }) : stripTags(this.cancelTitle))]);\n }\n\n var okHtml = this.okTitleHtml ? {\n innerHTML: this.okTitleHtml\n } : null;\n var okButton = h(BButton, {\n ref: 'ok-button',\n props: {\n variant: this.okVariant,\n size: this.buttonSize,\n disabled: this.okDisabled || this.busy || this.isTransitioning\n },\n on: {\n click: this.onOk\n }\n }, [this.normalizeSlot('modal-ok') || (okHtml ? h('span', {\n domProps: okHtml\n }) : stripTags(this.okTitle))]);\n modalFooter = [cancelButton, okButton];\n }\n\n footer = h('footer', {\n ref: 'footer',\n staticClass: 'modal-footer',\n class: this.footerClasses,\n attrs: {\n id: this.safeId('__BV_modal_footer_')\n }\n }, [modalFooter]);\n } // Assemble modal content\n\n\n var modalContent = h('div', {\n ref: 'content',\n staticClass: 'modal-content',\n class: this.contentClass,\n attrs: {\n role: 'document',\n id: this.safeId('__BV_modal_content_'),\n tabindex: '-1'\n }\n }, [header, body, footer]); // Tab trap to prevent page from scrolling to next element in\n // tab index during enforce focus tab cycle\n\n var tabTrapTop = h();\n var tabTrapBottom = h();\n\n if (this.isVisible && !this.noEnforceFocus) {\n tabTrapTop = h('span', {\n ref: 'topTrap',\n attrs: {\n tabindex: '0'\n }\n });\n tabTrapBottom = h('span', {\n ref: 'bottomTrap',\n attrs: {\n tabindex: '0'\n }\n });\n } // Modal dialog wrapper\n\n\n var modalDialog = h('div', {\n ref: 'dialog',\n staticClass: 'modal-dialog',\n class: this.dialogClasses,\n on: {\n mousedown: this.onDialogMousedown\n }\n }, [tabTrapTop, modalContent, tabTrapBottom]); // Modal\n\n var modal = h('div', {\n ref: 'modal',\n staticClass: 'modal',\n class: this.modalClasses,\n style: this.modalStyles,\n directives: [{\n name: 'show',\n rawName: 'v-show',\n value: this.isVisible,\n expression: 'isVisible'\n }],\n attrs: {\n id: this.safeId(),\n role: 'dialog',\n 'aria-hidden': this.isVisible ? null : 'true',\n 'aria-modal': this.isVisible ? 'true' : null,\n 'aria-label': this.ariaLabel,\n 'aria-labelledby': this.hideHeader || this.ariaLabel || !(this.hasNormalizedSlot('modal-title') || this.titleHtml || this.title) ? null : this.safeId('__BV_modal_title_'),\n 'aria-describedby': this.safeId('__BV_modal_body_')\n },\n on: {\n keydown: this.onEsc,\n click: this.onClickOut\n }\n }, [modalDialog]); // Wrap modal in transition\n // Sadly, we can't use BVTransition here due to the differences in\n // transition durations for .modal and .modal-dialog. Not until\n // issue https://github.com/vuejs/vue/issues/9986 is resolved\n\n modal = h('transition', {\n props: {\n enterClass: '',\n enterToClass: '',\n enterActiveClass: '',\n leaveClass: '',\n leaveActiveClass: '',\n leaveToClass: ''\n },\n on: {\n beforeEnter: this.onBeforeEnter,\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n beforeLeave: this.onBeforeLeave,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n }, [modal]); // Modal backdrop\n\n var backdrop = h();\n\n if (!this.hideBackdrop && this.isVisible) {\n backdrop = h('div', {\n staticClass: 'modal-backdrop',\n attrs: {\n id: this.safeId('__BV_modal_backdrop_')\n }\n }, [this.normalizeSlot('modal-backdrop')]);\n }\n\n backdrop = h(BVTransition, {\n props: {\n noFade: this.noFade\n }\n }, [backdrop]); // If the parent has a scoped style attribute, and the modal\n // is portalled, add the scoped attribute to the modal wrapper\n\n var scopedStyleAttrs = !this.static ? this.scopedStyleAttrs : {}; // Assemble modal and backdrop in an outer <div>\n\n return h('div', {\n key: \"modal-outer-\".concat(this._uid),\n style: this.modalOuterStyle,\n attrs: _objectSpread({}, scopedStyleAttrs, {}, this.$attrs, {\n id: this.safeId('__BV_modal_outer_')\n })\n }, [modal, backdrop]);\n }\n },\n render: function render(h) {\n if (this.static) {\n return this.lazy && this.isHidden ? h() : this.makeModal(h);\n } else {\n return this.isHidden ? h() : h(BTransporterSingle, {}, [this.makeModal(h)]);\n }\n }\n});","import { setAttr, removeAttr } from '../../utils/dom';\nimport { bindTargets, unbindTargets } from '../../utils/target'; // Target listen types\n\nvar listenTypes = {\n click: true\n}; // Emitted show event for modal\n\nvar EVENT_SHOW = 'bv::show::modal';\n\nvar setRole = function setRole(el, binding, vnode) {\n if (el.tagName !== 'BUTTON') {\n setAttr(el, 'role', 'button');\n }\n};\n/*\n * Export our directive\n */\n\n\nexport var VBModal = {\n // eslint-disable-next-line no-shadow-restricted-names\n bind: function bind(el, binding, vnode) {\n bindTargets(vnode, binding, listenTypes, function (_ref) {\n var targets = _ref.targets,\n vnode = _ref.vnode;\n targets.forEach(function (target) {\n vnode.context.$root.$emit(EVENT_SHOW, target, vnode.elm);\n });\n }); // If element is not a button, we add `role=\"button\"` for accessibility\n\n setRole(el, binding, vnode);\n },\n updated: setRole,\n componentUpdated: setRole,\n unbind: function unbind(el, binding, vnode) {\n unbindTargets(vnode, binding, listenTypes); // If element is not a button, we add `role=\"button\"` for accessibility\n\n if (el.tagName !== 'BUTTON') {\n removeAttr(el, 'role', 'button');\n }\n }\n};","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\n// Plugin for adding `$bvModal` property to all Vue instances\nimport { BModal, props as modalProps } from '../modal';\nimport { concat } from '../../../utils/array';\nimport { getComponentConfig } from '../../../utils/config';\nimport { isUndefined, isFunction } from '../../../utils/inspect';\nimport { assign, keys, omit, defineProperty, defineProperties, readonlyDescriptor } from '../../../utils/object';\nimport { pluginFactory } from '../../../utils/plugins';\nimport { warn, warnNotClient, warnNoPromiseSupport } from '../../../utils/warn'; // --- Constants ---\n\nvar PROP_NAME = '$bvModal';\nvar PROP_NAME_PRIV = '_bv__modal'; // Base modal props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\n\nvar BASE_PROPS = ['id'].concat(_toConsumableArray(keys(omit(modalProps, ['busy', 'lazy', 'noStacking', \"static\", 'visible'])))); // Fallback event resolver (returns undefined)\n\nvar defaultResolver = function defaultResolver(bvModalEvt) {}; // Map prop names to modal slot names\n\n\nvar propsToSlots = {\n msgBoxContent: 'default',\n title: 'modal-title',\n okTitle: 'modal-ok',\n cancelTitle: 'modal-cancel'\n}; // --- Utility methods ---\n// Method to filter only recognized props that are not undefined\n\nvar filterOptions = function filterOptions(options) {\n return BASE_PROPS.reduce(function (memo, key) {\n if (!isUndefined(options[key])) {\n memo[key] = options[key];\n }\n\n return memo;\n }, {});\n}; // Method to install `$bvModal` VM injection\n\n\nvar plugin = function plugin(Vue) {\n // Create a private sub-component that extends BModal\n // which self-destructs after hidden\n // @vue/component\n var BMsgBox = Vue.extend({\n name: 'BMsgBox',\n extends: BModal,\n destroyed: function destroyed() {\n // Make sure we not in document any more\n if (this.$el && this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$el);\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // Self destruct handler\n var handleDestroy = function handleDestroy() {\n var self = _this;\n\n _this.$nextTick(function () {\n // In a `setTimeout()` to release control back to application\n setTimeout(function () {\n return self.$destroy();\n }, 0);\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once('hook:destroyed', handleDestroy); // Self destruct after hidden\n\n this.$once('hidden', handleDestroy); // Self destruct on route change\n\n /* istanbul ignore if */\n\n if (this.$router && this.$route) {\n // Destroy ourselves if route changes\n\n /* istanbul ignore next */\n this.$once('hook:beforeDestroy', this.$watch('$router', handleDestroy));\n } // Show the `BMsgBox`\n\n\n this.show();\n }\n }); // Method to generate the on-demand modal message box\n // Returns a promise that resolves to a value returned by the resolve\n\n var asyncMsgBox = function asyncMsgBox($parent, props) {\n var resolver = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultResolver;\n\n if (warnNotClient(PROP_NAME) || warnNoPromiseSupport(PROP_NAME)) {\n /* istanbul ignore next */\n return;\n } // Create an instance of `BMsgBox` component\n\n\n var msgBox = new BMsgBox({\n // We set parent as the local VM so these modals can emit events on\n // the app `$root`, as needed by things like tooltips and popovers\n // And it helps to ensure `BMsgBox` is destroyed when parent is destroyed\n parent: $parent,\n // Preset the prop values\n propsData: _objectSpread({}, filterOptions(getComponentConfig('BModal') || {}), {\n // Defaults that user can override\n hideHeaderClose: true,\n hideHeader: !(props.title || props.titleHtml)\n }, omit(props, keys(propsToSlots)), {\n // Props that can't be overridden\n lazy: false,\n busy: false,\n visible: false,\n noStacking: false,\n noEnforceFocus: false\n })\n }); // Convert certain props to scoped slots\n\n keys(propsToSlots).forEach(function (prop) {\n if (!isUndefined(props[prop])) {\n // Can be a string, or array of VNodes.\n // Alternatively, user can use HTML version of prop to pass an HTML string.\n msgBox.$slots[propsToSlots[prop]] = concat(props[prop]);\n }\n }); // Return a promise that resolves when hidden, or rejects on destroyed\n\n return new Promise(function (resolve, reject) {\n var resolved = false;\n msgBox.$once('hook:destroyed', function () {\n if (!resolved) {\n /* istanbul ignore next */\n reject(new Error('BootstrapVue MsgBox destroyed before resolve'));\n }\n });\n msgBox.$on('hide', function (bvModalEvt) {\n if (!bvModalEvt.defaultPrevented) {\n var result = resolver(bvModalEvt); // If resolver didn't cancel hide, we resolve\n\n if (!bvModalEvt.defaultPrevented) {\n resolved = true;\n resolve(result);\n }\n }\n }); // Create a mount point (a DIV) and mount the msgBo which will trigger it to show\n\n var div = document.createElement('div');\n document.body.appendChild(div);\n msgBox.$mount(div);\n });\n }; // Private utility method to open a user defined message box and returns a promise.\n // Not to be used directly by consumers, as this method may change calling syntax\n\n\n var makeMsgBox = function makeMsgBox($parent, content) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var resolver = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!content || warnNoPromiseSupport(PROP_NAME) || warnNotClient(PROP_NAME) || !isFunction(resolver)) {\n /* istanbul ignore next */\n return;\n }\n\n return asyncMsgBox($parent, _objectSpread({}, filterOptions(options), {\n msgBoxContent: content\n }), resolver);\n }; // BvModal instance class\n\n\n var BvModal =\n /*#__PURE__*/\n function () {\n function BvModal(vm) {\n _classCallCheck(this, BvModal);\n\n // Assign the new properties to this instance\n assign(this, {\n _vm: vm,\n _root: vm.$root\n }); // Set these properties as read-only and non-enumerable\n\n defineProperties(this, {\n _vm: readonlyDescriptor(),\n _root: readonlyDescriptor()\n });\n } // --- Instance methods ---\n // Show modal with the specified ID args are for future use\n\n\n _createClass(BvModal, [{\n key: \"show\",\n value: function show(id) {\n if (id && this._root) {\n var _this$_root;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_this$_root = this._root).$emit.apply(_this$_root, ['bv::show::modal', id].concat(args));\n }\n } // Hide modal with the specified ID args are for future use\n\n }, {\n key: \"hide\",\n value: function hide(id) {\n if (id && this._root) {\n var _this$_root2;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (_this$_root2 = this._root).$emit.apply(_this$_root2, ['bv::hide::modal', id].concat(args));\n }\n } // The following methods require Promise support!\n // IE 11 and others do not support Promise natively, so users\n // should have a Polyfill loaded (which they need anyways for IE 11 support)\n // Open a message box with OK button only and returns a promise\n\n }, {\n key: \"msgBoxOk\",\n value: function msgBoxOk(message) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // Pick the modal props we support from options\n var props = _objectSpread({}, options, {\n // Add in overrides and our content prop\n okOnly: true,\n okDisabled: false,\n hideFooter: false,\n msgBoxContent: message\n });\n\n return makeMsgBox(this._vm, message, props, function (bvModalEvt) {\n // Always resolve to true for OK\n return true;\n });\n } // Open a message box modal with OK and CANCEL buttons\n // and returns a promise\n\n }, {\n key: \"msgBoxConfirm\",\n value: function msgBoxConfirm(message) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // Set the modal props we support from options\n var props = _objectSpread({}, options, {\n // Add in overrides and our content prop\n okOnly: false,\n okDisabled: false,\n cancelDisabled: false,\n hideFooter: false\n });\n\n return makeMsgBox(this._vm, message, props, function (bvModalEvt) {\n var trigger = bvModalEvt.trigger;\n return trigger === 'ok' ? true : trigger === 'cancel' ? false : null;\n });\n }\n }]);\n\n return BvModal;\n }(); // Add our instance mixin\n\n\n Vue.mixin({\n beforeCreate: function beforeCreate() {\n // Because we need access to `$root` for `$emits`, and VM for parenting,\n // we have to create a fresh instance of `BvModal` for each VM\n this[PROP_NAME_PRIV] = new BvModal(this);\n }\n }); // Define our read-only `$bvModal` instance property\n // Placed in an if just in case in HMR mode\n // eslint-disable-next-line no-prototype-builtins\n\n if (!Vue.prototype.hasOwnProperty(PROP_NAME)) {\n defineProperty(Vue.prototype, PROP_NAME, {\n get: function get() {\n /* istanbul ignore next */\n if (!this || !this[PROP_NAME_PRIV]) {\n warn(\"'\".concat(PROP_NAME, \"' must be accessed from a Vue instance 'this' context\"));\n }\n\n return this[PROP_NAME_PRIV];\n }\n });\n }\n};\n\nexport var BVModalPlugin =\n/*#__PURE__*/\npluginFactory({\n plugins: {\n plugin: plugin\n }\n});","import { BModal } from './modal';\nimport { VBModal } from '../../directives/modal/modal';\nimport { BVModalPlugin } from './helpers/bv-modal';\nimport { pluginFactory } from '../../utils/plugins';\nvar ModalPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BModal: BModal\n },\n directives: {\n VBModal: VBModal\n },\n // $bvModal injection\n plugins: {\n BVModalPlugin: BVModalPlugin\n }\n});\nexport { ModalPlugin, BModal };","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge'; // -- Constants --\n\nexport var props = {\n tag: {\n type: String,\n default: 'ul'\n },\n fill: {\n type: Boolean,\n default: false\n },\n justified: {\n type: Boolean,\n default: false\n },\n align: {\n type: String,\n default: null\n },\n tabs: {\n type: Boolean,\n default: false\n },\n pills: {\n type: Boolean,\n default: false\n },\n vertical: {\n type: Boolean,\n default: false\n },\n small: {\n type: Boolean,\n default: false\n },\n cardHeader: {\n // Set to true if placing in a card header\n type: Boolean,\n default: false\n }\n}; // -- Utils --\n\nvar computeJustifyContent = function computeJustifyContent(value) {\n // Normalize value\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return \"justify-content-\".concat(value);\n}; // @vue/component\n\n\nexport var BNav =\n/*#__PURE__*/\nVue.extend({\n name: 'BNav',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'nav',\n class: (_class = {\n 'nav-tabs': props.tabs,\n 'nav-pills': props.pills && !props.tabs,\n 'card-header-tabs': !props.vertical && props.cardHeader && props.tabs,\n 'card-header-pills': !props.vertical && props.cardHeader && props.pills && !props.tabs,\n 'flex-column': props.vertical,\n 'nav-fill': !props.vertical && props.fill,\n 'nav-justified': !props.vertical && props.justified\n }, _defineProperty(_class, computeJustifyContent(props.align), !props.vertical && props.align), _defineProperty(_class, \"small\", props.small), _class)\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link';\nexport var props = linkPropsFactory(); // @vue/component\n\nexport var BNavItem =\n/*#__PURE__*/\nVue.extend({\n name: 'BNavItem',\n functional: true,\n props: _objectSpread({}, props, {\n linkAttrs: {\n type: Object,\n default: function _default() {}\n },\n linkClasses: {\n type: [String, Object, Array],\n default: null\n }\n }),\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n listeners = _ref.listeners,\n children = _ref.children;\n // We transfer the listeners to the link\n delete data.on;\n return h('li', mergeData(data, {\n staticClass: 'nav-item'\n }), [h(BLink, {\n staticClass: 'nav-link',\n class: props.linkClasses,\n attrs: props.linkAttrs,\n props: props,\n on: listeners\n }, children)]);\n }\n});","import Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nexport var props = {\n tag: {\n type: String,\n default: 'span'\n }\n}; // @vue/component\n\nexport var BNavText =\n/*#__PURE__*/\nVue.extend({\n name: 'BNavText',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'navbar-text'\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { omit } from '../../utils/object';\nimport { BForm, props as BFormProps } from '../form/form';\nexport var props = omit(BFormProps, ['inline']); // @vue/component\n\nexport var BNavForm =\n/*#__PURE__*/\nVue.extend({\n name: 'BNavForm',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(BForm, mergeData(data, {\n props: _objectSpread({}, props, {\n inline: true\n })\n }), children);\n }\n});","import Vue from '../../utils/vue';\nimport { props as BDropdownProps } from '../dropdown/dropdown';\nimport idMixin from '../../mixins/id';\nimport dropdownMixin from '../../mixins/dropdown';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport pluckProps from '../../utils/pluck-props';\nimport { htmlOrText } from '../../utils/html';\nimport { BLink } from '../link/link'; // -- Constants --\n\nexport var props = pluckProps(['menuClass', 'toggleClass', 'noCaret', 'role'], BDropdownProps); // @vue/component\n\nexport var BNavItemDropdown =\n/*#__PURE__*/\nVue.extend({\n name: 'BNavItemDropdown',\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n isNav: function isNav() {\n // Signal to dropdown mixin that we are in a navbar\n return true;\n },\n dropdownClasses: function dropdownClasses() {\n return [this.directionClass, {\n show: this.visible\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n return [this.toggleClass, {\n 'dropdown-toggle-no-caret': this.noCaret\n }];\n }\n },\n render: function render(h) {\n var button = h(BLink, {\n ref: 'toggle',\n staticClass: 'nav-link dropdown-toggle',\n class: this.toggleClasses,\n props: {\n href: '#',\n disabled: this.disabled\n },\n attrs: {\n id: this.safeId('_BV_button_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': this.visible ? 'true' : 'false'\n },\n on: {\n click: this.toggle,\n keydown: this.toggle // space, enter, down\n\n }\n }, [this.$slots['button-content'] || this.$slots.text || h('span', {\n domProps: htmlOrText(this.html, this.text)\n })]);\n var menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n ref: 'menu',\n attrs: {\n tabindex: '-1',\n 'aria-labelledby': this.safeId('_BV_button_')\n },\n on: {\n keydown: this.onKeydown // up, down, esc\n\n }\n }, !this.lazy || this.visible ? this.normalizeSlot('default', {\n hide: this.hide\n }) : [h()]);\n return h('li', {\n staticClass: 'nav-item b-nav-dropdown dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [button, menu]);\n }\n});","import { BNav } from './nav';\nimport { BNavItem } from './nav-item';\nimport { BNavText } from './nav-text';\nimport { BNavForm } from './nav-form';\nimport { BNavItemDropdown } from './nav-item-dropdown';\nimport { DropdownPlugin } from '../dropdown';\nimport { pluginFactory } from '../../utils/plugins';\nvar NavPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BNav: BNav,\n BNavItem: BNavItem,\n BNavText: BNavText,\n BNavForm: BNavForm,\n BNavItemDropdown: BNavItemDropdown,\n BNavItemDd: BNavItemDropdown,\n BNavDropdown: BNavItemDropdown,\n BNavDd: BNavItemDropdown\n },\n plugins: {\n DropdownPlugin: DropdownPlugin\n }\n});\nexport { NavPlugin, BNav, BNavItem, BNavText, BNavForm, BNavItemDropdown };","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { getComponentConfig, getBreakpoints } from '../../utils/config';\nimport { isString } from '../../utils/inspect';\nvar NAME = 'BNavbar';\nexport var props = {\n tag: {\n type: String,\n default: 'nav'\n },\n type: {\n type: String,\n default: 'light'\n },\n variant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'variant');\n }\n },\n toggleable: {\n type: [Boolean, String],\n default: false\n },\n fixed: {\n type: String\n },\n sticky: {\n type: Boolean,\n default: false\n },\n print: {\n type: Boolean,\n default: false\n }\n}; // @vue/component\n\nexport var BNavbar =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var breakpoint = '';\n var xs = getBreakpoints()[0];\n\n if (props.toggleable && isString(props.toggleable) && props.toggleable !== xs) {\n breakpoint = \"navbar-expand-\".concat(props.toggleable);\n } else if (props.toggleable === false) {\n breakpoint = 'navbar-expand';\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'navbar',\n class: (_class = {\n 'd-print': props.print,\n 'sticky-top': props.sticky\n }, _defineProperty(_class, \"navbar-\".concat(props.type), Boolean(props.type)), _defineProperty(_class, \"bg-\".concat(props.variant), Boolean(props.variant)), _defineProperty(_class, \"fixed-\".concat(props.fixed), Boolean(props.fixed)), _defineProperty(_class, \"\".concat(breakpoint), Boolean(breakpoint)), _class),\n attrs: {\n role: props.tag === 'nav' ? null : 'navigation'\n }\n }), children);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport pluckProps from '../../utils/pluck-props';\nimport { props as BNavProps } from '../nav/nav'; // -- Constants --\n\nexport var props = pluckProps(['tag', 'fill', 'justified', 'align', 'small'], BNavProps); // -- Utils --\n\nvar computeJustifyContent = function computeJustifyContent(value) {\n // Normalize value\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return \"justify-content-\".concat(value);\n}; // @vue/component\n\n\nexport var BNavbarNav =\n/*#__PURE__*/\nVue.extend({\n name: 'BNavbarNav',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'navbar-nav',\n class: (_class = {\n 'nav-fill': props.fill,\n 'nav-justified': props.justified\n }, _defineProperty(_class, computeJustifyContent(props.align), props.align), _defineProperty(_class, \"small\", props.small), _class)\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport pluckProps from '../../utils/pluck-props';\nimport { BLink, propsFactory } from '../link/link';\nvar linkProps = propsFactory();\nlinkProps.href.default = undefined;\nlinkProps.to.default = undefined;\nexport var props = _objectSpread({}, linkProps, {\n tag: {\n type: String,\n default: 'div'\n }\n}); // @vue/component\n\nexport var BNavbarBrand =\n/*#__PURE__*/\nVue.extend({\n name: 'BNavbarBrand',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var isLink = Boolean(props.to || props.href);\n var tag = isLink ? BLink : props.tag;\n return h(tag, mergeData(data, {\n staticClass: 'navbar-brand',\n props: isLink ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});","import Vue from '../../utils/vue';\nimport listenOnRootMixin from '../../mixins/listen-on-root';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport { getComponentConfig } from '../../utils/config';\nvar NAME = 'BNavbarToggle'; // TODO: Switch to using VBToggle directive, will reduce code footprint\n// Events we emit on $root\n\nvar EVENT_TOGGLE = 'bv::toggle::collapse'; // Events we listen to on $root\n\nvar EVENT_STATE = 'bv::collapse::state'; // This private event is NOT to be documented as people should not be using it.\n\nvar EVENT_STATE_SYNC = 'bv::collapse::sync::state'; // @vue/component\n\nexport var BNavbarToggle =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n mixins: [listenOnRootMixin, normalizeSlotMixin],\n props: {\n label: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'label');\n }\n },\n target: {\n type: String,\n required: true\n }\n },\n data: function data() {\n return {\n toggleState: false\n };\n },\n created: function created() {\n this.listenOnRoot(EVENT_STATE, this.handleStateEvt);\n this.listenOnRoot(EVENT_STATE_SYNC, this.handleStateEvt);\n },\n methods: {\n onClick: function onClick(evt) {\n this.$emit('click', evt);\n\n if (!evt.defaultPrevented) {\n this.$root.$emit(EVENT_TOGGLE, this.target);\n }\n },\n handleStateEvt: function handleStateEvt(id, state) {\n if (id === this.target) {\n this.toggleState = state;\n }\n }\n },\n render: function render(h) {\n return h('button', {\n class: ['navbar-toggler'],\n attrs: {\n type: 'button',\n 'aria-label': this.label,\n 'aria-controls': this.target,\n 'aria-expanded': this.toggleState ? 'true' : 'false'\n },\n on: {\n click: this.onClick\n }\n }, [this.normalizeSlot('default') || h('span', {\n class: ['navbar-toggler-icon']\n })]);\n }\n});","import { BNavbar } from './navbar';\nimport { BNavbarNav } from './navbar-nav';\nimport { BNavbarBrand } from './navbar-brand';\nimport { BNavbarToggle } from './navbar-toggle';\nimport { NavPlugin } from '../nav';\nimport { CollapsePlugin } from '../collapse';\nimport { DropdownPlugin } from '../dropdown';\nimport { pluginFactory } from '../../utils/plugins';\nvar NavbarPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BNavbar: BNavbar,\n BNavbarNav: BNavbarNav,\n BNavbarBrand: BNavbarBrand,\n BNavbarToggle: BNavbarToggle,\n BNavToggle: BNavbarToggle\n },\n plugins: {\n NavPlugin: NavPlugin,\n CollapsePlugin: CollapsePlugin,\n DropdownPlugin: DropdownPlugin\n }\n});\nexport { NavbarPlugin, BNavbar, BNavbarNav, BNavbarBrand, BNavbarToggle };","/**\n * @param {number} length\n * @return {Array}\n */\nvar range = function range(length) {\n return Array.apply(null, {\n length: length\n });\n};\n\nexport default range;","import KeyCodes from '../utils/key-codes';\nimport range from '../utils/range';\nimport toString from '../utils/to-string';\nimport warn from '../utils/warn';\nimport { isFunction, isNull } from '../utils/inspect';\nimport { isVisible, isDisabled, selectAll, getAttr } from '../utils/dom';\nimport normalizeSlotMixin from '../mixins/normalize-slot';\nimport { BLink } from '../components/link/link'; // Common props, computed, data, render function, and methods\n// for <b-pagination> and <b-pagination-nav>\n// Threshold of limit size when we start/stop showing ellipsis\n\nvar ELLIPSIS_THRESHOLD = 3; // Default # of buttons limit\n\nvar DEFAULT_LIMIT = 5; // Make an array of N to N+X\n\nvar makePageArray = function makePageArray(startNumber, numberOfPages) {\n return range(numberOfPages).map(function (val, i) {\n return {\n number: startNumber + i,\n classes: null\n };\n });\n}; // Sanitize the provided limit value (converting to a number)\n\n\nvar sanitizeLimit = function sanitizeLimit(val) {\n var limit = parseInt(val, 10) || 1;\n return limit < 1 ? DEFAULT_LIMIT : limit;\n}; // Sanitize the provided current page number (converting to a number)\n\n\nvar sanitizeCurrentPage = function sanitizeCurrentPage(val, numberOfPages) {\n var page = parseInt(val, 10) || 1;\n return page > numberOfPages ? numberOfPages : page < 1 ? 1 : page;\n}; // Links don't normally respond to SPACE, so we add that\n// functionality via this handler\n\n\nvar onSpaceKey = function onSpaceKey(evt) {\n if (evt.keyCode === KeyCodes.SPACE) {\n evt.preventDefault(); // Stop page from scrolling\n\n evt.stopImmediatePropagation();\n evt.stopPropagation(); // Trigger the click event on the link\n\n evt.currentTarget.click();\n return false;\n }\n};\n\nexport var props = {\n disabled: {\n type: Boolean,\n default: false\n },\n value: {\n type: [Number, String],\n default: null,\n validator: function validator(value)\n /* istanbul ignore next */\n {\n var num = parseInt(value, 10);\n\n if (!isNull(value) && (isNaN(num) || num < 1)) {\n warn('pagination: v-model value must be a number greater than 0');\n return false;\n }\n\n return true;\n }\n },\n limit: {\n type: [Number, String],\n default: DEFAULT_LIMIT,\n validator: function validator(value)\n /* istanbul ignore next */\n {\n var num = parseInt(value, 10);\n\n if (isNaN(num) || num < 1) {\n warn('pagination: prop \"limit\" must be a number greater than 0');\n return false;\n }\n\n return true;\n }\n },\n align: {\n type: String,\n default: 'left'\n },\n hideGotoEndButtons: {\n type: Boolean,\n default: false\n },\n ariaLabel: {\n type: String,\n default: 'Pagination'\n },\n labelFirstPage: {\n type: String,\n default: 'Go to first page'\n },\n firstText: {\n type: String,\n default: \"\\xAB\" // '«'\n\n },\n labelPrevPage: {\n type: String,\n default: 'Go to previous page'\n },\n prevText: {\n type: String,\n default: \"\\u2039\" // '‹'\n\n },\n labelNextPage: {\n type: String,\n default: 'Go to next page'\n },\n nextText: {\n type: String,\n default: \"\\u203A\" // '›'\n\n },\n labelLastPage: {\n type: String,\n default: 'Go to last page'\n },\n lastText: {\n type: String,\n default: \"\\xBB\" // '»'\n\n },\n labelPage: {\n type: [String, Function],\n default: 'Go to page'\n },\n hideEllipsis: {\n type: Boolean,\n default: false\n },\n ellipsisText: {\n type: String,\n default: \"\\u2026\" // '…'\n\n }\n}; // @vue/component\n\nexport default {\n mixins: [normalizeSlotMixin],\n model: {\n prop: 'value',\n event: 'input'\n },\n props: props,\n data: function data() {\n var curr = parseInt(this.value, 10);\n return {\n // -1 signifies no page initially selected\n currentPage: curr > 0 ? curr : -1,\n localNumberOfPages: 1,\n localLimit: DEFAULT_LIMIT\n };\n },\n computed: {\n btnSize: function btnSize() {\n return this.size ? \"pagination-\".concat(this.size) : '';\n },\n alignment: function alignment() {\n var align = this.align;\n\n if (align === 'center') {\n return 'justify-content-center';\n } else if (align === 'end' || align === 'right') {\n return 'justify-content-end';\n } else if (align === 'fill') {\n // The page-items will also have 'flex-fill' added.\n // We ad text centering to make the button appearance better in fill mode.\n return 'text-center';\n }\n\n return '';\n },\n computedCurrentPage: function computedCurrentPage() {\n return sanitizeCurrentPage(this.currentPage, this.localNumberOfPages);\n },\n paginationParams: function paginationParams() {\n // Determine if we should show the the ellipsis\n var limit = this.limit;\n var numberOfPages = this.localNumberOfPages;\n var currentPage = this.computedCurrentPage;\n var hideEllipsis = this.hideEllipsis;\n var showFirstDots = false;\n var showLastDots = false;\n var numberOfLinks = limit;\n var startNumber = 1;\n\n if (numberOfPages <= limit) {\n // Special Case: Less pages available than the limit of displayed pages\n numberOfLinks = numberOfPages;\n } else if (currentPage < limit - 1 && limit > ELLIPSIS_THRESHOLD) {\n // We are near the beginning of the page list\n if (!hideEllipsis) {\n showLastDots = true;\n numberOfLinks = limit - 1;\n }\n } else if (numberOfPages - currentPage + 2 < limit && limit > ELLIPSIS_THRESHOLD) {\n // We are near the end of the list\n if (!hideEllipsis) {\n numberOfLinks = limit - 1;\n showFirstDots = true;\n }\n\n startNumber = numberOfPages - numberOfLinks + 1;\n } else {\n // We are somewhere in the middle of the page list\n if (limit > ELLIPSIS_THRESHOLD && !hideEllipsis) {\n numberOfLinks = limit - 2;\n showFirstDots = showLastDots = true;\n }\n\n startNumber = currentPage - Math.floor(numberOfLinks / 2);\n } // Sanity checks\n\n\n if (startNumber < 1) {\n /* istanbul ignore next */\n startNumber = 1;\n } else if (startNumber > numberOfPages - numberOfLinks) {\n startNumber = numberOfPages - numberOfLinks + 1;\n }\n\n return {\n showFirstDots: showFirstDots,\n showLastDots: showLastDots,\n numberOfLinks: numberOfLinks,\n startNumber: startNumber\n };\n },\n pageList: function pageList() {\n // Generates the pageList array\n var _this$paginationParam = this.paginationParams,\n numberOfLinks = _this$paginationParam.numberOfLinks,\n startNumber = _this$paginationParam.startNumber;\n var currentPage = this.computedCurrentPage; // Generate list of page numbers\n\n var pages = makePageArray(startNumber, numberOfLinks); // We limit to a total of 3 page buttons on XS screens\n // So add classes to page links to hide them for XS breakpoint\n // Note: Ellipsis will also be hidden on XS screens\n // TODO: Make this visual limit configurable based on breakpoint(s)\n\n if (pages.length > 3) {\n var idx = currentPage - startNumber; // THe following is a bootstrap-vue custom utility class\n\n var classes = 'bv-d-xs-down-none';\n\n if (idx === 0) {\n // Keep leftmost 3 buttons visible when current page is first page\n for (var i = 3; i < pages.length; i++) {\n pages[i].classes = classes;\n }\n } else if (idx === pages.length - 1) {\n // Keep rightmost 3 buttons visible when current page is last page\n for (var _i = 0; _i < pages.length - 3; _i++) {\n pages[_i].classes = classes;\n }\n } else {\n // Hide all except current page, current page - 1 and current page + 1\n for (var _i2 = 0; _i2 < idx - 1; _i2++) {\n // hide some left button(s)\n pages[_i2].classes = classes;\n }\n\n for (var _i3 = pages.length - 1; _i3 > idx + 1; _i3--) {\n // hide some right button(s)\n pages[_i3].classes = classes;\n }\n }\n }\n\n return pages;\n }\n },\n watch: {\n value: function value(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.currentPage = sanitizeCurrentPage(newValue, this.localNumberOfPages);\n }\n },\n currentPage: function currentPage(newValue, oldValue) {\n if (newValue !== oldValue) {\n // Emit null if no page selected\n this.$emit('input', newValue > 0 ? newValue : null);\n }\n },\n limit: function limit(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localLimit = sanitizeLimit(newValue);\n }\n }\n },\n created: function created() {\n var _this = this;\n\n // Set our default values in data\n this.localLimit = sanitizeLimit(this.limit);\n this.$nextTick(function () {\n // Sanity check\n _this.currentPage = _this.currentPage > _this.localNumberOfPages ? _this.localNumberOfPages : _this.currentPage;\n });\n },\n methods: {\n getButtons: function getButtons() {\n // Return only buttons that are visible\n return selectAll('a.page-link', this.$el).filter(function (btn) {\n return isVisible(btn);\n });\n },\n setBtnFocus: function setBtnFocus(btn) {\n btn.focus();\n },\n focusCurrent: function focusCurrent() {\n var _this2 = this;\n\n // We do this in next tick to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this2.getButtons().find(function (el) {\n return parseInt(getAttr(el, 'aria-posinset'), 10) === _this2.computedCurrentPage;\n });\n\n if (btn && btn.focus) {\n _this2.setBtnFocus(btn);\n } else {\n // Fallback if current page is not in button list\n _this2.focusFirst();\n }\n });\n },\n focusFirst: function focusFirst() {\n var _this3 = this;\n\n // We do this in next tick to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this3.getButtons().find(function (el) {\n return !isDisabled(el);\n });\n\n if (btn && btn.focus && btn !== document.activeElement) {\n _this3.setBtnFocus(btn);\n }\n });\n },\n focusLast: function focusLast() {\n var _this4 = this;\n\n // We do this in next tick to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this4.getButtons().reverse().find(function (el) {\n return !isDisabled(el);\n });\n\n if (btn && btn.focus && btn !== document.activeElement) {\n _this4.setBtnFocus(btn);\n }\n });\n },\n focusPrev: function focusPrev() {\n var _this5 = this;\n\n // We do this in next tick to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this5.getButtons();\n\n var idx = buttons.indexOf(document.activeElement);\n\n if (idx > 0 && !isDisabled(buttons[idx - 1]) && buttons[idx - 1].focus) {\n _this5.setBtnFocus(buttons[idx - 1]);\n }\n });\n },\n focusNext: function focusNext() {\n var _this6 = this;\n\n // We do this in next tick to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this6.getButtons();\n\n var idx = buttons.indexOf(document.activeElement);\n var cnt = buttons.length - 1;\n\n if (idx < cnt && !isDisabled(buttons[idx + 1]) && buttons[idx + 1].focus) {\n _this6.setBtnFocus(buttons[idx + 1]);\n }\n });\n }\n },\n render: function render(h) {\n var _this7 = this;\n\n var buttons = [];\n var numberOfPages = this.localNumberOfPages;\n var disabled = this.disabled;\n var _this$paginationParam2 = this.paginationParams,\n showFirstDots = _this$paginationParam2.showFirstDots,\n showLastDots = _this$paginationParam2.showLastDots;\n var currentPage = this.computedCurrentPage;\n var fill = this.align === 'fill'; // Helper function and flag\n\n var isActivePage = function isActivePage(pageNum) {\n return pageNum === currentPage;\n };\n\n var noCurrPage = this.currentPage < 1; // Factory function for prev/next/first/last buttons\n\n var makeEndBtn = function makeEndBtn(linkTo, ariaLabel, btnSlot, btnText, pageTest, key) {\n var isDisabled = disabled || isActivePage(pageTest) || noCurrPage || linkTo < 1 || linkTo > numberOfPages;\n var pageNum = linkTo < 1 ? 1 : linkTo > numberOfPages ? numberOfPages : linkTo;\n var scope = {\n disabled: isDisabled,\n page: pageNum,\n index: pageNum - 1\n };\n var btnContent = _this7.normalizeSlot(btnSlot, scope) || toString(btnText) || h();\n var inner = h(isDisabled ? 'span' : BLink, {\n staticClass: 'page-link',\n props: isDisabled ? {} : _this7.linkProps(linkTo),\n attrs: {\n role: 'menuitem',\n tabindex: isDisabled ? null : '-1',\n 'aria-label': ariaLabel,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-disabled': isDisabled ? 'true' : null\n },\n on: isDisabled ? {} : {\n click: function click(evt) {\n _this7.onClick(linkTo, evt);\n },\n keydown: onSpaceKey\n }\n }, [btnContent]);\n return h('li', {\n key: key,\n staticClass: 'page-item',\n class: {\n disabled: isDisabled,\n 'flex-fill': fill\n },\n attrs: {\n role: 'presentation',\n 'aria-hidden': isDisabled ? 'true' : null\n }\n }, [inner]);\n }; // Ellipsis factory\n\n\n var makeEllipsis = function makeEllipsis(isLast) {\n return h('li', {\n key: \"ellipsis-\".concat(isLast ? 'last' : 'first'),\n staticClass: 'page-item',\n class: ['disabled', 'bv-d-xs-down-none', fill ? 'flex-fill' : ''],\n attrs: {\n role: 'separator'\n }\n }, [h('span', {\n staticClass: 'page-link'\n }, [_this7.normalizeSlot('ellipsis-text') || toString(_this7.ellipsisText) || h()])]);\n }; // Goto First Page button bookend\n\n\n buttons.push(this.hideGotoEndButtons ? h() : makeEndBtn(1, this.labelFirstPage, 'first-text', this.firstText, 1, 'bookend-goto-first')); // Goto Previous page button bookend\n\n buttons.push(makeEndBtn(currentPage - 1, this.labelPrevPage, 'prev-text', this.prevText, 1, 'bookend-goto-prev')); // First Ellipsis Bookend\n\n buttons.push(showFirstDots ? makeEllipsis(false) : h()); // Individual Page links\n\n this.pageList.forEach(function (page, idx) {\n var active = isActivePage(page.number) && !noCurrPage; // Active page will have tabindex of 0, or if no current page and first page button\n\n var tabIndex = disabled ? null : active || noCurrPage && idx === 0 ? '0' : '-1';\n var attrs = {\n role: 'menuitemradio',\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-label': isFunction(_this7.labelPage) ? _this7.labelPage(page.number) : \"\".concat(_this7.labelPage, \" \").concat(page.number),\n 'aria-checked': active ? 'true' : 'false',\n 'aria-posinset': page.number,\n 'aria-setsize': numberOfPages,\n // ARIA \"roving tabindex\" method\n tabindex: tabIndex\n };\n var btnContent = toString(_this7.makePage(page.number));\n var scope = {\n page: page.number,\n index: page.number - 1,\n content: btnContent,\n active: active,\n disabled: disabled\n };\n var inner = h(disabled ? 'span' : BLink, {\n props: disabled ? {} : _this7.linkProps(page.number),\n staticClass: 'page-link',\n attrs: attrs,\n on: disabled ? {} : {\n click: function click(evt) {\n _this7.onClick(page.number, evt);\n },\n keydown: onSpaceKey\n }\n }, [_this7.normalizeSlot('page', scope) || btnContent]);\n buttons.push(h('li', {\n key: \"page-\".concat(page.number),\n staticClass: 'page-item',\n class: [{\n disabled: disabled,\n active: active,\n 'flex-fill': fill\n }, page.classes],\n attrs: {\n role: 'presentation'\n }\n }, [inner]));\n }); // Last Ellipsis Bookend\n\n buttons.push(showLastDots ? makeEllipsis(true) : h()); // Goto Next page button bookend\n\n buttons.push(makeEndBtn(currentPage + 1, this.labelNextPage, 'next-text', this.nextText, numberOfPages, 'bookend-goto-next')); // Goto Last Page button bookend\n\n buttons.push(this.hideGotoEndButtons ? h() : makeEndBtn(numberOfPages, this.labelLastPage, 'last-text', this.lastText, numberOfPages, 'bookend-goto-last')); // Assemble the pagination buttons\n\n var pagination = h('ul', {\n ref: 'ul',\n staticClass: 'pagination',\n class: ['b-pagination', this.btnSize, this.alignment],\n attrs: {\n role: 'menubar',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-label': this.ariaLabel || null\n },\n on: {\n keydown: function keydown(evt) {\n var keyCode = evt.keyCode;\n var shift = evt.shiftKey;\n\n if (keyCode === KeyCodes.LEFT) {\n evt.preventDefault();\n shift ? _this7.focusFirst() : _this7.focusPrev();\n } else if (keyCode === KeyCodes.RIGHT) {\n evt.preventDefault();\n shift ? _this7.focusLast() : _this7.focusNext();\n }\n }\n }\n }, buttons); // if we are pagination-nav, wrap in '<nav>' wrapper\n\n if (this.isNav) {\n return h('nav', {\n attrs: {\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-hidden': disabled ? 'true' : 'false'\n }\n }, [pagination]);\n } else {\n return pagination;\n }\n }\n};","import Vue from '../../utils/vue';\nimport { getComponentConfig } from '../../utils/config';\nimport { isVisible } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport paginationMixin from '../../mixins/pagination'; // --- Constants ---\n\nvar NAME = 'BPagination';\nvar DEFAULT_PER_PAGE = 20;\nvar DEFAULT_TOTAL_ROWS = 0;\nvar props = {\n size: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'size');\n }\n },\n perPage: {\n type: [Number, String],\n default: DEFAULT_PER_PAGE\n },\n totalRows: {\n type: [Number, String],\n default: DEFAULT_TOTAL_ROWS\n },\n ariaControls: {\n type: String,\n default: null\n }\n}; // --- Helper functions ---\n// Sanitize the provided per page number (converting to a number)\n\nvar sanitizePerPage = function sanitizePerPage(val) {\n var perPage = parseInt(val, 10) || DEFAULT_PER_PAGE;\n return perPage < 1 ? 1 : perPage;\n}; // Sanitize the provided total rows number (converting to a number)\n\n\nvar sanitizeTotalRows = function sanitizeTotalRows(val) {\n var totalRows = parseInt(val, 10) || DEFAULT_TOTAL_ROWS;\n return totalRows < 0 ? 0 : totalRows;\n}; // The render function is brought in via the `paginationMixin`\n// @vue/component\n\n\nexport var BPagination =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n mixins: [paginationMixin],\n props: props,\n computed: {\n numberOfPages: function numberOfPages() {\n var result = Math.ceil(sanitizeTotalRows(this.totalRows) / sanitizePerPage(this.perPage));\n return result < 1 ? 1 : result;\n },\n pageSizeNumberOfPages: function pageSizeNumberOfPages() {\n // Used for watching changes to `perPage` and `numberOfPages`\n return {\n perPage: sanitizePerPage(this.perPage),\n totalRows: sanitizeTotalRows(this.totalRows),\n numberOfPages: this.numberOfPages\n };\n }\n },\n watch: {\n pageSizeNumberOfPages: function pageSizeNumberOfPages(newVal, oldVal) {\n if (!isUndefinedOrNull(oldVal)) {\n if (newVal.perPage !== oldVal.perPage && newVal.totalRows === oldVal.totalRows) {\n // If the page size changes, reset to page 1\n this.currentPage = 1;\n } else if (newVal.numberOfPages !== oldVal.numberOfPages && this.currentPage > newVal.numberOfPages) {\n // If `numberOfPages` changes and is less than\n // the `currentPage` number, reset to page 1\n this.currentPage = 1;\n }\n }\n\n this.localNumberOfPages = newVal.numberOfPages;\n }\n },\n created: function created() {\n var _this = this;\n\n // Set the initial page count\n this.localNumberOfPages = this.numberOfPages; // Set the initial page value\n\n var currentPage = parseInt(this.value, 10) || 0;\n\n if (currentPage > 0) {\n this.currentPage = currentPage;\n } else {\n this.$nextTick(function () {\n // If this value parses to NaN or a value less than 1\n // Trigger an initial emit of 'null' if no page specified\n _this.currentPage = 0;\n });\n }\n },\n mounted: function mounted() {\n // Set the initial page count\n this.localNumberOfPages = this.numberOfPages;\n },\n methods: {\n // These methods are used by the render function\n onClick: function onClick(num, evt) {\n var _this2 = this;\n\n // Handle edge cases where number of pages has changed (i.e. if perPage changes)\n // This should normally not happen, but just in case.\n if (num > this.numberOfPages) {\n /* istanbul ignore next */\n num = this.numberOfPages;\n } else if (num < 1) {\n /* istanbul ignore next */\n num = 1;\n } // Update the v-model\n\n\n this.currentPage = num; // Emit event triggered by user interaction\n\n this.$emit('change', this.currentPage);\n this.$nextTick(function () {\n // Keep the current button focused if possible\n var target = evt.target;\n\n if (isVisible(target) && _this2.$el.contains(target) && target.focus) {\n target.focus();\n } else {\n _this2.focusCurrent();\n }\n });\n },\n makePage: function makePage(pageNum) {\n return pageNum;\n },\n linkProps: function linkProps(pageNum) {\n // Always '#' for pagination component\n return {\n href: '#'\n };\n }\n }\n});","import { BPagination } from './pagination';\nimport { pluginFactory } from '../../utils/plugins';\nvar PaginationPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BPagination: BPagination\n }\n});\nexport { PaginationPlugin, BPagination };","import Vue from '../../utils/vue';\nimport looseEqual from '../../utils/loose-equal';\nimport toString from '../../utils/to-string';\nimport warn from '../../utils/warn';\nimport { getComponentConfig } from '../../utils/config';\nimport { requestAF } from '../../utils/dom';\nimport { isBrowser } from '../../utils/env';\nimport { isArray, isUndefined, isFunction, isObject } from '../../utils/inspect';\nimport { computeHref, parseQuery } from '../../utils/router';\nimport paginationMixin from '../../mixins/pagination';\nvar NAME = 'BPaginationNav'; // Sanitize the provided number of pages (converting to a number)\n\nexport var sanitizeNumberOfPages = function sanitizeNumberOfPages(value) {\n var numberOfPages = parseInt(value, 10) || 1;\n return numberOfPages < 1 ? 1 : numberOfPages;\n};\nvar props = {\n size: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'size');\n }\n },\n numberOfPages: {\n type: [Number, String],\n default: 1,\n validator: function validator(value)\n /* istanbul ignore next */\n {\n var num = parseInt(value, 10);\n\n if (isNaN(num) || num < 1) {\n warn('b-pagination: prop \"number-of-pages\" must be a number greater than 0');\n return false;\n }\n\n return true;\n }\n },\n baseUrl: {\n type: String,\n default: '/'\n },\n useRouter: {\n type: Boolean,\n default: false\n },\n linkGen: {\n type: Function,\n default: null\n },\n pageGen: {\n type: Function,\n default: null\n },\n pages: {\n // Optional array of page links\n type: Array,\n default: null\n },\n noPageDetect: {\n // Disable auto page number detection if true\n type: Boolean,\n default: false\n },\n // router-link specific props\n activeClass: {\n type: String // default: undefined\n\n },\n exact: {\n type: Boolean,\n default: false\n },\n exactActiveClass: {\n type: String // default: undefined\n\n },\n // nuxt-link specific prop(s)\n noPrefetch: {\n type: Boolean,\n default: false\n }\n}; // The render function is brought in via the pagination mixin\n// @vue/component\n\nexport var BPaginationNav =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n mixins: [paginationMixin],\n props: props,\n computed: {\n // Used by render function to trigger wrapping in '<nav>' element\n isNav: function isNav() {\n return true;\n },\n computedValue: function computedValue() {\n // Returns the value prop as a number or `null` if undefined or < 1\n var val = parseInt(this.value, 10);\n return isNaN(val) || val < 1 ? null : val;\n }\n },\n watch: {\n numberOfPages: function numberOfPages(newVal, oldVal) {\n var _this = this;\n\n this.$nextTick(function () {\n _this.setNumberOfPages();\n });\n },\n pages: function pages(newVal, oldVal) {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setNumberOfPages();\n });\n }\n },\n created: function created() {\n this.setNumberOfPages();\n },\n mounted: function mounted() {\n var _this3 = this;\n\n if (this.$router) {\n // We only add the watcher if vue router is detected\n this.$watch('$route', function (to, from) {\n _this3.$nextTick(function () {\n requestAF(function () {\n _this3.guessCurrentPage();\n });\n });\n });\n }\n },\n methods: {\n setNumberOfPages: function setNumberOfPages() {\n var _this4 = this;\n\n if (isArray(this.pages) && this.pages.length > 0) {\n this.localNumberOfPages = this.pages.length;\n } else {\n this.localNumberOfPages = sanitizeNumberOfPages(this.numberOfPages);\n }\n\n this.$nextTick(function () {\n _this4.guessCurrentPage();\n });\n },\n onClick: function onClick(pageNum, evt) {\n var _this5 = this;\n\n // Dont do anything if clicking the current active page\n if (pageNum === this.currentPage) {\n return;\n }\n\n requestAF(function () {\n // Update the v-model\n // Done in in requestAF() to allow browser to complete the\n // native browser click handling of a link\n _this5.currentPage = pageNum;\n\n _this5.$emit('change', pageNum);\n });\n this.$nextTick(function () {\n // Done in a nextTick() to ensure rendering complete\n try {\n // Emulate native link click page reloading behaviour by blurring the\n // paginator and returning focus to the document\n var target = evt.currentTarget || evt.target;\n target.blur();\n } catch (e) {}\n });\n },\n getPageInfo: function getPageInfo(pageNum) {\n if (!isArray(this.pages) || this.pages.length === 0 || isUndefined(this.pages[pageNum - 1])) {\n var link = \"\".concat(this.baseUrl).concat(pageNum);\n return {\n link: this.useRouter ? {\n path: link\n } : link,\n text: toString(pageNum)\n };\n }\n\n var info = this.pages[pageNum - 1];\n\n if (isObject(info)) {\n var _link = info.link;\n return {\n // Normalize link for router use\n link: isObject(_link) ? _link : this.useRouter ? {\n path: _link\n } : _link,\n // Make sure text has a value\n text: toString(info.text || pageNum)\n };\n } else {\n return {\n link: toString(info),\n text: toString(pageNum)\n };\n }\n },\n makePage: function makePage(pageNum) {\n var info = this.getPageInfo(pageNum);\n\n if (this.pageGen && isFunction(this.pageGen)) {\n return this.pageGen(pageNum, info);\n }\n\n return info.text;\n },\n makeLink: function makeLink(pageNum) {\n var info = this.getPageInfo(pageNum);\n\n if (this.linkGen && isFunction(this.linkGen)) {\n return this.linkGen(pageNum, info);\n }\n\n return info.link;\n },\n linkProps: function linkProps(pageNum) {\n var link = this.makeLink(pageNum);\n var props = {\n target: this.target || null,\n rel: this.rel || null,\n disabled: this.disabled,\n // The following props are only used if BLink detects router\n exact: this.exact,\n activeClass: this.activeClass,\n exactActiveClass: this.exactActiveClass,\n append: this.append,\n replace: this.replace,\n // nuxt-link specific prop\n noPrefetch: this.noPrefetch\n };\n\n if (this.useRouter || isObject(link)) {\n props.to = link;\n } else {\n props.href = link;\n }\n\n return props;\n },\n resolveLink: function resolveLink() {\n var to = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n // Given a to (or href string), convert to normalized route-like structure\n // Works only client side!!\n var link;\n\n try {\n // Convert the `to` to a HREF via a temporary `a` tag\n link = document.createElement('a');\n link.href = computeHref({\n to: to\n }, 'a', '/', '/'); // We need to add the anchor to the document to make sure the\n // `pathname` is correctly detected in any browser (i.e. IE)\n\n document.body.appendChild(link); // Once href is assigned, the link will be normalized to the full URL bits\n\n var _link2 = link,\n pathname = _link2.pathname,\n hash = _link2.hash,\n search = _link2.search; // Remove link from document\n\n document.body.removeChild(link); // Return the location in a route-like object\n\n return {\n path: pathname,\n hash: hash,\n query: parseQuery(search)\n };\n } catch (e) {\n /* istanbul ignore next */\n try {\n link && link.parentNode && link.parentNode.removeChild(link);\n } catch (e) {}\n /* istanbul ignore next */\n\n\n return {};\n }\n },\n resolveRoute: function resolveRoute() {\n var to = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n // Given a to (or href string), convert to normalized route location structure\n // works only when router available!!\n try {\n var route = this.$router.resolve(to, this.$route).route;\n return {\n path: route.path,\n hash: route.hash,\n query: route.query\n };\n } catch (e) {\n /* istanbul ignore next */\n return {};\n }\n },\n guessCurrentPage: function guessCurrentPage() {\n var guess = this.computedValue;\n var $router = this.$router;\n var $route = this.$route; // This section only occurs if we are client side, or server-side with $router\n\n /* istanbul ignore else */\n\n if (!this.noPageDetect && !guess && (isBrowser || !isBrowser && $router)) {\n // Current route (if router available)\n var currRoute = $router && $route ? {\n path: $route.path,\n hash: $route.hash,\n query: $route.query\n } : {}; // Current page full HREF (if client side). Can't be done as a computed prop!\n\n var loc = isBrowser ? window.location || document.location : null;\n var currLink = loc ? {\n path: loc.pathname,\n hash: loc.hash,\n query: parseQuery(loc.search)\n } : {}; // Loop through the possible pages looking for a match until found\n\n for (var page = 1; !guess && page <= this.localNumberOfPages; page++) {\n var to = this.makeLink(page);\n\n if ($router && (isObject(to) || this.useRouter)) {\n // Resolve the page via the $router\n guess = looseEqual(this.resolveRoute(to), currRoute) ? page : null;\n } else if (isBrowser) {\n // If no $router available (or !this.useRouter when `to` is a string)\n // we compare using parsed URIs\n guess = looseEqual(this.resolveLink(to), currLink) ? page : null;\n } else {\n // probably SSR, but no $router so we can't guess, so lets break out of\n // the loop early\n\n /* istanbul ignore next */\n guess = -1;\n }\n }\n } // We set currentPage to 0 to trigger an $emit('input', null)\n // As the default for this.currentPage is -1 when no value is specified\n // And valid page numbers are greater than 0\n\n\n this.currentPage = guess > 0 ? guess : 0;\n }\n }\n});","import { BPaginationNav } from './pagination-nav';\nimport { pluginFactory } from '../../utils/plugins';\nvar PaginationNavPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BPaginationNav: BPaginationNav\n }\n});\nexport { PaginationNavPlugin, BPaginationNav };","// Base on-demand component for tooltip / popover templates\n//\n// Currently:\n// Responsible for positioning and transitioning the template\n// Templates are only instantiated when shown, and destroyed when hidden\n//\nimport Vue from '../../../utils/vue';\nimport Popper from 'popper.js';\nimport { getCS, select } from '../../../utils/dom';\nimport { HTMLElement } from '../../../utils/safe-types';\nimport { BVTransition } from '../../../utils/bv-transition';\nvar NAME = 'BVPopper';\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n};\nvar OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n}; // @vue/component\n\nexport var BVPopper =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n props: {\n target: {\n // Element that the tooltip/popover is positioned relative to\n type: HTMLElement,\n default: null\n },\n placement: {\n type: String,\n default: 'top'\n },\n fallbackPlacement: {\n type: [String, Array],\n default: 'flip'\n },\n offset: {\n type: Number,\n default: 0\n },\n boundary: {\n // 'scrollParent', 'viewport', 'window', or Element\n type: [String, HTMLElement],\n default: 'scrollParent'\n },\n boundaryPadding: {\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels\n type: Number,\n default: 5\n },\n arrowPadding: {\n // The minimum distance (in `px`) from the edge of the\n // tooltip/popover that the arrow can be positioned\n type: Number,\n default: 6\n }\n },\n data: function data() {\n return {\n // reactive props set by parent\n noFade: false,\n // State related data\n localShow: true,\n attachment: this.getAttachment(this.placement)\n };\n },\n computed: {\n templateType: function templateType()\n /* istanbul ignore next */\n {\n // Overridden by template component\n return 'unknown';\n },\n popperConfig: function popperConfig() {\n var _this = this;\n\n var placement = this.placement;\n return {\n placement: this.getAttachment(placement),\n modifiers: {\n offset: {\n offset: this.getOffset(placement)\n },\n flip: {\n behavior: this.fallbackPlacement\n },\n // `arrow.element` can also be a reference to an HTML Element\n // maybe we should make this a `$ref` in the templates?\n arrow: {\n element: '.arrow'\n },\n preventOverflow: {\n padding: this.boundaryPadding,\n boundariesElement: this.boundary\n }\n },\n onCreate: function onCreate(data) {\n // Handle flipping arrow classes\n if (data.originalPlacement !== data.placement) {\n /* istanbul ignore next: can't test in JSDOM */\n _this.popperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n // Handle flipping arrow classes\n _this.popperPlacementChange(data);\n }\n };\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Note: We are created on-demand, and should be guaranteed that\n // DOM is rendered/ready by the time the created hook runs\n this.$_popper = null; // Ensure we show as we mount\n\n this.localShow = true; // Create popper instance before shown\n\n this.$on('show', function (el) {\n _this2.popperCreate(el);\n }); // Self destruct once hidden\n\n this.$on('hidden', function () {\n _this2.$nextTick(_this2.$destroy);\n }); // If parent is destroyed, ensure we are destroyed\n\n this.$parent.$once('hook:destroyed', this.$destroy);\n },\n beforeMount: function beforeMount() {\n // Ensure that the attachment position is correct before mounting\n // as our propsData is added after `new Template({...})`\n this.attachment = this.getAttachment(this.placement);\n },\n mounted: function mounted() {// TBD\n },\n updated: function updated() {\n // Update popper if needed\n // TODO: Should this be a watcher on `this.popperConfig` instead?\n this.popperUpdate();\n },\n beforeDestroy: function beforeDestroy() {\n this.popperDestroy();\n },\n destroyed: function destroyed() {\n // Make sure template is removed from DOM\n var el = this.$el;\n el && el.parentNode && el.parentNode.removeChild(el);\n },\n methods: {\n // \"Public\" method to trigger hide template\n hide: function hide() {\n this.localShow = false;\n },\n // Private\n getAttachment: function getAttachment(placement) {\n return AttachmentMap[String(placement).toUpperCase()] || 'auto';\n },\n getOffset: function getOffset(placement) {\n if (!this.offset) {\n // Could set a ref for the arrow element\n var arrow = this.$refs.arrow || select('.arrow', this.$el);\n var arrowOffset = (parseFloat(getCS(arrow).width) || 0) + (parseFloat(this.arrowPadding) || 0);\n\n switch (OffsetMap[String(placement).toUpperCase()] || 0) {\n case +1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"+50%p - \".concat(arrowOffset, \"px\");\n\n case -1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"-50%p + \".concat(arrowOffset, \"px\");\n\n default:\n return 0;\n }\n }\n /* istanbul ignore next */\n\n\n return this.offset;\n },\n popperCreate: function popperCreate(el) {\n this.popperDestroy(); // We use `el` rather than `this.$el` just in case the original\n // mountpoint root element type was changed by the template\n\n this.$_popper = new Popper(this.target, el, this.popperConfig);\n },\n popperDestroy: function popperDestroy() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n popperUpdate: function popperUpdate() {\n this.$_popper && this.$_popper.scheduleUpdate();\n },\n popperPlacementChange: function popperPlacementChange(data) {\n // Callback used by popper to adjust the arrow placement\n this.attachment = this.getAttachment(data.placement);\n },\n renderTemplate: function renderTemplate(h)\n /* istanbul ignore next */\n {\n // Will be overridden by templates\n return h('div');\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n // Note: `show` and 'fade' classes are only appled during transition\n return h(BVTransition, {\n // Transitions as soon as mounted\n props: {\n appear: true,\n noFade: this.noFade\n },\n on: {\n // Events used by parent component/instance\n beforeEnter: function beforeEnter(el) {\n return _this3.$emit('show', el);\n },\n afterEnter: function afterEnter(el) {\n return _this3.$emit('shown', el);\n },\n beforeLeave: function beforeLeave(el) {\n return _this3.$emit('hide', el);\n },\n afterLeave: function afterLeave(el) {\n return _this3.$emit('hidden', el);\n }\n }\n }, [this.localShow ? this.renderTemplate(h) : h()]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../../utils/vue';\nimport scopedStyleAttrsMixin from '../../../mixins/scoped-style-attrs';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { BVPopper } from './bv-popper';\nvar NAME = 'BVTooltipTemplate'; // @vue/component\n\nexport var BVTooltipTemplate =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n extends: BVPopper,\n mixins: [scopedStyleAttrsMixin],\n props: {\n // Other non-reactive (while open) props are pulled in from BVPopper\n id: {\n type: String,\n default: null\n },\n html: {\n // Used only by the directive versions\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n // We use data, rather than props to ensure reactivity\n // Parent component will directly set this data\n return {\n title: '',\n content: '',\n variant: null,\n customClass: null\n };\n },\n computed: {\n templateType: function templateType() {\n return 'tooltip';\n },\n templateClasses: function templateClasses() {\n var _ref;\n\n return [(_ref = {}, _defineProperty(_ref, \"b-\".concat(this.templateType, \"-\").concat(this.variant), this.variant), _defineProperty(_ref, \"bs-\".concat(this.templateType, \"-\").concat(this.attachment), this.attachment), _ref), this.customClass];\n },\n templateAttributes: function templateAttributes() {\n return _objectSpread({\n id: this.id,\n role: 'tooltip',\n tabindex: '-1'\n }, this.scopedStyleAttrs);\n },\n templateListeners: function templateListeners() {\n var _this = this;\n\n // Used for hover/focus trigger listeners\n return {\n mouseenter: function mouseenter(evt) {\n /* istanbul ignore next: difficult to test in JSDOM */\n _this.$emit('mouseenter', evt);\n },\n mouseleave: function mouseleave(evt) {\n /* istanbul ignore next: difficult to test in JSDOM */\n _this.$emit('mouseleave', evt);\n },\n focusin: function focusin(evt) {\n /* istanbul ignore next: difficult to test in JSDOM */\n _this.$emit('focusin', evt);\n },\n focusout: function focusout(evt) {\n /* istanbul ignore next: difficult to test in JSDOM */\n _this.$emit('focusout', evt);\n }\n };\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n // Title can be a scoped slot function\n var $title = isFunction(this.title) ? this.title({}) : isUndefinedOrNull(this.title) ? h() : this.title; // Directive versions only\n\n var domProps = this.html && !isFunction(this.title) ? {\n innerHTML: this.title\n } : {};\n return h('div', {\n staticClass: 'tooltip b-tooltip',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n ref: 'arrow',\n staticClass: 'arrow'\n }), h('div', {\n staticClass: 'tooltip-inner',\n domProps: domProps\n }, [$title])]);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Tooltip \"Class\" (Built as a renderless Vue instance)\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport Vue from '../../../utils/vue';\nimport getScopId from '../../../utils/get-scope-id';\nimport looseEqual from '../../../utils/loose-equal';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { isElement, isDisabled, isVisible, closest, contains, select, getById, hasClass, getAttr, hasAttr, setAttr, removeAttr, eventOn, eventOff } from '../../../utils/dom';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../../utils/inspect';\nimport { keys } from '../../../utils/object';\nimport { warn } from '../../../utils/warn';\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { BVTooltipTemplate } from './bv-tooltip-template';\nvar NAME = 'BVTooltip'; // Modal container selector for appending tooltip/popover\n\nvar MODAL_SELECTOR = '.modal-content'; // Modal `$root` hidden event\n\nvar MODAL_CLOSE_EVENT = 'bv::modal::hidden'; // For dropdown sniffing\n\nvar DROPDOWN_CLASS = 'dropdown';\nvar DROPDOWN_OPEN_SELECTOR = '.dropdown-menu.show'; // Options for Native Event Listeners (since we never call preventDefault)\n\nvar EvtOpts = {\n passive: true,\n capture: false\n}; // Data specific to popper and template\n// We don't use props, as we need reactivity (we can't pass reactive props)\n\nvar templateData = {\n // Text string or Scoped slot function\n title: '',\n // Text string or Scoped slot function\n content: '',\n // String\n variant: null,\n // String, Array, Object\n customClass: null,\n // String or array of Strings (overwritten by BVPopper)\n triggers: '',\n // String (overwritten by BVPopper)\n placement: 'auto',\n // String or array of strings\n fallbackPlacement: 'flip',\n // Element or Component reference (or function that returns element) of\n // the element that will have the trigger events bound, and is also\n // default element for positioning\n target: null,\n // HTML ID, Element or Component reference\n container: null,\n // 'body'\n // Boolean\n noFade: false,\n // 'scrollParent', 'viewport', 'window', Element, or Component reference\n boundary: 'scrollParent',\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels (Number)\n boundaryPadding: 5,\n // Arrow offset (Number)\n offset: 0,\n // Hover/focus delay (Number or Object)\n delay: 0,\n // Arrow of Tooltip/popover will try and stay away from\n // the edge of tooltip/popover edge by this many pixels\n arrowPadding: 6,\n // Disabled state (Boolean)\n disabled: false,\n // ID to use for tooltip/popover\n id: null,\n // Flag used by directives only, for HTML content\n html: false\n}; // @vue/component\n\nexport var BVTooltip =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n props: {// None\n },\n data: function data() {\n return _objectSpread({}, templateData, {\n // State management data\n activeTrigger: {\n // manual: false,\n hover: false,\n click: false,\n focus: false\n },\n localShow: false\n });\n },\n computed: {\n templateType: function templateType() {\n // Overwritten by BVPopover\n return 'tooltip';\n },\n computedId: function computedId() {\n return this.id || \"__bv_\".concat(this.templateType, \"_\").concat(this._uid, \"__\");\n },\n computedDelay: function computedDelay() {\n // Normalizes delay into object form\n var delay = {\n show: 0,\n hide: 0\n };\n\n if (isPlainObject(this.delay)) {\n delay.show = Math.max(parseInt(this.delay.show, 10) || 0, 0);\n delay.hide = Math.max(parseInt(this.delay.hide, 10) || 0, 0);\n } else if (isNumber(this.delay) || isString(this.delay)) {\n delay.show = delay.hide = Math.max(parseInt(this.delay, 10) || 0, 0);\n }\n\n return delay;\n },\n computedTriggers: function computedTriggers() {\n // Returns the triggers in sorted array form\n // TODO: Switch this to object form for easier lookup\n return concat(this.triggers).filter(Boolean).join(' ').trim().toLowerCase().split(/\\s+/).sort();\n },\n isWithActiveTrigger: function isWithActiveTrigger() {\n for (var trigger in this.activeTrigger) {\n if (this.activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n },\n computedTemplateData: function computedTemplateData() {\n return {\n title: this.title,\n content: this.content,\n variant: this.variant,\n customClass: this.customClass,\n noFade: this.noFade\n };\n }\n },\n watch: {\n computedTriggers: function computedTriggers(newTriggers, oldTriggers) {\n var _this = this;\n\n // Triggers have changed, so re-register them\n\n /* istanbul ignore next */\n if (!looseEqual(newTriggers, oldTriggers)) {\n this.$nextTick(function () {\n // Disable trigger listeners\n _this.unListen(); // Clear any active triggers that are no longer in the list of triggers\n\n\n oldTriggers.forEach(function (trigger) {\n if (!arrayIncludes(newTriggers, trigger)) {\n if (_this.activeTrigger[trigger]) {\n _this.activeTrigger[trigger] = false;\n }\n }\n }); // Re-enable the trigger listeners\n\n _this.listen();\n });\n }\n },\n computedTemplateData: function computedTemplateData() {\n // If any of the while open reactive \"props\" change,\n // ensure that the template updates accordingly\n this.handleTemplateUpdate();\n },\n disabled: function disabled(newVal) {\n newVal ? this.disable() : this.enable();\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create non-reactive properties\n this.$_tip = null;\n this.$_hoverTimeout = null;\n this.$_hoverState = '';\n this.$_visibleInterval = null;\n this.$_enabled = !this.disabled;\n\n this.$_noop = function () {}; // Destroy ourselves when the parent is destroyed\n\n\n if (this.$parent) {\n this.$parent.$once('hook:beforeDestroy', this.$destroy);\n }\n\n this.$nextTick(function () {\n var target = _this2.getTarget();\n\n if (target && contains(document.body, target)) {\n // Copy the parent's scoped style attribute\n _this2.scopeId = getScopId(_this2.$parent); // Set up all trigger handlers and listeners\n\n _this2.listen();\n } else {\n /* istanbul ignore next */\n warn(\"\".concat(_this2.templateType, \" unable to find target element in document\"));\n }\n });\n },\n updated: function updated()\n /* istanbul ignore next */\n {\n // Usually called when the slots/data changes\n this.$nextTick(this.handleTemplateUpdate);\n },\n deactivated: function deactivated()\n /* istanbul ignore next */\n {\n // In a keepalive that has been deactivated, so hide\n // the tooltip/popover if it is showing\n this.forceHide();\n },\n beforeDestroy: function beforeDestroy()\n /* istanbul ignore next */\n {\n // Remove all handler/listeners\n this.unListen();\n this.setWhileOpenListeners(false); // Clear any timeouts/Timers\n\n clearTimeout(this.$_hoverTimeout);\n this.$_hoverTimeout = null;\n this.destroyTemplate();\n this.restoreTitle();\n },\n methods: {\n //\n // Methods for creating and destroying the template\n //\n getTemplate: function getTemplate() {\n // Overridden by BVPopover\n return BVTooltipTemplate;\n },\n updateData: function updateData() {\n var _this3 = this;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Method for updating popper/template data\n // We only update data if it exists, and has not changed\n var titleUpdated = false;\n keys(templateData).forEach(function (prop) {\n if (!isUndefined(data[prop]) && _this3[prop] !== data[prop]) {\n _this3[prop] = data[prop];\n\n if (prop === 'title') {\n titleUpdated = true;\n }\n }\n });\n\n if (titleUpdated && this.localShow) {\n // If the title has updated, we may need to handle the title\n // attribute on the trigger target. We only do this while the\n // template is open\n this.fixTitle();\n }\n },\n createTemplateAndShow: function createTemplateAndShow() {\n // Creates the template instance and show it\n // this.destroyTemplate()\n var container = this.getContainer();\n var Template = this.getTemplate();\n var $tip = this.$_tip = new Template({\n parent: this,\n // The following is not reactive to changes in the props data\n propsData: {\n // These values cannot be changed while template is showing\n id: this.computedId,\n html: this.html,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n target: this.getPlacementTarget(),\n boundary: this.getBoundary(),\n // Ensure the following are integers\n offset: parseInt(this.offset, 10) || 0,\n arrowPadding: parseInt(this.arrowPadding, 10) || 0,\n boundaryPadding: parseInt(this.boundaryPadding, 10) || 0\n }\n }); // We set the initial reactive data (values that can be changed while open)\n\n this.handleTemplateUpdate(); // Template transition phase events (handled once only)\n // When the template has mounted, but not visibly shown yet\n\n $tip.$once('show', this.onTemplateShow); // When the template has completed showing\n\n $tip.$once('shown', this.onTemplateShown); // When the template has started to hide\n\n $tip.$once('hide', this.onTemplateHide); // When the template has completed hiding\n\n $tip.$once('hidden', this.onTemplateHidden); // When the template gets destroyed for any reason\n\n $tip.$once('hook:destroyed', this.destroyTemplate); // Convenience events from template\n // To save us from manually adding/removing DOM\n // listeners to tip element when it is open\n\n $tip.$on('focusin', this.handleEvent);\n $tip.$on('focusout', this.handleEvent);\n $tip.$on('mouseenter', this.handleEvent);\n $tip.$on('mouseleave', this.handleEvent); // Mount (which triggers the `show`)\n\n $tip.$mount(container.appendChild(document.createElement('div'))); // Template will automatically remove its markup from DOM when hidden\n },\n hideTemplate: function hideTemplate() {\n // Trigger the template to start hiding\n // The template will emit the `hide` event after this and\n // then emit the `hidden` event once it is fully hidden\n // The `hook:destroyed` will also be called (safety measure)\n this.$_tip && this.$_tip.hide();\n },\n destroyTemplate: function destroyTemplate() {\n // Destroy the template instance and reset state\n this.setWhileOpenListeners(false);\n clearTimeout(this.$_hoverTimeout);\n this.$_hoverTimout = null;\n this.$_hoverState = '';\n this.clearActiveTriggers();\n this.localPlacementTarget = null;\n\n try {\n this.$_tip && this.$_tip.$destroy();\n } catch (_unused) {}\n\n this.$_tip = null;\n this.localShow = false;\n },\n getTemplateElement: function getTemplateElement() {\n return this.$_tip ? this.$_tip.$el : null;\n },\n handleTemplateUpdate: function handleTemplateUpdate() {\n var _this4 = this;\n\n // Update our template title/content \"props\"\n // So that the template updates accordingly\n var $tip = this.$_tip;\n\n if ($tip) {\n var props = ['title', 'content', 'variant', 'customClass', 'noFade']; // Only update the values if they have changed\n\n props.forEach(function (prop) {\n if ($tip[prop] !== _this4[prop]) {\n $tip[prop] = _this4[prop];\n }\n });\n }\n },\n //\n // Show and Hide handlers\n //\n show: function show() {\n // Show the tooltip\n var target = this.getTarget();\n\n if (!target || !contains(document.body, target) || !isVisible(target) || this.dropdownOpen() || (isUndefinedOrNull(this.title) || this.title === '') && (isUndefinedOrNull(this.content) || this.content === '')) {\n // If trigger element isn't in the DOM or is not visible, or\n // is on an open dropdown toggle, or has no content, then\n // we exit without showing\n return;\n }\n\n if (this.$_tip || this.localShow) {\n // If tip already exists, exit early\n\n /* istanbul ignore next */\n return;\n } // In the process of showing\n\n\n this.localShow = true; // Create a cancelable BvEvent\n\n var showEvt = this.buildEvent('show', {\n cancelable: true\n });\n this.emitEvent(showEvt);\n /* istanbul ignore next: ignore for now */\n\n if (showEvt.defaultPrevented) {\n // Don't show if event cancelled\n // Destroy the template (if for some reason it was created)\n\n /* istanbul ignore next */\n this.destroyTemplate(); // Clear the localShow flag\n\n /* istanbul ignore next */\n\n this.localShow = false;\n /* istanbul ignore next */\n\n return;\n } // Fix the title attribute on target\n\n\n this.fixTitle(); // Set aria-describedby on target\n\n this.addAriaDescribedby(); // Create and show the tooltip\n\n this.createTemplateAndShow();\n },\n hide: function hide() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n // Hide the tooltip\n var tip = this.getTemplateElement();\n\n if (!tip || !this.localShow) {\n /* istanbul ignore next */\n this.restoreTitle();\n /* istanbul ignore next */\n\n return;\n } // Emit cancelable BvEvent 'hide'\n // We disable cancelling if `force` is true\n\n\n var hideEvt = this.buildEvent('hide', {\n cancelable: !force\n });\n this.emitEvent(hideEvt);\n /* istanbul ignore next: ignore for now */\n\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n\n /* istanbul ignore next */\n return;\n } // Tell the template to hide\n\n\n this.hideTemplate(); // TODO: The following could be added to `hideTemplate()`\n // Clear out any stragging active triggers\n\n this.clearActiveTriggers(); // Reset the hover state\n\n this.$_hoverState = '';\n },\n forceHide: function forceHide() {\n // Forcefully hides/destroys the template, regardless of any active triggers\n var tip = this.getTemplateElement();\n\n if (!tip || !this.localShow) {\n /* istanbul ignore next */\n return;\n } // Disable while open listeners/watchers\n // This is also done in the template `hide` evt handler\n\n\n this.setWhileOpenListeners(false); // Clear any hover enter/leave event\n\n clearTimeout(this.hoverTimeout);\n this.$_hoverTimeout = null;\n this.$_hoverState = '';\n this.clearActiveTriggers(); // Disable the fade animation on the template\n\n if (this.$_tip) {\n this.$_tip.noFade = true;\n } // Hide the tip (with force = true)\n\n\n this.hide(true);\n },\n enable: function enable() {\n this.$_enabled = true; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent('enabled', {}));\n },\n disable: function disable() {\n this.$_enabled = false; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent('disabled', {}));\n },\n //\n // Handlers for template events\n //\n onTemplateShow: function onTemplateShow() {\n // When template is inserted into DOM, but not yet shown\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true);\n },\n onTemplateShown: function onTemplateShown() {\n // When template show transition completes\n var prevHoverState = this.$_hoverState;\n this.$_hoverState = '';\n\n if (prevHoverState === 'out') {\n this.leave(null);\n } // Emit a non-cancelable BvEvent 'shown'\n\n\n this.emitEvent(this.buildEvent('shown', {}));\n },\n onTemplateHide: function onTemplateHide() {\n // When template is starting to hide\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n },\n onTemplateHidden: function onTemplateHidden() {\n // When template has completed closing (just before it self destructs)\n // TODO:\n // The next two lines could be moved into `destroyTemplate()`\n this.removeAriaDescribedby();\n this.restoreTitle();\n this.destroyTemplate(); // Emit a non-cancelable BvEvent 'shown'\n\n this.emitEvent(this.buildEvent('hidden', {}));\n },\n //\n // Utility methods\n //\n getTarget: function getTarget() {\n // Handle case where target may be a component ref\n var target = this.target ? this.target.$el || this.target : null; // If an ID\n\n target = isString(target) ? getById(target.replace(/^#/, '')) : target; // If a function\n\n target = isFunction(target) ? target() : target; // If an element ref\n\n return isElement(target) ? target : null;\n },\n getPlacementTarget: function getPlacementTarget() {\n // This is the target that the tooltip will be placed on, which may not\n // necessarily be the same element that has the trigger event listeners\n // For now, this is the same as target\n // TODO:\n // Add in child selector support\n // Add in visibility checks for this element\n // Fallback to target if not found\n return this.getTarget();\n },\n getTargetId: function getTargetId() {\n // Returns the ID of the trigger element\n var target = this.getTarget();\n return target && target.id ? target.id : null;\n },\n getContainer: function getContainer() {\n // Handle case where container may be a component ref\n var container = this.container ? this.container.$el || this.container : false;\n var body = document.body;\n var target = this.getTarget(); // If we are in a modal, we append to the modal instead\n // of body, unless a container is specified\n // TODO:\n // Template should periodically check to see if it is in dom\n // And if not, self destruct (if container got v-if'ed out of DOM)\n // Or this could possibly be part of the visibility check\n\n return container === false ? closest(MODAL_SELECTOR, target) || body : isString(container) ? getById(container.replace(/^#/, '')) || body : body;\n },\n getBoundary: function getBoundary() {\n return this.boundary ? this.boundary.$el || this.boundary : 'scrollParent';\n },\n isInModal: function isInModal() {\n var target = this.getTarget();\n return target && closest(MODAL_SELECTOR, target);\n },\n isDropdown: function isDropdown() {\n // Returns true if trigger is a dropdown\n var target = this.getTarget();\n return target && hasClass(target, DROPDOWN_CLASS);\n },\n dropdownOpen: function dropdownOpen() {\n // Returns true if trigger is a dropdown and the dropdown menu is open\n var target = this.getTarget();\n return this.isDropdown() && target && select(DROPDOWN_OPEN_SELECTOR, target);\n },\n clearActiveTriggers: function clearActiveTriggers() {\n for (var trigger in this.activeTrigger) {\n this.activeTrigger[trigger] = false;\n }\n },\n addAriaDescribedby: function addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).concat(this.computedId).join(' ').trim(); // Update/add aria-described by\n\n setAttr(target, 'aria-describedby', desc);\n },\n removeAriaDescribedby: function removeAriaDescribedby() {\n var _this5 = this;\n\n // Remove aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).filter(function (d) {\n return d !== _this5.computedId;\n }).join(' ').trim(); // Update or remove aria-describedby\n\n if (desc) {\n /* istanbul ignore next */\n setAttr(target, 'aria-describedby', desc);\n } else {\n removeAttr(target, 'aria-describedby');\n }\n },\n fixTitle: function fixTitle() {\n // If the target has a title attribute, null it out and\n // store on data-title\n var target = this.getTarget();\n\n if (target && getAttr(target, 'title')) {\n // We only update title attribute if it has a value\n setAttr(target, 'data-original-title', getAttr(target, 'title') || '');\n setAttr(target, 'title', '');\n }\n },\n restoreTitle: function restoreTitle() {\n // If target had a title, restore the title attribute\n // and remove the data-title attribute\n var target = this.getTarget();\n\n if (target && hasAttr(target, 'data-original-title')) {\n setAttr(target, 'title', getAttr(target, 'data-original-title') || '');\n removeAttr(target, 'data-original-title');\n }\n },\n //\n // BvEvent helpers\n //\n buildEvent: function buildEvent(type) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Defaults to a non-cancellable event\n return new BvEvent(type, _objectSpread({\n cancelable: false,\n target: this.getTarget(),\n relatedTarget: this.getTemplateElement() || null,\n componentId: this.computedId,\n vueTarget: this\n }, opts));\n },\n emitEvent: function emitEvent(bvEvt) {\n // Emits a BvEvent on $root and this instance\n var evtName = bvEvt.type;\n var $root = this.$root;\n\n if ($root && $root.$emit) {\n // Emit an event on $root\n $root.$emit(\"bv::\".concat(this.templateType, \"::\").concat(evtName), bvEvt);\n }\n\n this.$emit(evtName, bvEvt);\n },\n //\n // Event handler setup methods\n //\n listen: function listen() {\n var _this6 = this;\n\n // Enable trigger event handlers\n var el = this.getTarget();\n\n if (!el) {\n /* istanbul ignore next */\n return;\n } // Listen for global show/hide events\n\n\n this.setRootListener(true); // Set up our listeners on the target trigger element\n\n this.computedTriggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6.handleEvent, EvtOpts);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6.handleEvent, EvtOpts);\n eventOn(el, 'focusout', _this6.handleEvent, EvtOpts);\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n\n /* istanbul ignore next */\n eventOn(el, 'focusout', _this6.handleEvent, EvtOpts);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6.handleEvent, EvtOpts);\n eventOn(el, 'mouseleave', _this6.handleEvent, EvtOpts);\n }\n }, this);\n },\n unListen: function unListen()\n /* istanbul ignore next */\n {\n var _this7 = this;\n\n // Remove trigger event handlers\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n var target = this.getTarget(); // Stop listening for global show/hide/enable/disable events\n\n this.setRootListener(false); // Clear out any active target listeners\n\n events.forEach(function (evt) {\n target && eventOff(target, evt, _this7.handleEvent, EvtOpts);\n }, this);\n },\n setRootListener: function setRootListener(on) {\n // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n var $root = this.$root;\n\n if ($root) {\n var method = on ? '$on' : '$off';\n var type = this.templateType;\n $root[method](\"bv::hide::\".concat(type), this.doHide);\n $root[method](\"bv::show::\".concat(type), this.doShow);\n $root[method](\"bv::disable::\".concat(type), this.doDisable);\n $root[method](\"bv::enable::\".concat(type), this.doEnable);\n }\n },\n setWhileOpenListeners: function setWhileOpenListeners(on) {\n // Events that are only registered when the template is showing\n // Modal close events\n this.setModalListener(on); // Dropdown open events (if we are attached to a dropdown)\n\n this.setDropdownListener(on); // Periodic $element visibility check\n // For handling when tip target is in <keepalive>, tabs, carousel, etc\n\n this.visibleCheck(on); // On-touch start listeners\n\n this.setOnTouchStartListener(on);\n },\n visibleCheck: function visibleCheck(on) {\n var _this8 = this;\n\n // Handler for periodic visibility check\n clearInterval(this.$_visibleInterval);\n this.$_visibleInterval = null;\n var target = this.getTarget();\n var tip = this.getTemplateElement();\n\n if (on) {\n this.visibleInterval = setInterval(function () {\n if (tip && _this8.localShow && (!target.parentNode || !isVisible(target))) {\n // Target element is no longer visible or not in DOM, so force-hide the tooltip\n _this8.forceHide();\n }\n }, 100);\n }\n },\n setModalListener: function setModalListener(on) {\n // Handle case where tooltip/target is in a modal\n if (this.isInModal()) {\n // We can listen for modal hidden events on `$root`\n this.$root[on ? '$on' : '$off'](MODAL_CLOSE_EVENT, this.forceHide);\n }\n },\n setOnTouchStartListener: function setOnTouchStartListener(on)\n /* istanbul ignore next: JSDOM doesn't support `ontouchstart` */\n {\n var _this9 = this;\n\n // If this is a touch-enabled device we add extra empty\n // `mouseover` listeners to the body's immediate children\n // Only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n var method = on ? eventOn : eventOff;\n arrayFrom(document.body.children).forEach(function (el) {\n method(el, 'mouseover', _this9.$_noop);\n });\n }\n },\n setDropdownListener: function setDropdownListener(on) {\n var target = this.getTarget();\n\n if (!target || !this.$root || !this.isDropdown) {\n return;\n } // We can listen for dropdown shown events on it's instance\n // TODO:\n // We could grab the ID from the dropdown, and listen for\n // $root events for that particular dropdown id\n // Dropdown shown and hidden events will need to emit\n // Note: Dropdown auto-ID happens in a `$nextTick()` after mount\n // So the ID lookup would need to be done in a `$nextTick()`\n\n\n if (target.__vue__) {\n target.__vue__[on ? '$on' : '$off']('shown', this.forceHide);\n }\n },\n //\n // Event handlers\n //\n handleEvent: function handleEvent(evt) {\n // General trigger event handler\n // target is the trigger element\n var target = this.getTarget();\n\n if (!target || isDisabled(target) || !this.$_enabled || this.dropdownOpen()) {\n // If disabled or not enabled, or if a dropdown that is open, don't do anything\n // If tip is shown before element gets disabled, then tip will not\n // close until no longer disabled or forcefully closed\n return;\n }\n\n var type = evt.type;\n var triggers = this.computedTriggers;\n\n if (type === 'click' && arrayIncludes(triggers, 'click')) {\n this.click(evt);\n } else if (type === 'mouseenter' && arrayIncludes(triggers, 'hover')) {\n // `mouseenter` is a non-bubbling event\n this.enter(evt);\n } else if (type === 'focusin' && arrayIncludes(triggers, 'focus')) {\n // `focusin` is a bubbling event\n // `evt` includes `relatedTarget` (element loosing focus)\n this.enter(evt);\n } else if (type === 'focusout' && (arrayIncludes(triggers, 'focus') || arrayIncludes(triggers, 'blur')) || type === 'mouseleave' && arrayIncludes(triggers, 'hover')) {\n // `focusout` is a bubbling event\n // `mouseleave` is a non-bubbling event\n // `tip` is the template (will be null if not open)\n var tip = this.getTemplateElement(); // `evtTarget` is the element which is loosing focus/hover and\n\n var evtTarget = evt.target; // `relatedTarget` is the element gaining focus/hover\n\n var relatedTarget = evt.relatedTarget;\n /* istanbul ignore next */\n\n if ( // From tip to target\n tip && contains(tip, evtTarget) && contains(target, relatedTarget) || // From target to tip\n tip && contains(target, evtTarget) && contains(tip, relatedTarget) || // Within tip\n tip && contains(tip, evtTarget) && contains(tip, relatedTarget) || // Within target\n contains(target, evtTarget) && contains(target, relatedTarget)) {\n // If focus/hover moves within `tip` and `target`, don't trigger a leave\n return;\n } // Otherwise trigger a leave\n\n\n this.leave(evt);\n }\n },\n doHide: function doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Close all tooltips or popovers, or this specific tip (with ID)\n this.forceHide();\n }\n },\n doShow: function doShow(id) {\n // Programmatically show tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Open all tooltips or popovers, or this specific tip (with ID)\n this.show();\n }\n },\n doDisable: function doDisable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically disable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Disable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.disable();\n }\n },\n doEnable: function doEnable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically enable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Enable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.enable();\n }\n },\n click: function click(evt) {\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n }\n\n this.activeTrigger.click = !this.activeTrigger.click;\n\n if (this.isWithActiveTrigger) {\n this.enter(null);\n } else {\n /* istanbul ignore next */\n this.leave(null);\n }\n },\n toggle: function toggle()\n /* istanbul ignore next */\n {\n // Manual toggle handler\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Should we register as an active trigger?\n // this.activeTrigger.manual = !this.activeTrigger.manual\n\n\n if (this.localShow) {\n this.leave(null);\n } else {\n this.enter(null);\n }\n },\n enter: function enter() {\n var _this10 = this;\n\n var evt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Opening trigger handler\n // Note: Click events are sent with evt === null\n if (evt) {\n this.activeTrigger[evt.type === 'focusin' ? 'focus' : 'hover'] = true;\n }\n /* istanbul ignore next */\n\n\n if (this.localShow || this.$_hoverState === 'in') {\n this.$_hoverState = 'in';\n return;\n }\n\n clearTimeout(this.hoverTimeout);\n this.$_hoverState = 'in';\n\n if (!this.computedDelay.show) {\n this.show();\n } else {\n // Hide any title attribute while enter delay is active\n this.fixTitle();\n this.hoverTimeout = setTimeout(function () {\n /* istanbul ignore else */\n if (_this10.$_hoverState === 'in') {\n _this10.show();\n } else if (!_this10.localShow) {\n _this10.restoreTitle();\n }\n }, this.computedDelay.show);\n }\n },\n leave: function leave() {\n var _this11 = this;\n\n var evt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Closing trigger handler\n // Note: Click events are sent with evt === null\n if (evt) {\n this.activeTrigger[evt.type === 'focusout' ? 'focus' : 'hover'] = false;\n /* istanbul ignore next */\n\n if (evt.type === 'focusout' && arrayIncludes(this.computedTriggers, 'blur')) {\n // Special case for `blur`: we clear out the other triggers\n this.activeTrigger.click = false;\n this.activeTrigger.hover = false;\n }\n }\n /* istanbul ignore next: ignore for now */\n\n\n if (this.isWithActiveTrigger) {\n return;\n }\n\n clearTimeout(this.hoverTimeout);\n this.$_hoverState = 'out';\n\n if (!this.computedDelay.hide) {\n this.hide();\n } else {\n this.$hoverTimeout = setTimeout(function () {\n if (_this11.$_hoverState === 'out') {\n _this11.hide();\n }\n }, this.computedDelay.hide);\n }\n }\n }\n});","import Vue from '../../utils/vue';\nimport getScopId from '../../utils/get-scope-id';\nimport { isArray, arrayIncludes } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { isString, isUndefinedOrNull } from '../../utils/inspect';\nimport { HTMLElement } from '../../utils/safe-types';\nimport { BVTooltip } from './helpers/bv-tooltip';\nvar NAME = 'BTooltip'; // @vue/component\n\nexport var BTooltip =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n props: {\n title: {\n type: String // default: undefined\n\n },\n // Added in by BPopover\n // content: {\n // type: String,\n // default: undefined\n // },\n target: {\n // String ID of element, or element/component reference\n // Or function that returns one of the above\n type: [String, HTMLElement, Function, Object],\n // default: undefined,\n required: true\n },\n triggers: {\n type: [String, Array],\n default: 'hover focus'\n },\n placement: {\n type: String,\n default: 'top'\n },\n fallbackPlacement: {\n type: [String, Array],\n default: 'flip',\n validator: function validator(value) {\n return isArray(value) && value.every(function (v) {\n return isString(v);\n }) || arrayIncludes(['flip', 'clockwise', 'counterclockwise'], value);\n }\n },\n variant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'variant');\n }\n },\n customClass: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'customClass');\n }\n },\n delay: {\n type: [Number, Object, String],\n default: function _default() {\n return getComponentConfig(NAME, 'delay');\n }\n },\n boundary: {\n // String: scrollParent, window, or viewport\n // Element: element reference\n // Object: Vue component\n type: [String, HTMLElement, Object],\n default: function _default() {\n return getComponentConfig(NAME, 'boundary');\n }\n },\n boundaryPadding: {\n type: [Number, String],\n default: function _default() {\n return getComponentConfig(NAME, 'boundaryPadding');\n }\n },\n offset: {\n type: [Number, String],\n default: 0\n },\n noFade: {\n type: Boolean,\n default: false\n },\n container: {\n // String: HTML ID of container, if null body is used (default)\n // HTMLElement: element reference reference\n // Object: Vue Component\n type: [String, HTMLElement, Object] // default: undefined\n\n },\n show: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n id: {\n // ID to use for tooltip element\n // If not provided on will automatically be generated\n type: String,\n default: null\n }\n },\n data: function data() {\n return {\n localShow: this.show,\n localTitle: '',\n localContent: ''\n };\n },\n computed: {\n templateData: function templateData() {\n // Data that will be passed to the template and popper\n return {\n // We use massaged versions of the title and content props/slots\n title: this.localTitle,\n content: this.localContent,\n // Pass these props as is\n target: this.target,\n triggers: this.triggers,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n variant: this.variant,\n customClass: this.customClass,\n container: this.container,\n boundary: this.boundary,\n boundaryPadding: this.boundaryPadding,\n delay: this.delay,\n offset: this.offset,\n noFade: this.noFade,\n disabled: this.disabled,\n id: this.id\n };\n },\n templateTitleContent: function templateTitleContent() {\n // Used to watch for changes to the title and content props\n return {\n title: this.title,\n content: this.content\n };\n }\n },\n watch: {\n show: function show(_show, oldVal) {\n if (_show !== oldVal && _show !== this.localShow && this.$_bv_toolpop) {\n if (_show) {\n this.$_bv_toolpop.show();\n } else {\n // We use `forceHide()` to override any active triggers\n this.$_bv_toolpop.forceHide();\n }\n }\n },\n disabled: function disabled(newVal, oldVal) {\n if (newVal) {\n this.doDisable();\n } else {\n this.doEnable();\n }\n },\n localShow: function localShow(show, oldVal) {\n // TODO: May need to be done in a `$nextTick()`\n this.$emit('update:show', show);\n },\n templateData: function templateData(newVal, oldVal) {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.$_bv_toolpop) {\n _this.$_bv_toolpop.updateData(_this.templateData);\n }\n });\n },\n // Watchers for title/content props (prop changes do not trigger the `updated()` hook)\n templateTitleContent: function templateTitleContent(newVal, oldVal) {\n this.$nextTick(this.updateContent);\n }\n },\n created: function created() {\n // Non reactive properties\n this.$_bv_toolpop = null;\n },\n updated: function updated() {\n // Update the `propData` object\n // Done in a `$nextTick()` to ensure slot(s) have updated\n this.$nextTick(this.updateContent);\n },\n beforeDestroy: function beforeDestroy() {\n // Shutdown our local event listeners\n this.$off('open', this.doOpen);\n this.$off('close', this.doClose);\n this.$off('disable', this.doDisable);\n this.$off('enable', this.doEnable); // Destroy the tip instance\n\n this.$_bv_toolpop && this.$_bv_toolpop.$destroy();\n this.$_bv_toolpop = null;\n },\n mounted: function mounted() {\n var _this2 = this;\n\n // Instantiate a new BVTooltip instance\n // Done in a `$nextTick()` to ensure DOM has completed rendering\n // so that target can be found\n this.$nextTick(function () {\n // Load the on demand child instance\n var Component = _this2.getComponent(); // Ensure we have initial content\n\n\n _this2.updateContent(); // Pass down the scoped style attribute if available\n\n\n var scopeId = getScopId(_this2) || getScopId(_this2.$parent); // Create the instance\n\n var $toolpop = _this2.$_bv_toolpop = new Component({\n parent: _this2,\n // Pass down the scoped style ID\n _scopeId: scopeId || undefined\n }); // Set the initial data\n\n $toolpop.updateData(_this2.templateData); // Set listeners\n\n $toolpop.$on('show', _this2.onShow);\n $toolpop.$on('shown', _this2.onShown);\n $toolpop.$on('hide', _this2.onHide);\n $toolpop.$on('hidden', _this2.onHidden);\n $toolpop.$on('disabled', _this2.onDisabled);\n $toolpop.$on('enabled', _this2.onEnabled); // Initially disabled?\n\n if (_this2.disabled) {\n // Initially disabled\n _this2.doDisable();\n } // Listen to open signals from others\n\n\n _this2.$on('open', _this2.doOpen); // Listen to close signals from others\n\n\n _this2.$on('close', _this2.doClose); // Listen to disable signals from others\n\n\n _this2.$on('disable', _this2.doDisable); // Listen to enable signals from others\n\n\n _this2.$on('enable', _this2.doEnable); // Initially show tooltip?\n\n\n if (_this2.localShow) {\n _this2.$_bv_toolpop && _this2.$_bv_toolpop.show();\n }\n });\n },\n methods: {\n getComponent: function getComponent() {\n // Overridden by BPopover\n return BVTooltip;\n },\n updateContent: function updateContent() {\n // Overridden by BPopover\n // Tooltip: Default slot is `title`\n // Popover: Default slot is `content`, `title` slot is title\n // We pass a scoped slot function reference by default (Vue v2.6x)\n // And pass the title prop as a fallback\n this.setTitle(this.$scopedSlots.default || this.title);\n },\n // Helper methods for `updateContent()`\n setTitle: function setTitle(val) {\n val = isUndefinedOrNull(val) ? '' : val; // We only update the value if it has changed\n\n if (this.localTitle !== val) {\n this.localTitle = val;\n }\n },\n setContent: function setContent(val) {\n val = isUndefinedOrNull(val) ? '' : val; // We only update the value if it has changed\n\n if (this.localContent !== val) {\n this.localContent = val;\n }\n },\n // --- Template event handlers ---\n onShow: function onShow(bvEvt) {\n // Placeholder\n this.$emit('show', bvEvt);\n\n if (bvEvt) {\n this.localShow = !bvEvt.defaultPrevented;\n }\n },\n onShown: function onShown(bvEvt) {\n // Tip is now showing\n this.localShow = true;\n this.$emit('shown', bvEvt);\n },\n onHide: function onHide(bvEvt) {\n this.$emit('hide', bvEvt);\n },\n onHidden: function onHidden(bvEvt) {\n // Tip is no longer showing\n this.$emit('hidden', bvEvt);\n this.localShow = false;\n },\n onDisabled: function onDisabled(bvEvt) {\n // Prevent possible endless loop if user mistakenly\n // fires `disabled` instead of `disable`\n if (bvEvt && bvEvt.type === 'disabled') {\n this.$emit('update:disabled', true);\n this.$emit('disabled', bvEvt);\n }\n },\n onEnabled: function onEnabled(bvEvt) {\n // Prevent possible endless loop if user mistakenly\n // fires `enabled` instead of `enable`\n if (bvEvt && bvEvt.type === 'enabled') {\n this.$emit('update:disabled', false);\n this.$emit('enabled', bvEvt);\n }\n },\n // --- Local event listeners ---\n doOpen: function doOpen() {\n !this.localShow && this.$_bv_toolpop && this.$_bv_toolpop.show();\n },\n doClose: function doClose() {\n this.localShow && this.$_bv_toolpop && this.$_bv_toolpop.hide();\n },\n doDisable: function doDisable(evt) {\n this.$_bv_toolpop && this.$_bv_toolpop.disable();\n },\n doEnable: function doEnable() {\n this.$_bv_toolpop && this.$_bv_toolpop.enable();\n }\n },\n render: function render(h) {\n // Always renders a comment node\n // TODO:\n // Future: Possibly render a target slot (single root element)\n // which we can apply the listeners to (pass `this.$el` to BVTooltip)\n return h();\n }\n});","import Vue from '../../../utils/vue';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { BVTooltipTemplate } from '../../tooltip/helpers/bv-tooltip-template';\nvar NAME = 'BVPopoverTemplate'; // @vue/component\n\nexport var BVPopoverTemplate =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n extends: BVTooltipTemplate,\n computed: {\n templateType: function templateType() {\n return 'popover';\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n // Title and content could be a scoped slot function\n var $title = isFunction(this.title) ? this.title({}) : this.title;\n var $content = isFunction(this.content) ? this.content({}) : this.content; // Directive usage only\n\n var titleDomProps = this.html && !isFunction(this.title) ? {\n innerHTML: this.title\n } : {};\n var contentDomProps = this.html && !isFunction(this.content) ? {\n innerHTML: this.content\n } : {};\n return h('div', {\n staticClass: 'popover b-popover',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n ref: 'arrow',\n staticClass: 'arrow'\n }), isUndefinedOrNull($title) || $title === '' ? h() : h('h3', {\n staticClass: 'popover-header',\n domProps: titleDomProps\n }, [$title]), isUndefinedOrNull($content) || $content === '' ? h() : h('div', {\n staticClass: 'popover-body',\n domProps: contentDomProps\n }, [$content])]);\n }\n }\n});","// Popover \"Class\" (Built as a renderless Vue instance)\n// Inherits from BVTooltip\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport Vue from '../../../utils/vue';\nimport { BVTooltip } from '../../tooltip/helpers/bv-tooltip';\nimport { BVPopoverTemplate } from './bv-popover-template';\nvar NAME = 'BVPopover'; // @vue/component\n\nexport var BVPopover =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n extends: BVTooltip,\n computed: {\n // Overwrites BVTooltip\n templateType: function templateType() {\n return 'popover';\n }\n },\n methods: {\n getTemplate: function getTemplate() {\n // Overwrites BVTooltip\n return BVPopoverTemplate;\n }\n }\n});","import Vue from '../../utils/vue';\nimport { getComponentConfig } from '../../utils/config';\nimport { HTMLElement } from '../../utils/safe-types';\nimport { BTooltip } from '../tooltip/tooltip';\nimport { BVPopover } from './helpers/bv-popover';\nvar NAME = 'BPopover';\nexport var BPopover =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n extends: BTooltip,\n inheritAttrs: false,\n props: {\n title: {\n type: String // default: undefined\n\n },\n content: {\n type: String // default: undefined\n\n },\n triggers: {\n type: [String, Array],\n default: 'click'\n },\n placement: {\n type: String,\n default: 'right'\n },\n variant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'variant');\n }\n },\n customClass: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'customClass');\n }\n },\n delay: {\n type: [Number, Object, String],\n default: function _default() {\n return getComponentConfig(NAME, 'delay');\n }\n },\n boundary: {\n // String: scrollParent, window, or viewport\n // Element: element reference\n // Object: Vue component\n type: [String, HTMLElement, Object],\n default: function _default() {\n return getComponentConfig(NAME, 'boundary');\n }\n },\n boundaryPadding: {\n type: [Number, String],\n default: function _default() {\n return getComponentConfig(NAME, 'boundaryPadding');\n }\n }\n },\n methods: {\n getComponent: function getComponent() {\n // Overridden by BPopover\n return BVPopover;\n },\n updateContent: function updateContent() {\n // Tooltip: Default slot is `title`\n // Popover: Default slot is `content`, `title` slot is title\n // We pass a scoped slot function references by default (Vue v2.6x)\n // And pass the title prop as a fallback\n this.setContent(this.$scopedSlots.default || this.content);\n this.setTitle(this.$scopedSlots.title || this.title);\n }\n } // Render function provided by BTooltip\n\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport getScopId from '../../utils/get-scope-id';\nimport looseEqual from '../../utils/loose-equal';\nimport { concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { isBrowser } from '../../utils/env';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../utils/inspect';\nimport { keys } from '../../utils/object';\nimport { BVPopover } from '../../components/popover/helpers/bv-popover'; // Key which we use to store tooltip object on element\n\nvar BV_POPOVER = '__BV_Popover__'; // Default trigger\n\nvar DefaultTrigger = 'click'; // Valid event triggers\n\nvar validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true,\n manual: true\n}; // Directive modifier test regular expressions. Pre-compile for performance\n\nvar htmlRE = /^html$/i;\nvar noFadeRE = /^nofade$/i;\nvar placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i;\nvar boundaryRE = /^(window|viewport|scrollParent)$/i;\nvar delayRE = /^d\\d+$/i;\nvar delayShowRE = /^ds\\d+$/i;\nvar delayHideRE = /^dh\\d+$/i;\nvar offsetRE = /^o-?\\d+$/i;\nvar variantRE = /^v-.+$/i; // Build a Popover config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\nvar parseBindings = function parseBindings(bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n // We start out with a basic config\n var NAME = 'BPopover';\n var config = {\n title: undefined,\n content: undefined,\n trigger: '',\n // Default set below if needed\n placement: 'right',\n fallbackPlacement: 'flip',\n container: false,\n // Default of body\n animation: true,\n offset: 0,\n disabled: false,\n id: null,\n html: false,\n delay: getComponentConfig(NAME, 'delay'),\n boundary: String(getComponentConfig(NAME, 'boundary')),\n boundaryPadding: parseInt(getComponentConfig(NAME, 'boundaryPadding'), 10) || 0,\n variant: getComponentConfig(NAME, 'variant'),\n customClass: getComponentConfig(NAME, 'customClass')\n }; // Process `bindings.value`\n\n if (isString(bindings.value) || isNumber(bindings.value)) {\n // Value is popover content (html optionally supported)\n config.content = bindings.value;\n } else if (isFunction(bindings.value)) {\n // Content generator function\n config.content = bindings.value;\n } else if (isPlainObject(bindings.value)) {\n // Value is config object, so merge\n config = _objectSpread({}, config, {}, bindings.value);\n } // If argument, assume element ID of container element\n\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = \"#\".concat(bindings.arg);\n } // If title is not provided, try title attribute\n\n\n if (isUndefined(config.title)) {\n // Try attribute\n var data = vnode.data || {};\n config.title = data.attrs && !isUndefinedOrNull(data.attrs.title) ? data.attrs.title : undefined;\n } // Normalize delay\n\n\n if (!isPlainObject(config.delay)) {\n config.delay = {\n show: parseInt(config.delay, 10) || 0,\n hide: parseInt(config.delay, 10) || 0\n };\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (htmlRE.test(mod)) {\n // Title/content allows HTML\n config.html = true;\n } else if (noFadeRE.test(mod)) {\n // No animation\n config.animation = false;\n } else if (placementRE.test(mod)) {\n // Placement of popover\n config.placement = mod;\n } else if (boundaryRE.test(mod)) {\n // Boundary of popover\n mod = mod === 'scrollparent' ? 'scrollParent' : mod;\n config.boundary = mod;\n } else if (delayRE.test(mod)) {\n // Delay value\n var delay = parseInt(mod.slice(1), 10) || 0;\n config.delay.show = delay;\n config.delay.hide = delay;\n } else if (delayShowRE.test(mod)) {\n // Delay show value\n config.delay.show = parseInt(mod.slice(2), 10) || 0;\n } else if (delayHideRE.test(mod)) {\n // Delay hide value\n config.delay.hide = parseInt(mod.slice(2), 10) || 0;\n } else if (offsetRE.test(mod)) {\n // Offset value, negative allowed\n config.offset = parseInt(mod.slice(1), 10) || 0;\n } else if (variantRE.test(mod)) {\n // Variant\n config.variant = mod.slice(2) || null;\n }\n }); // Special handling of event trigger modifiers trigger is\n // a space separated list\n\n var selectedTriggers = {}; // Parse current config object trigger\n\n concat(config.trigger || '').filter(Boolean).join(' ').trim().toLowerCase().split(/\\s+/).forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n }); // Parse modifiers for triggers\n\n keys(bindings.modifiers).forEach(function (mod) {\n mod = mod.toLowerCase();\n\n if (validTriggers[mod]) {\n // If modifier is a valid trigger\n selectedTriggers[mod] = true;\n }\n }); // Sanitize triggers\n\n config.trigger = keys(selectedTriggers).join(' ');\n\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n\n if (!config.trigger) {\n // Use default trigger\n config.trigger = DefaultTrigger;\n }\n\n return config;\n}; // Add or update Popover on our element\n\n\nvar applyPopover = function applyPopover(el, bindings, vnode) {\n if (!isBrowser) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings, vnode);\n\n if (!el[BV_POPOVER]) {\n var $parent = vnode.context;\n el[BV_POPOVER] = new BVPopover({\n parent: $parent,\n // Add the parent's scoped style attribute data\n _scopeId: getScopId($parent, undefined)\n });\n el[BV_POPOVER].__bv_prev_data__ = {};\n el[BV_POPOVER].$on('show', function ()\n /* istanbul ignore next: for now */\n {\n // Before showing the popover, we update the title\n // and content if they are functions\n var data = {};\n\n if (isFunction(config.title)) {\n data.title = config.title();\n }\n\n if (isFunction(config.content)) {\n data.content = config.content();\n }\n\n if (keys(data).length > 0) {\n el[BV_POPOVER].updateData(data);\n }\n });\n }\n\n var data = {\n title: config.title,\n content: config.content,\n triggers: config.trigger,\n placement: config.placement,\n fallbackPlacement: config.fallbackPlacement,\n variant: config.variant,\n customClass: config.customClass,\n container: config.container,\n boundary: config.boundary,\n delay: config.delay,\n offset: config.offset,\n noFade: !config.animation,\n id: config.id,\n disabled: config.disabled,\n html: config.html\n };\n var oldData = el[BV_POPOVER].__bv_prev_data__;\n el[BV_POPOVER].__bv_prev_data__ = data;\n\n if (!looseEqual(data, oldData)) {\n // We only update the instance if data has changed\n var newData = {\n target: el\n };\n keys(data).forEach(function (prop) {\n // We only pass data properties that have changed\n if (data[prop] !== oldData[prop]) {\n // If title/content is a function, we execute it here\n newData[prop] = (prop === 'title' || prop === 'content') && isFunction(data[prop]) ? data[prop]() : data[prop];\n }\n });\n el[BV_POPOVER].updateData(newData);\n }\n}; // Remove Popover from our element\n\n\nvar removePopover = function removePopover(el) {\n if (el[BV_POPOVER]) {\n el[BV_POPOVER].$destroy();\n el[BV_POPOVER] = null;\n }\n\n delete el[BV_POPOVER];\n}; // Export our directive\n\n\nexport var VBPopover = {\n bind: function bind(el, bindings, vnode) {\n applyPopover(el, bindings, vnode);\n },\n // We use `componentUpdated` here instead of `update`, as the former\n // waits until the containing component and children have finished updating\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n // Performed in a `$nextTick()` to prevent endless render/update loops\n vnode.context.$nextTick(function () {\n applyPopover(el, bindings, vnode);\n });\n },\n unbind: function unbind(el) {\n removePopover(el);\n }\n};","import { BPopover } from './popover';\nimport { VBPopover } from '../../directives/popover/popover';\nimport { pluginFactory } from '../../utils/plugins';\nvar PopoverPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BPopover: BPopover\n },\n directives: {\n VBPopover: VBPopover\n }\n});\nexport { PopoverPlugin, BPopover };","import Vue from '../../utils/vue';\nimport { getComponentConfig } from '../../utils/config';\nimport { htmlOrText } from '../../utils/html';\nimport { isBoolean, isNumber } from '../../utils/inspect';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nvar NAME = 'BProgressBar'; // @vue/component\n\nexport var BProgressBar =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n mixins: [normalizeSlotMixin],\n inject: {\n bvProgress: {\n default: function _default()\n /* istanbul ignore next */\n {\n return {};\n }\n }\n },\n props: {\n value: {\n type: Number,\n default: 0\n },\n label: {\n type: String,\n default: null\n },\n labelHtml: {\n type: String\n },\n // $parent (this.bvProgress) prop values may take precedence over the following props\n // Which is why they are defaulted to null\n max: {\n type: Number,\n default: null\n },\n precision: {\n type: Number,\n default: null\n },\n variant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'variant');\n }\n },\n striped: {\n type: Boolean,\n default: null\n },\n animated: {\n type: Boolean,\n default: null\n },\n showProgress: {\n type: Boolean,\n default: null\n },\n showValue: {\n type: Boolean,\n default: null\n }\n },\n computed: {\n progressBarClasses: function progressBarClasses() {\n return [this.computedVariant ? \"bg-\".concat(this.computedVariant) : '', this.computedStriped || this.computedAnimated ? 'progress-bar-striped' : '', this.computedAnimated ? 'progress-bar-animated' : ''];\n },\n progressBarStyles: function progressBarStyles() {\n return {\n width: 100 * (this.value / this.computedMax) + '%'\n };\n },\n computedProgress: function computedProgress() {\n var p = Math.pow(10, this.computedPrecision);\n return Math.round(100 * p * this.value / this.computedMax) / p;\n },\n computedMax: function computedMax() {\n // Prefer our max over parent setting\n return isNumber(this.max) ? this.max : this.bvProgress.max || 100;\n },\n computedVariant: function computedVariant() {\n // Prefer our variant over parent setting\n return this.variant || this.bvProgress.variant;\n },\n computedPrecision: function computedPrecision() {\n // Prefer our precision over parent setting\n return isNumber(this.precision) ? this.precision : this.bvProgress.precision || 0;\n },\n computedStriped: function computedStriped() {\n // Prefer our striped over parent setting\n return isBoolean(this.striped) ? this.striped : this.bvProgress.striped || false;\n },\n computedAnimated: function computedAnimated() {\n // Prefer our animated over parent setting\n return isBoolean(this.animated) ? this.animated : this.bvProgress.animated || false;\n },\n computedShowProgress: function computedShowProgress() {\n // Prefer our showProgress over parent setting\n return isBoolean(this.showProgress) ? this.showProgress : this.bvProgress.showProgress || false;\n },\n computedShowValue: function computedShowValue() {\n // Prefer our showValue over parent setting\n return isBoolean(this.showValue) ? this.showValue : this.bvProgress.showValue || false;\n }\n },\n render: function render(h) {\n var childNodes = h();\n\n if (this.hasNormalizedSlot('default')) {\n childNodes = this.normalizeSlot('default');\n } else if (this.label || this.labelHtml) {\n childNodes = h('span', {\n domProps: htmlOrText(this.labelHtml, this.label)\n });\n } else if (this.computedShowProgress) {\n childNodes = this.computedProgress.toFixed(this.computedPrecision);\n } else if (this.computedShowValue) {\n childNodes = this.value.toFixed(this.computedPrecision);\n }\n\n return h('div', {\n staticClass: 'progress-bar',\n class: this.progressBarClasses,\n style: this.progressBarStyles,\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': this.computedMax.toString(),\n 'aria-valuenow': this.value.toFixed(this.computedPrecision)\n }\n }, [childNodes]);\n }\n});","import Vue from '../../utils/vue';\nimport { getComponentConfig } from '../../utils/config';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport { BProgressBar } from './progress-bar';\nvar NAME = 'BProgress'; // @vue/component\n\nexport var BProgress =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n mixins: [normalizeSlotMixin],\n provide: function provide() {\n return {\n bvProgress: this\n };\n },\n props: {\n // These props can be inherited via the child b-progress-bar(s)\n variant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'variant');\n }\n },\n striped: {\n type: Boolean,\n default: false\n },\n animated: {\n type: Boolean,\n default: false\n },\n height: {\n type: String,\n default: null\n },\n precision: {\n type: Number,\n default: 0\n },\n showProgress: {\n type: Boolean,\n default: false\n },\n showValue: {\n type: Boolean,\n default: false\n },\n max: {\n type: Number,\n default: 100\n },\n // This prop is not inherited by child b-progress-bar(s)\n value: {\n type: Number,\n default: 0\n }\n },\n computed: {\n progressHeight: function progressHeight() {\n return {\n height: this.height || null\n };\n }\n },\n render: function render(h) {\n var childNodes = this.normalizeSlot('default');\n\n if (!childNodes) {\n childNodes = h(BProgressBar, {\n props: {\n value: this.value,\n max: this.max,\n precision: this.precision,\n variant: this.variant,\n animated: this.animated,\n striped: this.striped,\n showProgress: this.showProgress,\n showValue: this.showValue\n }\n });\n }\n\n return h('div', {\n class: ['progress'],\n style: this.progressHeight\n }, [childNodes]);\n }\n});","import { BProgress } from './progress';\nimport { BProgressBar } from './progress-bar';\nimport { pluginFactory } from '../../utils/plugins';\nvar ProgressPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BProgress: BProgress,\n BProgressBar: BProgressBar\n }\n});\nexport { ProgressPlugin, BProgress, BProgressBar };","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { mergeData } from 'vue-functional-data-merge';\nimport { getComponentConfig } from '../../utils/config';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nvar NAME = 'BSpinner'; // @vue/component\n\nexport var BSpinner =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n functional: true,\n props: {\n type: {\n type: String,\n default: 'border' // SCSS currently supports 'border' or 'grow'\n\n },\n label: {\n type: String,\n default: null\n },\n variant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'variant');\n }\n },\n small: {\n type: Boolean,\n default: false\n },\n role: {\n type: String,\n default: 'status'\n },\n tag: {\n type: String,\n default: 'span'\n }\n },\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var label = normalizeSlot('label', {}, $scopedSlots, $slots) || props.label;\n\n if (label) {\n label = h('span', {\n staticClass: 'sr-only'\n }, label);\n }\n\n return h(props.tag, mergeData(data, {\n attrs: {\n role: label ? props.role || 'status' : null,\n 'aria-hidden': label ? null : 'true'\n },\n class: (_class = {}, _defineProperty(_class, \"spinner-\".concat(props.type), Boolean(props.type)), _defineProperty(_class, \"spinner-\".concat(props.type, \"-sm\"), props.small), _defineProperty(_class, \"text-\".concat(props.variant), Boolean(props.variant)), _class)\n }), [label || h()]);\n }\n});","import { BSpinner } from './spinner';\nimport { pluginFactory } from '../../utils/plugins';\nvar SpinnerPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BSpinner: BSpinner\n }\n});\nexport { SpinnerPlugin, BSpinner };","/**\n * Converts a string, including strings in camelCase or snake_case, into Start Case (a variant\n * of Title Case where all words start with a capital letter), it keeps original single quote\n * and hyphen in the word.\n *\n * Copyright (c) 2017 Compass (MIT)\n * https://github.com/UrbanCompass/to-start-case\n * @author Zhuoyuan Zhang <https://github.com/drawyan>\n * @author Wei Wang <https://github.com/onlywei>\n *\n *\n * 'management_companies' to 'Management Companies'\n * 'managementCompanies' to 'Management Companies'\n * `hell's kitchen` to `Hell's Kitchen`\n * `co-op` to `Co-op`\n *\n * @param {String} str\n * @returns {String}\n */\nvar startCase = function startCase(str) {\n return str.replace(/_/g, ' ').replace(/([a-z])([A-Z])/g, function (str, $1, $2) {\n return $1 + ' ' + $2;\n }).replace(/(\\s|^)(\\w)/g, function (str, $1, $2) {\n return $1 + $2.toUpperCase();\n });\n};\n\nexport default startCase;","// Constants used by table helpers\n// Object of item keys that should be ignored for headers and\n// stringification and filter events\nexport var IGNORED_FIELD_KEYS = {\n _rowVariant: true,\n _cellVariants: true,\n _showDetails: true\n}; // Filter CSS selector for click/dblclick/etc. events\n// If any of these selectors match the clicked element, we ignore the event\n\nexport var EVENT_FILTER = ['a', 'a *', // Include content inside links\n'button', 'button *', // Include content inside buttons\n'input:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'textarea:not(.disabled):not([disabled])', '[role=\"link\"]', '[role=\"link\"] *', '[role=\"button\"]', '[role=\"button\"] *', '[tabindex]:not(.disabled):not([disabled])'].join(',');","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport startCase from '../../../utils/startcase';\nimport { isArray, isFunction, isObject, isString } from '../../../utils/inspect';\nimport { keys } from '../../../utils/object';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Private function to massage field entry into common object format\n\nvar processField = function processField(key, value) {\n var field = null;\n\n if (isString(value)) {\n // Label shortcut\n field = {\n key: key,\n label: value\n };\n } else if (isFunction(value)) {\n // Formatter shortcut\n field = {\n key: key,\n formatter: value\n };\n } else if (isObject(value)) {\n field = _objectSpread({}, value);\n field.key = field.key || key;\n } else if (value !== false) {\n // Fallback to just key\n\n /* istanbul ignore next */\n field = {\n key: key\n };\n }\n\n return field;\n}; // We normalize fields into an array of objects\n// [ { key:..., label:..., ...}, {...}, ..., {..}]\n\n\nvar normalizeFields = function normalizeFields(origFields, items) {\n var fields = [];\n\n if (isArray(origFields)) {\n // Normalize array Form\n origFields.filter(function (f) {\n return f;\n }).forEach(function (f) {\n if (isString(f)) {\n fields.push({\n key: f,\n label: startCase(f)\n });\n } else if (isObject(f) && f.key && isString(f.key)) {\n // Full object definition. We use assign so that we don't mutate the original\n fields.push(_objectSpread({}, f));\n } else if (isObject(f) && keys(f).length === 1) {\n // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n var key = keys(f)[0];\n var field = processField(key, f[key]);\n\n if (field) {\n fields.push(field);\n }\n }\n });\n } // If no field provided, take a sample from first record (if exits)\n\n\n if (fields.length === 0 && isArray(items) && items.length > 0) {\n var sample = items[0];\n keys(sample).forEach(function (k) {\n if (!IGNORED_FIELD_KEYS[k]) {\n fields.push({\n key: k,\n label: startCase(k)\n });\n }\n });\n } // Ensure we have a unique array of fields and that they have String labels\n\n\n var memo = {};\n return fields.filter(function (f) {\n if (!memo[f.key]) {\n memo[f.key] = true;\n f.label = isString(f.label) ? f.label : startCase(f.key);\n return true;\n }\n\n return false;\n });\n};\n\nexport default normalizeFields;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport looseEqual from '../../../utils/loose-equal';\nimport { isArray, isFunction, isNull, isString, isUndefined } from '../../../utils/inspect';\nimport normalizeFields from './normalize-fields';\nexport default {\n props: {\n items: {\n // Provider mixin adds in `Function` type\n type: Array,\n default: function _default()\n /* istanbul ignore next */\n {\n return [];\n }\n },\n fields: {\n type: Array,\n default: null\n },\n primaryKey: {\n // Primary key for record\n // If provided the value in each row must be unique!\n type: String,\n default: null\n },\n value: {\n // `v-model` for retrieving the current displayed rows\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n // Our local copy of the items\n // Must be an array\n localItems: isArray(this.items) ? this.items.slice() : []\n };\n },\n computed: {\n computedFields: function computedFields() {\n // We normalize fields into an array of objects\n // `[ { key:..., label:..., ...}, {...}, ..., {..}]`\n return normalizeFields(this.fields, this.localItems);\n },\n computedFieldsObj: function computedFieldsObj() {\n // Fields as a simple lookup hash object\n // Mainly for formatter lookup and use in `scopedSlots` for convenience\n // If the field has a formatter, it normalizes formatter to a\n // function ref or `undefined` if no formatter\n var parent = this.$parent;\n return this.computedFields.reduce(function (obj, f) {\n // We use object spread here so we don't mutate the original field object\n obj[f.key] = _objectSpread({}, f);\n\n if (f.formatter) {\n // Normalize formatter to a function ref or `undefined`\n var formatter = f.formatter;\n\n if (isString(formatter) && isFunction(parent[formatter])) {\n formatter = parent[formatter];\n } else if (!isFunction(formatter)) {\n /* istanbul ignore next */\n formatter = undefined;\n } // Return formatter function or `undefined` if none\n\n\n obj[f.key].formatter = formatter;\n }\n\n return obj;\n }, {});\n },\n computedItems: function computedItems() {\n // Fallback if various mixins not provided\n return (this.paginatedItems || this.sortedItems || this.filteredItems || this.localItems || []).slice();\n },\n context: function context() {\n // Current state of sorting, filtering and pagination props/values\n return {\n filter: this.localFilter,\n sortBy: this.localSortBy,\n sortDesc: this.localSortDesc,\n perPage: parseInt(this.perPage, 10) || 0,\n currentPage: parseInt(this.currentPage, 10) || 1,\n apiUrl: this.apiUrl\n };\n }\n },\n watch: {\n items: function items(newItems) {\n /* istanbul ignore else */\n if (isArray(newItems)) {\n // Set `localItems`/`filteredItems` to a copy of the provided array\n this.localItems = newItems.slice();\n } else if (isUndefined(newItems) || isNull(newItems)) {\n /* istanbul ignore next */\n this.localItems = [];\n }\n },\n // Watch for changes on `computedItems` and update the `v-model`\n computedItems: function computedItems(newVal) {\n this.$emit('input', newVal);\n },\n // Watch for context changes\n context: function context(newVal, oldVal) {\n // Emit context information for external paging/filtering/sorting handling\n if (!looseEqual(newVal, oldVal)) {\n this.$emit('context-changed', newVal);\n }\n }\n },\n mounted: function mounted() {\n // Initially update the `v-model` of displayed items\n this.$emit('input', this.computedItems);\n },\n methods: {\n // Method to get the formatter method for a given field key\n getFieldFormatter: function getFieldFormatter(key) {\n var field = this.computedFieldsObj[key]; // `this.computedFieldsObj` has pre-normalized the formatter to a\n // function ref if present, otherwise `undefined`\n\n return field ? field.formatter : undefined;\n }\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Mixin for providing stacked tables\nexport default {\n props: {\n stacked: {\n type: [Boolean, String],\n default: false\n }\n },\n computed: {\n isStacked: function isStacked() {\n // `true` when always stacked, or returns breakpoint specified\n return this.stacked === '' ? true : this.stacked;\n },\n isStackedAlways: function isStackedAlways() {\n return this.isStacked === true;\n },\n stackedTableClasses: function stackedTableClasses() {\n return _defineProperty({\n 'b-table-stacked': this.isStackedAlways\n }, \"b-table-stacked-\".concat(this.stacked), !this.isStackedAlways && this.isStacked);\n }\n }\n};","import { keys } from '../../../utils/object';\nimport { arrayIncludes } from '../../../utils/array';\nimport { isFunction } from '../../../utils/inspect';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Return a copy of a row after all reserved fields have been filtered out\n\nvar sanitizeRow = function sanitizeRow(row, ignoreFields, includeFields) {\n var fieldsObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n return keys(row).reduce(function (obj, key) {\n // Ignore special fields that start with `_`\n // Ignore fields in the `ignoreFields` array\n // Include only fields in the `includeFields` array\n if (!IGNORED_FIELD_KEYS[key] && !(ignoreFields && ignoreFields.length > 0 && arrayIncludes(ignoreFields, key)) && !(includeFields && includeFields.length > 0 && !arrayIncludes(includeFields, key))) {\n var f = fieldsObj[key] || {};\n var val = row[key]; // `f.filterByFormatted` will either be a function or boolean\n // `f.formater` will have already been noramlized into a function ref\n\n var filterByFormatted = f.filterByFormatted;\n var formatter = isFunction(filterByFormatted) ? filterByFormatted : filterByFormatted ? f.formatter : null;\n obj[key] = isFunction(formatter) ? formatter(val, key, row) : val;\n }\n\n return obj;\n }, {});\n};\n\nexport default sanitizeRow;","import { keys } from '../../../utils/object';\nimport { isDate, isObject, isUndefinedOrNull } from '../../../utils/inspect'; // Recursively stringifies the values of an object, space separated, in an\n// SSR safe deterministic way (keys are sorted before stringification)\n//\n// ex:\n// { b: 3, c: { z: 'zzz', d: null, e: 2 }, d: [10, 12, 11], a: 'one' }\n// becomes\n// 'one 3 2 zzz 10 12 11'\n//\n// Primitives (numbers/strings) are returned as-is\n// Null and undefined values are filtered out\n// Dates are converted to their native string format\n\nvar stringifyObjectValues = function stringifyObjectValues(val) {\n if (isUndefinedOrNull(val)) {\n /* istanbul ignore next */\n return '';\n } // Arrays are also object, and keys just returns the array indexes\n // Date objects we convert to strings\n\n\n if (isObject(val) && !isDate(val)) {\n return keys(val).sort() // Sort to prevent SSR issues on pre-rendered sorted tables\n .filter(function (v) {\n return !isUndefinedOrNull(v);\n }) // Ignore undefined/null values\n .map(function (k) {\n return stringifyObjectValues(val[k]);\n }).join(' ');\n }\n\n return String(val);\n};\n\nexport default stringifyObjectValues;","import { isObject } from '../../../utils/inspect';\nimport sanitizeRow from './sanitize-row';\nimport stringifyObjectValues from './stringify-object-values'; // Stringifies the values of a record, ignoring any special top level field keys\n// TODO: Add option to stringify `scopedSlot` items\n\nvar stringifyRecordValues = function stringifyRecordValues(row, ignoreFields, includeFields, fieldsObj) {\n return isObject(row) ? stringifyObjectValues(sanitizeRow(row, ignoreFields, includeFields, fieldsObj)) : '';\n};\n\nexport default stringifyRecordValues;","import cloneDeep from '../../../utils/clone-deep';\nimport looseEqual from '../../../utils/loose-equal';\nimport { concat } from '../../../utils/array';\nimport { isFunction, isString, isRegExp } from '../../../utils/inspect';\nimport stringifyRecordValues from './stringify-record-values';\nexport default {\n props: {\n filter: {\n type: [String, RegExp, Object, Array],\n default: null\n },\n filterFunction: {\n type: Function,\n default: null\n },\n filterIgnoredFields: {\n type: Array // default: undefined\n\n },\n filterIncludedFields: {\n type: Array // default: undefined\n\n },\n filterDebounce: {\n type: [Number, String],\n default: 0,\n validator: function validator(val) {\n return /^\\d+/.test(String(val));\n }\n }\n },\n data: function data() {\n return {\n // Flag for displaying which empty slot to show and some event triggering\n isFiltered: false,\n // Where we store the copy of the filter criteria after debouncing\n // We pre-set it with the sanitized filter value\n localFilter: this.filterSanitize(this.filter)\n };\n },\n computed: {\n computedFilterIgnored: function computedFilterIgnored() {\n return this.filterIgnoredFields ? concat(this.filterIgnoredFields).filter(Boolean) : null;\n },\n computedFilterIncluded: function computedFilterIncluded() {\n return this.filterIncludedFields ? concat(this.filterIncludedFields).filter(Boolean) : null;\n },\n computedFilterDebounce: function computedFilterDebounce() {\n return parseInt(this.filterDebounce, 10) || 0;\n },\n localFiltering: function localFiltering() {\n return this.hasProvider ? !!this.noProviderFiltering : true;\n },\n // For watching changes to `filteredItems` vs `localItems`\n filteredCheck: function filteredCheck() {\n return {\n filteredItems: this.filteredItems,\n localItems: this.localItems,\n localFilter: this.localFilter\n };\n },\n // Sanitized/normalize filter-function prop\n localFilterFn: function localFilterFn() {\n // Return `null` to signal to use internal filter function\n return isFunction(this.filterFunction) ? this.filterFunction : null;\n },\n // Returns the records in `localItems` that match the filter criteria\n // Returns the original `localItems` array if not sorting\n filteredItems: function filteredItems() {\n var items = this.localItems || []; // Note the criteria is debounced and sanitized\n\n var criteria = this.localFilter; // Resolve the filtering function, when requested\n // We prefer the provided filtering function and fallback to the internal one\n // When no filtering criteria is specified the filtering factories will return `null`\n\n var filterFn = this.localFiltering ? this.filterFnFactory(this.localFilterFn, criteria) || this.defaultFilterFnFactory(criteria) : null; // We only do local filtering when requested and there are records to filter\n\n return filterFn && items.length > 0 ? items.filter(filterFn) : items;\n }\n },\n watch: {\n // Watch for debounce being set to 0\n computedFilterDebounce: function computedFilterDebounce(newVal, oldVal) {\n if (!newVal && this.$_filterTimer) {\n clearTimeout(this.$_filterTimer);\n this.$_filterTimer = null;\n this.localFilter = this.filterSanitize(this.filter);\n }\n },\n // Watch for changes to the filter criteria, and debounce if necessary\n filter: {\n // We need a deep watcher in case the user passes\n // an object when using `filter-function`\n deep: true,\n handler: function handler(newFilter, oldFilter) {\n var _this = this;\n\n var timeout = this.computedFilterDebounce;\n\n if (this.$_filterTimer) {\n clearTimeout(this.$_filterTimer);\n this.$_filterTimer = null;\n }\n\n if (timeout) {\n // If we have a debounce time, delay the update of `localFilter`\n this.$_filterTimer = setTimeout(function () {\n _this.$_filterTimer = null;\n _this.localFilter = _this.filterSanitize(_this.filter);\n }, timeout);\n } else {\n // Otherwise, immediately update `localFilter` with `newFilter` value\n this.localFilter = this.filterSanitize(newFilter);\n }\n }\n },\n // Watch for changes to the filter criteria and filtered items vs `localItems`\n // Set visual state and emit events as required\n filteredCheck: function filteredCheck(_ref) {\n var filteredItems = _ref.filteredItems,\n localItems = _ref.localItems,\n localFilter = _ref.localFilter;\n // Determine if the dataset is filtered or not\n var isFiltered = false;\n\n if (!localFilter) {\n // If filter criteria is falsey\n isFiltered = false;\n } else if (looseEqual(localFilter, []) || looseEqual(localFilter, {})) {\n // If filter criteria is an empty array or object\n isFiltered = false;\n } else if (localFilter) {\n // If filter criteria is truthy\n isFiltered = true;\n }\n\n if (isFiltered) {\n this.$emit('filtered', filteredItems, filteredItems.length);\n }\n\n this.isFiltered = isFiltered;\n },\n isFiltered: function isFiltered(newVal, oldVal) {\n if (newVal === false && oldVal === true) {\n // We need to emit a filtered event if isFiltered transitions from true to\n // false so that users can update their pagination controls.\n this.$emit('filtered', this.localItems, this.localItems.length);\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create non-reactive prop where we store the debounce timer id\n this.$_filterTimer = null; // If filter is \"pre-set\", set the criteria\n // This will trigger any watchers/dependents\n // this.localFilter = this.filterSanitize(this.filter)\n // Set the initial filtered state in a `$nextTick()` so that\n // we trigger a filtered event if needed\n\n this.$nextTick(function () {\n _this2.isFiltered = Boolean(_this2.localFilter);\n });\n },\n beforeDestroy: function beforeDestroy() {\n /* istanbul ignore next */\n if (this.$_filterTimer) {\n clearTimeout(this.$_filterTimer);\n this.$_filterTimer = null;\n }\n },\n methods: {\n filterSanitize: function filterSanitize(criteria) {\n // Sanitizes filter criteria based on internal or external filtering\n if (this.localFiltering && !this.localFilterFn && !(isString(criteria) || isRegExp(criteria))) {\n // If using internal filter function, which only accepts string or RegExp,\n // return '' to signify no filter\n return '';\n } // Could be a string, object or array, as needed by external filter function\n // We use `cloneDeep` to ensure we have a new copy of an object or array\n // without Vue's reactive observers\n\n\n return cloneDeep(criteria);\n },\n // Filter Function factories\n filterFnFactory: function filterFnFactory(filterFn, criteria) {\n // Wrapper factory for external filter functions\n // Wrap the provided filter-function and return a new function\n // Returns `null` if no filter-function defined or if criteria is falsey\n // Rather than directly grabbing `this.computedLocalFilterFn` or `this.filterFunction`\n // we have it passed, so that the caller computed prop will be reactive to changes\n // in the original filter-function (as this routine is a method)\n if (!filterFn || !isFunction(filterFn) || !criteria || looseEqual(criteria, []) || looseEqual(criteria, {})) {\n return null;\n } // Build the wrapped filter test function, passing the criteria to the provided function\n\n\n var fn = function fn(item) {\n // Generated function returns true if the criteria matches part\n // of the serialized data, otherwise false\n return filterFn(item, criteria);\n }; // Return the wrapped function\n\n\n return fn;\n },\n defaultFilterFnFactory: function defaultFilterFnFactory(criteria) {\n var _this3 = this;\n\n // Generates the default filter function, using the given filter criteria\n // Returns `null` if no criteria or criteria format not supported\n if (!criteria || !(isString(criteria) || isRegExp(criteria))) {\n // Built in filter can only support strings or RegExp criteria (at the moment)\n return null;\n } // Build the regexp needed for filtering\n\n\n var regexp = criteria;\n\n if (isString(regexp)) {\n // Escape special `RegExp` characters in the string and convert contiguous\n // whitespace to `\\s+` matches\n var pattern = criteria.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&').replace(/[\\s\\uFEFF\\xA0]+/g, '\\\\s+'); // Build the `RegExp` (no need for global flag, as we only need\n // to find the value once in the string)\n\n regexp = new RegExp(\".*\".concat(pattern, \".*\"), 'i');\n } // Generate the wrapped filter test function to use\n\n\n var fn = function fn(item) {\n // This searches all row values (and sub property values) in the entire (excluding\n // special `_` prefixed keys), because we convert the record to a space-separated\n // string containing all the value properties (recursively), even ones that are\n // not visible (not specified in this.fields)\n // Users can ignore filtering on specific fields, or on only certain fields,\n // and can optionall specify searching results of fields with formatter\n //\n // TODO: Enable searching on scoped slots (optional, as it will be SLOW)\n //\n // Generated function returns true if the criteria matches part of\n // the serialized data, otherwise false\n // We set `lastIndex = 0` on the `RegExp` in case someone specifies the `/g` global flag\n regexp.lastIndex = 0;\n return regexp.test(stringifyRecordValues(item, _this3.computedFilterIgnored, _this3.computedFilterIncluded, _this3.computedFieldsObj));\n }; // Return the generated function\n\n\n return fn;\n }\n }\n};","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in <b-table> if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nvar stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};\n\nexport default stableSort;","import get from '../../../utils/get';\nimport { isDate, isFunction, isNumber, isUndefinedOrNull } from '../../../utils/inspect';\nimport stringifyObjectValues from './stringify-object-values'; // Default sort compare routine\n//\n// TODO: Add option to sort by multiple columns (tri-state per column,\n// plus order of columns in sort) where sortBy could be an array\n// of objects `[ {key: 'foo', sortDir: 'asc'}, {key:'bar', sortDir: 'desc'} ...]`\n// or an array of arrays `[ ['foo','asc'], ['bar','desc'] ]`\n// Multisort will most likely be handled in mixin-sort.js by\n// calling this method for each sortBy\n\nvar defaultSortCompare = function defaultSortCompare(a, b, sortBy, sortDesc, formatter, localeOpts, locale, nullLast) {\n var aa = get(a, sortBy, null);\n var bb = get(b, sortBy, null);\n\n if (isFunction(formatter)) {\n aa = formatter(aa, sortBy, a);\n bb = formatter(bb, sortBy, b);\n }\n\n aa = isUndefinedOrNull(aa) ? '' : aa;\n bb = isUndefinedOrNull(bb) ? '' : bb;\n\n if (isDate(aa) && isDate(bb) || isNumber(aa) && isNumber(bb)) {\n // Special case for comparing dates and numbers\n // Internally dates are compared via their epoch number values\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n } else if (nullLast && aa === '' && bb !== '') {\n // Special case when sorting null/undefined/empty string last\n return 1;\n } else if (nullLast && aa !== '' && bb === '') {\n // Special case when sorting null/undefined/empty string last\n return -1;\n } // Do localized string comparison\n\n\n return stringifyObjectValues(aa).localeCompare(stringifyObjectValues(bb), locale, localeOpts);\n};\n\nexport default defaultSortCompare;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport stableSort from '../../../utils/stable-sort';\nimport startCase from '../../../utils/startcase';\nimport { arrayIncludes } from '../../../utils/array';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport defaultSortCompare from './default-sort-compare';\nexport default {\n props: {\n sortBy: {\n type: String,\n default: ''\n },\n sortDesc: {\n // TODO: Make this tri-state: true, false, null\n type: Boolean,\n default: false\n },\n sortDirection: {\n // This prop is named incorrectly\n // It should be `initialSortDirection` as it is a bit misleading\n // (not to mention it screws up the ARIA label on the headers)\n type: String,\n default: 'asc',\n validator: function validator(direction) {\n return arrayIncludes(['asc', 'desc', 'last'], direction);\n }\n },\n sortCompare: {\n type: Function,\n default: null\n },\n sortCompareOptions: {\n // Supported localCompare options, see `options` section of:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\n type: Object,\n default: function _default() {\n return {\n numeric: true\n };\n }\n },\n sortCompareLocale: {\n // String: locale code\n // Array: array of Locale strings\n type: [String, Array] // default: undefined\n\n },\n sortNullLast: {\n // Sort null and undefined to appear last\n type: Boolean,\n default: false\n },\n noSortReset: {\n // Another prop that should have had a better name.\n // It should be noSortClear (on non-sortable headers).\n // We will need to make sure the documentation is clear on what\n // this prop does (as well as in the code for future reference)\n type: Boolean,\n default: false\n },\n labelSortAsc: {\n type: String,\n default: 'Click to sort Ascending'\n },\n labelSortDesc: {\n type: String,\n default: 'Click to sort Descending'\n },\n labelSortClear: {\n type: String,\n default: 'Click to clear sorting'\n },\n noLocalSorting: {\n type: Boolean,\n default: false\n },\n noFooterSorting: {\n type: Boolean,\n default: false\n },\n sortIconLeft: {\n // Place the sorting icon on the left of the header cells\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n localSortBy: this.sortBy || '',\n localSortDesc: this.sortDesc || false\n };\n },\n computed: {\n localSorting: function localSorting() {\n return this.hasProvider ? !!this.noProviderSorting : !this.noLocalSorting;\n },\n isSortable: function isSortable() {\n return this.computedFields.some(function (f) {\n return f.sortable;\n });\n },\n sortedItems: function sortedItems() {\n // Sorts the filtered items and returns a new array of the sorted items\n // or the original items array if not sorted.\n var items = (this.filteredItems || this.localItems || []).slice();\n var sortBy = this.localSortBy;\n var sortDesc = this.localSortDesc;\n var sortCompare = this.sortCompare;\n var localSorting = this.localSorting;\n\n var sortOptions = _objectSpread({}, this.sortCompareOptions, {\n usage: 'sort'\n });\n\n var sortLocale = this.sortCompareLocale || undefined;\n var nullLast = this.sortNullLast;\n\n if (sortBy && localSorting) {\n var field = this.computedFieldsObj[sortBy] || {};\n var sortByFormatted = field.sortByFormatted;\n var formatter = isFunction(sortByFormatted) ? sortByFormatted : sortByFormatted ? this.getFieldFormatter(sortBy) : undefined; // `stableSort` returns a new array, and leaves the original array intact\n\n return stableSort(items, function (a, b) {\n var result = null;\n\n if (isFunction(sortCompare)) {\n // Call user provided sortCompare routine\n result = sortCompare(a, b, sortBy, sortDesc, formatter, sortOptions, sortLocale);\n }\n\n if (isUndefinedOrNull(result) || result === false) {\n // Fallback to built-in defaultSortCompare if sortCompare\n // is not defined or returns null/false\n result = defaultSortCompare(a, b, sortBy, sortDesc, formatter, sortOptions, sortLocale, nullLast);\n } // Negate result if sorting in descending order\n\n\n return (result || 0) * (sortDesc ? -1 : 1);\n });\n }\n\n return items;\n }\n },\n watch: {\n isSortable: function isSortable(newVal, oldVal)\n /* istanbul ignore next: pain in the butt to test */\n {\n if (newVal) {\n if (this.isSortable) {\n this.$on('head-clicked', this.handleSort);\n }\n } else {\n this.$off('head-clicked', this.handleSort);\n }\n },\n sortDesc: function sortDesc(newVal, oldVal) {\n if (newVal === this.localSortDesc) {\n /* istanbul ignore next */\n return;\n }\n\n this.localSortDesc = newVal || false;\n },\n sortBy: function sortBy(newVal, oldVal) {\n if (newVal === this.localSortBy) {\n /* istanbul ignore next */\n return;\n }\n\n this.localSortBy = newVal || '';\n },\n // Update .sync props\n localSortDesc: function localSortDesc(newVal, oldVal) {\n // Emit update to sort-desc.sync\n if (newVal !== oldVal) {\n this.$emit('update:sortDesc', newVal);\n }\n },\n localSortBy: function localSortBy(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.$emit('update:sortBy', newVal);\n }\n }\n },\n created: function created() {\n if (this.isSortable) {\n this.$on('head-clicked', this.handleSort);\n }\n },\n methods: {\n // Handlers\n // Need to move from thead-mixin\n handleSort: function handleSort(key, field, evt, isFoot) {\n var _this = this;\n\n if (!this.isSortable) {\n /* istanbul ignore next */\n return;\n }\n\n if (isFoot && this.noFooterSorting) {\n return;\n } // TODO: make this tri-state sorting\n // cycle desc => asc => none => desc => ...\n\n\n var sortChanged = false;\n\n var toggleLocalSortDesc = function toggleLocalSortDesc() {\n var sortDirection = field.sortDirection || _this.sortDirection;\n\n if (sortDirection === 'asc') {\n _this.localSortDesc = false;\n } else if (sortDirection === 'desc') {\n _this.localSortDesc = true;\n } else {// sortDirection === 'last'\n // Leave at last sort direction from previous column\n }\n };\n\n if (field.sortable) {\n if (key === this.localSortBy) {\n // Change sorting direction on current column\n this.localSortDesc = !this.localSortDesc;\n } else {\n // Start sorting this column ascending\n this.localSortBy = key; // this.localSortDesc = false\n\n toggleLocalSortDesc();\n }\n\n sortChanged = true;\n } else if (this.localSortBy && !this.noSortReset) {\n this.localSortBy = '';\n toggleLocalSortDesc();\n sortChanged = true;\n }\n\n if (sortChanged) {\n // Sorting parameters changed\n this.$emit('sort-changed', this.context);\n }\n },\n // methods to compute classes and attrs for thead>th cells\n sortTheadThClasses: function sortTheadThClasses(key, field, isFoot) {\n return {\n // If sortable and sortIconLeft are true, then place sort icon on the left\n 'b-table-sort-icon-left': field.sortable && this.sortIconLeft && !(isFoot && this.noFooterSorting)\n };\n },\n sortTheadThAttrs: function sortTheadThAttrs(key, field, isFoot) {\n if (!this.isSortable || isFoot && this.noFooterSorting) {\n // No attributes if not a sortable table\n return {};\n }\n\n var sortable = field.sortable;\n var ariaLabel = '';\n\n if ((!field.label || !field.label.trim()) && !field.headerTitle) {\n // In case field's label and title are empty/blank, we need to\n // add a hint about what the column is about for non-sighted users.\n // This is duplicated code from tbody-row mixin, but we need it\n // here as well, since we overwrite the original aria-label.\n\n /* istanbul ignore next */\n ariaLabel = startCase(key);\n } // The correctness of these labels is very important for screen-reader users.\n\n\n var ariaLabelSorting = '';\n\n if (sortable) {\n if (this.localSortBy === key) {\n // currently sorted sortable column.\n ariaLabelSorting = this.localSortDesc ? this.labelSortAsc : this.labelSortDesc;\n } else {\n // Not currently sorted sortable column.\n // Not using nested ternary's here for clarity/readability\n // Default for ariaLabel\n ariaLabelSorting = this.localSortDesc ? this.labelSortDesc : this.labelSortAsc; // Handle sortDirection setting\n\n var sortDirection = this.sortDirection || field.sortDirection;\n\n if (sortDirection === 'asc') {\n ariaLabelSorting = this.labelSortAsc;\n } else if (sortDirection === 'desc') {\n ariaLabelSorting = this.labelSortDesc;\n }\n }\n } else if (!this.noSortReset) {\n // Non sortable column\n ariaLabelSorting = this.localSortBy ? this.labelSortClear : '';\n } // Assemble the aria-label attribute value\n\n\n ariaLabel = [ariaLabel.trim(), ariaLabelSorting.trim()].filter(Boolean).join(': '); // Assemble the aria-sort attribute value\n\n var ariaSort = sortable && this.localSortBy === key ? this.localSortDesc ? 'descending' : 'ascending' : sortable ? 'none' : null; // Return the attributes\n // (All the above just to get these two values)\n\n return {\n 'aria-label': ariaLabel || null,\n 'aria-sort': ariaSort\n };\n }\n }\n};","export default {\n props: {\n perPage: {\n type: [Number, String],\n default: 0\n },\n currentPage: {\n type: [Number, String],\n default: 1\n }\n },\n computed: {\n localPaging: function localPaging() {\n return this.hasProvider ? !!this.noProviderPaging : true;\n },\n paginatedItems: function paginatedItems() {\n var items = this.sortedItems || this.filteredItems || this.localItems || [];\n var currentPage = Math.max(parseInt(this.currentPage, 10) || 1, 1);\n var perPage = Math.max(parseInt(this.perPage, 10) || 0, 0); // Apply local pagination\n\n if (this.localPaging && !!perPage) {\n // Grab the current page of data (which may be past filtered items limit)\n items = items.slice((currentPage - 1) * perPage, currentPage * perPage);\n } // Return the items to display in the table\n\n\n return items;\n }\n }\n};","import { htmlOrText } from '../../../utils/html';\nexport default {\n props: {\n // `caption-top` is part of table-redere mixin (styling)\n // captionTop: {\n // type: Boolean,\n // default: false\n // },\n caption: {\n type: String,\n default: null\n },\n captionHtml: {\n type: String\n }\n },\n computed: {\n captionId: function captionId() {\n // Even though `this.safeId` looks like a method, it is a computed prop\n // that returns a new function if the underlying ID changes\n return this.isStacked ? this.safeId('_caption_') : null;\n }\n },\n methods: {\n renderCaption: function renderCaption() {\n var h = this.$createElement; // Build the caption\n\n var $captionSlot = this.normalizeSlot('table-caption');\n var $caption = h();\n\n if ($captionSlot || this.caption || this.captionHtml) {\n var data = {\n key: 'caption',\n attrs: {\n id: this.captionId\n }\n };\n\n if (!$captionSlot) {\n data.domProps = htmlOrText(this.captionHtml, this.caption);\n }\n\n $caption = h('caption', data, [$captionSlot]);\n }\n\n return $caption;\n }\n }\n};","export default {\n methods: {\n renderColgroup: function renderColgroup() {\n var h = this.$createElement;\n var fields = this.computedFields;\n var $colgroup = h();\n\n if (this.hasNormalizedSlot('table-colgroup')) {\n $colgroup = h('colgroup', {\n key: 'colgroup'\n }, [this.normalizeSlot('table-colgroup', {\n columns: fields.length,\n fields: fields\n })]);\n }\n\n return $colgroup;\n }\n }\n};","import { closest, getAttr, getById, matches, select } from '../../../utils/dom';\nimport { EVENT_FILTER } from './constants';\nvar TABLE_TAG_NAMES = ['TD', 'TH', 'TR']; // Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\n\nvar filterEvent = function filterEvent(evt) {\n // Exit early when we don't have a target element\n if (!evt || !evt.target) {\n /* istanbul ignore next */\n return false;\n }\n\n var el = evt.target; // Exit early when element is disabled or a table element\n\n if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false;\n } // Ignore the click when it was inside a dropdown menu\n\n\n if (closest('.dropdown-menu', el)) {\n return true;\n }\n\n var label = el.tagName === 'LABEL' ? el : closest('label', el); // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE11\n // does not have this property on the label element, so we resort to DOM lookups\n\n if (label) {\n var labelFor = getAttr(label, 'for');\n var input = labelFor ? getById(labelFor) : select('input, select, textarea', label);\n\n if (input && !input.disabled) {\n return true;\n }\n } // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n\n\n return matches(el, EVENT_FILTER);\n};\n\nexport default filterEvent;","import { getSel, isElement } from '../../../utils/dom'; // Helper to determine if a there is an active text selection on the document page\n// Used to filter out click events caused by the mouse up at end of selection\n//\n// Accepts an element as only argument to test to see if selection overlaps or is\n// contained within the element\n\nvar textSelectionActive = function textSelectionActive() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n var sel = getSel();\n return sel && sel.toString().trim() !== '' && sel.containsNode && isElement(el) ? sel.containsNode(el, true) : false;\n};\n\nexport default textSelectionActive;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nexport var props = {\n headVariant: {\n type: String,\n // supported values: 'lite', 'dark', or null\n default: null\n }\n}; // @vue/component\n\nexport var BThead =\n/*#__PURE__*/\nVue.extend({\n name: 'BThead',\n mixins: [normalizeSlotMixin],\n inheritAttrs: false,\n provide: function provide() {\n return {\n bvTableThead: this\n };\n },\n inject: {\n bvTable: {\n default: null\n }\n },\n props: props,\n computed: {\n theadClasses: function theadClasses() {\n return [this.headVariant ? \"thead-\".concat(this.headVariant) : null];\n },\n theadAttrs: function theadAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.$attrs);\n }\n },\n render: function render(h) {\n return h('thead', {\n class: this.theadClasses,\n attrs: this.theadAttrs,\n // Pass down any native listeners\n on: this.$listeners\n }, this.normalizeSlot('default', {}));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nexport var props = {\n footVariant: {\n type: String,\n // supported values: 'lite', 'dark', or null\n default: null\n }\n}; // @vue/component\n\nexport var BTfoot =\n/*#__PURE__*/\nVue.extend({\n name: 'BTfoot',\n mixins: [normalizeSlotMixin],\n inheritAttrs: false,\n provide: function provide() {\n return {\n bvTableTfoot: this\n };\n },\n inject: {\n bvTable: {\n default: null\n }\n },\n props: props,\n computed: {\n tfootClasses: function tfootClasses() {\n return [this.footVariant ? \"thead-\".concat(this.footVariant) : null];\n },\n tfootAttrs: function tfootAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.$attrs);\n }\n },\n render: function render(h) {\n return h('tfoot', {\n class: this.tfootClasses,\n attrs: this.tfootAttrs,\n // Pass down any native listeners\n on: this.$listeners\n }, this.normalizeSlot('default', {}));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nexport var props = {\n variant: {\n type: String,\n default: null\n }\n}; // @vue/component\n\nexport var BTr =\n/*#__PURE__*/\nVue.extend({\n name: 'BTr',\n mixins: [normalizeSlotMixin],\n inheritAttrs: false,\n provide: function provide() {\n return {\n bvTableTr: this\n };\n },\n inject: {\n bvTable: {\n default: null\n }\n },\n props: props,\n computed: {\n isDark: function isDark() {\n return this.bvTable && this.bvTable.dark;\n },\n trClasses: function trClasses() {\n return [this.variant ? \"\".concat(this.isDark ? 'bg' : 'table', \"-\").concat(this.variant) : null];\n },\n trAttrs: function trAttrs() {\n return _objectSpread({\n role: 'row'\n }, this.$attrs);\n }\n },\n render: function render(h) {\n return h('tr', {\n class: this.trClasses,\n attrs: this.trAttrs,\n // Pass native listeners to child\n on: this.$listeners\n }, this.normalizeSlot('default', {}));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../../utils/vue';\nimport toString from '../../../utils/to-string';\nimport { isUndefinedOrNull } from '../../../utils/inspect';\nimport normalizeSlotMixin from '../../../mixins/normalize-slot';\nvar digitsRx = /^\\d+$/; // Parse a rowspan or colspan into a digit (or null if < 1 or NaN)\n\nvar parseSpan = function parseSpan(val) {\n val = parseInt(val, 10);\n return digitsRx.test(String(val)) && val > 0 ? val : null;\n};\n/* istanbul ignore next */\n\n\nvar spanValidator = function spanValidator(val) {\n return isUndefinedOrNull(val) || parseSpan(val) > 0;\n};\n\nexport var props = {\n header: {\n type: Boolean,\n default: false\n },\n variant: {\n type: String,\n default: null\n },\n colspan: {\n type: [Number, String],\n default: null,\n validator: spanValidator\n },\n rowspan: {\n type: [Number, String],\n default: null,\n validator: spanValidator\n },\n stackedHeading: {\n type: String,\n default: null\n },\n stickyColumn: {\n type: Boolean,\n default: false\n }\n}; // @vue/component\n\nexport var BTableCell =\n/*#__PURE__*/\nVue.extend({\n name: 'BTableCell',\n mixins: [normalizeSlotMixin],\n inheritAttrs: false,\n inject: {\n // Injections for feature / attribute detection\n bvTable: {\n default: null\n },\n bvTableTbody: {\n default: null\n },\n bvTableThead: {\n default: null\n },\n bvTableTfoot: {\n default: null\n },\n bvTableTr: {\n default: null\n }\n },\n props: props,\n computed: {\n isDark: function isDark() {\n return this.bvTable && this.bvTable.dark;\n },\n isStacked: function isStacked() {\n return this.bvTable && this.bvTable.isStacked;\n },\n isStackedCell: function isStackedCell() {\n // We only support stacked-heading in tbody in stacked mode\n return this.isStacked && this.bvTableTbody;\n },\n isResponsive: function isResponsive() {\n return this.bvTable && this.bvTable.isResponsive && !this.isStacked;\n },\n isStickyHeader: function isStickyHeader() {\n // Needed to handle header background classes, due to lack of\n // bg color inheritance with Bootstrap v4 tabl css\n // Sticky headers only apply to cells in table `thead`\n return !this.isStacked && this.bvTable && this.bvTableThead && this.bvTableTr && this.bvTable.stickyHeader;\n },\n isStickyColumn: function isStickyColumn() {\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table css.\n // Sticky column cells are only available in responsive\n // mode (horzontal scrolling) or when sticky header mode.\n // Applies to cells in `thead`, `tbody` and `tfoot`\n return (this.isResponsive || this.isStickyHeader) && this.stickyColumn && !this.isStacked && this.bvTable && this.bvTableTr;\n },\n cellClasses: function cellClasses() {\n // We use computed props here for improved performance by caching\n // the results of the string interpolation\n var variant = this.variant;\n\n if (!variant && this.isStickyHeader && !this.bvTableThead.headVariant || !variant && this.isStickyColumn) {\n // Needed for stickyheader mode as Bootstrap v4 table cells do\n // not inherit parent's background-color. Boo!\n variant = this.bvTableTr.variant || this.bvTable.tableVariant || 'b-table-default';\n }\n\n return [variant ? \"\".concat(this.isDark ? 'bg' : 'table', \"-\").concat(variant) : null, this.isStickyColumn ? 'b-table-sticky-column' : null];\n },\n computedColspan: function computedColspan() {\n return parseSpan(this.colspan);\n },\n computedRowspan: function computedRowspan() {\n return parseSpan(this.rowspan);\n },\n cellAttrs: function cellAttrs() {\n // We use computed props here for improved performance by caching\n // the results of the object spread (Object.assign)\n var headOrFoot = this.bvTableThead || this.bvTableTfoot; // Make sure col/rowspan's are > 0 or null\n\n var colspan = this.computedColspan;\n var rowspan = this.computedRowspan; // Default role and scope\n\n var role = 'cell';\n var scope = null; // Compute role and scope\n // We only add scopes with an explicit span of 1 or greater\n\n if (headOrFoot) {\n // Header or footer cells\n role = 'columnheader';\n scope = colspan > 0 ? 'colspan' : 'col';\n } else if (this.header) {\n // th's in tbody\n role = 'rowheader';\n scope = rowspan > 0 ? 'rowgroup' : 'row';\n }\n\n return _objectSpread({\n colspan: colspan,\n rowspan: rowspan,\n role: role,\n scope: scope\n }, this.$attrs, {\n // Add in the stacked cell label data-attribute if in\n // stacked mode (if a stacked heading label is provided)\n 'data-label': this.isStackedCell && !isUndefinedOrNull(this.stackedHeading) ? toString(this.stackedHeading) : null\n });\n }\n },\n render: function render(h) {\n var content = [this.normalizeSlot('default')];\n return h(this.header ? 'th' : 'td', {\n class: this.cellClasses,\n attrs: this.cellAttrs,\n // Transfer any native listeners\n on: this.$listeners\n }, [this.isStackedCell ? h('div', {}, [content]) : content]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { omit } from '../../utils/object';\nimport { props as cellProps, BTableCell } from './helpers/table-cell';\nexport var props = omit(cellProps, ['header']); // @vue/component\n\nexport var BTh =\n/*#__PURE__*/\nVue.extend({\n name: 'BTh',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n // `data` already includes any listeners\n data.props = _objectSpread({}, props, {\n header: true\n });\n return h(BTableCell, data, children);\n }\n});","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport KeyCodes from '../../../utils/key-codes';\nimport startCase from '../../../utils/startcase';\nimport { getComponentConfig } from '../../../utils/config';\nimport { htmlOrText } from '../../../utils/html';\nimport filterEvent from './filter-event';\nimport textSelectionActive from './text-selection-active';\nimport { BThead } from '../thead';\nimport { BTfoot } from '../tfoot';\nimport { BTr } from '../tr';\nimport { BTh } from '../th';\nexport default {\n props: {\n headVariant: {\n type: String,\n // 'light', 'dark' or null (or custom)\n default: function _default() {\n return getComponentConfig('BTable', 'headVariant');\n }\n },\n theadClass: {\n type: [String, Array, Object] // default: undefined\n\n },\n theadTrClass: {\n type: [String, Array, Object] // default: undefined\n\n }\n },\n methods: {\n fieldClasses: function fieldClasses(field) {\n // Header field (<th>) classes\n return [field.class ? field.class : '', field.thClass ? field.thClass : ''];\n },\n headClicked: function headClicked(evt, field, isFoot) {\n if (this.stopIfBusy && this.stopIfBusy(evt)) {\n // If table is busy (via provider) then don't propagate\n return;\n } else if (filterEvent(evt)) {\n // Clicked on a non-disabled control so ignore\n return;\n } else if (textSelectionActive(this.$el)) {\n // User is selecting text, so ignore\n\n /* istanbul ignore next: JSDOM doesn't support getSelection() */\n return;\n }\n\n evt.stopPropagation();\n evt.preventDefault();\n this.$emit('head-clicked', field.key, field, evt, isFoot);\n },\n renderThead: function renderThead() {\n var _this = this;\n\n var isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var h = this.$createElement;\n var fields = this.computedFields || [];\n\n if (this.isStackedAlways || fields.length === 0) {\n // In always stacked mode, we don't bother rendering the head/foot.\n // Or if no field headings (empty table)\n return h();\n } // Refernce to `selectAllRows` and `clearSelected()`, if table is Selectable\n\n\n var selectAllRows = this.isSelectable ? this.selectAllRows : function () {};\n var clearSelected = this.isSelectable ? this.clearSelected : function () {}; // Helper function to generate a field <th> cell\n\n var makeCell = function makeCell(field, colIndex) {\n var ariaLabel = null;\n\n if (!field.label.trim() && !field.headerTitle) {\n // In case field's label and title are empty/blank\n // We need to add a hint about what the column is about for non-sighted users\n\n /* istanbul ignore next */\n ariaLabel = startCase(field.key);\n }\n\n var hasHeadClickListener = _this.$listeners['head-clicked'] || _this.isSortable;\n var handlers = {};\n\n if (hasHeadClickListener) {\n handlers.click = function (evt) {\n _this.headClicked(evt, field, isFoot);\n };\n\n handlers.keydown = function (evt) {\n var keyCode = evt.keyCode;\n\n if (keyCode === KeyCodes.ENTER || keyCode === KeyCodes.SPACE) {\n _this.headClicked(evt, field, isFoot);\n }\n };\n }\n\n var sortAttrs = _this.isSortable ? _this.sortTheadThAttrs(field.key, field, isFoot) : {};\n var sortClass = _this.isSortable ? _this.sortTheadThClasses(field.key, field, isFoot) : null;\n var data = {\n key: field.key,\n class: [_this.fieldClasses(field), sortClass],\n props: {\n variant: field.variant,\n stickyColumn: field.stickyColumn\n },\n style: field.thStyle || {},\n attrs: _objectSpread({\n // We only add a tabindex of 0 if there is a head-clicked listener\n tabindex: hasHeadClickListener ? '0' : null,\n abbr: field.headerAbbr || null,\n title: field.headerTitle || null,\n 'aria-colindex': String(colIndex + 1),\n 'aria-label': ariaLabel\n }, _this.getThValues(null, field.key, field.thAttr, isFoot ? 'foot' : 'head', {}), {}, sortAttrs),\n on: handlers\n }; // Handle edge case where in-document templates are used with new\n // `v-slot:name` syntax where the browser lower-cases the v-slot's\n // name (attributes become lower cased when parsed by the browser)\n // We have replaced the square bracket syntax with round brackets\n // to prevent confusion with dynamic slot names\n\n var slotNames = [\"head(\".concat(field.key, \")\"), \"head(\".concat(field.key.toLowerCase(), \")\"), 'head()'];\n\n if (isFoot) {\n // Footer will fallback to header slot names\n slotNames = [\"foot(\".concat(field.key, \")\"), \"foot(\".concat(field.key.toLowerCase(), \")\"), 'foot()'].concat(_toConsumableArray(slotNames));\n }\n\n var hasSlot = _this.hasNormalizedSlot(slotNames);\n\n var slot = field.label;\n\n if (hasSlot) {\n slot = _this.normalizeSlot(slotNames, {\n label: field.label,\n column: field.key,\n field: field,\n isFoot: isFoot,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n });\n } else {\n data.domProps = htmlOrText(field.labelHtml);\n }\n\n return h(BTh, data, slot);\n }; // Generate the array of <th> cells\n\n\n var $cells = fields.map(makeCell).filter(function (th) {\n return th;\n }); // Genrate the row(s)\n\n var $trs = [];\n\n if (isFoot) {\n $trs.push(h(BTr, {\n class: this.tfootTrClass\n }, $cells));\n } else {\n var scope = {\n columns: fields.length,\n fields: fields,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n $trs.push(this.normalizeSlot('thead-top', scope) || h());\n $trs.push(h(BTr, {\n class: this.theadTrClass\n }, $cells));\n }\n\n return h(isFoot ? BTfoot : BThead, {\n key: isFoot ? 'bv-tfoot' : 'bv-thead',\n class: (isFoot ? this.tfootClass : this.theadClass) || null,\n props: isFoot ? {\n footVariant: this.footVariant || this.headVariant || null\n } : {\n headVariant: this.headVariant || null\n }\n }, $trs);\n }\n }\n};","import { getComponentConfig } from '../../../utils/config';\nimport { BTfoot } from '../tfoot';\nexport default {\n props: {\n footClone: {\n type: Boolean,\n default: false\n },\n footVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig('BTable', 'footVariant');\n }\n },\n tfootClass: {\n type: [String, Array, Object],\n default: null\n },\n tfootTrClass: {\n type: [String, Array, Object],\n default: null\n }\n },\n methods: {\n renderTFootCustom: function renderTFootCustom() {\n var h = this.$createElement;\n\n if (this.hasNormalizedSlot('custom-foot')) {\n return h(BTfoot, {\n key: 'bv-tfoot-custom',\n class: this.tfootClass || null,\n props: {\n footVariant: this.footVariant || this.headVariant || null\n }\n }, this.normalizeSlot('custom-foot', {\n items: this.computedItems.slice(),\n fields: this.computedFields.slice(),\n columns: this.computedFields.length\n }));\n } else {\n return h();\n }\n },\n renderTfoot: function renderTfoot() {\n // Passing true to renderThead will make it render a tfoot\n return this.footClone ? this.renderThead(true) : this.renderTFootCustom();\n }\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nexport var props = {\n tbodyTransitionProps: {\n type: Object // default: undefined\n\n },\n tbodyTransitionHandlers: {\n type: Object // default: undefined\n\n }\n}; // @vue/component\n\nexport var BTbody =\n/*#__PURE__*/\nVue.extend({\n name: 'BTbody',\n mixins: [normalizeSlotMixin],\n inheritAttrs: false,\n provide: function provide() {\n return {\n bvTableTbody: this\n };\n },\n inject: {\n bvTable: {\n default: null\n }\n },\n props: props,\n computed: {\n isTransitionGroup: function isTransitionGroup() {\n return this.tbodyTransitionProps || this.tbodyTransitionHandlers;\n },\n tbodyAttrs: function tbodyAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.$attrs);\n },\n tbodyProps: function tbodyProps() {\n return this.tbodyTransitionProps ? _objectSpread({}, this.tbodyTransitionProps, {\n tag: 'tbody'\n }) : {};\n },\n tbodyListeners: function tbodyListeners() {\n var handlers = this.tbodyTransitionHandlers || {};\n return _objectSpread({}, this.$listeners, {}, handlers);\n }\n },\n render: function render(h) {\n return h(this.isTransitionGroup ? 'transition-group' : 'tbody', {\n props: this.tbodyProps,\n attrs: this.tbodyAttrs,\n // Pass down any listeners\n on: this.tbodyListeners\n }, this.normalizeSlot('default', {}));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { omit } from '../../utils/object';\nimport { props as cellProps, BTableCell } from './helpers/table-cell';\nexport var props = omit(cellProps, ['header']); // @vue/component\n\nexport var BTd =\n/*#__PURE__*/\nVue.extend({\n name: 'BTd',\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n // `data` already includes any listeners\n data.props = _objectSpread({}, props, {\n header: false\n });\n return h(BTableCell, data, children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport KeyCodes from '../../../utils/key-codes';\nimport get from '../../../utils/get';\nimport toString from '../../../utils/to-string';\nimport { arrayIncludes } from '../../../utils/array';\nimport { isFunction, isString, isUndefinedOrNull } from '../../../utils/inspect';\nimport filterEvent from './filter-event';\nimport textSelectionActive from './text-selection-active';\nimport { BTr } from '../tr';\nimport { BTd } from '../td';\nimport { BTh } from '../th';\nvar detailsSlotName = 'row-details';\nexport default {\n props: {\n tbodyTrClass: {\n type: [String, Array, Function],\n default: null\n }\n },\n methods: {\n // Methods for computing classes, attributes and styles for table cells\n getTdValues: function getTdValues(item, key, tdValue, defValue) {\n var parent = this.$parent;\n\n if (tdValue) {\n var value = get(item, key, '');\n\n if (isFunction(tdValue)) {\n return tdValue(value, key, item);\n } else if (isString(tdValue) && isFunction(parent[tdValue])) {\n return parent[tdValue](value, key, item);\n }\n\n return tdValue;\n }\n\n return defValue;\n },\n getThValues: function getThValues(item, key, thValue, type, defValue) {\n var parent = this.$parent;\n\n if (thValue) {\n var value = get(item, key, '');\n\n if (isFunction(thValue)) {\n return thValue(value, key, item, type);\n } else if (isString(thValue) && isFunction(parent[thValue])) {\n return parent[thValue](value, key, item, type);\n }\n\n return thValue;\n }\n\n return defValue;\n },\n // Method to get the value for a field\n getFormattedValue: function getFormattedValue(item, field) {\n var key = field.key;\n var formatter = this.getFieldFormatter(key);\n var value = get(item, key, null);\n\n if (isFunction(formatter)) {\n value = formatter(value, key, item);\n }\n\n return isUndefinedOrNull(value) ? '' : value;\n },\n // Factory function methods\n toggleDetailsFactory: function toggleDetailsFactory(hasDetailsSlot, item) {\n var _this = this;\n\n // Returns a function to toggle a row's details slot\n return function () {\n if (hasDetailsSlot) {\n _this.$set(item, '_showDetails', !item._showDetails);\n }\n };\n },\n rowEvtFactory: function rowEvtFactory(handler, item, rowIndex) {\n var _this2 = this;\n\n // Return a row event handler\n return function (evt) {\n // If table is busy (via provider) then don't propagate\n if (_this2.stopIfBusy && _this2.stopIfBusy(evt)) {\n return;\n } // Otherwise call the handler\n\n\n handler(evt, item, rowIndex);\n };\n },\n // Row event handlers (will be wrapped by the above rowEvtFactory function)\n tbodyRowKeydown: function tbodyRowKeydown(evt, item, rowIndex) {\n // Keypress handler\n var keyCode = evt.keyCode;\n var target = evt.target; // `this.$refs.itemRow`s is most likely an array of `BTr` components, but it\n // could be regular `tr` elements, so we map to the `tr` elements just in case\n\n var trs = (this.$refs.itemRows || []).map(function (tr) {\n return tr.$el || tr;\n });\n\n if (!(target && target.tagName === 'TR' && target === document.activeElement)) {\n // Ignore if not the active tr element\n return;\n } else if (target.tabIndex !== 0) {\n // Ignore if not focusable\n\n /* istanbul ignore next */\n return;\n } else if (trs.length === 0) {\n // No item rows\n\n /* istanbul ignore next */\n return;\n }\n\n var index = trs.indexOf(target);\n\n if (keyCode === KeyCodes.ENTER || keyCode === KeyCodes.SPACE) {\n // We also allow enter/space to trigger a click (when row is focused)\n evt.stopPropagation();\n evt.preventDefault(); // We translate to a row-clicked event\n\n this.rowClicked(evt, item, rowIndex);\n } else if (arrayIncludes([KeyCodes.UP, KeyCodes.DOWN, KeyCodes.HOME, KeyCodes.END], keyCode)) {\n // Keyboard navigation of rows\n evt.stopPropagation();\n evt.preventDefault();\n var shift = evt.shiftKey;\n\n if (keyCode === KeyCodes.HOME || shift && keyCode === KeyCodes.UP) {\n // Focus first row\n trs[0].focus();\n } else if (keyCode === KeyCodes.END || shift && keyCode === KeyCodes.DOWN) {\n // Focus last row\n trs[trs.length - 1].focus();\n } else if (keyCode === KeyCodes.UP && index > 0) {\n // Focus previous row\n trs[index - 1].focus();\n } else if (keyCode === KeyCodes.DOWN && index < trs.length - 1) {\n // Focus next row\n trs[index + 1].focus();\n }\n }\n },\n rowClicked: function rowClicked(evt, item, index) {\n if (filterEvent(evt)) {\n // clicked on a non-disabled control so ignore\n return;\n } else if (textSelectionActive(this.$el)) {\n // User is selecting text, so ignore\n\n /* istanbul ignore next: JSDOM doesn't support getSelection() */\n return;\n }\n\n this.$emit('row-clicked', item, index, evt);\n },\n middleMouseRowClicked: function middleMouseRowClicked(evt, item, index) {\n if (evt.which === 2) {\n this.$emit('row-middle-clicked', item, index, evt);\n }\n },\n rowDblClicked: function rowDblClicked(evt, item, index) {\n if (filterEvent(evt)) {\n // clicked on a non-disabled control so ignore\n\n /* istanbul ignore next: event filtering already tested via click handler */\n return;\n }\n\n this.$emit('row-dblclicked', item, index, evt);\n },\n rowHovered: function rowHovered(evt, item, index) {\n this.$emit('row-hovered', item, index, evt);\n },\n rowUnhovered: function rowUnhovered(evt, item, index) {\n this.$emit('row-unhovered', item, index, evt);\n },\n rowContextmenu: function rowContextmenu(evt, item, index) {\n this.$emit('row-contextmenu', item, index, evt);\n },\n // Render helpers\n renderTbodyRowCell: function renderTbodyRowCell(field, colIndex, item, rowIndex) {\n // Renders a TD or TH for a row's field\n var h = this.$createElement;\n var hasDetailsSlot = this.hasNormalizedSlot(detailsSlotName);\n var formatted = this.getFormattedValue(item, field);\n var key = field.key;\n var data = {\n // For the Vue key, we concatenate the column index and\n // field key (as field keys could be duplicated)\n // TODO: Although we do prevent duplicate field keys...\n // So we could change this to: `row-${rowIndex}-cell-${key}`\n key: \"row-\".concat(rowIndex, \"-cell-\").concat(colIndex, \"-\").concat(key),\n class: [field.class ? field.class : '', this.getTdValues(item, key, field.tdClass, '')],\n props: {\n stackedHeading: this.isStacked ? field.label : null,\n stickyColumn: field.stickyColumn,\n variant: item._cellVariants && item._cellVariants[key] ? item._cellVariants[key] : field.variant || null\n },\n attrs: _objectSpread({\n 'aria-colindex': String(colIndex + 1)\n }, field.isRowHeader ? this.getThValues(item, key, field.thAttr, 'row', {}) : this.getTdValues(item, key, field.tdAttr, {}))\n };\n var slotScope = {\n item: item,\n index: rowIndex,\n field: field,\n unformatted: get(item, key, ''),\n value: formatted,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item),\n detailsShowing: Boolean(item._showDetails)\n };\n\n if (this.selectedRows) {\n // Add in rowSelected scope property if selectable rows supported\n slotScope.rowSelected = this.isRowSelected(rowIndex);\n } // The new `v-slot` syntax doesn't like a slot name starting with\n // a square bracket and if using in-document HTML templates, the\n // v-slot attributes are lower-cased by the browser.\n // Switched to round bracket syntax to prevent confusion with\n // dynamic slot name syntax.\n // We look for slots in this order: `cell(${key})`, `cell(${key.toLowerCase()})`, 'cell()'\n // Slot names are now cached by mixin tbody in `this.$_bodyFieldSlotNameCache`\n // Will be `null` if no slot (or fallback slot) exists\n\n\n var slotName = this.$_bodyFieldSlotNameCache[key];\n var $childNodes = slotName ? this.normalizeSlot(slotName, slotScope) : toString(formatted);\n\n if (this.isStacked) {\n // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n $childNodes = [h('div', {}, [$childNodes])];\n } // Render either a td or th cell\n\n\n return h(field.isRowHeader ? BTh : BTd, data, [$childNodes]);\n },\n renderTbodyRow: function renderTbodyRow(item, rowIndex) {\n var _this3 = this;\n\n // Renders an item's row (or rows if details supported)\n var h = this.$createElement;\n var fields = this.computedFields;\n var tableStriped = this.striped;\n var hasDetailsSlot = this.hasNormalizedSlot(detailsSlotName);\n var rowShowDetails = Boolean(item._showDetails && hasDetailsSlot);\n var hasRowClickHandler = this.$listeners['row-clicked'] || this.isSelectable; // We can return more than one TR if rowDetails enabled\n\n var $rows = []; // Details ID needed for `aria-details` when details showing\n // We set it to `null` when not showing so that attribute\n // does not appear on the element\n\n var detailsId = rowShowDetails ? this.safeId(\"_details_\".concat(rowIndex, \"_\")) : null; // For each item data field in row\n\n var $tds = fields.map(function (field, colIndex) {\n return _this3.renderTbodyRowCell(field, colIndex, item, rowIndex);\n }); // Calculate the row number in the dataset (indexed from 1)\n\n var ariaRowIndex = null;\n\n if (this.currentPage && this.perPage && this.perPage > 0) {\n ariaRowIndex = String((this.currentPage - 1) * this.perPage + rowIndex + 1);\n } // Create a unique :key to help ensure that sub components are re-rendered rather than\n // re-used, which can cause issues. If a primary key is not provided we use the rendered\n // rows index within the tbody.\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2410\n\n\n var primaryKey = this.primaryKey;\n var hasPkValue = primaryKey && !isUndefinedOrNull(item[primaryKey]);\n var rowKey = hasPkValue ? toString(item[primaryKey]) : String(rowIndex); // If primary key is provided, use it to generate a unique ID on each tbody > tr\n // In the format of '{tableId}__row_{primaryKeyValue}'\n\n var rowId = hasPkValue ? this.safeId(\"_row_\".concat(item[primaryKey])) : null;\n var evtFactory = this.rowEvtFactory;\n var handlers = {};\n\n if (hasRowClickHandler) {\n handlers.click = evtFactory(this.rowClicked, item, rowIndex);\n handlers.keydown = evtFactory(this.tbodyRowKeydown, item, rowIndex);\n } // Selectable classes and attributes\n\n\n var selectableClasses = this.selectableRowClasses ? this.selectableRowClasses(rowIndex) : {};\n var selectableAttrs = this.selectableRowAttrs ? this.selectableRowAttrs(rowIndex) : {}; // Add the item row\n\n $rows.push(h(BTr, {\n key: \"__b-table-row-\".concat(rowKey, \"__\"),\n ref: 'itemRows',\n refInFor: true,\n class: [isFunction(this.tbodyTrClass) ? this.tbodyTrClass(item, 'row') : this.tbodyTrClass, selectableClasses, rowShowDetails ? 'b-table-has-details' : ''],\n props: {\n variant: item._rowVariant || null\n },\n attrs: _objectSpread({\n id: rowId,\n tabindex: hasRowClickHandler ? '0' : null,\n 'data-pk': rowId ? String(item[primaryKey]) : null,\n // Should this be `aria-details` instead?\n 'aria-details': detailsId,\n 'aria-owns': detailsId,\n 'aria-rowindex': ariaRowIndex\n }, selectableAttrs),\n on: _objectSpread({}, handlers, {\n // TODO:\n // Instantiate the following handlers only if we have registered\n // listeners i.e. `this.$listeners['row-middle-clicked']`, etc.\n //\n // Could make all of this (including the above click/key handlers)\n // the result of a factory function and/or make it a delegated event\n // handler on the tbody (if we store the row index as a data-attribute\n // on the TR as we can lookup the item data from the computedItems array\n // or it could be a hidden prop (via attrs) on BTr instance)\n auxclick: evtFactory(this.middleMouseRowClicked, item, rowIndex),\n contextmenu: evtFactory(this.rowContextmenu, item, rowIndex),\n // Note: These events are not accessibility friendly!\n dblclick: evtFactory(this.rowDblClicked, item, rowIndex),\n mouseenter: evtFactory(this.rowHovered, item, rowIndex),\n mouseleave: evtFactory(this.rowUnhovered, item, rowIndex)\n })\n }, $tds)); // Row Details slot\n\n if (rowShowDetails) {\n var detailsScope = {\n item: item,\n index: rowIndex,\n fields: fields,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item)\n }; // Render the details slot in a TD\n\n var $details = h(BTd, {\n props: {\n colspan: fields.length\n }\n }, [this.normalizeSlot(detailsSlotName, detailsScope)]); // Add a hidden row to keep table row striping consistent when details showing\n\n if (tableStriped) {\n $rows.push( // We don't use `BTr` here as we dont need the extra functionality\n h('tr', {\n key: \"__b-table-details-stripe__\".concat(rowKey),\n staticClass: 'd-none',\n attrs: {\n 'aria-hidden': 'true',\n role: 'presentation'\n }\n }));\n } // Add the actual details row\n\n\n $rows.push(h(BTr, {\n key: \"__b-table-details__\".concat(rowKey),\n staticClass: 'b-table-details',\n class: [isFunction(this.tbodyTrClass) ? this.tbodyTrClass(item, detailsSlotName) : this.tbodyTrClass],\n props: {\n variant: item._rowVariant || null\n },\n attrs: {\n id: detailsId,\n tabindex: '-1'\n }\n }, [$details]));\n } else if (hasDetailsSlot) {\n // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n $rows.push(h());\n\n if (tableStriped) {\n // Add extra placeholder if table is striped\n $rows.push(h());\n }\n } // Return the row(s)\n\n\n return $rows;\n }\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { props as tbodyProps, BTbody } from '../tbody';\nimport tbodyRowMixin from './mixin-tbody-row';\n\nvar props = _objectSpread({\n tbodyClass: {\n type: [String, Array, Object] // default: undefined\n\n }\n}, tbodyProps);\n\nexport default {\n mixins: [tbodyRowMixin],\n props: props,\n methods: {\n renderTbody: function renderTbody() {\n var _this = this;\n\n // Render the tbody element and children\n var items = this.computedItems; // Shortcut to `createElement` (could use `this._c()` instead)\n\n var h = this.$createElement; // Prepare the tbody rows\n\n var $rows = []; // Add the item data rows or the busy slot\n\n var $busy = this.renderBusy ? this.renderBusy() : null;\n\n if ($busy) {\n // If table is busy and a busy slot, then return only the busy \"row\" indicator\n $rows.push($busy);\n } else {\n // Table isn't busy, or we don't have a busy slot\n // Create a slot cache for improved performace when looking up cell slot names.\n // Values will be keyed by the field's `key` and will store the slot's name.\n // Slots could be dynamic (i.e. `v-if`), so we must compute on each render.\n // Used by tbodyRow mixin render helper.\n var cache = {};\n var defaultSlotName = this.hasNormalizedSlot('cell()') ? 'cell()' : null;\n this.computedFields.forEach(function (field) {\n var key = field.key;\n var fullName = \"cell(\".concat(key, \")\");\n var lowerName = \"cell(\".concat(key.toLowerCase(), \")\");\n cache[key] = _this.hasNormalizedSlot(fullName) ? fullName : _this.hasNormalizedSlot(lowerName) ? lowerName : defaultSlotName;\n }); // Created as a non-reactive property so to not trigger component updates.\n // Must be a fresh object each render.\n\n this.$_bodyFieldSlotNameCache = cache; // Add static Top Row slot (hidden in visibly stacked mode as we can't control data-label attr)\n\n $rows.push(this.renderTopRow ? this.renderTopRow() : h()); // render the rows\n\n items.forEach(function (item, rowIndex) {\n // Render the individual item row (rows if details slot)\n $rows.push(_this.renderTbodyRow(item, rowIndex));\n }); // Empty Items / Empty Filtered Row slot (only shows if items.length < 1)\n\n $rows.push(this.renderEmpty ? this.renderEmpty() : h()); // Static bottom row slot (hidden in visibly stacked mode as we can't control data-label attr)\n\n $rows.push(this.renderBottomRow ? this.renderBottomRow() : h());\n } // Assemble rows into the tbody\n\n\n var $tbody = h(BTbody, {\n class: this.tbodyClass || null,\n props: {\n tbodyTransitionProps: this.tbodyTransitionProps,\n tbodyTransitionHandlers: this.tbodyTransitionHandlers\n }\n }, $rows); // Return the assembled tbody\n\n return $tbody;\n }\n }\n};","import { htmlOrText } from '../../../utils/html';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr';\nimport { BTd } from '../td';\nexport default {\n props: {\n showEmpty: {\n type: Boolean,\n default: false\n },\n emptyText: {\n type: String,\n default: 'There are no records to show'\n },\n emptyHtml: {\n type: String\n },\n emptyFilteredText: {\n type: String,\n default: 'There are no records matching your request'\n },\n emptyFilteredHtml: {\n type: String\n }\n },\n methods: {\n renderEmpty: function renderEmpty() {\n var h = this.$createElement;\n var items = this.computedItems;\n var $empty;\n\n if (this.showEmpty && (!items || items.length === 0) && !(this.computedBusy && this.hasNormalizedSlot('table-busy'))) {\n $empty = this.normalizeSlot(this.isFiltered ? 'emptyfiltered' : 'empty', {\n emptyFilteredHtml: this.emptyFilteredHtml,\n emptyFilteredText: this.emptyFilteredText,\n emptyHtml: this.emptyHtml,\n emptyText: this.emptyText,\n fields: this.computedFields,\n // Not sure why this is included, as it will always be an empty array\n items: this.computedItems\n });\n\n if (!$empty) {\n $empty = h('div', {\n class: ['text-center', 'my-2'],\n domProps: this.isFiltered ? htmlOrText(this.emptyFilteredHtml, this.emptyFilteredText) : htmlOrText(this.emptyHtml, this.emptyText)\n });\n }\n\n $empty = h(BTd, {\n props: {\n colspan: this.computedFields.length || null\n }\n }, [h('div', {\n attrs: {\n role: 'alert',\n 'aria-live': 'polite'\n }\n }, [$empty])]);\n $empty = h(BTr, {\n key: this.isFiltered ? 'b-empty-filtered-row' : 'b-empty-row',\n staticClass: 'b-table-empty-row',\n class: [isFunction(this.tbodyTrClass) ? this.tbodyTrClass(null, 'row-empty') : this.tbodyTrClass]\n }, [$empty]);\n }\n\n return $empty || h();\n }\n }\n};","import { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr';\nvar slotName = 'top-row';\nexport default {\n methods: {\n renderTopRow: function renderTopRow() {\n var h = this.$createElement; // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(slotName) || this.stacked === true || this.stacked === '') {\n return h();\n }\n\n var fields = this.computedFields;\n return h(BTr, {\n key: 'b-top-row',\n staticClass: 'b-table-top-row',\n class: [isFunction(this.tbodyTrClass) ? this.tbodyTrClass(null, 'row-top') : this.tbodyTrClass]\n }, [this.normalizeSlot(slotName, {\n columns: fields.length,\n fields: fields\n })]);\n }\n }\n};","import { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr';\nvar slotName = 'bottom-row';\nexport default {\n methods: {\n renderBottomRow: function renderBottomRow() {\n var h = this.$createElement; // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(slotName) || this.stacked === true || this.stacked === '') {\n return h();\n }\n\n var fields = this.computedFields;\n return h(BTr, {\n key: 'b-bottom-row',\n staticClass: 'b-table-bottom-row',\n class: [isFunction(this.tbodyTrClass) ? this.tbodyTrClass(null, 'row-bottom') : this.tbodyTrClass]\n }, this.normalizeSlot(slotName, {\n columns: fields.length,\n fields: fields\n }));\n }\n }\n};","import { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr';\nimport { BTd } from '../td';\nvar busySlotName = 'table-busy';\nexport default {\n props: {\n busy: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n localBusy: false\n };\n },\n computed: {\n computedBusy: function computedBusy() {\n return this.busy || this.localBusy;\n }\n },\n watch: {\n localBusy: function localBusy(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.$emit('update:busy', newVal);\n }\n }\n },\n methods: {\n // Event handler helper\n stopIfBusy: function stopIfBusy(evt) {\n if (this.computedBusy) {\n // If table is busy (via provider) then don't propagate\n evt.preventDefault();\n evt.stopPropagation();\n return true;\n }\n\n return false;\n },\n // Render the busy indicator or return `null` if not busy\n renderBusy: function renderBusy() {\n var h = this.$createElement; // Return a busy indicator row, or `null` if not busy\n\n if (this.computedBusy && this.hasNormalizedSlot(busySlotName)) {\n // Show the busy slot\n return h(BTr, {\n key: 'table-busy-slot',\n staticClass: 'b-table-busy-slot',\n class: [isFunction(this.tbodyTrClass) ? this.tbodyTrClass(null, busySlotName) : this.tbodyTrClass]\n }, [h(BTd, {\n props: {\n colspan: this.computedFields.length || null\n }\n }, [this.normalizeSlot(busySlotName)])]);\n } else {\n // We return `null` here so that we can determine if we need to\n // render the table items rows or not\n return null;\n }\n }\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport looseEqual from '../../../utils/loose-equal';\nimport range from '../../../utils/range';\nimport { isArray, arrayIncludes } from '../../../utils/array';\nimport { getComponentConfig } from '../../../utils/config';\nimport { isNumber } from '../../../utils/inspect';\nimport sanitizeRow from './sanitize-row';\nexport default {\n props: {\n selectable: {\n type: Boolean,\n default: false\n },\n selectMode: {\n type: String,\n default: 'multi',\n validator: function validator(val) {\n return arrayIncludes(['range', 'multi', 'single'], val);\n }\n },\n selectedVariant: {\n type: String,\n default: function _default() {\n return getComponentConfig('BTable', 'selectedVariant');\n }\n }\n },\n data: function data() {\n return {\n selectedRows: [],\n selectedLastRow: -1\n };\n },\n computed: {\n isSelectable: function isSelectable() {\n return this.selectable && this.selectMode;\n },\n selectableHasSelection: function selectableHasSelection() {\n return this.isSelectable && this.selectedRows && this.selectedRows.length > 0 && this.selectedRows.some(Boolean);\n },\n selectableIsMultiSelect: function selectableIsMultiSelect() {\n return this.isSelectable && arrayIncludes(['range', 'multi'], this.selectMode);\n },\n selectableTableClasses: function selectableTableClasses() {\n var _ref;\n\n return _ref = {\n 'b-table-selectable': this.isSelectable\n }, _defineProperty(_ref, \"b-table-select-\".concat(this.selectMode), this.isSelectable), _defineProperty(_ref, 'b-table-selecting', this.selectableHasSelection), _ref;\n },\n selectableTableAttrs: function selectableTableAttrs() {\n return {\n 'aria-multiselectable': !this.isSelectable ? null : this.selectableIsMultiSelect ? 'true' : 'false'\n };\n }\n },\n watch: {\n computedItems: function computedItems(newVal, oldVal) {\n // Reset for selectable\n var equal = false;\n\n if (this.isSelectable && this.selectedRows.length > 0) {\n // Quick check against array length\n equal = isArray(newVal) && isArray(oldVal) && newVal.length === oldVal.length;\n\n for (var i = 0; equal && i < newVal.length; i++) {\n // Look for the first non-loosely equal row, after ignoring reserved fields\n equal = looseEqual(sanitizeRow(newVal[i]), sanitizeRow(oldVal[i]));\n }\n }\n\n if (!equal) {\n this.clearSelected();\n }\n },\n selectable: function selectable(newVal, oldVal) {\n this.clearSelected();\n this.setSelectionHandlers(newVal);\n },\n selectMode: function selectMode(newVal, oldVal) {\n this.clearSelected();\n },\n selectedRows: function selectedRows(_selectedRows, oldVal) {\n var _this = this;\n\n if (this.isSelectable && !looseEqual(_selectedRows, oldVal)) {\n var items = []; // `.forEach()` skips over non-existent indices (on sparse arrays)\n\n _selectedRows.forEach(function (v, idx) {\n if (v) {\n items.push(_this.computedItems[idx]);\n }\n });\n\n this.$emit('row-selected', items);\n }\n }\n },\n beforeMount: function beforeMount() {\n // Set up handlers\n if (this.isSelectable) {\n this.setSelectionHandlers(true);\n }\n },\n methods: {\n // Public methods\n selectRow: function selectRow(index) {\n // Select a particular row (indexed based on computedItems)\n if (this.isSelectable && isNumber(index) && index >= 0 && index < this.computedItems.length && !this.isRowSelected(index)) {\n var selectedRows = this.selectableIsMultiSelect ? this.selectedRows.slice() : [];\n selectedRows[index] = true;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n unselectRow: function unselectRow(index) {\n // Un-select a particular row (indexed based on `computedItems`)\n if (this.isSelectable && isNumber(index) && this.isRowSelected(index)) {\n var selectedRows = this.selectedRows.slice();\n selectedRows[index] = false;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n selectAllRows: function selectAllRows() {\n var length = this.computedItems.length;\n\n if (this.isSelectable && length > 0) {\n this.selectedLastClicked = -1;\n this.selectedRows = this.selectableIsMultiSelect ? range(length).map(function (i) {\n return true;\n }) : [true];\n }\n },\n isRowSelected: function isRowSelected(index) {\n // Determine if a row is selected (indexed based on `computedItems`)\n return Boolean(isNumber(index) && this.selectedRows[index]);\n },\n clearSelected: function clearSelected() {\n // Clear any active selected row(s)\n this.selectedLastClicked = -1;\n this.selectedRows = [];\n },\n // Internal private methods\n selectableRowClasses: function selectableRowClasses(index) {\n if (this.isSelectable && this.isRowSelected(index)) {\n var variant = this.selectedVariant;\n return _defineProperty({\n 'b-table-row-selected': true\n }, \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(variant), variant);\n } else {\n return {};\n }\n },\n selectableRowAttrs: function selectableRowAttrs(index) {\n return {\n 'aria-selected': !this.isSelectable ? null : this.isRowSelected(index) ? 'true' : 'false'\n };\n },\n setSelectionHandlers: function setSelectionHandlers(on) {\n var method = on ? '$on' : '$off'; // Handle row-clicked event\n\n this[method]('row-clicked', this.selectionHandler); // Clear selection on filter, pagination, and sort changes\n\n this[method]('filtered', this.clearSelected);\n this[method]('context-changed', this.clearSelected);\n },\n selectionHandler: function selectionHandler(item, index, evt) {\n /* istanbul ignore if: should never happen */\n if (!this.isSelectable) {\n // Don't do anything if table is not in selectable mode\n\n /* istanbul ignore next: should never happen */\n this.clearSelected();\n /* istanbul ignore next: should never happen */\n\n return;\n }\n\n var selectMode = this.selectMode;\n var selectedRows = this.selectedRows.slice();\n var selected = !selectedRows[index]; // Note 'multi' mode needs no special event handling\n\n if (selectMode === 'single') {\n selectedRows = [];\n } else if (selectMode === 'range') {\n if (this.selectedLastRow > -1 && evt.shiftKey) {\n // range\n for (var idx = Math.min(this.selectedLastRow, index); idx <= Math.max(this.selectedLastRow, index); idx++) {\n selectedRows[idx] = true;\n }\n\n selected = true;\n } else {\n if (!(evt.ctrlKey || evt.metaKey)) {\n // Clear range selection if any\n selectedRows = [];\n selected = true;\n }\n\n this.selectedLastRow = selected ? index : -1;\n }\n }\n\n selectedRows[index] = selected;\n this.selectedRows = selectedRows;\n }\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport looseEqual from '../../../utils/loose-equal';\nimport warn from '../../../utils/warn';\nimport { isArray, isFunction, isPromise } from '../../../utils/inspect';\nimport listenOnRootMixin from '../../../mixins/listen-on-root';\nexport default {\n mixins: [listenOnRootMixin],\n props: {\n // Prop override(s)\n items: {\n // Adds in 'Function' support\n type: [Array, Function],\n default: function _default()\n /* istanbul ignore next */\n {\n return [];\n }\n },\n // Additional props\n noProviderPaging: {\n type: Boolean,\n default: false\n },\n noProviderSorting: {\n type: Boolean,\n default: false\n },\n noProviderFiltering: {\n type: Boolean,\n default: false\n },\n apiUrl: {\n // Passthrough prop. Passed to the context object. Not used by b-table directly\n type: String,\n default: ''\n }\n },\n computed: {\n hasProvider: function hasProvider() {\n return isFunction(this.items);\n },\n providerTriggerContext: function providerTriggerContext() {\n // Used to trigger the provider function via a watcher. Only the fields that\n // are needed for triggering a provider update are included. Note that the\n // regular this.context is sent to the provider during fetches though, as they\n // may need all the prop info.\n var ctx = {\n apiUrl: this.apiUrl,\n filter: null,\n sortBy: null,\n sortDesc: null,\n perPage: null,\n currentPage: null\n };\n\n if (!this.noProviderFiltering) {\n // Either a string, or could be an object or array.\n ctx.filter = this.localFilter;\n }\n\n if (!this.noProviderSorting) {\n ctx.sortBy = this.localSortBy;\n ctx.sortDesc = this.localSortDesc;\n }\n\n if (!this.noProviderPaging) {\n ctx.perPage = this.perPage;\n ctx.currentPage = this.currentPage;\n }\n\n return _objectSpread({}, ctx);\n }\n },\n watch: {\n // Provider update triggering\n items: function items(newVal, oldVal) {\n // If a new provider has been specified, trigger an update\n if (this.hasProvider || isFunction(newVal)) {\n this.$nextTick(this._providerUpdate);\n }\n },\n providerTriggerContext: function providerTriggerContext(newVal, oldVal) {\n // Trigger the provider to update as the relevant context values have changed.\n if (!looseEqual(newVal, oldVal)) {\n this.$nextTick(this._providerUpdate);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // Call the items provider if necessary\n if (this.hasProvider && (!this.localItems || this.localItems.length === 0)) {\n // Fetch on mount if localItems is empty\n this._providerUpdate();\n } // Listen for global messages to tell us to force refresh the table\n\n\n this.listenOnRoot('bv::refresh::table', function (id) {\n if (id === _this.id || id === _this) {\n _this.refresh();\n }\n });\n },\n methods: {\n refresh: function refresh() {\n // Public Method: Force a refresh of the provider function\n this.$off('refreshed', this.refresh);\n\n if (this.computedBusy) {\n // Can't force an update when forced busy by user (busy prop === true)\n if (this.localBusy && this.hasProvider) {\n // But if provider running (localBusy), re-schedule refresh once `refreshed` emitted\n this.$on('refreshed', this.refresh);\n }\n } else {\n this.clearSelected();\n\n if (this.hasProvider) {\n this.$nextTick(this._providerUpdate);\n } else {\n /* istanbul ignore next */\n this.localItems = isArray(this.items) ? this.items.slice() : [];\n }\n }\n },\n // Provider related methods\n _providerSetLocal: function _providerSetLocal(items) {\n this.localItems = isArray(items) ? items.slice() : [];\n this.localBusy = false;\n this.$emit('refreshed'); // New root emit\n\n if (this.id) {\n this.emitOnRoot('bv::table::refreshed', this.id);\n }\n },\n _providerUpdate: function _providerUpdate() {\n var _this2 = this;\n\n // Refresh the provider function items.\n if (!this.hasProvider) {\n // Do nothing if no provider\n return;\n } // If table is busy, wait until refreshed before calling again\n\n\n if (this.computedBusy) {\n // Schedule a new refresh once `refreshed` is emitted\n this.$nextTick(this.refresh);\n return;\n } // Set internal busy state\n\n\n this.localBusy = true; // Call provider function with context and optional callback after DOM is fully updated\n\n this.$nextTick(function () {\n try {\n // Call provider function passing it the context and optional callback\n var data = _this2.items(_this2.context, _this2._providerSetLocal);\n\n if (isPromise(data)) {\n // Provider returned Promise\n data.then(function (items) {\n // Provider resolved with items\n _this2._providerSetLocal(items);\n });\n } else if (isArray(data)) {\n // Provider returned Array data\n _this2._providerSetLocal(data);\n } else {\n /* istanbul ignore if */\n if (_this2.items.length !== 2) {\n // Check number of arguments provider function requested\n // Provider not using callback (didn't request second argument), so we clear\n // busy state as most likely there was an error in the provider function\n\n /* istanbul ignore next */\n warn(\"b-table provider function didn't request callback and did not return a promise or data\");\n _this2.localBusy = false;\n }\n }\n } catch (e)\n /* istanbul ignore next */\n {\n // Provider function borked on us, so we spew out a warning\n // and clear the busy state\n warn(\"b-table provider function error [\".concat(e.name, \"] \").concat(e.message));\n _this2.localBusy = false;\n\n _this2.$off('refreshed', _this2.refresh);\n }\n });\n }\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { isBoolean } from '../../../utils/inspect'; // Main `<table>` render mixin\n// Includes all main table styling options\n\nexport default {\n // Don't place attributes on root element automatically,\n // as table could be wrapped in responsive `<div>`\n inheritAttrs: false,\n provide: function provide() {\n return {\n bvTable: this\n };\n },\n props: {\n striped: {\n type: Boolean,\n default: false\n },\n bordered: {\n type: Boolean,\n default: false\n },\n borderless: {\n type: Boolean,\n default: false\n },\n outlined: {\n type: Boolean,\n default: false\n },\n dark: {\n type: Boolean,\n default: false\n },\n hover: {\n type: Boolean,\n default: false\n },\n small: {\n type: Boolean,\n default: false\n },\n fixed: {\n type: Boolean,\n default: false\n },\n responsive: {\n type: [Boolean, String],\n default: false\n },\n stickyHeader: {\n // If a string, it is assumed to be the table `max-height` value\n type: [Boolean, String],\n default: false\n },\n noBorderCollapse: {\n type: Boolean,\n default: false\n },\n captionTop: {\n type: Boolean,\n default: false\n },\n tableVariant: {\n type: String,\n default: null\n },\n tableClass: {\n type: [String, Array, Object],\n default: null\n }\n },\n computed: {\n // Layout related computed props\n isResponsive: function isResponsive() {\n var responsive = this.responsive === '' ? true : this.responsive;\n return this.isStacked ? false : responsive;\n },\n isStickyHeader: function isStickyHeader() {\n var stickyHeader = this.stickyHeader === '' ? true : this.stickyHeader;\n return this.isStacked ? false : stickyHeader;\n },\n wrapperClasses: function wrapperClasses() {\n return [this.isStickyHeader ? 'b-table-sticky-header' : '', this.isResponsive === true ? 'table-responsive' : this.isResponsive ? \"table-responsive-\".concat(this.responsive) : ''].filter(Boolean);\n },\n wrapperStyles: function wrapperStyles() {\n return this.isStickyHeader && !isBoolean(this.isStickyHeader) ? {\n maxHeight: this.isStickyHeader\n } : {};\n },\n tableClasses: function tableClasses() {\n var hover = this.isTableSimple ? this.hover : this.hover && this.computedItems.length > 0 && !this.computedBusy;\n return [// User supplied classes\n this.tableClass, // Styling classes\n {\n 'table-striped': this.striped,\n 'table-hover': hover,\n 'table-dark': this.dark,\n 'table-bordered': this.bordered,\n 'table-borderless': this.borderless,\n 'table-sm': this.small,\n // The following are b-table custom styles\n border: this.outlined,\n 'b-table-fixed': this.fixed,\n 'b-table-caption-top': this.captionTop,\n 'b-table-no-border-collapse': this.noBorderCollapse\n }, this.tableVariant ? \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(this.tableVariant) : '', // Stacked table classes\n this.stackedTableClasses, // Selectable classes\n this.selectableTableClasses];\n },\n tableAttrs: function tableAttrs() {\n // Preserve user supplied aria-describedby, if provided in `$attrs`\n var adb = [(this.$attrs || {})['aria-describedby'], this.captionId].filter(Boolean).join(' ') || null;\n var items = this.computedItems;\n var filteredItems = this.filteredItems;\n var fields = this.computedFields;\n var selectableAttrs = this.selectableTableAttrs || {};\n var ariaAttrs = this.isTableSimple ? {} : {\n 'aria-busy': this.computedBusy ? 'true' : 'false',\n 'aria-colcount': String(fields.length),\n 'aria-describedby': adb\n };\n var rowCount = items && filteredItems && filteredItems.length > items.length ? String(filteredItems.length) : null;\n return _objectSpread({\n // We set `aria-rowcount` before merging in `$attrs`,\n // in case user has supplied their own\n 'aria-rowcount': rowCount\n }, this.$attrs, {\n // Now we can override any `$attrs` here\n id: this.safeId(),\n role: 'table'\n }, ariaAttrs, {}, selectableAttrs);\n }\n },\n render: function render(h) {\n var $content = [];\n\n if (this.isTableSimple) {\n $content.push(this.normalizeSlot('default', {}));\n } else {\n // Build the `<caption>` (from caption mixin)\n $content.push(this.renderCaption ? this.renderCaption() : null); // Build the `<colgroup>`\n\n $content.push(this.renderColgroup ? this.renderColgroup() : null); // Build the `<thead>`\n\n $content.push(this.renderThead ? this.renderThead() : null); // Build the `<tbody>`\n\n $content.push(this.renderTbody ? this.renderTbody() : null); // Build the `<tfoot>`\n\n $content.push(this.renderTfoot ? this.renderTfoot() : null);\n } // Assemble `<table>`\n\n\n var $table = h('table', {\n key: 'b-table',\n staticClass: 'table b-table',\n class: this.tableClasses,\n attrs: this.tableAttrs\n }, $content.filter(Boolean)); // Add responsive/sticky wrapper if needed and return table\n\n return this.wrapperClasses.length > 0 ? h('div', {\n key: 'wrap',\n class: this.wrapperClasses,\n style: this.wrapperStyles\n }, [$table]) : $table;\n }\n};","import Vue from '../../utils/vue'; // Mixins\n\nimport idMixin from '../../mixins/id';\nimport normalizeSlotMixin from '../../mixins/normalize-slot'; // Table helper Mixins\n\nimport itemsMixin from './helpers/mixin-items';\nimport stackedMixin from './helpers/mixin-stacked';\nimport filteringMixin from './helpers/mixin-filtering';\nimport sortingMixin from './helpers/mixin-sorting';\nimport paginationMixin from './helpers/mixin-pagination';\nimport captionMixin from './helpers/mixin-caption';\nimport colgroupMixin from './helpers/mixin-colgroup';\nimport theadMixin from './helpers/mixin-thead';\nimport tfootMixin from './helpers/mixin-tfoot';\nimport tbodyMixin from './helpers/mixin-tbody';\nimport emptyMixin from './helpers/mixin-empty';\nimport topRowMixin from './helpers/mixin-top-row';\nimport bottomRowMixin from './helpers/mixin-bottom-row';\nimport busyMixin from './helpers/mixin-busy';\nimport selectableMixin from './helpers/mixin-selectable';\nimport providerMixin from './helpers/mixin-provider'; // Main table renderer mixin\n\nimport tableRendererMixin from './helpers/mixin-table-renderer'; // b-table component definition\n// @vue/component\n\nexport var BTable =\n/*#__PURE__*/\nVue.extend({\n name: 'BTable',\n // Order of mixins is important!\n // They are merged from first to last, followed by this component.\n mixins: [// Required Mixins\n idMixin, normalizeSlotMixin, itemsMixin, tableRendererMixin, stackedMixin, theadMixin, tfootMixin, tbodyMixin, // Features Mixins\n stackedMixin, filteringMixin, sortingMixin, paginationMixin, captionMixin, colgroupMixin, selectableMixin, emptyMixin, topRowMixin, bottomRowMixin, busyMixin, providerMixin] // render function provided by table-renderer mixin\n\n});","import Vue from '../../utils/vue'; // Mixins\n\nimport idMixin from '../../mixins/id';\nimport normalizeSlotMixin from '../../mixins/normalize-slot'; // Table helper Mixins\n\nimport itemsMixin from './helpers/mixin-items';\nimport captionMixin from './helpers/mixin-caption';\nimport colgroupMixin from './helpers/mixin-colgroup';\nimport stackedMixin from './helpers/mixin-stacked';\nimport theadMixin from './helpers/mixin-thead';\nimport tfootMixin from './helpers/mixin-tfoot';\nimport tbodyMixin from './helpers/mixin-tbody'; // Main table renderer mixin\n\nimport tableRendererMixin from './helpers/mixin-table-renderer'; // b-table-lite component definition\n// @vue/component\n\nexport var BTableLite =\n/*#__PURE__*/\nVue.extend({\n name: 'BTableLite',\n // Order of mixins is important!\n // They are merged from first to last, followed by this component.\n mixins: [// Required mixins\n idMixin, normalizeSlotMixin, itemsMixin, tableRendererMixin, stackedMixin, theadMixin, tfootMixin, tbodyMixin, // Features Mixins\n // These are pretty lightweight, and are useful for lightweight tables\n captionMixin, colgroupMixin] // render function provided by table-renderer mixin\n\n});","import Vue from '../../utils/vue'; // Mixins\n\nimport idMixin from '../../mixins/id';\nimport normalizeSlotMixin from '../../mixins/normalize-slot'; // Main table renderer mixin\n\nimport tableRendererMixin from './helpers/mixin-table-renderer'; // Feature miins\n\nimport stackedMixin from './helpers/mixin-stacked'; // b-table-simple component definition\n// @vue/component\n\nexport var BTableSimple =\n/*#__PURE__*/\nVue.extend({\n name: 'BTableSimple',\n // Order of mixins is important!\n // They are merged from first to last, followed by this component.\n mixins: [// Required mixins\n idMixin, normalizeSlotMixin, tableRendererMixin, // feature mixin\n // Stacked requires extra handling by users via\n // the table cell `stacked-heading` prop\n stackedMixin],\n computed: {\n isTableSimple: function isTableSimple() {\n return true;\n }\n } // render function provided by table-renderer mixin\n\n});","import { BTable } from './table';\nimport { BTableLite } from './table-lite';\nimport { BTableSimple } from './table-simple';\nimport { BTbody } from './tbody';\nimport { BThead } from './thead';\nimport { BTfoot } from './tfoot';\nimport { BTr } from './tr';\nimport { BTd } from './td';\nimport { BTh } from './th';\nimport { pluginFactory } from '../../utils/plugins';\nvar TableLitePlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BTableLite: BTableLite\n }\n});\nvar TableSimplePlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BTableSimple: BTableSimple,\n BTbody: BTbody,\n BThead: BThead,\n BTfoot: BTfoot,\n BTr: BTr,\n BTd: BTd,\n BTh: BTh\n }\n});\nvar TablePlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BTable: BTable\n },\n plugins: {\n TableLitePlugin: TableLitePlugin,\n TableSimplePlugin: TableSimplePlugin\n }\n});\nexport { // Plugins\nTablePlugin, TableLitePlugin, TableSimplePlugin // Table components\n, BTable, BTableLite, BTableSimple // Helper components\n, BTbody, BThead, BTfoot, BTr, BTd, BTh };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport KeyCodes from '../../utils/key-codes';\nimport looseEqual from '../../utils/loose-equal';\nimport observeDom from '../../utils/observe-dom';\nimport stableSort from '../../utils/stable-sort';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { requestAF, selectAll } from '../../utils/dom';\nimport { isEvent } from '../../utils/inspect';\nimport { omit } from '../../utils/object';\nimport idMixin from '../../mixins/id';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport { BLink } from '../link/link';\nimport { BNav, props as BNavProps } from '../nav/nav'; // -- Constants --\n\nvar navProps = omit(BNavProps, ['tabs', 'isNavBar']); // -- Utils --\n// Filter function to filter out disabled tabs\n\nvar notDisabled = function notDisabled(tab) {\n return !tab.disabled;\n}; // --- Helper components ---\n// @vue/component\n\n\nvar BTabButtonHelper =\n/*#__PURE__*/\nVue.extend({\n name: 'BTabButtonHelper',\n inject: {\n bvTabs: {\n default: function _default()\n /* istanbul ignore next */\n {\n return {};\n }\n }\n },\n props: {\n // Reference to the child <b-tab> instance\n tab: {\n default: null\n },\n tabs: {\n type: Array,\n default: function _default()\n /* istanbul ignore next */\n {\n return [];\n }\n },\n id: {\n type: String,\n default: null\n },\n controls: {\n type: String,\n default: null\n },\n tabIndex: {\n type: Number,\n default: null\n },\n posInSet: {\n type: Number,\n default: null\n },\n setSize: {\n type: Number,\n default: null\n },\n noKeyNav: {\n type: Boolean,\n default: false\n }\n },\n methods: {\n focus: function focus() {\n if (this.$refs && this.$refs.link && this.$refs.link.focus) {\n this.$refs.link.focus();\n }\n },\n handleEvt: function handleEvt(evt) {\n var stop = function stop() {\n evt.preventDefault();\n evt.stopPropagation();\n };\n\n if (this.tab.disabled) {\n /* istanbul ignore next */\n return;\n }\n\n var type = evt.type;\n var key = evt.keyCode;\n var shift = evt.shiftKey;\n\n if (type === 'click') {\n stop();\n this.$emit('click', evt);\n } else if (type === 'keydown' && !this.noKeyNav && key === KeyCodes.SPACE) {\n // In keynav mode, SPACE press will also trigger a click/select\n stop();\n this.$emit('click', evt);\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if (key === KeyCodes.UP || key === KeyCodes.LEFT || key === KeyCodes.HOME) {\n stop();\n\n if (shift || key === KeyCodes.HOME) {\n this.$emit('first', evt);\n } else {\n this.$emit('prev', evt);\n }\n } else if (key === KeyCodes.DOWN || key === KeyCodes.RIGHT || key === KeyCodes.END) {\n stop();\n\n if (shift || key === KeyCodes.END) {\n this.$emit('last', evt);\n } else {\n this.$emit('next', evt);\n }\n }\n }\n }\n },\n render: function render(h) {\n var link = h(BLink, {\n ref: 'link',\n staticClass: 'nav-link',\n class: [{\n active: this.tab.localActive && !this.tab.disabled,\n disabled: this.tab.disabled\n }, this.tab.titleLinkClass, // Apply <b-tabs> `activeNavItemClass` styles when the tab is active\n this.tab.localActive ? this.bvTabs.activeNavItemClass : null],\n props: {\n disabled: this.tab.disabled\n },\n attrs: {\n role: 'tab',\n id: this.id,\n // Roving tab index when keynav enabled\n tabindex: this.tabIndex,\n 'aria-selected': this.tab.localActive && !this.tab.disabled ? 'true' : 'false',\n 'aria-setsize': this.setSize,\n 'aria-posinset': this.posInSet,\n 'aria-controls': this.controls\n },\n on: {\n click: this.handleEvt,\n keydown: this.handleEvt\n }\n }, [this.tab.normalizeSlot('title') || this.tab.title]);\n return h('li', {\n staticClass: 'nav-item',\n class: [this.tab.titleItemClass],\n attrs: {\n role: 'presentation'\n }\n }, [link]);\n }\n}); // @vue/component\n\nexport var BTabs =\n/*#__PURE__*/\nVue.extend({\n name: 'BTabs',\n mixins: [idMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTabs: this\n };\n },\n model: {\n prop: 'value',\n event: 'input'\n },\n props: _objectSpread({}, navProps, {\n tag: {\n type: String,\n default: 'div'\n },\n card: {\n type: Boolean,\n default: false\n },\n end: {\n // Synonym for 'bottom'\n type: Boolean,\n default: false\n },\n noFade: {\n type: Boolean,\n default: false\n },\n noNavStyle: {\n type: Boolean,\n default: false\n },\n noKeyNav: {\n type: Boolean,\n default: false\n },\n lazy: {\n // This prop is sniffed by the <b-tab> child\n type: Boolean,\n default: false\n },\n contentClass: {\n type: [String, Array, Object],\n default: null\n },\n navClass: {\n type: [String, Array, Object],\n default: null\n },\n navWrapperClass: {\n type: [String, Array, Object],\n default: null\n },\n activeNavItemClass: {\n // Only applied to the currently active <b-nav-item>\n type: [String, Array, Object],\n default: null\n },\n activeTabClass: {\n // Only applied to the currently active <b-tab>\n // This prop is sniffed by the <b-tab> child\n type: [String, Array, Object],\n default: null\n },\n value: {\n // v-model\n type: Number,\n default: null\n }\n }),\n data: function data() {\n var tabIdx = parseInt(this.value, 10);\n tabIdx = isNaN(tabIdx) ? -1 : tabIdx;\n return {\n // Index of current tab\n currentTab: tabIdx,\n // Array of direct child <b-tab> instances, in DOM order\n tabs: [],\n // Array of child instances registered (for triggering reactive updates)\n registeredTabs: [],\n // Flag to know if we are mounted or not\n isMounted: false\n };\n },\n computed: {\n fade: function fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n },\n localNavClass: function localNavClass() {\n var classes = [];\n\n if (this.card && this.vertical) {\n classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0');\n }\n\n return [].concat(classes, [this.navClass]);\n }\n },\n watch: {\n currentTab: function currentTab(val, old) {\n var index = -1; // Ensure only one tab is active at most\n\n this.tabs.forEach(function (tab, idx) {\n if (val === idx && !tab.disabled) {\n tab.localActive = true;\n index = idx;\n } else {\n tab.localActive = false;\n }\n }); // Update the v-model\n\n this.$emit('input', index);\n },\n value: function value(val, old) {\n if (val !== old) {\n val = parseInt(val, 10);\n val = isNaN(val) ? -1 : val;\n old = parseInt(old, 10) || 0;\n var tabs = this.tabs;\n\n if (tabs[val] && !tabs[val].disabled) {\n this.currentTab = val;\n } else {\n // Try next or prev tabs\n if (val < old) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n },\n registeredTabs: function registeredTabs(newVal, oldVal) {\n var _this = this;\n\n // Each b-tab will register/unregister itself.\n // We use this to detect when tabs are added/removed\n // to trigger the update of the tabs.\n this.$nextTick(function () {\n requestAF(function () {\n _this.updateTabs();\n });\n });\n },\n tabs: function tabs(newVal, oldVal) {\n var _this2 = this;\n\n // If tabs added, removed, or re-ordered, we emit a `changed` event.\n // We use `tab._uid` instead of `tab.safeId()`, as the later is changed\n // in a nextTick if no explicit ID is provided, causing duplicate emits.\n if (!looseEqual(newVal.map(function (t) {\n return t._uid;\n }), oldVal.map(function (t) {\n return t._uid;\n }))) {\n // In a nextTick to ensure currentTab has been set first.\n this.$nextTick(function () {\n // We emit shallow copies of the new and old arrays of tabs, to\n // prevent users from potentially mutating the internal arrays.\n _this2.$emit('changed', newVal.slice(), oldVal.slice());\n });\n }\n },\n isMounted: function isMounted(newVal, oldVal) {\n var _this3 = this;\n\n // Trigger an update after mounted. Needed for tabs inside lazy modals.\n if (newVal) {\n requestAF(function () {\n _this3.updateTabs();\n });\n } // Enable or disable the observer\n\n\n this.setObserver(newVal);\n }\n },\n created: function created() {\n var _this4 = this;\n\n var tabIdx = parseInt(this.value, 10);\n this.currentTab = isNaN(tabIdx) ? -1 : tabIdx;\n this._bvObserver = null; // For SSR and to make sure only a single tab is shown on mount\n // We wrap this in a `$nextTick()` to ensure the child tabs have been created\n\n this.$nextTick(function () {\n _this4.updateTabs();\n });\n },\n mounted: function mounted() {\n var _this5 = this;\n\n // Call `updateTabs()` just in case...\n this.updateTabs();\n this.$nextTick(function () {\n // Flag we are now mounted and to switch to DOM for tab probing.\n // As this.$slots.default appears to lie about component instances\n // after b-tabs is destroyed and re-instantiated.\n // And this.$children does not respect DOM order.\n _this5.isMounted = true;\n });\n },\n deactivated: function deactivated()\n /* istanbul ignore next */\n {\n this.isMounted = false;\n },\n activated: function activated()\n /* istanbul ignore next */\n {\n var _this6 = this;\n\n var tabIdx = parseInt(this.value, 10);\n this.currentTab = isNaN(tabIdx) ? -1 : tabIdx;\n this.$nextTick(function () {\n _this6.updateTabs();\n\n _this6.isMounted = true;\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.isMounted = false;\n },\n destroyed: function destroyed() {\n // Ensure no references to child instances exist\n this.tabs = [];\n },\n methods: {\n registerTab: function registerTab(tab) {\n var _this7 = this;\n\n if (!arrayIncludes(this.registeredTabs, tab)) {\n this.registeredTabs.push(tab);\n tab.$once('hook:destroyed', function () {\n _this7.unregisterTab(tab);\n });\n }\n },\n unregisterTab: function unregisterTab(tab) {\n this.registeredTabs = this.registeredTabs.slice().filter(function (t) {\n return t !== tab;\n });\n },\n setObserver: function setObserver(on) {\n // DOM observer is needed to detect changes in order of tabs\n if (on) {\n // Make sure no existing observer running\n this.setObserver(false);\n var self = this;\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n\n var handler = function handler() {\n // We delay the update to ensure that `tab.safeId()` has\n // updated with the final ID value.\n self.$nextTick(function () {\n requestAF(function () {\n self.updateTabs();\n });\n });\n }; // Watch for changes to <b-tab> sub components\n\n\n this._bvObserver = observeDom(this.$refs.tabsContainer, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n } else {\n if (this._bvObserver && this._bvObserver.disconnect) {\n this._bvObserver.disconnect();\n }\n\n this._bvObserver = null;\n }\n },\n getTabs: function getTabs() {\n // We use registeredTabs as the source of truth for child tab components. And we\n // filter out any BTab components that are extended BTab with a root child BTab.\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3260\n var tabs = this.registeredTabs.filter(function (tab) {\n return tab.$children.filter(function (t) {\n return t._isTab;\n }).length === 0;\n }); // DOM Order of Tabs\n\n var order = [];\n\n if (this.isMounted && tabs.length > 0) {\n // We rely on the DOM when mounted to get the 'true' order of the b-tab children.\n // querySelectorAll(...) always returns elements in document order, regardless of\n // order specified in the selector.\n var selector = tabs.map(function (tab) {\n return \"#\".concat(tab.safeId());\n }).join(', ');\n order = selectAll(selector, this.$el).map(function (el) {\n return el.id;\n }).filter(Boolean);\n } // Stable sort keeps the original order if not found in the\n // `order` array, which will be an empty array before mount.\n\n\n return stableSort(tabs, function (a, b) {\n return order.indexOf(a.safeId()) - order.indexOf(b.safeId());\n });\n },\n // Update list of <b-tab> children\n updateTabs: function updateTabs() {\n // Probe tabs\n var tabs = this.getTabs(); // Find *last* active non-disabled tab in current tabs\n // We trust tab state over currentTab, in case tabs were added/removed/re-ordered\n\n var tabIndex = tabs.indexOf(tabs.slice().reverse().find(function (tab) {\n return tab.localActive && !tab.disabled;\n })); // Else try setting to currentTab\n\n if (tabIndex < 0) {\n var currentTab = this.currentTab;\n\n if (currentTab >= tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = tabs.indexOf(tabs.slice().reverse().find(notDisabled));\n } else if (tabs[currentTab] && !tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab;\n }\n } // Else find *first* non-disabled tab in current tabs\n\n\n if (tabIndex < 0) {\n tabIndex = tabs.indexOf(tabs.find(notDisabled));\n } // Set the current tab state to active\n\n\n tabs.forEach(function (tab, idx) {\n // tab.localActive = idx === tabIndex && !tab.disabled\n tab.localActive = false;\n });\n\n if (tabs[tabIndex]) {\n tabs[tabIndex].localActive = true;\n } // Update the array of tab children\n\n\n this.tabs = tabs; // Set the currentTab index (can be -1 if no non-disabled tabs)\n\n this.currentTab = tabIndex;\n },\n // Find a button that controls a tab, given the tab reference\n // Returns the button vm instance\n getButtonForTab: function getButtonForTab(tab) {\n return (this.$refs.buttons || []).find(function (btn) {\n return btn.tab === tab;\n });\n },\n // Force a button to re-render it's content, given a <b-tab> instance\n // Called by <b-tab> on `update()`\n updateButton: function updateButton(tab) {\n var button = this.getButtonForTab(tab);\n\n if (button && button.$forceUpdate) {\n button.$forceUpdate();\n }\n },\n // Activate a tab given a <b-tab> instance\n // Also accessed by <b-tab>\n activateTab: function activateTab(tab) {\n var result = false;\n\n if (tab) {\n var index = this.tabs.indexOf(tab);\n\n if (!tab.disabled && index > -1) {\n result = true;\n this.currentTab = index;\n }\n }\n\n if (!result) {\n // Couldn't set tab, so ensure v-model is set to `this.currentTab`\n\n /* istanbul ignore next: should rarely happen */\n this.$emit('input', this.currentTab);\n }\n\n return result;\n },\n // Deactivate a tab given a <b-tab> instance\n // Accessed by <b-tab>\n deactivateTab: function deactivateTab(tab) {\n if (tab) {\n // Find first non-disabled tab that isn't the one being deactivated\n // If no tabs are available, then don't deactivate current tab\n return this.activateTab(this.tabs.filter(function (t) {\n return t !== tab;\n }).find(notDisabled));\n } else {\n // No tab specified\n\n /* istanbul ignore next: should never happen */\n return false;\n }\n },\n // Focus a tab button given it's <b-tab> instance\n focusButton: function focusButton(tab) {\n var _this8 = this;\n\n // Wrap in `$nextTick()` to ensure DOM has completed rendering/updating before focusing\n this.$nextTick(function () {\n var button = _this8.getButtonForTab(tab);\n\n if (button && button.focus) {\n button.focus();\n }\n });\n },\n // Emit a click event on a specified <b-tab> component instance\n emitTabClick: function emitTabClick(tab, evt) {\n if (isEvent(evt) && tab && tab.$emit && !tab.disabled) {\n tab.$emit('click', evt);\n }\n },\n // Click handler\n clickTab: function clickTab(tab, evt) {\n this.activateTab(tab);\n this.emitTabClick(tab, evt);\n },\n // Move to first non-disabled tab\n firstTab: function firstTab(focus) {\n var tab = this.tabs.find(notDisabled);\n\n if (this.activateTab(tab) && focus) {\n this.focusButton(tab);\n this.emitTabClick(tab, focus);\n }\n },\n // Move to previous non-disabled tab\n previousTab: function previousTab(focus) {\n var currentIndex = Math.max(this.currentTab, 0);\n var tab = this.tabs.slice(0, currentIndex).reverse().find(notDisabled);\n\n if (this.activateTab(tab) && focus) {\n this.focusButton(tab);\n this.emitTabClick(tab, focus);\n }\n },\n // Move to next non-disabled tab\n nextTab: function nextTab(focus) {\n var currentIndex = Math.max(this.currentTab, -1);\n var tab = this.tabs.slice(currentIndex + 1).find(notDisabled);\n\n if (this.activateTab(tab) && focus) {\n this.focusButton(tab);\n this.emitTabClick(tab, focus);\n }\n },\n // Move to last non-disabled tab\n lastTab: function lastTab(focus) {\n var tab = this.tabs.slice().reverse().find(notDisabled);\n\n if (this.activateTab(tab) && focus) {\n this.focusButton(tab);\n this.emitTabClick(tab, focus);\n }\n }\n },\n render: function render(h) {\n var _this9 = this;\n\n var tabs = this.tabs; // Currently active tab\n\n var activeTab = tabs.find(function (tab) {\n return tab.localActive && !tab.disabled;\n }); // Tab button to allow focusing when no active tab found (keynav only)\n\n var fallbackTab = tabs.find(function (tab) {\n return !tab.disabled;\n }); // For each <b-tab> found create the tab buttons\n\n var buttons = tabs.map(function (tab, index) {\n var tabIndex = null; // Ensure at least one tab button is focusable when keynav enabled (if possible)\n\n if (!_this9.noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n\n if (activeTab === tab || !activeTab && fallbackTab === tab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\n }\n\n return h(BTabButtonHelper, {\n key: tab._uid || index,\n ref: 'buttons',\n // Needed to make `this.$refs.buttons` an array\n refInFor: true,\n props: {\n tab: tab,\n tabs: tabs,\n id: tab.controlledBy || (tab.safeId ? tab.safeId(\"_BV_tab_button_\") : null),\n controls: tab.safeId ? tab.safeId() : null,\n tabIndex: tabIndex,\n setSize: tabs.length,\n posInSet: index + 1,\n noKeyNav: _this9.noKeyNav\n },\n on: {\n click: function click(evt) {\n _this9.clickTab(tab, evt);\n },\n first: _this9.firstTab,\n prev: _this9.previousTab,\n next: _this9.nextTab,\n last: _this9.lastTab\n }\n });\n }); // Nav\n\n var nav = h(BNav, {\n ref: 'nav',\n class: this.localNavClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill: this.fill,\n justified: this.justified,\n align: this.align,\n tabs: !this.noNavStyle && !this.pills,\n pills: !this.noNavStyle && this.pills,\n vertical: this.vertical,\n small: this.small,\n cardHeader: this.card && !this.vertical\n }\n }, [this.normalizeSlot('tabs-start') || h(), buttons, this.normalizeSlot('tabs-end') || h()]);\n nav = h('div', {\n key: 'bv-tabs-nav',\n class: [{\n 'card-header': this.card && !this.vertical && !this.end,\n 'card-footer': this.card && !this.vertical && this.end,\n 'col-auto': this.vertical\n }, this.navWrapperClass]\n }, [nav]);\n var empty = h();\n\n if (!tabs || tabs.length === 0) {\n empty = h('div', {\n key: 'bv-empty-tab',\n class: ['tab-pane', 'active', {\n 'card-body': this.card\n }]\n }, this.normalizeSlot('empty'));\n } // Main content section\n\n\n var content = h('div', {\n ref: 'tabsContainer',\n key: 'bv-tabs-container',\n staticClass: 'tab-content',\n class: [{\n col: this.vertical\n }, this.contentClass],\n attrs: {\n id: this.safeId('_BV_tab_container_')\n }\n }, concat(this.normalizeSlot('default'), empty)); // Render final output\n\n return h(this.tag, {\n staticClass: 'tabs',\n class: {\n row: this.vertical,\n 'no-gutters': this.vertical && this.card\n },\n attrs: {\n id: this.safeId()\n }\n }, [this.end ? content : h(), [nav], this.end ? h() : content]);\n }\n});","import Vue from '../../utils/vue';\nimport idMixin from '../../mixins/id';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport BVTransition from '../../utils/bv-transition'; // @vue/component\n\nexport var BTab =\n/*#__PURE__*/\nVue.extend({\n name: 'BTab',\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvTabs: {\n default: function _default() {\n return {\n // Don't set a tab index if not rendered inside <b-tabs>\n noKeyNav: true\n };\n }\n }\n },\n props: {\n active: {\n type: Boolean,\n default: false\n },\n tag: {\n type: String,\n default: 'div'\n },\n buttonId: {\n type: String,\n default: ''\n },\n title: {\n type: String,\n default: ''\n },\n titleItemClass: {\n // Sniffed by tabs.js and added to nav 'li.nav-item'\n type: [String, Array, Object],\n default: null\n },\n titleLinkClass: {\n // Sniffed by tabs.js and added to nav 'a.nav-link'\n type: [String, Array, Object],\n default: null\n },\n headHtml: {\n // Is this actually ever used?\n type: String,\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n noBody: {\n type: Boolean,\n default: false\n },\n lazy: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n localActive: this.active && !this.disabled,\n show: false\n };\n },\n computed: {\n tabClasses: function tabClasses() {\n return [{\n active: this.localActive,\n disabled: this.disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n }, // Apply <b-tabs> `activeTabClass` styles when this tab is active\n this.localActive ? this.bvTabs.activeTabClass : null];\n },\n controlledBy: function controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedNoFade: function computedNoFade() {\n return !(this.bvTabs.fade || false);\n },\n computedLazy: function computedLazy() {\n return this.bvTabs.lazy || this.lazy;\n },\n _isTab: function _isTab() {\n // For parent sniffing of child\n return true;\n }\n },\n watch: {\n localActive: function localActive(newVal, oldVal) {\n // Make 'active' prop work with `.sync` modifier\n this.$emit('update:active', newVal);\n },\n active: function active(newVal, oldVal) {\n if (newVal !== oldVal) {\n if (newVal) {\n // If activated post mount\n this.activate();\n } else {\n /* istanbul ignore next */\n if (!this.deactivate()) {\n // Tab couldn't be deactivated, so we reset the synced active prop\n // Deactivation will fail if no other tabs to activate\n this.$emit('update:active', this.localActive);\n }\n }\n }\n },\n disabled: function disabled(newVal, oldVal) {\n if (newVal !== oldVal) {\n if (newVal && this.localActive && this.bvTabs.firstTab) {\n this.localActive = false;\n this.bvTabs.firstTab();\n }\n }\n }\n },\n mounted: function mounted() {\n // Inform b-tabs of our presence\n this.registerTab(); // Initially show on mount if active and not disabled\n\n this.show = this.localActive;\n },\n updated: function updated() {\n // Force the tab button content to update (since slots are not reactive)\n // Only done if we have a title slot, as the title prop is reactive\n if (this.hasNormalizedSlot('title') && this.bvTabs.updateButton) {\n this.bvTabs.updateButton(this);\n }\n },\n destroyed: function destroyed() {\n // inform b-tabs of our departure\n this.unregisterTab();\n },\n methods: {\n // Private methods\n registerTab: function registerTab() {\n // Inform `b-tabs` of our presence\n this.bvTabs.registerTab && this.bvTabs.registerTab(this);\n },\n unregisterTab: function unregisterTab() {\n // Inform `b-tabs` of our departure\n this.bvTabs.unregisterTab && this.bvTabs.unregisterTab(this);\n },\n // Public methods\n activate: function activate() {\n if (this.bvTabs.activateTab && !this.disabled) {\n return this.bvTabs.activateTab(this);\n } else {\n // Not inside a <b-tabs> component or tab is disabled\n return false;\n }\n },\n deactivate: function deactivate() {\n if (this.bvTabs.deactivateTab && this.localActive) {\n return this.bvTabs.deactivateTab(this);\n } else {\n // Not inside a <b-tabs> component or not active to begin with\n return false;\n }\n }\n },\n render: function render(h) {\n var content = h(this.tag, {\n ref: 'panel',\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [{\n name: 'show',\n rawName: 'v-show',\n value: this.localActive,\n expression: 'localActive'\n }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n tabindex: this.localActive && !this.bvTabs.noKeyNav ? '-1' : null,\n 'aria-hidden': this.localActive ? 'false' : 'true',\n 'aria-labelledby': this.controlledBy || null\n }\n }, // Render content lazily if requested\n [this.localActive || !this.computedLazy ? this.normalizeSlot('default') : h()]);\n return h(BVTransition, {\n props: {\n mode: 'out-in',\n noFade: this.computedNoFade\n }\n }, [content]);\n }\n});","import { BTabs } from './tabs';\nimport { BTab } from './tab';\nimport { pluginFactory } from '../../utils/plugins';\nvar TabsPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BTabs: BTabs,\n BTab: BTab\n }\n});\nexport { TabsPlugin, BTabs, BTab };","import Vue from '../../utils/vue';\nimport { PortalTarget, Wormhole } from 'portal-vue';\nimport warn from '../../utils/warn';\nimport { getComponentConfig } from '../../utils/config';\nimport { removeClass, requestAF } from '../../utils/dom'; // --- Constants ---\n\nvar NAME = 'BToaster';\nexport var props = {\n name: {\n type: String,\n required: true\n },\n ariaLive: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'ariaLive');\n }\n },\n ariaAtomic: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'ariaAtomic');\n } // Allowed: 'true' or 'false' or null\n\n },\n role: {\n // Aria role\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'role');\n }\n }\n}; // @vue/component\n\nexport var DefaultTransition =\n/*#__PURE__*/\nVue.extend({\n data: function data() {\n return {\n // Transition classes base name\n name: 'b-toaster'\n };\n },\n methods: {\n onAfterEnter: function onAfterEnter(el) {\n var _this = this;\n\n // Handle bug where enter-to class is not removed.\n // Bug is related to portal-vue and transition-groups.\n requestAF(function () {\n removeClass(el, \"\".concat(_this.name, \"-enter-to\")); // The *-move class is also stuck on elements that moved,\n // but there are no javascript hooks to handle after move.\n });\n }\n },\n render: function render(h) {\n return h('transition-group', {\n props: {\n tag: 'div',\n name: this.name\n },\n on: {\n afterEnter: this.onAfterEnter\n }\n }, this.$slots.default);\n }\n}); // @vue/component\n\nexport var BToaster =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n props: props,\n data: function data() {\n return {\n // We don't render on SSR or if a an existing target found\n doRender: false,\n dead: false,\n // Toaster names cannot change once created\n staticName: this.name\n };\n },\n beforeMount: function beforeMount() {\n var _this2 = this;\n\n this.staticName = this.name;\n /* istanbul ignore if */\n\n if (Wormhole.hasTarget(this.staticName)) {\n warn(\"b-toaster: A <portal-target> with name '\".concat(this.name, \"' already exists in the document.\"));\n this.dead = true;\n } else {\n this.doRender = true;\n this.$once('hook:beforeDestroy', function () {\n // Let toasts made with `this.$bvToast.toast()` know that this toaster\n // is being destroyed and should should also destroy/hide themselves\n _this2.$root.$emit('bv::toaster::destroyed', _this2.staticName);\n });\n }\n },\n destroyed: function destroyed() {\n // Remove from DOM if needed\n\n /* istanbul ignore next: difficult to test */\n if (this.$el && this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$el);\n }\n },\n render: function render(h) {\n var $toaster = h('div', {\n class: ['d-none', {\n 'b-dead-toaster': this.dead\n }]\n });\n\n if (this.doRender) {\n var $target = h(PortalTarget, {\n staticClass: 'b-toaster-slot',\n props: {\n name: this.staticName,\n multiple: true,\n tag: 'div',\n slim: false,\n // transition: this.transition || DefaultTransition\n transition: DefaultTransition\n }\n });\n $toaster = h('div', {\n staticClass: 'b-toaster',\n class: [this.staticName],\n attrs: {\n id: this.staticName,\n role: this.role || null,\n // Fallback to null to make sure attribute doesn't exist\n 'aria-live': this.ariaLive,\n 'aria-atomic': this.ariaAtomic\n }\n }, [$target]);\n }\n\n return $toaster;\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport { Portal, Wormhole } from 'portal-vue';\nimport BVTransition from '../../utils/bv-transition';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { getComponentConfig } from '../../utils/config';\nimport { requestAF, eventOn, eventOff } from '../../utils/dom';\nimport idMixin from '../../mixins/id';\nimport listenOnRootMixin from '../../mixins/listen-on-root';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport scopedStyleAttrsMixin from '../../mixins/scoped-style-attrs';\nimport { BToaster } from './toaster';\nimport { BButtonClose } from '../button/button-close';\nimport { BLink } from '../link/link'; // --- Constants ---\n\nvar NAME = 'BToast';\nvar MIN_DURATION = 1000;\nvar EVENT_OPTIONS = {\n passive: true,\n capture: false\n}; // --- Props ---\n\nexport var props = {\n id: {\n // Even though the ID prop is provided by idMixin, we\n // add it here for $bvToast props filtering\n type: String,\n default: null\n },\n title: {\n type: String,\n default: null\n },\n toaster: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'toaster');\n }\n },\n visible: {\n type: Boolean,\n default: false\n },\n variant: {\n type: String,\n default: function _default() {\n return getComponentConfig(NAME, 'variant');\n }\n },\n isStatus: {\n // Switches role to 'status' and aria-live to 'polite'\n type: Boolean,\n default: false\n },\n appendToast: {\n type: Boolean,\n default: false\n },\n noAutoHide: {\n type: Boolean,\n default: false\n },\n autoHideDelay: {\n type: [Number, String],\n default: function _default() {\n return getComponentConfig(NAME, 'autoHideDelay');\n }\n },\n noCloseButton: {\n type: Boolean,\n default: false\n },\n noFade: {\n type: Boolean,\n default: false\n },\n noHoverPause: {\n type: Boolean,\n default: false\n },\n solid: {\n type: Boolean,\n default: false\n },\n toastClass: {\n type: [String, Object, Array],\n default: function _default() {\n return getComponentConfig(NAME, 'toastClass');\n }\n },\n headerClass: {\n type: [String, Object, Array],\n default: function _default() {\n return getComponentConfig(NAME, 'headerClass');\n }\n },\n bodyClass: {\n type: [String, Object, Array],\n default: function _default() {\n return getComponentConfig(NAME, 'bodyClass');\n }\n },\n href: {\n type: String,\n default: null\n },\n to: {\n type: [String, Object],\n default: null\n },\n static: {\n // Render the toast in place, rather than in a portal-target\n type: Boolean,\n default: false\n }\n}; // @vue/component\n\nexport var BToast =\n/*#__PURE__*/\nVue.extend({\n name: NAME,\n mixins: [idMixin, listenOnRootMixin, normalizeSlotMixin, scopedStyleAttrsMixin],\n inheritAttrs: false,\n model: {\n prop: 'visible',\n event: 'change'\n },\n props: props,\n data: function data() {\n return {\n isMounted: false,\n doRender: false,\n localShow: false,\n isTransitioning: false,\n isHiding: false,\n order: 0,\n timer: null,\n dismissStarted: 0,\n resumeDismiss: 0\n };\n },\n computed: {\n bToastClasses: function bToastClasses() {\n return _defineProperty({\n 'b-toast-solid': this.solid,\n 'b-toast-append': this.appendToast,\n 'b-toast-prepend': !this.appendToast\n }, \"b-toast-\".concat(this.variant), this.variant);\n },\n slotScope: function slotScope() {\n return {\n hide: this.hide\n };\n },\n computedDuration: function computedDuration() {\n // Minimum supported duration is 1 second\n return Math.max(parseInt(this.autoHideDelay, 10) || 0, MIN_DURATION);\n },\n computedToaster: function computedToaster() {\n return String(this.toaster);\n },\n transitionHandlers: function transitionHandlers() {\n return {\n beforeEnter: this.onBeforeEnter,\n afterEnter: this.onAfterEnter,\n beforeLeave: this.onBeforeLeave,\n afterLeave: this.onAfterLeave\n };\n }\n },\n watch: {\n visible: function visible(newVal) {\n newVal ? this.show() : this.hide();\n },\n localShow: function localShow(newVal) {\n if (newVal !== this.visible) {\n this.$emit('change', newVal);\n }\n },\n toaster: function toaster(newVal)\n /* istanbul ignore next */\n {\n var _this = this;\n\n // If toaster target changed, make sure toaster exists\n this.$nextTick(function () {\n return _this.ensureToaster;\n });\n },\n static: function _static(newVal)\n /* istanbul ignore next */\n {\n // If static changes to true, and the toast is showing,\n // ensure the toaster target exists\n if (newVal && this.localShow) {\n this.ensureToaster();\n }\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.isMounted = true;\n this.$nextTick(function () {\n if (_this2.visible) {\n requestAF(function () {\n _this2.show();\n });\n }\n }); // Listen for global $root show events\n\n this.listenOnRoot('bv::show::toast', function (id) {\n if (id === _this2.safeId()) {\n _this2.show();\n }\n }); // Listen for global $root hide events\n\n this.listenOnRoot('bv::hide::toast', function (id) {\n if (!id || id === _this2.safeId()) {\n _this2.hide();\n }\n }); // Make sure we hide when toaster is destroyed\n\n /* istanbul ignore next: difficult to test */\n\n this.listenOnRoot('bv::toaster::destroyed', function (toaster) {\n /* istanbul ignore next */\n if (toaster === _this2.computedToaster) {\n /* istanbul ignore next */\n _this2.hide();\n }\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDismissTimer();\n },\n methods: {\n show: function show() {\n var _this3 = this;\n\n if (!this.localShow) {\n this.ensureToaster();\n var showEvt = this.buildEvent('show');\n this.emitEvent(showEvt);\n this.dismissStarted = this.resumeDismiss = 0;\n this.order = Date.now() * (this.appendToast ? 1 : -1);\n this.isHiding = false;\n this.doRender = true;\n this.$nextTick(function () {\n // We show the toast after we have rendered the portal and b-toast wrapper\n // so that screen readers will properly announce the toast\n requestAF(function () {\n _this3.localShow = true;\n });\n });\n }\n },\n hide: function hide() {\n var _this4 = this;\n\n if (this.localShow) {\n var hideEvt = this.buildEvent('hide');\n this.emitEvent(hideEvt);\n this.setHoverHandler(false);\n this.dismissStarted = this.resumeDismiss = 0;\n this.clearDismissTimer();\n this.isHiding = true;\n requestAF(function () {\n _this4.localShow = false;\n });\n }\n },\n buildEvent: function buildEvent(type) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new BvEvent(type, _objectSpread({\n cancelable: false,\n target: this.$el || null,\n relatedTarget: null\n }, opts, {\n vueTarget: this,\n componentId: this.safeId()\n }));\n },\n emitEvent: function emitEvent(bvEvt) {\n var type = bvEvt.type;\n this.$root.$emit(\"bv::toast:\".concat(type), bvEvt);\n this.$emit(type, bvEvt);\n },\n ensureToaster: function ensureToaster() {\n if (this.static) {\n return;\n }\n\n if (!Wormhole.hasTarget(this.computedToaster)) {\n var div = document.createElement('div');\n document.body.appendChild(div);\n var toaster = new BToaster({\n parent: this.$root,\n propsData: {\n name: this.computedToaster\n }\n });\n toaster.$mount(div);\n }\n },\n startDismissTimer: function startDismissTimer() {\n this.clearDismissTimer();\n\n if (!this.noAutoHide) {\n this.timer = setTimeout(this.hide, this.resumeDismiss || this.computedDuration);\n this.dismissStarted = Date.now();\n this.resumeDismiss = 0;\n }\n },\n clearDismissTimer: function clearDismissTimer() {\n clearTimeout(this.timer);\n this.timer = null;\n },\n setHoverHandler: function setHoverHandler(on) {\n var method = on ? eventOn : eventOff;\n var el = this.$refs['b-toast'];\n method(el, 'mouseenter', this.onPause, EVENT_OPTIONS);\n method(el, 'mouseleave', this.onUnPause, EVENT_OPTIONS);\n },\n onPause: function onPause(evt) {\n // Determine time remaining, and then pause timer\n if (this.noAutoHide || this.noHoverPause || !this.timer || this.resumeDismiss) {\n return;\n }\n\n var passed = Date.now() - this.dismissStarted;\n\n if (passed > 0) {\n this.clearDismissTimer();\n this.resumeDismiss = Math.max(this.computedDuration - passed, MIN_DURATION);\n }\n },\n onUnPause: function onUnPause(evt) {\n // Restart timer with max of time remaining or 1 second\n if (this.noAutoHide || this.noHoverPause || !this.resumeDismiss) {\n this.resumeDismiss = this.dismissStarted = 0;\n return;\n }\n\n this.startDismissTimer();\n },\n onLinkClick: function onLinkClick() {\n var _this5 = this;\n\n // We delay the close to allow time for the\n // browser to process the link click\n this.$nextTick(function () {\n requestAF(function () {\n _this5.hide();\n });\n });\n },\n onBeforeEnter: function onBeforeEnter() {\n this.isTransitioning = true;\n },\n onAfterEnter: function onAfterEnter() {\n this.isTransitioning = false;\n var hiddenEvt = this.buildEvent('shown');\n this.emitEvent(hiddenEvt);\n this.startDismissTimer();\n this.setHoverHandler(true);\n },\n onBeforeLeave: function onBeforeLeave() {\n this.isTransitioning = true;\n },\n onAfterLeave: function onAfterLeave() {\n this.isTransitioning = false;\n this.order = 0;\n this.resumeDismiss = this.dismissStarted = 0;\n var hiddenEvt = this.buildEvent('hidden');\n this.emitEvent(hiddenEvt);\n this.doRender = false;\n },\n makeToast: function makeToast(h) {\n var _this6 = this;\n\n // Render helper for generating the toast\n // Assemble the header content\n var $headerContent = [];\n var $title = this.normalizeSlot('toast-title', this.slotScope);\n\n if ($title) {\n $headerContent.push($title);\n } else if (this.title) {\n $headerContent.push(h('strong', {\n staticClass: 'mr-2'\n }, this.title));\n }\n\n if (!this.noCloseButton) {\n $headerContent.push(h(BButtonClose, {\n staticClass: 'ml-auto mb-1',\n on: {\n click: function click(evt) {\n _this6.hide();\n }\n }\n }));\n } // Assemble the header (if needed)\n\n\n var $header = h();\n\n if ($headerContent.length > 0) {\n $header = h('header', {\n staticClass: 'toast-header',\n class: this.headerClass\n }, $headerContent);\n } // Toast body\n\n\n var isLink = this.href || this.to;\n var $body = h(isLink ? BLink : 'div', {\n staticClass: 'toast-body',\n class: this.bodyClass,\n props: isLink ? {\n to: this.to,\n href: this.href\n } : {},\n on: isLink ? {\n click: this.onLinkClick\n } : {}\n }, [this.normalizeSlot('default', this.slotScope) || h()]); // Build the toast\n\n var $toast = h('div', {\n key: \"toast-\".concat(this._uid),\n ref: 'toast',\n staticClass: 'toast',\n class: this.toastClass,\n attrs: _objectSpread({}, this.$attrs, {\n tabindex: '0',\n id: this.safeId()\n })\n }, [$header, $body]);\n return $toast;\n }\n },\n render: function render(h) {\n if (!this.doRender || !this.isMounted) {\n return h();\n }\n\n var name = \"b-toast-\".concat(this._uid); // If scoped styles are applied and the toast is not static,\n // make sure the scoped style data attribute is applied\n\n var scopedStyleAttrs = !this.static ? this.scopedStyleAttrs : {};\n return h(Portal, {\n props: {\n name: name,\n to: this.computedToaster,\n order: this.order,\n slim: true,\n disabled: this.static\n }\n }, [h('div', {\n key: name,\n ref: 'b-toast',\n staticClass: 'b-toast',\n class: this.bToastClasses,\n attrs: _objectSpread({}, scopedStyleAttrs, {\n id: this.safeId('_toast_outer'),\n role: this.isHiding ? null : this.isStatus ? 'status' : 'alert',\n 'aria-live': this.isHiding ? null : this.isStatus ? 'polite' : 'assertive',\n 'aria-atomic': this.isHiding ? null : 'true'\n })\n }, [h(BVTransition, {\n props: {\n noFade: this.noFade\n },\n on: this.transitionHandlers\n }, [this.localShow ? this.makeToast(h) : h()])])]);\n }\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\n/**\n * Plugin for adding `$bvToast` property to all Vue instances\n */\nimport { concat } from '../../../utils/array';\nimport { getComponentConfig } from '../../../utils/config';\nimport { requestAF } from '../../../utils/dom';\nimport { isUndefined, isString } from '../../../utils/inspect';\nimport { assign, defineProperties, defineProperty, keys, omit, readonlyDescriptor } from '../../../utils/object';\nimport { pluginFactory } from '../../../utils/plugins';\nimport { warn, warnNotClient } from '../../../utils/warn';\nimport { BToast, props as toastProps } from '../toast'; // --- Constants ---\n\nvar PROP_NAME = '$bvToast';\nvar PROP_NAME_PRIV = '_bv__toast'; // Base toast props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\n\nvar BASE_PROPS = ['id'].concat(_toConsumableArray(keys(omit(toastProps, ['static', 'visible'])))); // Map prop names to toast slot names\n\nvar propsToSlots = {\n toastContent: 'default',\n title: 'toast-title'\n}; // --- Utility methods ---\n// Method to filter only recognized props that are not undefined\n\nvar filterOptions = function filterOptions(options) {\n return BASE_PROPS.reduce(function (memo, key) {\n if (!isUndefined(options[key])) {\n memo[key] = options[key];\n }\n\n return memo;\n }, {});\n}; // Method to install `$bvToast` VM injection\n\n\nvar plugin = function plugin(Vue) {\n // Create a private sub-component constructor that\n // extends BToast and self-destructs after hidden\n // @vue/component\n var BToastPop = Vue.extend({\n name: 'BToastPop',\n extends: BToast,\n destroyed: function destroyed() {\n // Make sure we not in document any more\n if (this.$el && this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$el);\n }\n },\n mounted: function mounted() {\n var self = this; // Self destruct handler\n\n var handleDestroy = function handleDestroy() {\n // Ensure the toast has been force hidden\n self.localShow = false;\n self.doRender = false;\n self.$nextTick(function () {\n self.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n // and to allow the portal-target time to remove the content\n requestAF(function () {\n self.$destroy();\n });\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once('hook:destroyed', handleDestroy); // Self destruct after hidden\n\n this.$once('hidden', handleDestroy); // Self destruct when toaster is destroyed\n\n this.listenOnRoot('bv::toaster::destroyed', function (toaster) {\n /* istanbul ignore next: hard to test */\n if (toaster === self.toaster) {\n handleDestroy();\n }\n });\n }\n }); // Private method to generate the on-demand toast\n\n var makeToast = function makeToast(props, $parent) {\n if (warnNotClient(PROP_NAME)) {\n /* istanbul ignore next */\n return;\n } // Create an instance of `BToastPop` component\n\n\n var toast = new BToastPop({\n // We set parent as the local VM so these toasts can emit events on the\n // app `$root`, and it ensures `BToast` is destroyed when parent is destroyed\n parent: $parent,\n propsData: _objectSpread({}, filterOptions(getComponentConfig('BToast') || {}), {}, omit(props, keys(propsToSlots)), {\n // Props that can't be overridden\n static: false,\n visible: true\n })\n }); // Convert certain props to slots\n\n keys(propsToSlots).forEach(function (prop) {\n var value = props[prop];\n\n if (!isUndefined(value)) {\n // Can be a string, or array of VNodes\n if (prop === 'title' && isString(value)) {\n // Special case for title if it is a string, we wrap in a <strong>\n value = [$parent.$createElement('strong', {\n class: 'mr-2'\n }, value)];\n }\n\n toast.$slots[propsToSlots[prop]] = concat(value);\n }\n }); // Create a mount point (a DIV) and mount it (which triggers the show)\n\n var div = document.createElement('div');\n document.body.appendChild(div);\n toast.$mount(div);\n }; // Declare BvToast instance property class\n\n\n var BvToast =\n /*#__PURE__*/\n function () {\n function BvToast(vm) {\n _classCallCheck(this, BvToast);\n\n // Assign the new properties to this instance\n assign(this, {\n _vm: vm,\n _root: vm.$root\n }); // Set these properties as read-only and non-enumerable\n\n defineProperties(this, {\n _vm: readonlyDescriptor(),\n _root: readonlyDescriptor()\n });\n } // --- Public Instance methods ---\n // Opens a user defined toast and returns immediately\n\n\n _createClass(BvToast, [{\n key: \"toast\",\n value: function toast(content) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!content || warnNotClient(PROP_NAME)) {\n /* istanbul ignore next */\n return;\n }\n\n makeToast(_objectSpread({}, filterOptions(options), {\n toastContent: content\n }), this._vm);\n } // shows a `<b-toast>` component with the specified ID\n\n }, {\n key: \"show\",\n value: function show(id) {\n if (id) {\n this._root.$emit('bv::show::toast', id);\n }\n } // Hide a toast with specified ID, or if not ID all toasts\n\n }, {\n key: \"hide\",\n value: function hide() {\n var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n this._root.$emit('bv::hide::toast', id);\n }\n }]);\n\n return BvToast;\n }(); // Add our instance mixin\n\n\n Vue.mixin({\n beforeCreate: function beforeCreate() {\n // Because we need access to `$root` for `$emits`, and VM for parenting,\n // we have to create a fresh instance of `BvToast` for each VM\n this[PROP_NAME_PRIV] = new BvToast(this);\n }\n }); // Define our read-only `$bvToast` instance property\n // Placed in an if just in case in HMR mode\n // eslint-disable-next-line no-prototype-builtins\n\n if (!Vue.prototype.hasOwnProperty(PROP_NAME)) {\n defineProperty(Vue.prototype, PROP_NAME, {\n get: function get() {\n /* istanbul ignore next */\n if (!this || !this[PROP_NAME_PRIV]) {\n warn(\"'\".concat(PROP_NAME, \"' must be accessed from a Vue instance 'this' context\"));\n }\n\n return this[PROP_NAME_PRIV];\n }\n });\n }\n};\n\nexport var BVToastPlugin =\n/*#__PURE__*/\npluginFactory({\n plugins: {\n plugin: plugin\n }\n});","import { BVToastPlugin } from './helpers/bv-toast';\nimport { BToast } from './toast';\nimport { BToaster } from './toaster';\nimport { pluginFactory } from '../../utils/plugins';\nvar ToastPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BToast: BToast,\n BToaster: BToaster\n },\n // $bvToast injection\n plugins: {\n BVToastPlugin: BVToastPlugin\n }\n});\nexport { ToastPlugin, BToast, BToaster };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport getScopId from '../../utils/get-scope-id';\nimport looseEqual from '../../utils/loose-equal';\nimport { concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { isBrowser } from '../../utils/env';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../utils/inspect';\nimport { keys } from '../../utils/object';\nimport { BVTooltip } from '../../components/tooltip/helpers/bv-tooltip'; // Key which we use to store tooltip object on element\n\nvar BV_TOOLTIP = '__BV_Tooltip__'; // Default trigger\n\nvar DefaultTrigger = 'hover focus'; // Valid event triggers\n\nvar validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true,\n manual: true\n}; // Directive modifier test regular expressions. Pre-compile for performance\n\nvar htmlRE = /^html$/i;\nvar noFadeRE = /^nofade$/i;\nvar placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i;\nvar boundaryRE = /^(window|viewport|scrollParent)$/i;\nvar delayRE = /^d\\d+$/i;\nvar delayShowRE = /^ds\\d+$/i;\nvar delayHideRE = /^dh\\d+$/i;\nvar offsetRE = /^o-?\\d+$/i;\nvar variantRE = /^v-.+$/i; // Build a Tooltip config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\nvar parseBindings = function parseBindings(bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n // We start out with a basic config\n var NAME = 'BTooltip'; // Default config\n\n var config = {\n title: undefined,\n trigger: '',\n // Default set below if needed\n placement: 'top',\n fallbackPlacement: 'flip',\n container: false,\n // Default of body\n animation: true,\n offset: 0,\n id: null,\n html: false,\n disabled: false,\n delay: getComponentConfig(NAME, 'delay'),\n boundary: String(getComponentConfig(NAME, 'boundary')),\n boundaryPadding: parseInt(getComponentConfig(NAME, 'boundaryPadding'), 10) || 0,\n variant: getComponentConfig(NAME, 'variant'),\n customClass: getComponentConfig(NAME, 'customClass')\n }; // Process `bindings.value`\n\n if (isString(bindings.value) || isNumber(bindings.value)) {\n // Value is tooltip content (HTML optionally supported)\n config.title = bindings.value;\n } else if (isFunction(bindings.value)) {\n // Title generator function\n config.title = bindings.value;\n } else if (isPlainObject(bindings.value)) {\n // Value is config object, so merge\n config = _objectSpread({}, config, {}, bindings.value);\n } // If title is not provided, try title attribute\n\n\n if (isUndefined(config.title)) {\n // Try attribute\n var data = vnode.data || {};\n config.title = data.attrs && !isUndefinedOrNull(data.attrs.title) ? data.attrs.title : undefined;\n } // Normalize delay\n\n\n if (!isPlainObject(config.delay)) {\n config.delay = {\n show: parseInt(config.delay, 10) || 0,\n hide: parseInt(config.delay, 10) || 0\n };\n } // If argument, assume element ID of container element\n\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = \"#\".concat(bindings.arg);\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (htmlRE.test(mod)) {\n // Title allows HTML\n config.html = true;\n } else if (noFadeRE.test(mod)) {\n // No animation\n config.animation = false;\n } else if (placementRE.test(mod)) {\n // Placement of tooltip\n config.placement = mod;\n } else if (boundaryRE.test(mod)) {\n // Boundary of tooltip\n mod = mod === 'scrollparent' ? 'scrollParent' : mod;\n config.boundary = mod;\n } else if (delayRE.test(mod)) {\n // Delay value\n var delay = parseInt(mod.slice(1), 10) || 0;\n config.delay.show = delay;\n config.delay.hide = delay;\n } else if (delayShowRE.test(mod)) {\n // Delay show value\n config.delay.show = parseInt(mod.slice(2), 10) || 0;\n } else if (delayHideRE.test(mod)) {\n // Delay hide value\n config.delay.hide = parseInt(mod.slice(2), 10) || 0;\n } else if (offsetRE.test(mod)) {\n // Offset value, negative allowed\n config.offset = parseInt(mod.slice(1), 10) || 0;\n } else if (variantRE.test(mod)) {\n // Variant\n config.variant = mod.slice(2) || null;\n }\n }); // Special handling of event trigger modifiers trigger is\n // a space separated list\n\n var selectedTriggers = {}; // Parse current config object trigger\n\n concat(config.trigger || '').filter(Boolean).join(' ').trim().toLowerCase().split(/\\s+/).forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n }); // Parse modifiers for triggers\n\n keys(bindings.modifiers).forEach(function (mod) {\n mod = mod.toLowerCase();\n\n if (validTriggers[mod]) {\n // If modifier is a valid trigger\n selectedTriggers[mod] = true;\n }\n }); // Sanitize triggers\n\n config.trigger = keys(selectedTriggers).join(' ');\n\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n\n if (!config.trigger) {\n // Use default trigger\n config.trigger = DefaultTrigger;\n } // Return the config\n\n\n return config;\n}; // Add/update Tooltip on our element\n\n\nvar applyTooltip = function applyTooltip(el, bindings, vnode) {\n if (!isBrowser) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings, vnode);\n\n if (!el[BV_TOOLTIP]) {\n var $parent = vnode.context;\n el[BV_TOOLTIP] = new BVTooltip({\n parent: $parent,\n // Add the parent's scoped style attribute data\n _scopeId: getScopId($parent, undefined)\n });\n el[BV_TOOLTIP].__bv_prev_data__ = {};\n el[BV_TOOLTIP].$on('show', function ()\n /* istanbul ignore next: for now */\n {\n // Before showing the tooltip, we update the title if it is a function\n if (isFunction(config.title)) {\n el[BV_TOOLTIP].updateData({\n title: config.title()\n });\n }\n });\n }\n\n var data = {\n title: config.title,\n triggers: config.trigger,\n placement: config.placement,\n fallbackPlacement: config.fallbackPlacement,\n variant: config.variant,\n customClass: config.customClass,\n container: config.container,\n boundary: config.boundary,\n delay: config.delay,\n offset: config.offset,\n noFade: !config.animation,\n id: config.id,\n disabled: config.disabled,\n html: config.html\n };\n var oldData = el[BV_TOOLTIP].__bv_prev_data__;\n el[BV_TOOLTIP].__bv_prev_data__ = data;\n\n if (!looseEqual(data, oldData)) {\n // We only update the instance if data has changed\n var newData = {\n target: el\n };\n keys(data).forEach(function (prop) {\n // We only pass data properties that have changed\n if (data[prop] !== oldData[prop]) {\n // if title is a function, we execute it here\n newData[prop] = prop === 'title' && isFunction(data[prop]) ? data[prop]() : data[prop];\n }\n });\n el[BV_TOOLTIP].updateData(newData);\n }\n}; // Remove Tooltip on our element\n\n\nvar removeTooltip = function removeTooltip(el) {\n if (el[BV_TOOLTIP]) {\n el[BV_TOOLTIP].$destroy();\n el[BV_TOOLTIP] = null;\n }\n\n delete el[BV_TOOLTIP];\n}; // Export our directive\n\n\nexport var VBTooltip = {\n bind: function bind(el, bindings, vnode) {\n applyTooltip(el, bindings, vnode);\n },\n // We use `componentUpdated` here instead of `update`, as the former\n // waits until the containing component and children have finished updating\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n // Performed in a `$nextTick()` to prevent render update loops\n vnode.context.$nextTick(function () {\n applyTooltip(el, bindings, vnode);\n });\n },\n unbind: function unbind(el) {\n removeTooltip(el);\n }\n};","import { BTooltip } from './tooltip';\nimport { VBTooltip } from '../../directives/tooltip/tooltip';\nimport { pluginFactory } from '../../utils/plugins';\nvar TooltipPlugin =\n/*#__PURE__*/\npluginFactory({\n components: {\n BTooltip: BTooltip\n },\n directives: {\n VBTooltip: VBTooltip\n }\n});\nexport { TooltipPlugin, BTooltip };","import { pluginFactory } from '../utils/plugins'; // Component group plugins\n\nimport { AlertPlugin } from './alert';\nimport { BadgePlugin } from './badge';\nimport { BreadcrumbPlugin } from './breadcrumb';\nimport { ButtonPlugin } from './button';\nimport { ButtonGroupPlugin } from './button-group';\nimport { ButtonToolbarPlugin } from './button-toolbar';\nimport { CardPlugin } from './card';\nimport { CarouselPlugin } from './carousel';\nimport { CollapsePlugin } from './collapse';\nimport { DropdownPlugin } from './dropdown';\nimport { EmbedPlugin } from './embed';\nimport { FormPlugin } from './form';\nimport { FormGroupPlugin } from './form-group';\nimport { FormCheckboxPlugin } from './form-checkbox';\nimport { FormRadioPlugin } from './form-radio';\nimport { FormInputPlugin } from './form-input';\nimport { FormTextareaPlugin } from './form-textarea';\nimport { FormFilePlugin } from './form-file';\nimport { FormSelectPlugin } from './form-select';\nimport { ImagePlugin } from './image';\nimport { InputGroupPlugin } from './input-group';\nimport { JumbotronPlugin } from './jumbotron';\nimport { LayoutPlugin } from './layout';\nimport { LinkPlugin } from './link';\nimport { ListGroupPlugin } from './list-group';\nimport { MediaPlugin } from './media';\nimport { ModalPlugin } from './modal';\nimport { NavPlugin } from './nav';\nimport { NavbarPlugin } from './navbar';\nimport { PaginationPlugin } from './pagination';\nimport { PaginationNavPlugin } from './pagination-nav';\nimport { PopoverPlugin } from './popover';\nimport { ProgressPlugin } from './progress';\nimport { SpinnerPlugin } from './spinner'; // Table plugin includes TableLitePlugin and TableSimplePlugin\n\nimport { TablePlugin } from './table';\nimport { TabsPlugin } from './tabs';\nimport { ToastPlugin } from './toast';\nimport { TooltipPlugin } from './tooltip'; // Main plugin to install all component group plugins\n\nexport var componentsPlugin =\n/*#__PURE__*/\npluginFactory({\n plugins: {\n AlertPlugin: AlertPlugin,\n BadgePlugin: BadgePlugin,\n BreadcrumbPlugin: BreadcrumbPlugin,\n ButtonPlugin: ButtonPlugin,\n ButtonGroupPlugin: ButtonGroupPlugin,\n ButtonToolbarPlugin: ButtonToolbarPlugin,\n CardPlugin: CardPlugin,\n CarouselPlugin: CarouselPlugin,\n CollapsePlugin: CollapsePlugin,\n DropdownPlugin: DropdownPlugin,\n EmbedPlugin: EmbedPlugin,\n FormPlugin: FormPlugin,\n FormGroupPlugin: FormGroupPlugin,\n FormCheckboxPlugin: FormCheckboxPlugin,\n FormRadioPlugin: FormRadioPlugin,\n FormInputPlugin: FormInputPlugin,\n FormTextareaPlugin: FormTextareaPlugin,\n FormFilePlugin: FormFilePlugin,\n FormSelectPlugin: FormSelectPlugin,\n ImagePlugin: ImagePlugin,\n InputGroupPlugin: InputGroupPlugin,\n JumbotronPlugin: JumbotronPlugin,\n LayoutPlugin: LayoutPlugin,\n LinkPlugin: LinkPlugin,\n ListGroupPlugin: ListGroupPlugin,\n MediaPlugin: MediaPlugin,\n ModalPlugin: ModalPlugin,\n NavPlugin: NavPlugin,\n NavbarPlugin: NavbarPlugin,\n PaginationPlugin: PaginationPlugin,\n PaginationNavPlugin: PaginationNavPlugin,\n PopoverPlugin: PopoverPlugin,\n ProgressPlugin: ProgressPlugin,\n SpinnerPlugin: SpinnerPlugin,\n TablePlugin: TablePlugin,\n TabsPlugin: TabsPlugin,\n ToastPlugin: ToastPlugin,\n TooltipPlugin: TooltipPlugin\n }\n});","import { VBModal } from './modal';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBModalPlugin =\n/*#__PURE__*/\npluginFactory({\n directives: {\n VBModal: VBModal\n }\n});\nexport { VBModalPlugin, VBModal };","import { VBPopover } from './popover';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBPopoverPlugin =\n/*#__PURE__*/\npluginFactory({\n directives: {\n VBPopover: VBPopover\n }\n});\nexport { VBPopoverPlugin, VBPopover };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * ScrollSpy class definition\n */\nimport observeDom from '../../utils/observe-dom';\nimport warn from '../../utils/warn';\nimport { isElement, isVisible, closest, matches, getBCR, offset, position, selectAll, select, hasClass, addClass, removeClass, getAttr, eventOn, eventOff } from '../../utils/dom';\nimport { isString, isUndefined } from '../../utils/inspect';\nimport { toString as objectToString } from '../../utils/object';\n/*\n * Constants / Defaults\n */\n\nvar NAME = 'v-b-scrollspy';\nvar ACTIVATE_EVENT = 'bv::scrollspy::activate';\nvar Default = {\n element: 'body',\n offset: 10,\n method: 'auto',\n throttle: 75\n};\nvar DefaultType = {\n element: '(string|element|component)',\n offset: 'number',\n method: 'string',\n throttle: 'number'\n};\nvar ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n};\nvar Selector = {\n ACTIVE: '.active',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown, .dropup',\n DROPDOWN_ITEMS: '.dropdown-item',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n};\nvar OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}; // HREFs must end with a hash followed by at least one non-hash character.\n// HREFs in the links are assumed to point to non-external links.\n// Comparison to the current page base URL is not performed!\n\nvar HREF_REGEX = /^.*(#[^#]+)$/; // Transition Events\n\nvar TransitionEndEvents = ['webkitTransitionEnd', 'transitionend', 'otransitionend', 'oTransitionEnd']; // Options for events\n\nvar EventOptions = {\n passive: true,\n capture: false\n};\n/*\n * Utility Methods\n */\n// Better var type detection\n\nvar toType = function toType(obj)\n/* istanbul ignore next: not easy to test */\n{\n return objectToString(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase();\n}; // Check config properties for expected types\n\n\nvar typeCheckConfig = function typeCheckConfig(componentName, config, configTypes)\n/* istanbul ignore next: not easy to test */\n{\n for (var property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value); // handle Vue instances\n\n valueType = value && value._isVue ? 'component' : valueType;\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n /* istanbul ignore next */\n warn(\"\".concat(componentName, \": Option \\\"\").concat(property, \"\\\" provided type \\\"\").concat(valueType, \"\\\" but expected type \\\"\").concat(expectedTypes, \"\\\"\"));\n }\n }\n }\n};\n/*\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n/* istanbul ignore next: not easy to test */\n\n\nvar ScrollSpy\n/* istanbul ignore next: not easy to test */\n=\n/*#__PURE__*/\nfunction () {\n function ScrollSpy(element, config, $root) {\n _classCallCheck(this, ScrollSpy);\n\n // The element we activate links in\n this.$el = element;\n this.$scroller = null;\n this.$selector = [Selector.NAV_LINKS, Selector.LIST_ITEMS, Selector.DROPDOWN_ITEMS].join(',');\n this.$offsets = [];\n this.$targets = [];\n this.$activeTarget = null;\n this.$scrollHeight = 0;\n this.$resizeTimeout = null;\n this.$obs_scroller = null;\n this.$obs_targets = null;\n this.$root = $root || null;\n this.$config = null;\n this.updateConfig(config);\n }\n\n _createClass(ScrollSpy, [{\n key: \"updateConfig\",\n value: function updateConfig(config, $root) {\n if (this.$scroller) {\n // Just in case out scroll element has changed\n this.unlisten();\n this.$scroller = null;\n }\n\n var cfg = _objectSpread({}, this.constructor.Default, {}, config);\n\n if ($root) {\n this.$root = $root;\n }\n\n typeCheckConfig(this.constructor.Name, cfg, this.constructor.DefaultType);\n this.$config = cfg;\n\n if (this.$root) {\n var self = this;\n this.$root.$nextTick(function () {\n self.listen();\n });\n } else {\n this.listen();\n }\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.unlisten();\n clearTimeout(this.$resizeTimeout);\n this.$resizeTimeout = null;\n this.$el = null;\n this.$config = null;\n this.$scroller = null;\n this.$selector = null;\n this.$offsets = null;\n this.$targets = null;\n this.$activeTarget = null;\n this.$scrollHeight = null;\n }\n }, {\n key: \"listen\",\n value: function listen() {\n var _this = this;\n\n var scroller = this.getScroller();\n\n if (scroller && scroller.tagName !== 'BODY') {\n eventOn(scroller, 'scroll', this, EventOptions);\n }\n\n eventOn(window, 'scroll', this, EventOptions);\n eventOn(window, 'resize', this, EventOptions);\n eventOn(window, 'orientationchange', this, EventOptions);\n TransitionEndEvents.forEach(function (evtName) {\n eventOn(window, evtName, _this, EventOptions);\n });\n this.setObservers(true); // Schedule a refresh\n\n this.handleEvent('refresh');\n }\n }, {\n key: \"unlisten\",\n value: function unlisten() {\n var _this2 = this;\n\n var scroller = this.getScroller();\n this.setObservers(false);\n\n if (scroller && scroller.tagName !== 'BODY') {\n eventOff(scroller, 'scroll', this, EventOptions);\n }\n\n eventOff(window, 'scroll', this, EventOptions);\n eventOff(window, 'resize', this, EventOptions);\n eventOff(window, 'orientationchange', this, EventOptions);\n TransitionEndEvents.forEach(function (evtName) {\n eventOff(window, evtName, _this2, EventOptions);\n });\n }\n }, {\n key: \"setObservers\",\n value: function setObservers(on) {\n var _this3 = this;\n\n // We observe both the scroller for content changes, and the target links\n if (this.$obs_scroller) {\n this.$obs_scroller.disconnect();\n this.$obs_scroller = null;\n }\n\n if (this.$obs_targets) {\n this.$obs_targets.disconnect();\n this.$obs_targets = null;\n }\n\n if (on) {\n this.$obs_targets = observeDom(this.$el, function () {\n _this3.handleEvent('mutation');\n }, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: ['href']\n });\n this.$obs_scroller = observeDom(this.getScroller(), function () {\n _this3.handleEvent('mutation');\n }, {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['id', 'style', 'class']\n });\n }\n } // General event handler\n\n }, {\n key: \"handleEvent\",\n value: function handleEvent(evt) {\n var type = isString(evt) ? evt : evt.type;\n var self = this;\n\n var resizeThrottle = function resizeThrottle() {\n if (!self.$resizeTimeout) {\n self.$resizeTimeout = setTimeout(function () {\n self.refresh();\n self.process();\n self.$resizeTimeout = null;\n }, self.$config.throttle);\n }\n };\n\n if (type === 'scroll') {\n if (!this.$obs_scroller) {\n // Just in case we are added to the DOM before the scroll target is\n // We re-instantiate our listeners, just in case\n this.listen();\n }\n\n this.process();\n } else if (/(resize|orientationchange|mutation|refresh)/.test(type)) {\n // Postpone these events by throttle time\n resizeThrottle();\n }\n } // Refresh the list of target links on the element we are applied to\n\n }, {\n key: \"refresh\",\n value: function refresh() {\n var _this4 = this;\n\n var scroller = this.getScroller();\n\n if (!scroller) {\n return;\n }\n\n var autoMethod = scroller !== scroller.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;\n var method = this.$config.method === 'auto' ? autoMethod : this.$config.method;\n var methodFn = method === OffsetMethod.POSITION ? position : offset;\n var offsetBase = method === OffsetMethod.POSITION ? this.getScrollTop() : 0;\n this.$offsets = [];\n this.$targets = [];\n this.$scrollHeight = this.getScrollHeight(); // Find all the unique link HREFs that we will control\n\n selectAll(this.$selector, this.$el) // Get HREF value\n .map(function (link) {\n return getAttr(link, 'href');\n }) // Filter out HREFs that do not match our RegExp\n .filter(function (href) {\n return href && HREF_REGEX.test(href || '');\n }) // Find all elements with ID that match HREF hash\n .map(function (href) {\n // Convert HREF into an ID (including # at beginning)\n var id = href.replace(HREF_REGEX, '$1').trim();\n\n if (!id) {\n return null;\n } // Find the element with the ID specified by id\n\n\n var el = select(id, scroller);\n\n if (el && isVisible(el)) {\n return {\n offset: parseInt(methodFn(el).top, 10) + offsetBase,\n target: id\n };\n }\n\n return null;\n }).filter(Boolean) // Sort them by their offsets (smallest first)\n .sort(function (a, b) {\n return a.offset - b.offset;\n }) // record only unique targets/offsets\n .reduce(function (memo, item) {\n if (!memo[item.target]) {\n _this4.$offsets.push(item.offset);\n\n _this4.$targets.push(item.target);\n\n memo[item.target] = true;\n }\n\n return memo;\n }, {}); // Return this for easy chaining\n\n return this;\n } // Handle activating/clearing\n\n }, {\n key: \"process\",\n value: function process() {\n var scrollTop = this.getScrollTop() + this.$config.offset;\n var scrollHeight = this.getScrollHeight();\n var maxScroll = this.$config.offset + scrollHeight - this.getOffsetHeight();\n\n if (this.$scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n var target = this.$targets[this.$targets.length - 1];\n\n if (this.$activeTarget !== target) {\n this.activate(target);\n }\n\n return;\n }\n\n if (this.$activeTarget && scrollTop < this.$offsets[0] && this.$offsets[0] > 0) {\n this.$activeTarget = null;\n this.clear();\n return;\n }\n\n for (var i = this.$offsets.length; i--;) {\n var isActiveTarget = this.$activeTarget !== this.$targets[i] && scrollTop >= this.$offsets[i] && (isUndefined(this.$offsets[i + 1]) || scrollTop < this.$offsets[i + 1]);\n\n if (isActiveTarget) {\n this.activate(this.$targets[i]);\n }\n }\n }\n }, {\n key: \"getScroller\",\n value: function getScroller() {\n if (this.$scroller) {\n return this.$scroller;\n }\n\n var scroller = this.$config.element;\n\n if (!scroller) {\n return null;\n } else if (isElement(scroller.$el)) {\n scroller = scroller.$el;\n } else if (isString(scroller)) {\n scroller = select(scroller);\n }\n\n if (!scroller) {\n return null;\n }\n\n this.$scroller = scroller.tagName === 'BODY' ? window : scroller;\n return this.$scroller;\n }\n }, {\n key: \"getScrollTop\",\n value: function getScrollTop() {\n var scroller = this.getScroller();\n return scroller === window ? scroller.pageYOffset : scroller.scrollTop;\n }\n }, {\n key: \"getScrollHeight\",\n value: function getScrollHeight() {\n return this.getScroller().scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n }\n }, {\n key: \"getOffsetHeight\",\n value: function getOffsetHeight() {\n var scroller = this.getScroller();\n return scroller === window ? window.innerHeight : getBCR(scroller).height;\n }\n }, {\n key: \"activate\",\n value: function activate(target) {\n var _this5 = this;\n\n this.$activeTarget = target;\n this.clear(); // Grab the list of target links (<a href=\"{$target}\">)\n\n var links = selectAll(this.$selector // Split out the base selectors\n .split(',') // Map to a selector that matches links with HREF ending in the ID (including '#')\n .map(function (selector) {\n return \"\".concat(selector, \"[href$=\\\"\").concat(target, \"\\\"]\");\n }) // Join back into a single selector string\n .join(','), this.$el);\n links.forEach(function (link) {\n if (hasClass(link, ClassName.DROPDOWN_ITEM)) {\n // This is a dropdown item, so find the .dropdown-toggle and set it's state\n var dropdown = closest(Selector.DROPDOWN, link);\n\n if (dropdown) {\n _this5.setActiveState(select(Selector.DROPDOWN_TOGGLE, dropdown), true);\n } // Also set this link's state\n\n\n _this5.setActiveState(link, true);\n } else {\n // Set triggered link as active\n _this5.setActiveState(link, true);\n\n if (matches(link.parentElement, Selector.NAV_ITEMS)) {\n // Handle nav-link inside nav-item, and set nav-item active\n _this5.setActiveState(link.parentElement, true);\n } // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n\n\n var el = link;\n\n while (el) {\n el = closest(Selector.NAV_LIST_GROUP, el);\n var sibling = el ? el.previousElementSibling : null;\n\n if (sibling && matches(sibling, \"\".concat(Selector.NAV_LINKS, \", \").concat(Selector.LIST_ITEMS))) {\n _this5.setActiveState(sibling, true);\n } // Handle special case where nav-link is inside a nav-item\n\n\n if (sibling && matches(sibling, Selector.NAV_ITEMS)) {\n _this5.setActiveState(select(Selector.NAV_LINKS, sibling), true); // Add active state to nav-item as well\n\n\n _this5.setActiveState(sibling, true);\n }\n }\n }\n }); // Signal event to via $root, passing ID of activated target and reference to array of links\n\n if (links && links.length > 0 && this.$root) {\n this.$root.$emit(ACTIVATE_EVENT, target, links);\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n var _this6 = this;\n\n selectAll(\"\".concat(this.$selector, \", \").concat(Selector.NAV_ITEMS), this.$el).filter(function (el) {\n return hasClass(el, ClassName.ACTIVE);\n }).forEach(function (el) {\n return _this6.setActiveState(el, false);\n });\n }\n }, {\n key: \"setActiveState\",\n value: function setActiveState(el, active) {\n if (!el) {\n return;\n }\n\n if (active) {\n addClass(el, ClassName.ACTIVE);\n } else {\n removeClass(el, ClassName.ACTIVE);\n }\n }\n }], [{\n key: \"Name\",\n get: function get() {\n return NAME;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n\n return ScrollSpy;\n}();\n\nexport default ScrollSpy;","import ScrollSpy from './scrollspy.class';\nimport { isBrowser } from '../../utils/env';\nimport { keys } from '../../utils/object';\nimport { isNumber, isObject, isString } from '../../utils/inspect'; // Key we use to store our instance\n\nvar BV_SCROLLSPY = '__BV_ScrollSpy__'; // Build a ScrollSpy config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\n/* istanbul ignore next: not easy to test */\n\nvar parseBindings = function parseBindings(bindings)\n/* istanbul ignore next: not easy to test */\n{\n var config = {}; // If argument, assume element ID\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.element = \"#\".concat(bindings.arg);\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (/^\\d+$/.test(mod)) {\n // Offset value\n config.offset = parseInt(mod, 10);\n } else if (/^(auto|position|offset)$/.test(mod)) {\n // Offset method\n config.method = mod;\n }\n }); // Process value\n\n if (isString(bindings.value)) {\n // Value is a CSS ID or selector\n config.element = bindings.value;\n } else if (isNumber(bindings.value)) {\n // Value is offset\n config.offset = Math.round(bindings.value);\n } else if (isObject(bindings.value)) {\n // Value is config object\n // Filter the object based on our supported config options\n keys(bindings.value).filter(function (k) {\n return Boolean(ScrollSpy.DefaultType[k]);\n }).forEach(function (k) {\n config[k] = bindings.value[k];\n });\n }\n\n return config;\n}; // Add or update ScrollSpy on our element\n\n\nvar applyScrollspy = function applyScrollspy(el, bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n if (!isBrowser) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings);\n\n if (el[BV_SCROLLSPY]) {\n el[BV_SCROLLSPY].updateConfig(config, vnode.context.$root);\n } else {\n el[BV_SCROLLSPY] = new ScrollSpy(el, config, vnode.context.$root);\n }\n}; // Remove ScrollSpy on our element\n\n/* istanbul ignore next: not easy to test */\n\n\nvar removeScrollspy = function removeScrollspy(el)\n/* istanbul ignore next: not easy to test */\n{\n if (el[BV_SCROLLSPY]) {\n el[BV_SCROLLSPY].dispose();\n el[BV_SCROLLSPY] = null;\n delete el[BV_SCROLLSPY];\n }\n};\n/*\n * Export our directive\n */\n\n\nexport var VBScrollspy = {\n bind: function bind(el, bindings, vnode)\n /* istanbul ignore next: not easy to test */\n {\n applyScrollspy(el, bindings, vnode);\n },\n inserted: function inserted(el, bindings, vnode)\n /* istanbul ignore next: not easy to test */\n {\n applyScrollspy(el, bindings, vnode);\n },\n update: function update(el, bindings, vnode)\n /* istanbul ignore next: not easy to test */\n {\n if (bindings.value !== bindings.oldValue) {\n applyScrollspy(el, bindings, vnode);\n }\n },\n componentUpdated: function componentUpdated(el, bindings, vnode)\n /* istanbul ignore next: not easy to test */\n {\n if (bindings.value !== bindings.oldValue) {\n applyScrollspy(el, bindings, vnode);\n }\n },\n unbind: function unbind(el)\n /* istanbul ignore next: not easy to test */\n {\n removeScrollspy(el);\n }\n};","import { VBScrollspy } from './scrollspy';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBScrollspyPlugin =\n/*#__PURE__*/\npluginFactory({\n directives: {\n VBScrollspy: VBScrollspy\n }\n});\nexport { VBScrollspyPlugin, VBScrollspy };","import { VBToggle } from './toggle';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBTogglePlugin =\n/*#__PURE__*/\npluginFactory({\n directives: {\n VBToggle: VBToggle\n }\n});\nexport { VBTogglePlugin, VBToggle };","import { VBTooltip } from './tooltip';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBTooltipPlugin =\n/*#__PURE__*/\npluginFactory({\n directives: {\n VBTooltip: VBTooltip\n }\n});\nexport { VBTooltipPlugin, VBTooltip };","import { pluginFactory } from '../utils/plugins';\nimport { VBModalPlugin } from './modal';\nimport { VBPopoverPlugin } from './popover';\nimport { VBScrollspyPlugin } from './scrollspy';\nimport { VBTogglePlugin } from './toggle';\nimport { VBTooltipPlugin } from './tooltip'; // Main plugin for installing all directive plugins\n\nexport var directivesPlugin =\n/*#__PURE__*/\npluginFactory({\n plugins: {\n VBModalPlugin: VBModalPlugin,\n VBPopoverPlugin: VBPopoverPlugin,\n VBScrollspyPlugin: VBScrollspyPlugin,\n VBTogglePlugin: VBTogglePlugin,\n VBTooltipPlugin: VBTooltipPlugin\n }\n});","/*!\n * BoostrapVue 2.0.2\n *\n * @link https://bootstrap-vue.js.org\n * @source https://github.com/bootstrap-vue/bootstrap-vue\n * @copyright (c) 2016-2019 BootstrapVue\n * @license MIT\n * https://github.com/bootstrap-vue/bootstrap-vue/blob/master/LICENSE\n */\nimport { installFactory } from './utils/plugins';\nimport { componentsPlugin } from './components';\nimport { directivesPlugin } from './directives';\nimport { BVConfigPlugin } from './bv-config';\nvar NAME = 'BootstrapVue'; //\n// BootstrapVue installer\n//\n\nvar install =\n/*#__PURE__*/\ninstallFactory({\n plugins: {\n componentsPlugin: componentsPlugin,\n directivesPlugin: directivesPlugin\n }\n}); //\n// BootstrapVue plugin\n//\n\nvar BootstrapVue =\n/*#__PURE__*/\n{\n install: install,\n NAME: NAME\n}; //\n// Named exports for BvConfigPlugin\n//\n\nexport { // Installer exported in case the consumer does not import `default`\n// as the plugin in CommonJS build (or does not have interop enabled\n// for CommonJS). Both the following will work:\n// BootstrapVue = require('bootstrap-vue')\n// BootstrapVue = require('bootstrap-vue').default\n// Vue.use(BootstrapVue)\ninstall, NAME // BV Config Plugin\n, BVConfigPlugin // BVConfigPlugin has been documented as BVConfig as well,\n// so we add an alias to the shorter name for backwards compat\n, BVConfigPlugin as BVConfig // Main BootstrapVue Plugin\n, BootstrapVue }; //\n// Export named injection plugins\n//\n// TODO: we should probably move injections into their\n// own parent directory (i.e. /src/injections)\n\nexport { BVModalPlugin } from './components/modal/helpers/bv-modal';\nexport { BVToastPlugin } from './components/toast/helpers/bv-toast'; //\n// Export all individual components and component group plugins as named exports.\n//\n// Webpack 4 has optimization difficulties with re-eport of re-exports, so\n// we import the components individulaly here for better tree shaking,\n//\n// Webpack v5 fixes the optimizations with re-export of re-exports so this\n// can be reverted back to `export * from './table'` when Webpack v5 is released.\n// https://github.com/webpack/webpack/pull/9203 (available in Webpack v5.0.0-alpha.15)\n// export * from './components/alert'\n\nexport { AlertPlugin } from './components/alert';\nexport { BAlert } from './components/alert/alert'; // export * from './components/badge'\n\nexport { BadgePlugin } from './components/badge';\nexport { BBadge } from './components/badge/badge'; // export * from './components/breadcrumb'\n\nexport { BreadcrumbPlugin } from './components/breadcrumb';\nexport { BBreadcrumb } from './components/breadcrumb/breadcrumb';\nexport { BBreadcrumbItem } from './components/breadcrumb/breadcrumb-item'; // export * from './components/button'\n\nexport { ButtonPlugin } from './components/button';\nexport { BButton } from './components/button/button';\nexport { BButtonClose } from './components/button/button-close'; // export * from './components/button-group'\n\nexport { ButtonGroupPlugin } from './components/button-group';\nexport { BButtonGroup } from './components/button-group/button-group'; // export * from './components/button-toolbar'\n\nexport { ButtonToolbarPlugin } from './components/button-toolbar';\nexport { BButtonToolbar } from './components/button-toolbar/button-toolbar'; // export * from './components/card'\n\nexport { CardPlugin } from './components/card';\nexport { BCard } from './components/card/card';\nexport { BCardBody } from './components/card/card-body';\nexport { BCardFooter } from './components/card/card-footer';\nexport { BCardGroup } from './components/card/card-group';\nexport { BCardHeader } from './components/card/card-header';\nexport { BCardImg } from './components/card/card-img';\nexport { BCardImgLazy } from './components/card/card-img-lazy';\nexport { BCardSubTitle } from './components/card/card-sub-title';\nexport { BCardText } from './components/card/card-text';\nexport { BCardTitle } from './components/card/card-title'; // export * from './components/carousel'\n\nexport { CarouselPlugin } from './components/carousel';\nexport { BCarousel } from './components/carousel/carousel';\nexport { BCarouselSlide } from './components/carousel/carousel-slide'; // export * from './components/collapse'\n\nexport { CollapsePlugin } from './components/collapse';\nexport { BCollapse } from './components/collapse/collapse'; // export * from './components/dropdown'\n\nexport { DropdownPlugin } from './components/dropdown';\nexport { BDropdown } from './components/dropdown/dropdown';\nexport { BDropdownItem } from './components/dropdown/dropdown-item';\nexport { BDropdownItemButton } from './components/dropdown/dropdown-item-button';\nexport { BDropdownDivider } from './components/dropdown/dropdown-divider';\nexport { BDropdownForm } from './components/dropdown/dropdown-form';\nexport { BDropdownGroup } from './components/dropdown/dropdown-group';\nexport { BDropdownHeader } from './components/dropdown/dropdown-header';\nexport { BDropdownText } from './components/dropdown/dropdown-text'; // export * from './components/embed'\n\nexport { EmbedPlugin } from './components/embed';\nexport { BEmbed } from './components/embed/embed'; // export * from './components/form'\n\nexport { FormPlugin } from './components/form';\nexport { BForm } from './components/form/form';\nexport { BFormDatalist } from './components/form/form-datalist';\nexport { BFormText } from './components/form/form-text';\nexport { BFormInvalidFeedback } from './components/form/form-invalid-feedback';\nexport { BFormValidFeedback } from './components/form/form-valid-feedback'; // export * from './components/form-checkbox'\n\nexport { FormCheckboxPlugin } from './components/form-checkbox';\nexport { BFormCheckbox } from './components/form-checkbox/form-checkbox';\nexport { BFormCheckboxGroup } from './components/form-checkbox/form-checkbox-group'; // export * from './components/form-file'\n\nexport { FormFilePlugin } from './components/form-file';\nexport { BFormFile } from './components/form-file/form-file'; // export * from './components/form-group'\n\nexport { FormGroupPlugin } from './components/form-group';\nexport { BFormGroup } from './components/form-group/form-group'; // export * from './components/form-input'\n\nexport { FormInputPlugin } from './components/form-input';\nexport { BFormInput } from './components/form-input/form-input'; // export * from './components/form-radio'\n\nexport { FormRadioPlugin } from './components/form-radio';\nexport { BFormRadio } from './components/form-radio/form-radio';\nexport { BFormRadioGroup } from './components/form-radio/form-radio-group'; // export * from './components/form-select'\n\nexport { FormSelectPlugin } from './components/form-select';\nexport { BFormSelect } from './components/form-select/form-select'; // export * from './components/form-textarea'\n\nexport { FormTextareaPlugin } from './components/form-textarea';\nexport { BFormTextarea } from './components/form-textarea/form-textarea'; // export * from './components/image'\n\nexport { ImagePlugin } from './components/image';\nexport { BImg } from './components/image/img';\nexport { BImgLazy } from './components/image/img-lazy'; // export * from './components/input-group'\n\nexport { InputGroupPlugin } from './components/input-group';\nexport { BInputGroup } from './components/input-group/input-group';\nexport { BInputGroupAddon } from './components/input-group/input-group-addon';\nexport { BInputGroupAppend } from './components/input-group/input-group-append';\nexport { BInputGroupPrepend } from './components/input-group/input-group-prepend';\nexport { BInputGroupText } from './components/input-group/input-group-text'; // export * from './components/jumbotron'\n\nexport { JumbotronPlugin } from './components/jumbotron';\nexport { BJumbotron } from './components/jumbotron/jumbotron'; // export * from './components/layout'\n\nexport { LayoutPlugin } from './components/layout';\nexport { BContainer } from './components/layout/container';\nexport { BRow } from './components/layout/row';\nexport { BCol } from './components/layout/col';\nexport { BFormRow } from './components/layout/form-row'; // export * from './components/link'\n\nexport { LinkPlugin } from './components/link';\nexport { BLink } from './components/link/link'; // export * from './components/list-group'\n\nexport { ListGroupPlugin } from './components/list-group';\nexport { BListGroup } from './components/list-group/list-group';\nexport { BListGroupItem } from './components/list-group/list-group-item'; // export * from './components/media'\n\nexport { MediaPlugin } from './components/media';\nexport { BMedia } from './components/media/media';\nexport { BMediaAside } from './components/media/media-aside';\nexport { BMediaBody } from './components/media/media-body'; // export * from './components/modal'\n\nexport { ModalPlugin } from './components/modal';\nexport { BModal } from './components/modal/modal'; // export * from './components/nav'\n\nexport { NavPlugin } from './components/nav';\nexport { BNav } from './components/nav/nav';\nexport { BNavForm } from './components/nav/nav-form';\nexport { BNavItem } from './components/nav/nav-item';\nexport { BNavItemDropdown } from './components/nav/nav-item-dropdown';\nexport { BNavText } from './components/nav/nav-text'; // export * from './components/navbar'\n\nexport { NavbarPlugin } from './components/navbar';\nexport { BNavbar } from './components/navbar/navbar';\nexport { BNavbarBrand } from './components/navbar/navbar-brand';\nexport { BNavbarNav } from './components/navbar/navbar-nav';\nexport { BNavbarToggle } from './components/navbar/navbar-toggle'; // export * from './components/pagination'\n\nexport { PaginationPlugin } from './components/pagination';\nexport { BPagination } from './components/pagination/pagination'; // export * from './components/pagination-nav'\n\nexport { PaginationNavPlugin } from './components/pagination-nav';\nexport { BPaginationNav } from './components/pagination-nav/pagination-nav'; // export * from './components/popover'\n\nexport { PopoverPlugin } from './components/popover';\nexport { BPopover } from './components/popover/popover'; // export * from './components/progress'\n\nexport { ProgressPlugin } from './components/progress';\nexport { BProgress } from './components/progress/progress';\nexport { BProgressBar } from './components/progress/progress-bar'; // export * from './components/spinner'\n\nexport { SpinnerPlugin } from './components/spinner';\nexport { BSpinner } from './components/spinner/spinner'; // export * from './components/table'\n\nexport { TablePlugin, TableLitePlugin, TableSimplePlugin } from './components/table';\nexport { BTable } from './components/table/table';\nexport { BTableLite } from './components/table/table-lite';\nexport { BTableSimple } from './components/table/table-simple';\nexport { BTbody } from './components/table/tbody';\nexport { BThead } from './components/table/thead';\nexport { BTfoot } from './components/table/tfoot';\nexport { BTr } from './components/table/tr';\nexport { BTh } from './components/table/th';\nexport { BTd } from './components/table/td'; // export * from './components/tabs'\n\nexport { TabsPlugin } from './components/tabs';\nexport { BTabs } from './components/tabs/tabs';\nexport { BTab } from './components/tabs/tab'; // export * from './components/toast'\n\nexport { ToastPlugin } from './components/toast';\nexport { BToast } from './components/toast/toast';\nexport { BToaster } from './components/toast/toaster'; // export * from './components/tooltip'\n\nexport { TooltipPlugin } from './components/tooltip';\nexport { BTooltip } from './components/tooltip/tooltip'; //\n// Named exports of all directives (VB<Name>) and Plugins (VB<name>Plugin)\n//\n// Webpack 4 has optimization difficulties with re-eport of re-exports, so\n// we import the directives individulaly here for better tree shaking,\n//\n// Webpack v5 fixes the optimizations with re-export of re-exports so this\n// can be reverted back to `export * from './scrollspy'` when Webpack v5 is released.\n// https://github.com/webpack/webpack/pull/9203 (available in Webpack v5.0.0-alpha.15)\n// export * from './directives/modal'\n\nexport { VBModalPlugin } from './directives/modal';\nexport { VBModal } from './directives/modal/modal'; // export * from './directives/popover'\n\nexport { VBPopoverPlugin } from './directives/popover';\nexport { VBPopover } from './directives/popover/popover'; // export * from './directives/scrollspy'\n\nexport { VBScrollspyPlugin } from './directives/scrollspy';\nexport { VBScrollspy } from './directives/scrollspy/scrollspy'; // export * from './directives/toggle'\n\nexport { VBTogglePlugin } from './directives/toggle';\nexport { VBToggle } from './directives/toggle/toggle'; // export * from './directives/tooltip'\n\nexport { VBTooltipPlugin } from './directives/tooltip';\nexport { VBTooltip } from './directives/tooltip/tooltip'; // Default export is the BootstrapVue plugin\n\nexport default BootstrapVue;","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sv = moment.defineLocale('sv', {\n months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'söndag_mÃ¥ndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort : 'sön_mÃ¥n_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin : 'sö_mÃ¥_ti_on_to_fr_lö'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[IgÃ¥r] LT',\n nextWeek: '[PÃ¥] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : 'för %s sedan',\n s : 'nÃ¥gra sekunder',\n ss : '%d sekunder',\n m : 'en minut',\n mm : '%d minuter',\n h : 'en timme',\n hh : '%d timmar',\n d : 'en dag',\n dd : '%d dagar',\n M : 'en mÃ¥nad',\n MM : '%d mÃ¥nader',\n y : 'ett Ã¥r',\n yy : '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'e' :\n (b === 1) ? 'a' :\n (b === 2) ? 'a' :\n (b === 3) ? 'e' : 'e';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sv;\n\n})));\n","//! moment.js language configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n weekdaysMin: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىÚD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm',\n LLLL: 'ddddØŒ YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm'\n },\n meridiemParse: /ÙŠÛرىم ÙƒÛÚ†Û•|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن ÙƒÛيىن|ÙƒÛ•Ú†/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'ÙŠÛرىم ÙƒÛÚ†Û•' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن ÙƒÛيىن' || meridiem === 'ÙƒÛ•Ú†') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'ÙŠÛرىم ÙƒÛÚ†Û•';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن ÙƒÛيىن';\n } else {\n return 'ÙƒÛ•Ú†';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[ÙƒÛلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ÙƒÛيىن',\n past: '%s بۇرۇن',\n s: 'Ù†Û•Ú†Ú†Û• سÛكونت',\n ss: '%d سÛكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر ÙƒÛˆÙ†',\n dd: '%d ÙƒÛˆÙ†',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل'\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return ugCn;\n\n})));\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var msMy = moment.defineLocale('ms-my', {\n months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Esok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kelmarin pukul] LT',\n lastWeek : 'dddd [lepas pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lepas',\n s : 'beberapa saat',\n ss : '%d saat',\n m : 'seminit',\n mm : '%d minit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return msMy;\n\n})));\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var eo = moment.defineLocale('eo', {\n months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅgusto_septembro_oktobro_novembro_decembro'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aÅg_sep_okt_nov_dec'.split('_'),\n weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaÅdo_vendredo_sabato'.split('_'),\n weekdaysShort : 'dim_lun_mard_merk_ĵaÅ_ven_sab'.split('_'),\n weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D[-a de] MMMM, YYYY',\n LLL : 'D[-a de] MMMM, YYYY HH:mm',\n LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar : {\n sameDay : '[HodiaÅ je] LT',\n nextDay : '[MorgaÅ je] LT',\n nextWeek : 'dddd [je] LT',\n lastDay : '[HieraÅ je] LT',\n lastWeek : '[pasinta] dddd [je] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'post %s',\n past : 'antaÅ %s',\n s : 'sekundoj',\n ss : '%d sekundoj',\n m : 'minuto',\n mm : '%d minutoj',\n h : 'horo',\n hh : '%d horoj',\n d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo\n dd : '%d tagoj',\n M : 'monato',\n MM : '%d monatoj',\n y : 'jaro',\n yy : '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal : '%da',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return eo;\n\n})));\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n ' z: ' + this.z.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'جنوري',\n 'Ùيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءÙ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر'\n ];\n var days = [\n 'آچر',\n 'سومر',\n 'اڱارو',\n 'اربع',\n 'خميس',\n 'جمع',\n 'ڇنڇر'\n ];\n\n var sd = moment.defineLocale('sd', {\n months : months,\n monthsShort : months,\n weekdays : days,\n weekdaysShort : days,\n weekdaysMin : days,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'ddddØŒ D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبØ|شام/,\n isPM : function (input) {\n return 'شام' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n return 'شام';\n },\n calendar : {\n sameDay : '[اڄ] LT',\n nextDay : '[سڀاڻي] LT',\n nextWeek : 'dddd [اڳين Ù‡Ùتي تي] LT',\n lastDay : '[ڪالهه] LT',\n lastWeek : '[گزريل Ù‡Ùتي] dddd [تي] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s پوء',\n past : '%s اڳ',\n s : 'چند سيڪنڊ',\n ss : '%d سيڪنڊ',\n m : 'Ù‡Úª منٽ',\n mm : '%d منٽ',\n h : 'Ù‡Úª ڪلاڪ',\n hh : '%d ڪلاڪ',\n d : 'Ù‡Úª Úينهن',\n dd : '%d Úينهن',\n M : 'Ù‡Úª مهينو',\n MM : '%d مهينا',\n y : 'Ù‡Úª سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sd;\n\n})));\n","/**\n * lodash 3.0.3 (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license <https://lodash.com/license>\n */\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified\n * as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && objectToString.call(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n 'mm': 'munutenn',\n 'MM': 'miz',\n 'dd': 'devezh'\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n 'm': 'v',\n 'b': 'v',\n 'd': 'z'\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var br = moment.defineLocale('br', {\n months : 'Genver_C\\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),\n monthsShort : 'Gen_C\\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays : 'Sul_Lun_Meurzh_Merc\\'her_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h[e]mm A',\n LTS : 'h[e]mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D [a viz] MMMM YYYY',\n LLL : 'D [a viz] MMMM YYYY h[e]mm A',\n LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'\n },\n calendar : {\n sameDay : '[Hiziv da] LT',\n nextDay : '[Warc\\'hoazh da] LT',\n nextWeek : 'dddd [da] LT',\n lastDay : '[Dec\\'h da] LT',\n lastWeek : 'dddd [paset da] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'a-benn %s',\n past : '%s \\'zo',\n s : 'un nebeud segondennoù',\n ss : '%d eilenn',\n m : 'ur vunutenn',\n mm : relativeTimeWithMutation,\n h : 'un eur',\n hh : '%d eur',\n d : 'un devezh',\n dd : relativeTimeWithMutation,\n M : 'ur miz',\n MM : relativeTimeWithMutation,\n y : 'ur bloaz',\n yy : specialMutationForYears\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal : function (number) {\n var output = (number === 1) ? 'añ' : 'vet';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tÄte_Hui-tanguru_PoutÅ«-te-rangi_Paenga-whÄwhÄ_Haratua_Pipiri_HÅngoingoi_Here-turi-kÅkÄ_Mahuru_Whiringa-Ä-nuku_Whiringa-Ä-rangi_Hakihea'.split('_'),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_HÅngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'RÄtapu_Mane_TÅ«rei_Wenerei_TÄite_Paraire_HÄtarei'.split('_'),\n weekdaysShort: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n weekdaysMin: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm'\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hÄ“kona ruarua',\n ss: '%d hÄ“kona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mk = moment.defineLocale('mk', {\n months : 'јануари_февруари_март_април_мај_јуни_јули_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split('_'),\n monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays : 'недела_понеделник_вторник_Ñреда_четврток_петок_Ñабота'.split('_'),\n weekdaysShort : 'нед_пон_вто_Ñре_чет_пет_Ñаб'.split('_'),\n weekdaysMin : 'нe_пo_вт_ÑÑ€_че_пе_Ña'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'D.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Ð”ÐµÐ½ÐµÑ Ð²Ð¾] LT',\n nextDay : '[Утре во] LT',\n nextWeek : '[Во] dddd [во] LT',\n lastDay : '[Вчера во] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'поÑле %s',\n past : 'пред %s',\n s : 'неколку Ñекунди',\n ss : '%d Ñекунди',\n m : 'минута',\n mm : '%d минути',\n h : 'чаÑ',\n hh : '%d чаÑа',\n d : 'ден',\n dd : '%d дена',\n M : 'меÑец',\n MM : '%d меÑеци',\n y : 'година',\n yy : '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal : function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return mk;\n\n})));\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","/*global module*/\nvar Buffer = require('safe-buffer').Buffer;\nvar DataStream = require('./data-stream');\nvar jwa = require('jwa');\nvar Stream = require('stream');\nvar toString = require('./tostring');\nvar util = require('util');\n\nfunction base64url(string, encoding) {\n return Buffer\n .from(string, encoding)\n .toString('base64')\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n}\n\nfunction jwsSecuredInput(header, payload, encoding) {\n encoding = encoding || 'utf8';\n var encodedHeader = base64url(toString(header), 'binary');\n var encodedPayload = base64url(toString(payload), encoding);\n return util.format('%s.%s', encodedHeader, encodedPayload);\n}\n\nfunction jwsSign(opts) {\n var header = opts.header;\n var payload = opts.payload;\n var secretOrKey = opts.secret || opts.privateKey;\n var encoding = opts.encoding;\n var algo = jwa(header.alg);\n var securedInput = jwsSecuredInput(header, payload, encoding);\n var signature = algo.sign(securedInput, secretOrKey);\n return util.format('%s.%s', securedInput, signature);\n}\n\nfunction SignStream(opts) {\n var secret = opts.secret||opts.privateKey||opts.key;\n var secretStream = new DataStream(secret);\n this.readable = true;\n this.header = opts.header;\n this.encoding = opts.encoding;\n this.secret = this.privateKey = this.key = secretStream;\n this.payload = new DataStream(opts.payload);\n this.secret.once('close', function () {\n if (!this.payload.writable && this.readable)\n this.sign();\n }.bind(this));\n\n this.payload.once('close', function () {\n if (!this.secret.writable && this.readable)\n this.sign();\n }.bind(this));\n}\nutil.inherits(SignStream, Stream);\n\nSignStream.prototype.sign = function sign() {\n try {\n var signature = jwsSign({\n header: this.header,\n payload: this.payload.buffer,\n secret: this.secret.buffer,\n encoding: this.encoding\n });\n this.emit('done', signature);\n this.emit('data', signature);\n this.emit('end');\n this.readable = false;\n return signature;\n } catch (e) {\n this.readable = false;\n this.emit('error', e);\n this.emit('close');\n }\n};\n\nSignStream.sign = jwsSign;\n\nmodule.exports = SignStream;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var nb = moment.defineLocale('nb', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact : true,\n weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'noen sekunder',\n ss : '%d sekunder',\n m : 'ett minutt',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dager',\n M : 'en mÃ¥ned',\n MM : '%d mÃ¥neder',\n y : 'ett Ã¥r',\n yy : '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші'\n };\n\n var kk = moment.defineLocale('kk', {\n months : 'қаңтар_ақпан_наурыз_Ñәуір_мамыр_мауÑым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқÑан'.split('_'),\n monthsShort : 'қаң_ақп_нау_Ñәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays : 'жекÑенбі_дүйÑенбі_ÑейÑенбі_ÑәрÑенбі_бейÑенбі_жұма_Ñенбі'.split('_'),\n weekdaysShort : 'жек_дүй_Ñей_Ñәр_бей_жұм_Ñен'.split('_'),\n weekdaysMin : 'жк_дй_Ñй_ÑÑ€_бй_жм_Ñн'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Бүгін Ñағат] LT',\n nextDay : '[Ертең Ñағат] LT',\n nextWeek : 'dddd [Ñағат] LT',\n lastDay : '[Кеше Ñағат] LT',\n lastWeek : '[Өткен аптаның] dddd [Ñағат] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ішінде',\n past : '%s бұрын',\n s : 'бірнеше Ñекунд',\n ss : '%d Ñекунд',\n m : 'бір минут',\n mm : '%d минут',\n h : 'бір Ñағат',\n hh : '%d Ñағат',\n d : 'бір күн',\n dd : '%d күн',\n M : 'бір ай',\n MM : '%d ай',\n y : 'бір жыл',\n yy : '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal : function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n monthsShort: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss : '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return arTn;\n\n})));\n","var JsonWebTokenError = require('./JsonWebTokenError');\n\nvar TokenExpiredError = function (message, expiredAt) {\n JsonWebTokenError.call(this, message);\n this.name = 'TokenExpiredError';\n this.expiredAt = expiredAt;\n};\n\nTokenExpiredError.prototype = Object.create(JsonWebTokenError.prototype);\n\nTokenExpiredError.prototype.constructor = TokenExpiredError;\n\nmodule.exports = TokenExpiredError;","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var it = moment.defineLocale('it', {\n months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : function (s) {\n return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past : '%s fa',\n s : 'alcuni secondi',\n ss : '%d secondi',\n m : 'un minuto',\n mm : '%d minuti',\n h : 'un\\'ora',\n hh : '%d ore',\n d : 'un giorno',\n dd : '%d giorni',\n M : 'un mese',\n MM : '%d mesi',\n y : 'un anno',\n yy : '%d anni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return it;\n\n})));\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var itCh = moment.defineLocale('it-ch', {\n months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : function (s) {\n return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past : '%s fa',\n s : 'alcuni secondi',\n ss : '%d secondi',\n m : 'un minuto',\n mm : '%d minuti',\n h : 'un\\'ora',\n hh : '%d ore',\n d : 'un giorno',\n dd : '%d giorni',\n M : 'un mese',\n MM : '%d mesi',\n y : 'un anno',\n yy : '%d anni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enNz = moment.defineLocale('en-nz', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enNz;\n\n})));\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [ 0, 1 ]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return new Buffer(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [ 0 ].concat(r)\n if (s[0] & 0x80) s = [ 0 ].concat(s)\n\n var total = r.length + s.length + 4\n var res = [ 0x30, total, 0x02, r.length ]\n res = res.concat(r, [ 0x02, s.length ], s)\n return new Buffer(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = new Buffer(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = new Buffer(q.byteLength() - x.length)\n zeros.fill(0)\n x = Buffer.concat([ zeros, x ])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = new Buffer(hlen)\n v.fill(1)\n var k = new Buffer(hlen)\n k.fill(0)\n k = createHmac(algo, k).update(v).update(new Buffer([ 0 ])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(new Buffer([ 1 ])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = new Buffer(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = new Buffer(q.byteLength() - out.length)\n zeros.fill(0)\n out = Buffer.concat([ zeros, out ])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = new Buffer(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([ t, kv.v ])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(new Buffer([ 0 ])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact : true,\n weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),\n weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'oer %s',\n past : '%s lyn',\n s : 'in pear sekonden',\n ss : '%d sekonden',\n m : 'ien minút',\n mm : '%d minuten',\n h : 'ien oere',\n hh : '%d oeren',\n d : 'ien dei',\n dd : '%d dagen',\n M : 'ien moanne',\n MM : '%d moannen',\n y : 'ien jier',\n yy : '%d jierren'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fy;\n\n})));\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enIl = moment.defineLocale('en-il', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n return enIl;\n\n})));\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/*! VueCurrencyFilter v3.4.3 by Irfan Maulana <github.com/mazipan> */\n!function(r,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"VueCurrencyFilter\",[],t):\"object\"==typeof exports?exports.VueCurrencyFilter=t():r.VueCurrencyFilter=t()}(global,function(){return function(r){var t={};function e(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return r[n].call(o.exports,o,o.exports,e),o.l=!0,o.exports}return e.m=r,e.c=t,e.d=function(r,t,n){e.o(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:n})},e.r=function(r){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(r,\"__esModule\",{value:!0})},e.t=function(r,t){if(1&t&&(r=e(r)),8&t)return r;if(4&t&&\"object\"==typeof r&&r&&r.__esModule)return r;var n=Object.create(null);if(e.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:r}),2&t&&\"string\"!=typeof r)for(var o in r)e.d(n,o,function(t){return r[t]}.bind(null,o));return n},e.n=function(r){var t=r&&r.__esModule?function(){return r.default}:function(){return r};return e.d(t,\"a\",t),t},e.o=function(r,t){return Object.prototype.hasOwnProperty.call(r,t)},e.p=\"/dist\",e(e.s=0)}([function(r,t,e){\"use strict\";e.r(t);var n=Array.prototype.map,o=Array.isArray,a=Object.prototype.toString,u={__isNull:function(r){return null==r},__isString:function(r){return!!(\"\"===r||r&&r.charCodeAt&&r.substr)},__isArray:function(r){return o?o(r):\"[object Array]\"===a.call(r)},__isObject:function(r){return r&&\"[object Object]\"===a.call(r)},__defaults:function(r,t){var e;for(e in r=r||{},t=t||{})t.hasOwnProperty(e)&&null==r[e]&&(r[e]=t[e]);return r},__map:function(r,t,e){var o,a,u=[];if(!r)return u;if(n&&r.map===n)return r.map(t,e);for(o=0,a=r.length;o<a;o++)u[o]=t.call(e,r[o],o,r);return u}},i={};function s(r,t){return r=Math.round(Math.abs(r)),isNaN(r)?t:r}i.settings={currency:{symbol:\"$\",format:\"%s%v\",decimal:\".\",thousand:\",\",precision:2,grouping:3},number:{precision:0,grouping:3,thousand:\",\",decimal:\".\"}};var c=i.unformat=i.parse=function(r,t){if(u.__isArray(r))return u.__map(r,function(r){return c(r,t)});if(\"number\"==typeof(r=r||0))return r;t=t||i.settings.number.decimal;var e=new RegExp(\"[^0-9-\"+t+\"]\",[\"g\"]),n=parseFloat((\"\"+r).replace(/\\((?=\\d+)(.*)\\)/,\"-$1\").replace(e,\"\").replace(t,\".\"));return isNaN(n)?0:n},f=i.toFixed=function(r,t){t=s(t,i.settings.number.precision);var e=Number(i.unformat(r)+\"e\"+t),n=Math.round(e);return Number(n+\"e-\"+t).toFixed(t)},l=i.formatNumber=i.format=function(r,t,e,n){if(u.__isArray(r))return u.__map(r,function(r){return l(r,t,e,n)});r=c(r);var o=u.__defaults(u.__isObject(t)?t:{precision:t,thousand:e,decimal:n},i.settings.number),a=s(o.precision),p=r<0?\"-\":\"\",y=parseInt(f(Math.abs(r||0),a),10)+\"\",m=y.length>3?y.length%3:0;return p+(m?y.substr(0,m)+o.thousand:\"\")+y.substr(m).replace(/(\\d{3})(?=\\d)/g,\"$1\"+o.thousand)+(a?o.decimal+f(Math.abs(r),a).split(\".\")[1]:\"\")},p=i.formatMoney=function(r,t,e,n,o,a){if(u.__isArray(r))return u.__map(r,function(r){return p(r,t,e,n,o,a)});r=c(r);var f=u.__defaults(u.__isObject(t)?t:{symbol:t,precision:e,thousand:n,decimal:o,format:a},i.settings.currency),y=function(r){var t=i.settings.currency.format;return\"function\"==typeof r&&(r=r()),u.__isString(r)&&r.match(\"%v\")?{pos:r,neg:r.replace(\"-\",\"\").replace(\"%v\",\"-%v\"),zero:r}:r&&r.pos&&r.pos.match(\"%v\")?r:u.__isString(t)?i.settings.currency.format={pos:t,neg:t.replace(\"%v\",\"-%v\"),zero:t}:t}(f.format);return(r>0?y.pos:r<0?y.neg:y.zero).replace(\"%s\",f.symbol).replace(\"%v\",l(Math.abs(r),s(f.precision),f.thousand,f.decimal))},y=i;function m(r){return(m=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}function b(r,t){if(null==r)return{};var e,n,o=function(r,t){if(null==r)return{};var e,n,o={},a=Object.keys(r);for(n=0;n<a.length;n++)e=a[n],t.indexOf(e)>=0||(o[e]=r[e]);return o}(r,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(r);for(n=0;n<a.length;n++)e=a[n],t.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(r,e)&&(o[e]=r[e])}return o}var d={install:function(r,t){var e={name:\"currency\",symbol:\"\",thousandsSeparator:\".\",fractionCount:0,fractionSeparator:\",\",symbolPosition:\"front\",symbolSpacing:!0};u.__isNull(t)&&(t={});var n=u.__defaults(t,e),o=n.name,a=b(n,[\"name\"]);r.filter(o,function(r,t,e,n,o,i,s){var c=u.__defaults({symbol:t,thousandsSeparator:e,fractionCount:n,fractionSeparator:o,symbolPosition:i,symbolSpacing:s},a);\"object\"===m(t)&&(c=u.__defaults(t,a));var f=0,l=\"-\"===String(r).charAt(0);l&&(r=String(r).slice(1));var p=parseFloat(r);isNaN(p)||(f=p);var b=\"%s%v\";return b=\"front\"===c.symbolPosition?c.symbolSpacing?\"%s %v\":\"%s%v\":c.symbolSpacing?\"%v %s\":\"%v%s\",c.fractionCount>0&&(r=y.toFixed(r,c.fractionCount)),f=y.formatMoney(r,{format:b,symbol:c.symbol,precision:c.fractionCount,thousand:c.thousandsSeparator,decimal:c.fractionSeparator}),l&&(f=\"-\"+f),f}),r.prototype.$CurrencyFilter={setConfig:function(r){a=u.__defaults(r,e)},getConfig:function(){return a}}}};t.default=d}])});\n//# sourceMappingURL=VueCurrencyFilter.min.js.map","module.exports =\n/******/ (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 = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"11e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pIE = __webpack_require__(\"52a7\");\nvar createDesc = __webpack_require__(\"4630\");\nvar toIObject = __webpack_require__(\"6821\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar has = __webpack_require__(\"69a8\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(\"9e1e\") ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"1eb2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var i\n if ((i = window.document.currentScript) && (i = i.src.match(/(.+\\/)[^/]+\\.js$/))) {\n __webpack_require__.p = i[1] // eslint-disable-line\n }\n}\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"2350\":\n/***/ (function(module, exports) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"3b2b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar inheritIfRequired = __webpack_require__(\"5dbc\");\nvar dP = __webpack_require__(\"86cc\").f;\nvar gOPN = __webpack_require__(\"9093\").f;\nvar isRegExp = __webpack_require__(\"aae3\");\nvar $flags = __webpack_require__(\"0bfb\");\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (__webpack_require__(\"9e1e\") && (!CORRECT_NEW || __webpack_require__(\"79e5\")(function () {\n re2[__webpack_require__(\"2b4c\")('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n __webpack_require__(\"2aba\")(global, 'RegExp', $RegExp);\n}\n\n__webpack_require__(\"7a56\")('RegExp');\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"499e\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/listToStyles.js\n/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nfunction listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n\n// CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/addStylesClient.js\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return addStylesClient; });\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\n\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nfunction addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5c94\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(\"6900\");\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(\"499e\").default\nvar update = add(\"a08cad1e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5dbc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar setPrototypeOf = __webpack_require__(\"8b97\").set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"6900\":\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(\"2350\")(false);\n// imports\n\n\n// module\nexports.push([module.i, \"\\n.vue-input-tag-wrapper{-webkit-appearance:textfield;background-color:#fff;border:1px solid #ccc;cursor:text;display:flex;flex-wrap:wrap;overflow:hidden;padding-left:4px;padding-top:4px;text-align:left\\n}\\n.vue-input-tag-wrapper .input-tag{background-color:#cde69c;border:1px solid #a5d24a;border-radius:2px;color:#638421;display:inline-block;font-size:13px;font-weight:400;margin-bottom:4px;margin-right:4px;padding:3px\\n}\\n.vue-input-tag-wrapper .input-tag .remove{color:#638421;cursor:pointer;font-weight:700\\n}\\n.vue-input-tag-wrapper .input-tag .remove:hover{text-decoration:none\\n}\\n.vue-input-tag-wrapper .input-tag .remove:empty:before{content:\\\" x\\\"\\n}\\n.vue-input-tag-wrapper .new-tag{background:transparent;border:0;color:#777;flex-grow:1;font-size:13px;font-weight:400;margin-bottom:6px;margin-top:1px;outline:none;padding:4px 4px 4px 0\\n}\\n.vue-input-tag-wrapper.read-only{cursor:default\\n}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7a56\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(\"7726\");\nvar dP = __webpack_require__(\"86cc\");\nvar DESCRIPTORS = __webpack_require__(\"9e1e\");\nvar SPECIES = __webpack_require__(\"2b4c\")('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"8b97\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = __webpack_require__(\"d3f4\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = __webpack_require__(\"9b43\")(Function.call, __webpack_require__(\"11e9\").f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n/***/ }),\n\n/***/ \"8e26\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_InputTag_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"5c94\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_InputTag_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_InputTag_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_InputTag_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); \n\n/***/ }),\n\n/***/ \"9093\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar hiddenKeys = __webpack_require__(\"e11e\").concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ \"96cf\":\n/***/ (function(module, exports) {\n\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"aa77\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(\"5ca1\");\nvar defined = __webpack_require__(\"be13\");\nvar fails = __webpack_require__(\"79e5\");\nvar spaces = __webpack_require__(\"fdef\");\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c5f6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(\"7726\");\nvar has = __webpack_require__(\"69a8\");\nvar cof = __webpack_require__(\"2d95\");\nvar inheritIfRequired = __webpack_require__(\"5dbc\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar fails = __webpack_require__(\"79e5\");\nvar gOPN = __webpack_require__(\"9093\").f;\nvar gOPD = __webpack_require__(\"11e9\").f;\nvar dP = __webpack_require__(\"86cc\").f;\nvar $trim = __webpack_require__(\"aa77\").trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(__webpack_require__(\"2aeb\")(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = __webpack_require__(\"9e1e\") ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n __webpack_require__(\"2aba\")(global, NUMBER, $Number);\n}\n\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\nvar setPublicPath = __webpack_require__(\"1eb2\");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"0595ba96-vue-loader-template\"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/InputTag.vue?vue&type=template&id=14813909&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"vue-input-tag-wrapper\",class:{\n 'read-only': _vm.readOnly,\n 'vue-input-tag-wrapper--active': _vm.isInputActive,\n },on:{\"click\":function($event){_vm.focusNewTag()}}},[_vm._l((_vm.innerTags),function(tag,index){return _c('span',{key:index,staticClass:\"input-tag\"},[_c('span',[_vm._v(_vm._s(tag))]),(!_vm.readOnly)?_c('a',{staticClass:\"remove\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();_vm.remove(index)}}},[_vm._t(\"remove-icon\")],2):_vm._e()])}),(!_vm.readOnly && !_vm.isLimit)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newTag),expression:\"newTag\"}],ref:\"inputtag\",staticClass:\"new-tag\",attrs:{\"placeholder\":_vm.placeholder,\"type\":\"text\"},domProps:{\"value\":(_vm.newTag)},on:{\"keydown\":[function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"delete\",[8,46],$event.key,[\"Backspace\",\"Delete\"])){ return null; }$event.stopPropagation();return _vm.removeLastTag($event)},_vm.addNew],\"blur\":_vm.handleInputBlur,\"focus\":_vm.handleInputFocus,\"input\":function($event){if($event.target.composing){ return; }_vm.newTag=$event.target.value}}}):_vm._e()],2)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/components/InputTag.vue?vue&type=template&id=14813909&\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/builtin/es6/typeof.js\nfunction _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// EXTERNAL MODULE: ./node_modules/regenerator-runtime/runtime.js\nvar runtime = __webpack_require__(\"96cf\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/builtin/es6/asyncToGenerator.js\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n }\n\n function _next(value) {\n step(\"next\", value);\n }\n\n function _throw(err) {\n step(\"throw\", err);\n }\n\n _next();\n });\n };\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/builtin/es6/arrayWithoutHoles.js\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/builtin/es6/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/builtin/es6/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/builtin/es6/toConsumableArray.js\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.number.constructor.js\nvar es6_number_constructor = __webpack_require__(\"c5f6\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.regexp.constructor.js\nvar es6_regexp_constructor = __webpack_require__(\"3b2b\");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/InputTag.vue?vue&type=script&lang=js&\n\n\n\n\n\n\n\n\n\n/* eslint-disable */\nvar validators = {\n email: new RegExp(/^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/),\n url: new RegExp(/^(https?|ftp|rmtp|mms):\\/\\/(([A-Z0-9][A-Z0-9_-]*)(\\.[A-Z0-9][A-Z0-9_-]*)+)(:(\\d+))?\\/?/i),\n text: new RegExp(/^[a-zA-Z]+$/),\n digits: new RegExp(/^[\\d() \\.\\:\\-\\+#]+$/),\n isodate: new RegExp(/^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/)\n};\n/* eslint-enable */\n\n/* harmony default export */ var InputTagvue_type_script_lang_js_ = ({\n name: \"InputTag\",\n props: {\n value: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n placeholder: {\n type: String,\n default: \"\"\n },\n readOnly: {\n type: Boolean,\n default: false\n },\n validate: {\n type: String | Function | Object,\n default: \"\"\n },\n addTagOnKeys: {\n type: Array,\n default: function _default() {\n return [13, // Return\n 188, // Comma ','\n 9 // Tab\n ];\n }\n },\n addTagOnBlur: {\n type: Boolean,\n default: false\n },\n limit: {\n type: Number,\n default: -1\n },\n allowDuplicates: {\n type: Boolean,\n default: false\n },\n beforeAdding: {\n type: Function\n }\n },\n data: function data() {\n return {\n newTag: \"\",\n innerTags: _toConsumableArray(this.value),\n isInputActive: false\n };\n },\n computed: {\n isLimit: function isLimit() {\n return this.limit > 0 && Number(this.limit) === this.innerTags.length;\n }\n },\n watch: {\n value: function value() {\n this.innerTags = _toConsumableArray(this.value);\n }\n },\n methods: {\n focusNewTag: function focusNewTag() {\n if (this.readOnly || !this.$el.querySelector(\".new-tag\")) {\n return;\n }\n\n this.$el.querySelector(\".new-tag\").focus();\n },\n handleInputFocus: function handleInputFocus() {\n this.isInputActive = true;\n },\n handleInputBlur: function handleInputBlur(e) {\n this.isInputActive = false;\n this.addNew(e);\n },\n addNew: function () {\n var _addNew = _asyncToGenerator(\n /*#__PURE__*/\n regeneratorRuntime.mark(function _callee(e) {\n var keyShouldAddTag, typeIsNotBlur, tag, isValid;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n keyShouldAddTag = e ? this.addTagOnKeys.indexOf(e.keyCode) !== -1 : true;\n typeIsNotBlur = e && e.type !== \"blur\";\n\n if (!(!keyShouldAddTag && (typeIsNotBlur || !this.addTagOnBlur) || this.isLimit)) {\n _context.next = 4;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 4:\n if (!this.beforeAdding) {\n _context.next = 10;\n break;\n }\n\n _context.next = 7;\n return this.beforeAdding(this.newTag);\n\n case 7:\n _context.t0 = _context.sent;\n _context.next = 11;\n break;\n\n case 10:\n _context.t0 = this.newTag;\n\n case 11:\n tag = _context.t0;\n _context.next = 14;\n return this.validateIfNeeded(tag);\n\n case 14:\n isValid = _context.sent;\n\n if (tag && isValid && (this.allowDuplicates || this.innerTags.indexOf(tag) === -1)) {\n this.innerTags.push(tag);\n this.newTag = \"\";\n this.tagChange();\n e && e.preventDefault();\n }\n\n case 16:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function addNew(_x) {\n return _addNew.apply(this, arguments);\n };\n }(),\n validateIfNeeded: function validateIfNeeded(tagValue) {\n if (this.validate === \"\" || this.validate === undefined) {\n return true;\n }\n\n if (typeof this.validate === \"function\") {\n return this.validate(tagValue);\n }\n\n if (typeof this.validate === \"string\" && Object.keys(validators).indexOf(this.validate) > -1) {\n return validators[this.validate].test(tagValue);\n }\n\n if (_typeof(this.validate) === \"object\" && this.validate.test !== undefined) {\n return this.validate.test(tagValue);\n }\n\n return true;\n },\n remove: function remove(index) {\n this.innerTags.splice(index, 1);\n this.tagChange();\n },\n removeLastTag: function removeLastTag() {\n if (this.newTag) {\n return;\n }\n\n this.innerTags.pop();\n this.tagChange();\n },\n tagChange: function tagChange() {\n this.$emit(\"update:tags\", this.innerTags);\n this.$emit(\"input\", this.innerTags);\n }\n }\n});\n// CONCATENATED MODULE: ./src/components/InputTag.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_InputTagvue_type_script_lang_js_ = (InputTagvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/components/InputTag.vue?vue&type=style&index=0&lang=css&\nvar InputTagvue_type_style_index_0_lang_css_ = __webpack_require__(\"8e26\");\n\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n// CONCATENATED MODULE: ./src/components/InputTag.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = normalizeComponent(\n components_InputTagvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\ncomponent.options.__file = \"InputTag.vue\"\n/* harmony default export */ var InputTag = (component.exports);\n// CONCATENATED MODULE: ./src/components/index.js\n\n/* harmony default export */ var components = (InputTag);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (components);\n\n\n\n/***/ }),\n\n/***/ \"fdef\":\n/***/ (function(module, exports) {\n\nmodule.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n/***/ })\n\n/******/ });\n//# sourceMappingURL=vueInputTag.common.js.map","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sw = moment.defineLocale('sw', {\n months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\n weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[leo saa] LT',\n nextDay : '[kesho saa] LT',\n nextWeek : '[wiki ijayo] dddd [saat] LT',\n lastDay : '[jana] LT',\n lastWeek : '[wiki iliyopita] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s baadaye',\n past : 'tokea %s',\n s : 'hivi punde',\n ss : 'sekunde %d',\n m : 'dakika moja',\n mm : 'dakika %d',\n h : 'saa limoja',\n hh : 'masaa %d',\n d : 'siku moja',\n dd : 'masiku %d',\n M : 'mwezi mmoja',\n MM : 'miezi %d',\n y : 'mwaka mmoja',\n yy : 'miaka %d'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sw;\n\n})));\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var bufferEqual = require('buffer-equal-constant-time');\nvar Buffer = require('safe-buffer').Buffer;\nvar crypto = require('crypto');\nvar formatEcdsa = require('ecdsa-sig-formatter');\nvar util = require('util');\n\nvar MSG_INVALID_ALGORITHM = '\"%s\" is not a valid algorithm.\\n Supported algorithms are:\\n \"HS256\", \"HS384\", \"HS512\", \"RS256\", \"RS384\", \"RS512\", \"PS256\", \"PS384\", \"PS512\", \"ES256\", \"ES384\", \"ES512\" and \"none\".'\nvar MSG_INVALID_SECRET = 'secret must be a string or buffer';\nvar MSG_INVALID_VERIFIER_KEY = 'key must be a string or a buffer';\nvar MSG_INVALID_SIGNER_KEY = 'key must be a string, a buffer or an object';\n\nvar supportsKeyObjects = typeof crypto.createPublicKey === 'function';\nif (supportsKeyObjects) {\n MSG_INVALID_VERIFIER_KEY += ' or a KeyObject';\n MSG_INVALID_SECRET += 'or a KeyObject';\n}\n\nfunction checkIsPublicKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return;\n }\n\n if (!supportsKeyObjects) {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key !== 'object') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.type !== 'string') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.asymmetricKeyType !== 'string') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.export !== 'function') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n};\n\nfunction checkIsPrivateKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return;\n }\n\n if (typeof key === 'object') {\n return;\n }\n\n throw typeError(MSG_INVALID_SIGNER_KEY);\n};\n\nfunction checkIsSecretKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return key;\n }\n\n if (!supportsKeyObjects) {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (typeof key !== 'object') {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (key.type !== 'secret') {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (typeof key.export !== 'function') {\n throw typeError(MSG_INVALID_SECRET);\n }\n}\n\nfunction fromBase64(base64) {\n return base64\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n}\n\nfunction toBase64(base64url) {\n base64url = base64url.toString();\n\n var padding = 4 - base64url.length % 4;\n if (padding !== 4) {\n for (var i = 0; i < padding; ++i) {\n base64url += '=';\n }\n }\n\n return base64url\n .replace(/\\-/g, '+')\n .replace(/_/g, '/');\n}\n\nfunction typeError(template) {\n var args = [].slice.call(arguments, 1);\n var errMsg = util.format.bind(util, template).apply(null, args);\n return new TypeError(errMsg);\n}\n\nfunction bufferOrString(obj) {\n return Buffer.isBuffer(obj) || typeof obj === 'string';\n}\n\nfunction normalizeInput(thing) {\n if (!bufferOrString(thing))\n thing = JSON.stringify(thing);\n return thing;\n}\n\nfunction createHmacSigner(bits) {\n return function sign(thing, secret) {\n checkIsSecretKey(secret);\n thing = normalizeInput(thing);\n var hmac = crypto.createHmac('sha' + bits, secret);\n var sig = (hmac.update(thing), hmac.digest('base64'))\n return fromBase64(sig);\n }\n}\n\nfunction createHmacVerifier(bits) {\n return function verify(thing, signature, secret) {\n var computedSig = createHmacSigner(bits)(thing, secret);\n return bufferEqual(Buffer.from(signature), Buffer.from(computedSig));\n }\n}\n\nfunction createKeySigner(bits) {\n return function sign(thing, privateKey) {\n checkIsPrivateKey(privateKey);\n thing = normalizeInput(thing);\n // Even though we are specifying \"RSA\" here, this works with ECDSA\n // keys as well.\n var signer = crypto.createSign('RSA-SHA' + bits);\n var sig = (signer.update(thing), signer.sign(privateKey, 'base64'));\n return fromBase64(sig);\n }\n}\n\nfunction createKeyVerifier(bits) {\n return function verify(thing, signature, publicKey) {\n checkIsPublicKey(publicKey);\n thing = normalizeInput(thing);\n signature = toBase64(signature);\n var verifier = crypto.createVerify('RSA-SHA' + bits);\n verifier.update(thing);\n return verifier.verify(publicKey, signature, 'base64');\n }\n}\n\nfunction createPSSKeySigner(bits) {\n return function sign(thing, privateKey) {\n checkIsPrivateKey(privateKey);\n thing = normalizeInput(thing);\n var signer = crypto.createSign('RSA-SHA' + bits);\n var sig = (signer.update(thing), signer.sign({\n key: privateKey,\n padding: crypto.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST\n }, 'base64'));\n return fromBase64(sig);\n }\n}\n\nfunction createPSSKeyVerifier(bits) {\n return function verify(thing, signature, publicKey) {\n checkIsPublicKey(publicKey);\n thing = normalizeInput(thing);\n signature = toBase64(signature);\n var verifier = crypto.createVerify('RSA-SHA' + bits);\n verifier.update(thing);\n return verifier.verify({\n key: publicKey,\n padding: crypto.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST\n }, signature, 'base64');\n }\n}\n\nfunction createECDSASigner(bits) {\n var inner = createKeySigner(bits);\n return function sign() {\n var signature = inner.apply(null, arguments);\n signature = formatEcdsa.derToJose(signature, 'ES' + bits);\n return signature;\n };\n}\n\nfunction createECDSAVerifer(bits) {\n var inner = createKeyVerifier(bits);\n return function verify(thing, signature, publicKey) {\n signature = formatEcdsa.joseToDer(signature, 'ES' + bits).toString('base64');\n var result = inner(thing, signature, publicKey);\n return result;\n };\n}\n\nfunction createNoneSigner() {\n return function sign() {\n return '';\n }\n}\n\nfunction createNoneVerifier() {\n return function verify(thing, signature) {\n return signature === '';\n }\n}\n\nmodule.exports = function jwa(algorithm) {\n var signerFactories = {\n hs: createHmacSigner,\n rs: createKeySigner,\n ps: createPSSKeySigner,\n es: createECDSASigner,\n none: createNoneSigner,\n }\n var verifierFactories = {\n hs: createHmacVerifier,\n rs: createKeyVerifier,\n ps: createPSSKeyVerifier,\n es: createECDSAVerifer,\n none: createNoneVerifier,\n }\n var match = algorithm.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/i);\n if (!match)\n throw typeError(MSG_INVALID_ALGORITHM, algorithm);\n var algo = (match[1] || match[3]).toLowerCase();\n var bits = match[2];\n\n return {\n sign: signerFactories[algo](bits),\n verify: verifierFactories[algo](bits),\n }\n};\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = 'január_február_marec_aprÃl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return (n > 1) && (n < 5);\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodÃn');\n } else {\n return result + 'hodinami';\n }\n break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dnÃ');\n } else {\n return result + 'dňami';\n }\n break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n break;\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months : months,\n monthsShort : monthsShort,\n weekdays : 'nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota'.split('_'),\n weekdaysShort : 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n weekdaysMin : 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n longDateFormat : {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo Å¡tvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[vÄera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pred %s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sk;\n\n})));\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nfunction checkBuffer (buf, name) {\n if (typeof buf !== 'string' && !Buffer.isBuffer(buf)) {\n throw new TypeError(name + ' must be a buffer or string')\n }\n}\n\nmodule.exports = function (password, salt, iterations, keylen) {\n checkBuffer(password, 'Password')\n checkBuffer(salt, 'Salt')\n\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var yo = moment.defineLocale('yo', {\n months : 'SẹÌrẹÌ_EÌ€reÌ€leÌ€_Ẹrẹ̀naÌ€_IÌ€gbeÌ_EÌ€bibi_OÌ€kuÌ€du_Agẹmo_OÌ€guÌn_Owewe_Ọ̀waÌ€raÌ€_BeÌluÌ_Ọ̀pẹ̀̀'.split('_'),\n monthsShort : 'SẹÌr_EÌ€rl_Ẹrn_IÌ€gb_EÌ€bi_OÌ€kuÌ€_Agẹ_OÌ€guÌ_Owe_Ọ̀waÌ€_BeÌl_Ọ̀pẹ̀̀'.split('_'),\n weekdays : 'AÌ€iÌ€kuÌ_AjeÌ_IÌ€sẹÌgun_Ọjá»ÌruÌ_Ọjá»Ìbá»_ẸtiÌ€_AÌ€baÌmẹÌta'.split('_'),\n weekdaysShort : 'AÌ€iÌ€k_AjeÌ_IÌ€sẹÌ_Ọjr_Ọjb_ẸtiÌ€_AÌ€baÌ'.split('_'),\n weekdaysMin : 'AÌ€iÌ€_Aj_IÌ€s_Ọr_Ọb_Ẹt_AÌ€b'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[OÌ€niÌ€ ni] LT',\n nextDay : '[Ọ̀la ni] LT',\n nextWeek : 'dddd [Ọsẹ̀ toÌn\\'bá»] [ni] LT',\n lastDay : '[AÌ€na ni] LT',\n lastWeek : 'dddd [Ọsẹ̀ toÌlá»Ì] [ni] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'niÌ %s',\n past : '%s ká»jaÌ',\n s : 'iÌ€sẹjuÌ aayaÌ die',\n ss :'aayaÌ %d',\n m : 'iÌ€sẹjuÌ kan',\n mm : 'iÌ€sẹjuÌ %d',\n h : 'waÌkati kan',\n hh : 'waÌkati %d',\n d : 'á»já»Ì kan',\n dd : 'á»já»Ì %d',\n M : 'osuÌ€ kan',\n MM : 'osuÌ€ %d',\n y : 'á»duÌn kan',\n yy : 'á»duÌn %d'\n },\n dayOfMonthOrdinalParse : /á»já»Ì\\s\\d{1,2}/,\n ordinal : 'á»já»Ì %d',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return yo;\n\n})));\n","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota'.split('_'),\n weekdaysShort : 'ned._pon._tor._sre._Äet._pet._sob.'.split('_'),\n weekdaysMin : 'ne_po_to_sr_Äe_pe_so'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danes ob] LT',\n nextDay : '[jutri ob] LT',\n\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay : '[vÄeraj ob] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n return '[prejÅ¡njo] [nedeljo] [ob] LT';\n case 3:\n return '[prejÅ¡njo] [sredo] [ob] LT';\n case 6:\n return '[prejÅ¡njo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejÅ¡nji] dddd [ob] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Äez %s',\n past : 'pred %s',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = [\n 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',\n numbersPast[7], numbersPast[8], numbersPast[9]\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD.MM.YYYY',\n LL : 'Do MMMM[ta] YYYY',\n LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l : 'D.M.YYYY',\n ll : 'Do MMM YYYY',\n lll : 'Do MMM YYYY, [klo] HH.mm',\n llll : 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar : {\n sameDay : '[tänään] [klo] LT',\n nextDay : '[huomenna] [klo] LT',\n nextWeek : 'dddd [klo] LT',\n lastDay : '[eilen] [klo] LT',\n lastWeek : '[viime] dddd[na] [klo] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s päästä',\n past : '%s sitten',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': 'Ù¡',\n '2': 'Ù¢',\n '3': 'Ù£',\n '4': 'Ù¤',\n '5': 'Ù¥',\n '6': 'Ù¦',\n '7': 'Ù§',\n '8': 'Ù¨',\n '9': 'Ù©',\n '0': 'Ù '\n }, numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months : 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n monthsShort : 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n weekdays : 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM : function (input) {\n return 'Ù…' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'ÙÙŠ %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return arSa;\n\n})));\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var bg = moment.defineLocale('bg', {\n months : 'Ñнуари_февруари_март_април_май_юни_юли_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split('_'),\n monthsShort : 'Ñнр_фев_мар_апр_май_юни_юли_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays : 'неделÑ_понеделник_вторник_ÑÑ€Ñда_четвъртък_петък_Ñъбота'.split('_'),\n weekdaysShort : 'нед_пон_вто_ÑÑ€Ñ_чет_пет_Ñъб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'D.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Ð”Ð½ÐµÑ Ð²] LT',\n nextDay : '[Утре в] LT',\n nextWeek : 'dddd [в] LT',\n lastDay : '[Вчера в] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Ð’ изминалата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Ð’ изминалиÑ] dddd [в] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Ñлед %s',\n past : 'преди %s',\n s : 'нÑколко Ñекунди',\n ss : '%d Ñекунди',\n m : 'минута',\n mm : '%d минути',\n h : 'чаÑ',\n hh : '%d чаÑа',\n d : 'ден',\n dd : '%d дни',\n M : 'меÑец',\n MM : '%d меÑеца',\n y : 'година',\n yy : '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal : function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return bg;\n\n})));\n","module.exports = {};\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': 'á',\n '2': 'á‚',\n '3': 'áƒ',\n '4': 'á„',\n '5': 'á…',\n '6': 'á†',\n '7': 'á‡',\n '8': 'áˆ',\n '9': 'á‰',\n '0': 'á€'\n }, numberMap = {\n 'á': '1',\n 'á‚': '2',\n 'áƒ': '3',\n 'á„': '4',\n 'á…': '5',\n 'á†': '6',\n 'á‡': '7',\n 'áˆ': '8',\n 'á‰': '9',\n 'á€': '0'\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နá€á€«á€›á€®_ဖေဖော်á€á€«á€›á€®_မá€á€º_ဧပြီ_မေ_ဇွန်_ဇူလá€á€¯á€„်_သြဂုá€á€º_စက်á€á€„်ဘာ_အောက်á€á€á€¯á€˜á€¬_နá€á€¯á€á€„်ဘာ_ဒီဇင်ဘာ'.split('_'),\n monthsShort: 'ဇန်_ဖေ_မá€á€º_ပြီ_မေ_ဇွန်_လá€á€¯á€„်_သြ_စက်_အောက်_နá€á€¯_ဒီ'.split('_'),\n weekdays: 'á€á€”င်္ဂနွေ_á€á€”င်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပá€á€±á€¸_သောကြာ_စနေ'.split('_'),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးá€á€²á€·á€žá€±á€¬] dddd LT [မှာ]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်á€á€²á€·á€žá€±á€¬ %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss : '%d စက္ကန့်',\n m: 'á€á€…်မá€á€”စ်',\n mm: '%d မá€á€”စ်',\n h: 'á€á€…်နာရီ',\n hh: '%d နာရီ',\n d: 'á€á€…်ရက်',\n dd: '%d ရက်',\n M: 'á€á€…်လ',\n MM: '%d လ',\n y: 'á€á€…်နှစ်',\n yy: '%d နှစ်'\n },\n preparse: function (string) {\n return string.replace(/[áá‚áƒá„á…á†á‡áˆá‰á€]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return my;\n\n})));\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var gl = moment.defineLocale('gl', {\n months : 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort : 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY H:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';\n },\n nextDay : function () {\n return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';\n },\n lastDay : function () {\n return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';\n },\n lastWeek : function () {\n return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past : 'hai %s',\n s : 'uns segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'unha hora',\n hh : '%d horas',\n d : 'un dÃa',\n dd : '%d dÃas',\n M : 'un mes',\n MM : '%d meses',\n y : 'un ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return gl;\n\n})));\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex : monthsRegex,\n monthsShortRegex : monthsRegex,\n monthsStrictRegex : /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex : /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY H:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un dÃa',\n dd : '%d dÃas',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return es;\n\n})));\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar getParamBytesForAlg = require('./param-bytes-for-alg');\n\nvar MAX_OCTET = 0x80,\n\tCLASS_UNIVERSAL = 0,\n\tPRIMITIVE_BIT = 0x20,\n\tTAG_SEQ = 0x10,\n\tTAG_INT = 0x02,\n\tENCODED_TAG_SEQ = (TAG_SEQ | PRIMITIVE_BIT) | (CLASS_UNIVERSAL << 6),\n\tENCODED_TAG_INT = TAG_INT | (CLASS_UNIVERSAL << 6);\n\nfunction base64Url(base64) {\n\treturn base64\n\t\t.replace(/=/g, '')\n\t\t.replace(/\\+/g, '-')\n\t\t.replace(/\\//g, '_');\n}\n\nfunction signatureAsBuffer(signature) {\n\tif (Buffer.isBuffer(signature)) {\n\t\treturn signature;\n\t} else if ('string' === typeof signature) {\n\t\treturn Buffer.from(signature, 'base64');\n\t}\n\n\tthrow new TypeError('ECDSA signature must be a Base64 string or a Buffer');\n}\n\nfunction derToJose(signature, alg) {\n\tsignature = signatureAsBuffer(signature);\n\tvar paramBytes = getParamBytesForAlg(alg);\n\n\t// the DER encoded param should at most be the param size, plus a padding\n\t// zero, since due to being a signed integer\n\tvar maxEncodedParamLength = paramBytes + 1;\n\n\tvar inputLength = signature.length;\n\n\tvar offset = 0;\n\tif (signature[offset++] !== ENCODED_TAG_SEQ) {\n\t\tthrow new Error('Could not find expected \"seq\"');\n\t}\n\n\tvar seqLength = signature[offset++];\n\tif (seqLength === (MAX_OCTET | 1)) {\n\t\tseqLength = signature[offset++];\n\t}\n\n\tif (inputLength - offset < seqLength) {\n\t\tthrow new Error('\"seq\" specified length of \"' + seqLength + '\", only \"' + (inputLength - offset) + '\" remaining');\n\t}\n\n\tif (signature[offset++] !== ENCODED_TAG_INT) {\n\t\tthrow new Error('Could not find expected \"int\" for \"r\"');\n\t}\n\n\tvar rLength = signature[offset++];\n\n\tif (inputLength - offset - 2 < rLength) {\n\t\tthrow new Error('\"r\" specified length of \"' + rLength + '\", only \"' + (inputLength - offset - 2) + '\" available');\n\t}\n\n\tif (maxEncodedParamLength < rLength) {\n\t\tthrow new Error('\"r\" specified length of \"' + rLength + '\", max of \"' + maxEncodedParamLength + '\" is acceptable');\n\t}\n\n\tvar rOffset = offset;\n\toffset += rLength;\n\n\tif (signature[offset++] !== ENCODED_TAG_INT) {\n\t\tthrow new Error('Could not find expected \"int\" for \"s\"');\n\t}\n\n\tvar sLength = signature[offset++];\n\n\tif (inputLength - offset !== sLength) {\n\t\tthrow new Error('\"s\" specified length of \"' + sLength + '\", expected \"' + (inputLength - offset) + '\"');\n\t}\n\n\tif (maxEncodedParamLength < sLength) {\n\t\tthrow new Error('\"s\" specified length of \"' + sLength + '\", max of \"' + maxEncodedParamLength + '\" is acceptable');\n\t}\n\n\tvar sOffset = offset;\n\toffset += sLength;\n\n\tif (offset !== inputLength) {\n\t\tthrow new Error('Expected to consume entire buffer, but \"' + (inputLength - offset) + '\" bytes remain');\n\t}\n\n\tvar rPadding = paramBytes - rLength,\n\t\tsPadding = paramBytes - sLength;\n\n\tvar dst = Buffer.allocUnsafe(rPadding + rLength + sPadding + sLength);\n\n\tfor (offset = 0; offset < rPadding; ++offset) {\n\t\tdst[offset] = 0;\n\t}\n\tsignature.copy(dst, offset, rOffset + Math.max(-rPadding, 0), rOffset + rLength);\n\n\toffset = paramBytes;\n\n\tfor (var o = offset; offset < o + sPadding; ++offset) {\n\t\tdst[offset] = 0;\n\t}\n\tsignature.copy(dst, offset, sOffset + Math.max(-sPadding, 0), sOffset + sLength);\n\n\tdst = dst.toString('base64');\n\tdst = base64Url(dst);\n\n\treturn dst;\n}\n\nfunction countPadding(buf, start, stop) {\n\tvar padding = 0;\n\twhile (start + padding < stop && buf[start + padding] === 0) {\n\t\t++padding;\n\t}\n\n\tvar needsSign = buf[start + padding] >= MAX_OCTET;\n\tif (needsSign) {\n\t\t--padding;\n\t}\n\n\treturn padding;\n}\n\nfunction joseToDer(signature, alg) {\n\tsignature = signatureAsBuffer(signature);\n\tvar paramBytes = getParamBytesForAlg(alg);\n\n\tvar signatureBytes = signature.length;\n\tif (signatureBytes !== paramBytes * 2) {\n\t\tthrow new TypeError('\"' + alg + '\" signatures must be \"' + paramBytes * 2 + '\" bytes, saw \"' + signatureBytes + '\"');\n\t}\n\n\tvar rPadding = countPadding(signature, 0, paramBytes);\n\tvar sPadding = countPadding(signature, paramBytes, signature.length);\n\tvar rLength = paramBytes - rPadding;\n\tvar sLength = paramBytes - sPadding;\n\n\tvar rsBytes = 1 + 1 + rLength + 1 + 1 + sLength;\n\n\tvar shortLength = rsBytes < MAX_OCTET;\n\n\tvar dst = Buffer.allocUnsafe((shortLength ? 2 : 3) + rsBytes);\n\n\tvar offset = 0;\n\tdst[offset++] = ENCODED_TAG_SEQ;\n\tif (shortLength) {\n\t\t// Bit 8 has value \"0\"\n\t\t// bits 7-1 give the length.\n\t\tdst[offset++] = rsBytes;\n\t} else {\n\t\t// Bit 8 of first octet has value \"1\"\n\t\t// bits 7-1 give the number of additional length octets.\n\t\tdst[offset++] = MAX_OCTET\t| 1;\n\t\t// length, base 256\n\t\tdst[offset++] = rsBytes & 0xff;\n\t}\n\tdst[offset++] = ENCODED_TAG_INT;\n\tdst[offset++] = rLength;\n\tif (rPadding < 0) {\n\t\tdst[offset++] = 0;\n\t\toffset += signature.copy(dst, offset, 0, paramBytes);\n\t} else {\n\t\toffset += signature.copy(dst, offset, rPadding, paramBytes);\n\t}\n\tdst[offset++] = ENCODED_TAG_INT;\n\tdst[offset++] = sLength;\n\tif (sPadding < 0) {\n\t\tdst[offset++] = 0;\n\t\tsignature.copy(dst, offset, paramBytes);\n\t} else {\n\t\tsignature.copy(dst, offset, paramBytes + sPadding);\n\t}\n\n\treturn dst;\n}\n\nmodule.exports = {\n\tderToJose: derToJose,\n\tjoseToDer: joseToDer\n};\n","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","/*!\n * vue-router v3.1.3\n * (c) 2019 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isExtendedError (constructor, err) {\n return (\n err instanceof constructor ||\n // _name is to support IE9 too\n (err && (err.name === constructor.name || err._name === constructor._name))\n )\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode && parent.$vnode.data;\n if (vnodeData) {\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._inactive) {\n inactive = true;\n }\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n return h(cache[name], data, children)\n }\n\n var matched = route.matched[depth];\n // render empty node if no matched route\n if (!matched) {\n cache[name] = null;\n return h()\n }\n\n var component = cache[name] = matched.components[name];\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n };\n\n // resolve props\n var propsToPass = data.props = resolveProps(route, matched.props && matched.props[name]);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n\n return h(component, data, children)\n }\n};\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nvar decode = decodeURIComponent;\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n parsedQuery[key] = extraQuery[key];\n }\n return parsedQuery\n}\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0\n ? decode(parts.join('='))\n : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj ? Object.keys(obj).map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n }).filter(function (x) { return x.length > 0; }).join('&') : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key) {\n var aVal = a[key];\n var bVal = b[key];\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$');\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n if (params.pathMatch) { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n return extend({}, raw)\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\"RouterLink with to=\\\"\" + (this.props.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href };\n } else {\n // find the first <a> child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the <a> is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n } else {\n // doesn't have <a> child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n instances: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = val;\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n window.history.replaceState({ key: getStateKey() }, '', absolutePath);\n window.addEventListener('popstate', function (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n });\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n window.scrollTo(position.x, position.y);\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && 'pushState' in window.history\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n history.replaceState({ key: getStateKey() }, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\nvar NavigationDuplicated = /*@__PURE__*/(function (Error) {\n function NavigationDuplicated (normalizedLocation) {\n Error.call(this);\n this.name = this._name = 'NavigationDuplicated';\n // passing the message to super() doesn't seem to work in the transpiled version\n this.message = \"Navigating to current location (\\\"\" + (normalizedLocation.fullPath) + \"\\\") is not allowed\";\n // add a stack property so services like Sentry can correctly display it\n Object.defineProperty(this, 'stack', {\n value: new Error().stack,\n writable: true,\n configurable: true\n });\n // we could also have used\n // Error.captureStackTrace(this, this.constructor)\n // but it only exists on node and chrome\n }\n\n if ( Error ) NavigationDuplicated.__proto__ = Error;\n NavigationDuplicated.prototype = Object.create( Error && Error.prototype );\n NavigationDuplicated.prototype.constructor = NavigationDuplicated;\n\n return NavigationDuplicated;\n}(Error));\n\n// support IE9\nNavigationDuplicated._name = 'NavigationDuplicated';\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var route = this.router.match(location, this.current);\n this.confirmTransition(\n route,\n function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n var abort = function (err) {\n // after merging https://github.com/vuejs/vue-router/pull/2771 we\n // When the user navigates through history through back/forward buttons\n // we do not want to throw the error. We only throw it if directly calling\n // push/replace. That's why it's not included in isError\n if (!isExtendedError(NavigationDuplicated, err) && isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n route.matched.length === current.matched.length\n ) {\n this.ensureURL();\n return abort(new NavigationDuplicated(route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n this.pending = route;\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort()\n }\n try {\n hook(route, current, function (to) {\n if (to === false || isError(to)) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort();\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n var postEnterCbs = [];\n var isValid = function () { return this$1.current === route; };\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort()\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n postEnterCbs.forEach(function (cb) {\n cb();\n });\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n var prev = this.current;\n this.current = route;\n this.cb && this.cb(route);\n this.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect <base> tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated,\n cbs,\n isValid\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key, cbs, isValid)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key,\n cbs,\n isValid\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n cbs.push(function () {\n // #750\n // if a router-view is wrapped with an out-in transition,\n // the instance may not have been registered at this time.\n // we will need to poll for registration until current route\n // is no longer valid.\n poll(cb, match.instances, key, isValid);\n });\n }\n next(cb);\n })\n }\n}\n\nfunction poll (\n cb, // somehow flow cannot infer this is a function\n instances,\n key,\n isValid\n) {\n if (\n instances[key] &&\n !instances[key]._isBeingDestroyed // do not reuse being destroyed instance\n ) {\n cb(instances[key]);\n } else if (isValid()) {\n setTimeout(function () {\n poll(cb, instances, key, isValid);\n }, 16);\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n var this$1 = this;\n\n History.call(this, router, base);\n\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n var initLocation = getLocation(this.base);\n window.addEventListener('popstate', function (e) {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === initLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n });\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = decodeURI(window.location.pathname);\n if (base && path.indexOf(base) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n window.addEventListener(\n supportsPushState ? 'popstate' : 'hashchange',\n function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n }\n );\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n // decode the hash but not the search or hash\n // as search(query) is already decoded\n // https://github.com/vuejs/vue-router/issues/2708\n var searchIndex = href.indexOf('?');\n if (searchIndex < 0) {\n var hashIndex = href.indexOf('#');\n if (hashIndex > -1) {\n href = decodeURI(href.slice(0, hashIndex)) + href.slice(hashIndex);\n } else { href = decodeURI(href); }\n } else {\n if (searchIndex > -1) {\n href = decodeURI(href.slice(0, searchIndex)) + href.slice(searchIndex);\n }\n }\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n },\n function (err) {\n if (isExtendedError(NavigationDuplicated, err)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback = mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (\n raw,\n current,\n redirectedFrom\n) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' && assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1.apps.indexOf(app);\n if (index > -1) { this$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History) {\n history.transitionTo(history.getCurrentLocation());\n } else if (history instanceof HashHistory) {\n var setupHashListener = function () {\n history.setupListeners();\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupHashListener,\n setupHashListener\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply([], route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n }))\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(\n to,\n current,\n append,\n this\n );\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.1.3';\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl : 'ΙανουάÏιος_ΦεβÏουάÏιος_ΜάÏτιος_ΑπÏίλιος_Μάιος_ΙοÏνιος_ΙοÏλιος_ΑÏγουστος_ΣεπτÎμβÏιος_ΟκτώβÏιος_ÎοÎμβÏιος_ΔεκÎμβÏιος'.split('_'),\n monthsGenitiveEl : 'ΙανουαÏίου_ΦεβÏουαÏίου_ΜαÏτίου_ΑπÏιλίου_ΜαÎου_Ιουνίου_Ιουλίου_ΑυγοÏστου_ΣεπτεμβÏίου_ΟκτωβÏίου_ÎοεμβÏίου_ΔεκεμβÏίου'.split('_'),\n months : function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort : 'Ιαν_Φεβ_ΜαÏ_ΑπÏ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Îοε_Δεκ'.split('_'),\n weekdays : 'ΚυÏιακή_ΔευτÎÏα_ΤÏίτη_ΤετάÏτη_Î Îμπτη_ΠαÏασκευή_Σάββατο'.split('_'),\n weekdaysShort : 'ΚυÏ_Δευ_ΤÏι_Τετ_Πεμ_ΠαÏ_Σαβ'.split('_'),\n weekdaysMin : 'Κυ_Δε_ΤÏ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'Î Îœ';\n }\n },\n isPM : function (input) {\n return ((input + '').toLowerCase()[0] === 'μ');\n },\n meridiemParse : /[Î Îœ]\\.?Îœ?\\.?/i,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendarEl : {\n sameDay : '[ΣήμεÏα {}] LT',\n nextDay : '[ΑÏÏιο {}] LT',\n nextWeek : 'dddd [{}] LT',\n lastDay : '[Χθες {}] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 6:\n return '[το Ï€ÏοηγοÏμενο] dddd [{}] LT';\n default:\n return '[την Ï€ÏοηγοÏμενη] dddd [{}] LT';\n }\n },\n sameElse : 'L'\n },\n calendar : function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));\n },\n relativeTime : {\n future : 'σε %s',\n past : '%s Ï€Ïιν',\n s : 'λίγα δευτεÏόλεπτα',\n ss : '%d δευτεÏόλεπτα',\n m : 'Îνα λεπτό',\n mm : '%d λεπτά',\n h : 'μία ÏŽÏα',\n hh : '%d ÏŽÏες',\n d : 'μία μÎÏα',\n dd : '%d μÎÏες',\n M : 'Îνας μήνας',\n MM : '%d μήνες',\n y : 'Îνας χÏόνος',\n yy : '%d χÏόνια'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4st is the first week of the year.\n }\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsNominative = 'styczeÅ„_luty_marzec_kwiecieÅ„_maj_czerwiec_lipiec_sierpieÅ„_wrzesieÅ„_październik_listopad_grudzieÅ„'.split('_'),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅ›nia_października_listopada_grudnia'.split('_');\n function plural(n) {\n return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutÄ™';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinÄ™';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural(number) ? 'miesiÄ…ce' : 'miesiÄ™cy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months : function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays : 'niedziela_poniedziaÅ‚ek_wtorek_Å›roda_czwartek_piÄ…tek_sobota'.split('_'),\n weekdaysShort : 'ndz_pon_wt_Å›r_czw_pt_sob'.split('_'),\n weekdaysMin : 'Nd_Pn_Wt_Åšr_Cz_Pt_So'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[DziÅ› o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielÄ™ o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W Å›rodÄ™ o] LT';\n\n case 6:\n return '[W sobotÄ™ o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszÅ‚Ä… niedzielÄ™ o] LT';\n case 3:\n return '[W zeszÅ‚Ä… Å›rodÄ™ o] LT';\n case 6:\n return '[W zeszÅ‚Ä… sobotÄ™ o] LT';\n default:\n return '[W zeszÅ‚y] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : '%s temu',\n s : 'kilka sekund',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : '1 dzieÅ„',\n dd : '%d dni',\n M : 'miesiÄ…c',\n MM : translate,\n y : 'rok',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return pl;\n\n})));\n","exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar src = exports.src = []\nvar R = 0\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\nvar NUMERICIDENTIFIER = R++\nsrc[NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\nvar NUMERICIDENTIFIERLOOSE = R++\nsrc[NUMERICIDENTIFIERLOOSE] = '[0-9]+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\nvar NONNUMERICIDENTIFIER = R++\nsrc[NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\nvar MAINVERSION = R++\nsrc[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[NUMERICIDENTIFIER] + ')'\n\nvar MAINVERSIONLOOSE = R++\nsrc[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\nvar PRERELEASEIDENTIFIER = R++\nsrc[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +\n '|' + src[NONNUMERICIDENTIFIER] + ')'\n\nvar PRERELEASEIDENTIFIERLOOSE = R++\nsrc[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +\n '|' + src[NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\nvar PRERELEASE = R++\nsrc[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[PRERELEASEIDENTIFIER] + ')*))'\n\nvar PRERELEASELOOSE = R++\nsrc[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\nvar BUILDIDENTIFIER = R++\nsrc[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\nvar BUILD = R++\nsrc[BUILD] = '(?:\\\\+(' + src[BUILDIDENTIFIER] +\n '(?:\\\\.' + src[BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\nvar FULL = R++\nvar FULLPLAIN = 'v?' + src[MAINVERSION] +\n src[PRERELEASE] + '?' +\n src[BUILD] + '?'\n\nsrc[FULL] = '^' + FULLPLAIN + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\nvar LOOSEPLAIN = '[v=\\\\s]*' + src[MAINVERSIONLOOSE] +\n src[PRERELEASELOOSE] + '?' +\n src[BUILD] + '?'\n\nvar LOOSE = R++\nsrc[LOOSE] = '^' + LOOSEPLAIN + '$'\n\nvar GTLT = R++\nsrc[GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\nvar XRANGEIDENTIFIERLOOSE = R++\nsrc[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\nvar XRANGEIDENTIFIER = R++\nsrc[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\nvar XRANGEPLAIN = R++\nsrc[XRANGEPLAIN] = '[v=\\\\s]*(' + src[XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[XRANGEIDENTIFIER] + ')' +\n '(?:' + src[PRERELEASE] + ')?' +\n src[BUILD] + '?' +\n ')?)?'\n\nvar XRANGEPLAINLOOSE = R++\nsrc[XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[PRERELEASELOOSE] + ')?' +\n src[BUILD] + '?' +\n ')?)?'\n\nvar XRANGE = R++\nsrc[XRANGE] = '^' + src[GTLT] + '\\\\s*' + src[XRANGEPLAIN] + '$'\nvar XRANGELOOSE = R++\nsrc[XRANGELOOSE] = '^' + src[GTLT] + '\\\\s*' + src[XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\nvar COERCE = R++\nsrc[COERCE] = '(?:^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\nvar LONETILDE = R++\nsrc[LONETILDE] = '(?:~>?)'\n\nvar TILDETRIM = R++\nsrc[TILDETRIM] = '(\\\\s*)' + src[LONETILDE] + '\\\\s+'\nre[TILDETRIM] = new RegExp(src[TILDETRIM], 'g')\nvar tildeTrimReplace = '$1~'\n\nvar TILDE = R++\nsrc[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'\nvar TILDELOOSE = R++\nsrc[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\nvar LONECARET = R++\nsrc[LONECARET] = '(?:\\\\^)'\n\nvar CARETTRIM = R++\nsrc[CARETTRIM] = '(\\\\s*)' + src[LONECARET] + '\\\\s+'\nre[CARETTRIM] = new RegExp(src[CARETTRIM], 'g')\nvar caretTrimReplace = '$1^'\n\nvar CARET = R++\nsrc[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'\nvar CARETLOOSE = R++\nsrc[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\nvar COMPARATORLOOSE = R++\nsrc[COMPARATORLOOSE] = '^' + src[GTLT] + '\\\\s*(' + LOOSEPLAIN + ')$|^$'\nvar COMPARATOR = R++\nsrc[COMPARATOR] = '^' + src[GTLT] + '\\\\s*(' + FULLPLAIN + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\nvar COMPARATORTRIM = R++\nsrc[COMPARATORTRIM] = '(\\\\s*)' + src[GTLT] +\n '\\\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\nvar HYPHENRANGE = R++\nsrc[HYPHENRANGE] = '^\\\\s*(' + src[XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\nvar HYPHENRANGELOOSE = R++\nsrc[HYPHENRANGELOOSE] = '^\\\\s*(' + src[XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\nvar STAR = R++\nsrc[STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? re[LOOSE] : re[FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? re[LOOSE] : re[FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compare(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.rcompare(a, b, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1]\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n version = new SemVer(version, this.options)\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range.split(/\\s*\\|\\|\\s*/).map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + range)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n range = range.trim()\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return thisComparators.every(function (thisComparator) {\n return range.set.some(function (rangeComparators) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n })\n })\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? re[TILDELOOSE] : re[TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? re[CARETLOOSE] : re[CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? re[XRANGELOOSE] : re[XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p\n } else if (xm) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[STAR], '')\n}\n\n// This function is passed to string.replace(re[HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n version = new SemVer(version, this.options)\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n var match = version.match(re[COERCE])\n\n if (match == null) {\n return null\n }\n\n return parse(match[1] +\n '.' + (match[2] || '0') +\n '.' + (match[3] || '0'))\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': 'Û±',\n '2': 'Û²',\n '3': 'Û³',\n '4': 'Û´',\n '5': 'Ûµ',\n '6': 'Û¶',\n '7': 'Û·',\n '8': 'Û¸',\n '9': 'Û¹',\n '0': 'Û°'\n }, numberMap = {\n 'Û±': '1',\n 'Û²': '2',\n 'Û³': '3',\n 'Û´': '4',\n 'Ûµ': '5',\n 'Û¶': '6',\n 'Û·': '7',\n 'Û¸': '8',\n 'Û¹': '9',\n 'Û°': '0'\n };\n\n var fa = moment.defineLocale('fa', {\n months : 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n monthsShort : 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n weekdays : 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysShort : 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysMin : 'ÛŒ_د_س_Ú†_Ù¾_ج_Ø´'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar : {\n sameDay : '[امروز ساعت] LT',\n nextDay : '[Ùردا ساعت] LT',\n nextWeek : 'dddd [ساعت] LT',\n lastDay : '[دیروز ساعت] LT',\n lastWeek : 'dddd [پیش] [ساعت] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'در %s',\n past : '%s پیش',\n s : 'چند ثانیه',\n ss : 'ثانیه d%',\n m : 'یک دقیقه',\n mm : '%d دقیقه',\n h : 'یک ساعت',\n hh : '%d ساعت',\n d : 'یک روز',\n dd : '%d روز',\n M : 'یک ماه',\n MM : '%d ماه',\n y : 'یک سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/[Û°-Û¹]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Ù…/,\n ordinal : '%dÙ…',\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return fa;\n\n})));\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': 'Ù¡',\n '2': 'Ù¢',\n '3': 'Ù£',\n '4': 'Ù¤',\n '5': 'Ù¥',\n '6': 'Ù¦',\n '7': 'Ù§',\n '8': 'Ù¨',\n '9': 'Ù©',\n '0': 'Ù '\n }, numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n }, pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n }, plurals = {\n s : ['أقل من ثانية', 'ثانية واØدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m : ['أقل من دقيقة', 'دقيقة واØدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h : ['أقل من ساعة', 'ساعة واØدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d : ['أقل من يوم', 'يوم واØد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M : ['أقل من شهر', 'شهر واØد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y : ['أقل من عام', 'عام واØد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n }, pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months = [\n 'يناير',\n 'Ùبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوÙمبر',\n 'ديسمبر'\n ];\n\n var ar = moment.defineLocale('ar', {\n months : months,\n monthsShort : months,\n weekdays : 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/\\u200FM/\\u200FYYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM : function (input) {\n return 'Ù…' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar : {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'بعد %s',\n past : 'منذ %s',\n s : pluralize('s'),\n ss : pluralize('s'),\n m : pluralize('m'),\n mm : pluralize('m'),\n h : pluralize('h'),\n hh : pluralize('h'),\n d : pluralize('d'),\n dd : pluralize('d'),\n M : pluralize('M'),\n MM : pluralize('M'),\n y : pluralize('y'),\n yy : pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '১',\n '2': '২',\n '3': '৩',\n '4': '৪',\n '5': '৫',\n '6': '৬',\n '7': 'à§',\n '8': '৮',\n '9': '৯',\n '0': '০'\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n 'à§': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n\n var bn = moment.defineLocale('bn', {\n months : 'জানà§à§Ÿà¦¾à¦°à§€_ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿà§‡à¦®à§à¦¬à¦°_অকà§à¦Ÿà§‹à¦¬à¦°_নà¦à§‡à¦®à§à¦¬à¦°_ডিসেমà§à¦¬à¦°'.split('_'),\n monthsShort : 'জানà§_ফেব_মারà§à¦š_à¦à¦ªà§à¦°_মে_জà§à¦¨_জà§à¦²_আগ_সেপà§à¦Ÿ_অকà§à¦Ÿà§‹_নà¦à§‡_ডিসে'.split('_'),\n weekdays : 'রবিবার_সোমবার_মঙà§à¦—লবার_বà§à¦§à¦¬à¦¾à¦°_বৃহসà§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦•à§à¦°à¦¬à¦¾à¦°_শনিবার'.split('_'),\n weekdaysShort : 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহসà§à¦ªà¦¤à¦¿_শà§à¦•à§à¦°_শনি'.split('_'),\n weekdaysMin : 'রবি_সোম_মঙà§à¦—_বà§à¦§_বৃহঃ_শà§à¦•à§à¦°_শনি'.split('_'),\n longDateFormat : {\n LT : 'A h:mm সময়',\n LTS : 'A h:mm:ss সময়',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm সময়',\n LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar : {\n sameDay : '[আজ] LT',\n nextDay : '[আগামীকাল] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[গতকাল] LT',\n lastWeek : '[গত] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s পরে',\n past : '%s আগে',\n s : 'কয়েক সেকেনà§à¦¡',\n ss : '%d সেকেনà§à¦¡',\n m : 'à¦à¦• মিনিট',\n mm : '%d মিনিট',\n h : 'à¦à¦• ঘনà§à¦Ÿà¦¾',\n hh : '%d ঘনà§à¦Ÿà¦¾',\n d : 'à¦à¦• দিন',\n dd : '%d দিন',\n M : 'à¦à¦• মাস',\n MM : '%d মাস',\n y : 'à¦à¦• বছর',\n yy : '%d বছর'\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দà§à¦ªà§à¦°|বিকাল|রাত/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দà§à¦ªà§à¦°' && hour < 5) ||\n meridiem === 'বিকাল') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দà§à¦ªà§à¦°';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhTw = moment.defineLocale('zh-tw', {\n months : '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort : '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin : 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYYå¹´M月Dæ—¥',\n LLL : 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL : 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l : 'YYYY/M/D',\n ll : 'YYYYå¹´M月Dæ—¥',\n lll : 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll : 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天] LT',\n nextDay : '[明天] LT',\n nextWeek : '[下]dddd LT',\n lastDay : '[昨天] LT',\n lastWeek : '[上]dddd LT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd' :\n case 'D' :\n case 'DDD' :\n return number + 'æ—¥';\n case 'M' :\n return number + '月';\n case 'w' :\n case 'W' :\n return number + '週';\n default :\n return number;\n }\n },\n relativeTime : {\n future : '%så…§',\n past : '%så‰',\n s : '幾秒',\n ss : '%d 秒',\n m : '1 分é˜',\n mm : '%d 分é˜',\n h : '1 å°æ™‚',\n hh : '%d å°æ™‚',\n d : '1 天',\n dd : '%d 天',\n M : '1 個月',\n MM : '%d 個月',\n y : '1 å¹´',\n yy : '%d å¹´'\n }\n });\n\n return zhTw;\n\n})));\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * Utilities to get information about the current environment\n */\n// --- Constants ---\nexport var hasWindowSupport = typeof window !== 'undefined';\nexport var hasDocumentSupport = typeof document !== 'undefined';\nexport var hasNavigatorSupport = typeof navigator !== 'undefined';\nexport var hasPromiseSupport = typeof Promise !== 'undefined';\nexport var hasMutationObserverSupport = typeof MutationObserver !== 'undefined' || typeof WebKitMutationObserver !== 'undefined' || typeof MozMutationObserver !== 'undefined';\nexport var isBrowser = hasWindowSupport && hasDocumentSupport && hasNavigatorSupport; // Browser type sniffing\n\nexport var userAgent = isBrowser ? window.navigator.userAgent.toLowerCase() : '';\nexport var isJSDOM = userAgent.indexOf('jsdom') > 0;\nexport var isIE = /msie|trident/.test(userAgent); // Determine if the browser supports the option passive for events\n\nexport var hasPassiveEventSupport = function () {\n var passiveEventSupported = false;\n\n if (isBrowser) {\n try {\n var options = {\n get passive() {\n // This function will be called when the browser\n // attempts to access the passive property.\n\n /* istanbul ignore next: will never be called in JSDOM */\n passiveEventSupported = true;\n }\n\n };\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n } catch (err) {\n /* istanbul ignore next: will never be called in JSDOM */\n passiveEventSupported = false;\n }\n }\n\n return passiveEventSupported;\n}();\nexport var hasTouchSupport = isBrowser && ('ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0);\nexport var hasPointerEventSupport = isBrowser && Boolean(window.PointerEvent || window.MSPointerEvent);\nexport var hasIntersectionObserverSupport = isBrowser && 'IntersectionObserver' in window && 'IntersectionObserverEntry' in window && // Edge 15 and UC Browser lack support for `isIntersecting`\n// but we an use intersectionRatio > 0 instead\n// 'isIntersecting' in window.IntersectionObserverEntry.prototype &&\n'intersectionRatio' in window.IntersectionObserverEntry.prototype; // --- Getters ---\n\nexport var getEnv = function getEnv(key) {\n var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var env = typeof process !== 'undefined' && process ? process.env || {} : {};\n\n if (!key) {\n /* istanbul ignore next */\n return env;\n }\n\n return env[key] || fallback;\n};\nexport var getNoWarn = function getNoWarn() {\n return getEnv('BOOTSTRAP_VUE_NO_WARN');\n};","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n var curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n 'hh': 'чаÑ_чаÑа_чаÑов',\n 'dd': 'день_днÑ_дней',\n 'MM': 'меÑÑц_меÑÑца_меÑÑцев',\n 'yy': 'год_года_лет'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [/^Ñнв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йÑ]/i, /^июн/i, /^июл/i, /^авг/i, /^Ñен/i, /^окт/i, /^ноÑ/i, /^дек/i];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Ð¡Ð¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¼ÐµÑÑцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months : {\n format: 'ÑнварÑ_февралÑ_марта_апрелÑ_маÑ_июнÑ_июлÑ_авгуÑта_ÑентÑбрÑ_октÑбрÑ_ноÑбрÑ_декабрÑ'.split('_'),\n standalone: 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split('_')\n },\n monthsShort : {\n // по CLDR именно \"июл.\" и \"июн.\", но какой ÑмыÑл менÑÑ‚ÑŒ букву на точку ?\n format: 'Ñнв._февр._мар._апр._маÑ_июнÑ_июлÑ_авг._Ñент._окт._ноÑб._дек.'.split('_'),\n standalone: 'Ñнв._февр._март_апр._май_июнь_июль_авг._Ñент._окт._ноÑб._дек.'.split('_')\n },\n weekdays : {\n standalone: 'воÑкреÑенье_понедельник_вторник_Ñреда_четверг_пÑтница_Ñуббота'.split('_'),\n format: 'воÑкреÑенье_понедельник_вторник_Ñреду_четверг_пÑтницу_Ñубботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|Ñледующую|Ñту)? ?\\] ?dddd/\n },\n weekdaysShort : 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin : 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по три буквы, Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ…, по 4 буквы, ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹ и без точки\n monthsRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n\n // ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ³Ð¾\n monthsShortRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸\n monthsStrictRegex: /^(Ñнвар[ÑÑŒ]|феврал[ÑÑŒ]|марта?|апрел[ÑÑŒ]|ма[Ñй]|июн[ÑÑŒ]|июл[ÑÑŒ]|авгуÑта?|ÑентÑбр[ÑÑŒ]|октÑбр[ÑÑŒ]|ноÑбр[ÑÑŒ]|декабр[ÑÑŒ])/i,\n\n // Выражение, которое ÑоотвеÑтвует только Ñокращённым формам\n monthsShortStrictRegex: /^(Ñнв\\.|февр?\\.|мар[Ñ‚.]|апр\\.|ма[Ñй]|июн[ÑŒÑ.]|июл[ÑŒÑ.]|авг\\.|Ñент?\\.|окт\\.|ноÑб?\\.|дек\\.)/i,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY г.',\n LLL : 'D MMMM YYYY г., H:mm',\n LLLL : 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar : {\n sameDay: '[СегоднÑ, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ Ñледующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ Ñледующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ Ñледующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'через %s',\n past : '%s назад',\n s : 'неÑколько Ñекунд',\n ss : relativeTimeWithPlural,\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : 'чаÑ',\n hh : relativeTimeWithPlural,\n d : 'день',\n dd : relativeTimeWithPlural,\n M : 'меÑÑц',\n MM : relativeTimeWithPlural,\n y : 'год',\n yy : relativeTimeWithPlural\n },\n meridiemParse: /ночи|утра|днÑ|вечера/i,\n isPM : function (input) {\n return /^(днÑ|вечера)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|Ñ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-Ñ';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'Ñ…ÑдхÑн Ñекунд' : 'Ñ…ÑдхÑн Ñекундын';\n case 'ss':\n return number + (withoutSuffix ? ' Ñекунд' : ' Ñекундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' Ñар' : ' Ñарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months : 'ÐÑгдүгÑÑÑ€ Ñар_Хоёрдугаар Ñар_Гуравдугаар Ñар_ДөрөвдүгÑÑÑ€ Ñар_Тавдугаар Ñар_Зургадугаар Ñар_Долдугаар Ñар_Ðаймдугаар Ñар_ЕÑдүгÑÑÑ€ Ñар_Ðравдугаар Ñар_Ðрван нÑгдүгÑÑÑ€ Ñар_Ðрван хоёрдугаар Ñар'.split('_'),\n monthsShort : '1 Ñар_2 Ñар_3 Ñар_4 Ñар_5 Ñар_6 Ñар_7 Ñар_8 Ñар_9 Ñар_10 Ñар_11 Ñар_12 Ñар'.split('_'),\n monthsParseExact : true,\n weekdays : 'ÐÑм_Даваа_ÐœÑгмар_Лхагва_ПүрÑв_БааÑан_БÑмба'.split('_'),\n weekdaysShort : 'ÐÑм_Дав_ÐœÑг_Лха_Пүр_Баа_БÑм'.split('_'),\n weekdaysMin : 'ÐÑ_Да_ÐœÑ_Лх_Пү_Ба_БÑ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY оны MMMMын D',\n LLL : 'YYYY оны MMMMын D HH:mm',\n LLLL : 'dddd, YYYY оны MMMMын D HH:mm'\n },\n meridiemParse: /Ò®Ó¨|ҮХ/i,\n isPM : function (input) {\n return input === 'ҮХ';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Ò®Ó¨';\n } else {\n return 'ҮХ';\n }\n },\n calendar : {\n sameDay : '[Өнөөдөр] LT',\n nextDay : '[Маргааш] LT',\n nextWeek : '[ИрÑÑ…] dddd LT',\n lastDay : '[Өчигдөр] LT',\n lastWeek : '[ӨнгөрÑөн] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s дараа',\n past : '%s өмнө',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n }\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү'\n };\n\n var ky = moment.defineLocale('ky', {\n months : 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split('_'),\n monthsShort : 'Ñнв_фев_март_апр_май_июнь_июль_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),\n weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Бүгүн Ñаат] LT',\n nextDay : '[Ðртең Ñаат] LT',\n nextWeek : 'dddd [Ñаат] LT',\n lastDay : '[КечÑÑ Ñаат] LT',\n lastWeek : '[Өткөн аптанын] dddd [күнү] [Ñаат] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ичинде',\n past : '%s мурун',\n s : 'бирнече Ñекунд',\n ss : '%d Ñекунд',\n m : 'бир мүнөт',\n mm : '%d мүнөт',\n h : 'бир Ñаат',\n hh : '%d Ñаат',\n d : 'бир күн',\n dd : '%d күн',\n M : 'бир ай',\n MM : '%d ай',\n y : 'бир жыл',\n yy : '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal : function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ky;\n\n})));\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': 'secunde',\n 'mm': 'minute',\n 'hh': 'ore',\n 'dd': 'zile',\n 'MM': 'luni',\n 'yy': 'ani'\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'duminică_luni_marÈ›i_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'peste %s',\n past : '%s în urmă',\n s : 'câteva secunde',\n ss : relativeTimeWithPlural,\n m : 'un minut',\n mm : relativeTimeWithPlural,\n h : 'o oră',\n hh : relativeTimeWithPlural,\n d : 'o zi',\n dd : relativeTimeWithPlural,\n M : 'o lună',\n MM : relativeTimeWithPlural,\n y : 'un an',\n yy : relativeTimeWithPlural\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact : true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS : 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed\n 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return cy;\n\n})));\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [ 1 ]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = new Buffer(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = new Buffer(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","/**\n * lodash 4.0.1 (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license <https://lodash.com/license>\n */\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n if (value !== value) {\n return baseFindIndex(array, baseIsNaN, fromIndex);\n }\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object ? baseValues(object, keys(object)) : [];\n}\n\nmodule.exports = includes;\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var fr = moment.defineLocale('fr', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à ] LT',\n nextDay : '[Demain à ] LT',\n nextWeek : 'dddd [à ] LT',\n lastDay : '[Hier à ] LT',\n lastWeek : 'dddd [dernier à ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal : function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fr;\n\n})));\n","var defaultEncoding\n/* istanbul ignore next */\nif (process.browser) {\n defaultEncoding = 'utf-8'\n} else {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n}\nmodule.exports = defaultEncoding\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","/*global module, process*/\nvar Buffer = require('safe-buffer').Buffer;\nvar Stream = require('stream');\nvar util = require('util');\n\nfunction DataStream(data) {\n this.buffer = null;\n this.writable = true;\n this.readable = true;\n\n // No input\n if (!data) {\n this.buffer = Buffer.alloc(0);\n return this;\n }\n\n // Stream\n if (typeof data.pipe === 'function') {\n this.buffer = Buffer.alloc(0);\n data.pipe(this);\n return this;\n }\n\n // Buffer or String\n // or Object (assumedly a passworded key)\n if (data.length || typeof data === 'object') {\n this.buffer = data;\n this.writable = false;\n process.nextTick(function () {\n this.emit('end', data);\n this.readable = false;\n this.emit('close');\n }.bind(this));\n return this;\n }\n\n throw new TypeError('Unexpected data type ('+ typeof data + ')');\n}\nutil.inherits(DataStream, Stream);\n\nDataStream.prototype.write = function write(data) {\n this.buffer = Buffer.concat([this.buffer, Buffer.from(data)]);\n this.emit('data', data);\n};\n\nDataStream.prototype.end = function end(data) {\n if (data)\n this.write(data);\n this.emit('end', data);\n this.emit('close');\n this.writable = false;\n this.readable = false;\n};\n\nmodule.exports = DataStream;\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arDz = moment.defineLocale('ar-dz', {\n months : 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n monthsShort : 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n weekdays : 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'اØد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'Ø£Ø_إث_ثلا_أر_خم_جم_سب'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'ÙÙŠ %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return arDz;\n\n})));\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var bm = moment.defineLocale('bm', {\n months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_MÉ›kalo_ZuwÉ›nkalo_Zuluyekalo_Utikalo_SÉ›tanburukalo_É”kutÉ”burukalo_Nowanburukalo_Desanburukalo'.split('_'),\n monthsShort : 'Zan_Few_Mar_Awi_MÉ›_Zuw_Zul_Uti_SÉ›t_É”ku_Now_Des'.split('_'),\n weekdays : 'Kari_NtÉ›nÉ›n_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort : 'Kar_NtÉ›_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'MMMM [tile] D [san] YYYY',\n LLL : 'MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm',\n LLLL : 'dddd MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm'\n },\n calendar : {\n sameDay : '[Bi lÉ›rÉ›] LT',\n nextDay : '[Sini lÉ›rÉ›] LT',\n nextWeek : 'dddd [don lÉ›rÉ›] LT',\n lastDay : '[Kunu lÉ›rÉ›] LT',\n lastWeek : 'dddd [tÉ›mÉ›nen lÉ›rÉ›] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s kÉ”nÉ”',\n past : 'a bÉ› %s bÉ”',\n s : 'sanga dama dama',\n ss : 'sekondi %d',\n m : 'miniti kelen',\n mm : 'miniti %d',\n h : 'lÉ›rÉ› kelen',\n hh : 'lÉ›rÉ› %d',\n d : 'tile kelen',\n dd : 'tile %d',\n M : 'kalo kelen',\n MM : 'kalo %d',\n y : 'san kelen',\n yy : 'san %d'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return bm;\n\n})));\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","/*!\n * vue-i18n v8.14.1 \n * (c) 2019 kazuya kawaguchi\n * Released under the MIT License.\n */\n/* */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n 'style',\n 'currency',\n 'currencyDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n 'localeMatcher',\n 'formatMatcher'\n];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\n\nfunction error (msg, err) {\n if (typeof console !== 'undefined') {\n console.error('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.error(err.stack);\n }\n }\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n return val === null || val === undefined\n}\n\nfunction parseArgs () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var locale = null;\n var params = null;\n if (args.length === 1) {\n if (isObject(args[0]) || Array.isArray(args[0])) {\n params = args[0];\n } else if (typeof args[0] === 'string') {\n locale = args[0];\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n locale = args[0];\n }\n /* istanbul ignore if */\n if (isObject(args[1]) || Array.isArray(args[1])) {\n params = args[1];\n }\n }\n\n return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n var arguments$1 = arguments;\n\n var output = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n if (source !== undefined && source !== null) {\n var key = (void 0);\n for (key in source) {\n if (hasOwn(source, key)) {\n if (isObject(source[key])) {\n output[key] = merge(output[key], source[key]);\n } else {\n output[key] = source[key];\n }\n }\n }\n }\n }\n return output\n}\n\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/* */\n\nfunction extend (Vue) {\n if (!Vue.prototype.hasOwnProperty('$i18n')) {\n // $FlowFixMe\n Object.defineProperty(Vue.prototype, '$i18n', {\n get: function get () { return this._i18n }\n });\n }\n\n Vue.prototype.$t = function (key) {\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n\n var i18n = this.$i18n;\n return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))\n };\n\n Vue.prototype.$tc = function (key, choice) {\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n\n var i18n = this.$i18n;\n return i18n._tc.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, choice ].concat( values ))\n };\n\n Vue.prototype.$te = function (key, locale) {\n var i18n = this.$i18n;\n return i18n._te(key, i18n.locale, i18n._getMessages(), locale)\n };\n\n Vue.prototype.$d = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).d.apply(ref, [ value ].concat( args ))\n };\n\n Vue.prototype.$n = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).n.apply(ref, [ value ].concat( args ))\n };\n}\n\n/* */\n\nvar mixin = {\n beforeCreate: function beforeCreate () {\n var options = this.$options;\n options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n if (options.__i18n) {\n try {\n var localeMessages = {};\n options.__i18n.forEach(function (resource) {\n localeMessages = merge(localeMessages, JSON.parse(resource));\n });\n Object.keys(localeMessages).forEach(function (locale) {\n options.i18n.mergeLocaleMessage(locale, localeMessages[locale]);\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n this._i18n = options.i18n;\n this._i18nWatcher = this._i18n.watchI18nData();\n } else if (isPlainObject(options.i18n)) {\n // component local i18n\n if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n options.i18n.root = this.$root;\n options.i18n.formatter = this.$root.$i18n.formatter;\n options.i18n.fallbackLocale = this.$root.$i18n.fallbackLocale;\n options.i18n.formatFallbackMessages = this.$root.$i18n.formatFallbackMessages;\n options.i18n.silentTranslationWarn = this.$root.$i18n.silentTranslationWarn;\n options.i18n.silentFallbackWarn = this.$root.$i18n.silentFallbackWarn;\n options.i18n.pluralizationRules = this.$root.$i18n.pluralizationRules;\n options.i18n.preserveDirectiveContent = this.$root.$i18n.preserveDirectiveContent;\n }\n\n // init locale messages via custom blocks\n if (options.__i18n) {\n try {\n var localeMessages$1 = {};\n options.__i18n.forEach(function (resource) {\n localeMessages$1 = merge(localeMessages$1, JSON.parse(resource));\n });\n options.i18n.messages = localeMessages$1;\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n\n var ref = options.i18n;\n var sharedMessages = ref.sharedMessages;\n if (sharedMessages && isPlainObject(sharedMessages)) {\n options.i18n.messages = merge(options.i18n.messages, sharedMessages);\n }\n\n this._i18n = new VueI18n(options.i18n);\n this._i18nWatcher = this._i18n.watchI18nData();\n\n if (options.i18n.sync === undefined || !!options.i18n.sync) {\n this._localeWatcher = this.$i18n.watchLocale();\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n // root i18n\n this._i18n = this.$root.$i18n;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n // parent i18n\n this._i18n = options.parent.$i18n;\n }\n },\n\n beforeMount: function beforeMount () {\n var options = this.$options;\n options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (isPlainObject(options.i18n)) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n }\n },\n\n beforeDestroy: function beforeDestroy () {\n if (!this._i18n) { return }\n\n var self = this;\n this.$nextTick(function () {\n if (self._subscribing) {\n self._i18n.unsubscribeDataChanging(self);\n delete self._subscribing;\n }\n\n if (self._i18nWatcher) {\n self._i18nWatcher();\n self._i18n.destroyVM();\n delete self._i18nWatcher;\n }\n\n if (self._localeWatcher) {\n self._localeWatcher();\n delete self._localeWatcher;\n }\n\n self._i18n = null;\n });\n }\n};\n\n/* */\n\nvar interpolationComponent = {\n name: 'i18n',\n functional: true,\n props: {\n tag: {\n type: String\n },\n path: {\n type: String,\n required: true\n },\n locale: {\n type: String\n },\n places: {\n type: [Array, Object]\n }\n },\n render: function render (h, ref) {\n var data = ref.data;\n var parent = ref.parent;\n var props = ref.props;\n var slots = ref.slots;\n\n var $i18n = parent.$i18n;\n if (!$i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return\n }\n\n var path = props.path;\n var locale = props.locale;\n var places = props.places;\n var params = slots();\n var children = $i18n.i(\n path,\n locale,\n onlyHasDefaultPlace(params) || places\n ? useLegacyPlaces(params.default, places)\n : params\n );\n\n var tag = props.tag || 'span';\n return tag ? h(tag, data, children) : children\n }\n};\n\nfunction onlyHasDefaultPlace (params) {\n var prop;\n for (prop in params) {\n if (prop !== 'default') { return false }\n }\n return Boolean(prop)\n}\n\nfunction useLegacyPlaces (children, places) {\n var params = places ? createParamsFromPlaces(places) : {};\n \n if (!children) { return params }\n\n // Filter empty text nodes\n children = children.filter(function (child) {\n return child.tag || child.text.trim() !== ''\n });\n\n var everyPlace = children.every(vnodeHasPlaceAttribute);\n if (process.env.NODE_ENV !== 'production' && everyPlace) {\n warn('`place` attribute is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return children.reduce(\n everyPlace ? assignChildPlace : assignChildIndex,\n params\n )\n}\n\nfunction createParamsFromPlaces (places) {\n if (process.env.NODE_ENV !== 'production') {\n warn('`places` prop is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return Array.isArray(places)\n ? places.reduce(assignChildIndex, {})\n : Object.assign({}, places)\n}\n\nfunction assignChildPlace (params, child) {\n if (child.data && child.data.attrs && child.data.attrs.place) {\n params[child.data.attrs.place] = child;\n }\n return params\n}\n\nfunction assignChildIndex (params, child, index) {\n params[index] = child;\n return params\n}\n\nfunction vnodeHasPlaceAttribute (vnode) {\n return Boolean(vnode.data && vnode.data.attrs && vnode.data.attrs.place)\n}\n\n/* */\n\nvar numberComponent = {\n name: 'i18n-n',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'span'\n },\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n },\n locale: {\n type: String\n }\n },\n render: function render (h, ref) {\n var props = ref.props;\n var parent = ref.parent;\n var data = ref.data;\n\n var i18n = parent.$i18n;\n\n if (!i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return null\n }\n\n var key = null;\n var options = null;\n\n if (typeof props.format === 'string') {\n key = props.format;\n } else if (isObject(props.format)) {\n if (props.format.key) {\n key = props.format.key;\n }\n\n // Filter out number format options only\n options = Object.keys(props.format).reduce(function (acc, prop) {\n var obj;\n\n if (numberFormatKeys.includes(prop)) {\n return Object.assign({}, acc, ( obj = {}, obj[prop] = props.format[prop], obj ))\n }\n return acc\n }, null);\n }\n\n var locale = props.locale || i18n.locale;\n var parts = i18n._ntp(props.value, locale, key, options);\n\n var values = parts.map(function (part, index) {\n var obj;\n\n var slot = data.scopedSlots && data.scopedSlots[part.type];\n return slot ? slot(( obj = {}, obj[part.type] = part.value, obj.index = index, obj.parts = parts, obj )) : part.value\n });\n\n return h(props.tag, {\n attrs: data.attrs,\n 'class': data['class'],\n staticClass: data.staticClass\n }, values)\n }\n};\n\n/* */\n\nfunction bind (el, binding, vnode) {\n if (!assert(el, vnode)) { return }\n\n t(el, binding, vnode);\n}\n\nfunction update (el, binding, vnode, oldVNode) {\n if (!assert(el, vnode)) { return }\n\n var i18n = vnode.context.$i18n;\n if (localeEqual(el, vnode) &&\n (looseEqual(binding.value, binding.oldValue) &&\n looseEqual(el._localeMessage, i18n.getLocaleMessage(i18n.locale)))) { return }\n\n t(el, binding, vnode);\n}\n\nfunction unbind (el, binding, vnode, oldVNode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return\n }\n\n var i18n = vnode.context.$i18n || {};\n if (!binding.modifiers.preserve && !i18n.preserveDirectiveContent) {\n el.textContent = '';\n }\n el._vt = undefined;\n delete el['_vt'];\n el._locale = undefined;\n delete el['_locale'];\n el._localeMessage = undefined;\n delete el['_localeMessage'];\n}\n\nfunction assert (el, vnode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return false\n }\n\n if (!vm.$i18n) {\n warn('VueI18n instance does not exists in Vue instance');\n return false\n }\n\n return true\n}\n\nfunction localeEqual (el, vnode) {\n var vm = vnode.context;\n return el._locale === vm.$i18n.locale\n}\n\nfunction t (el, binding, vnode) {\n var ref$1, ref$2;\n\n var value = binding.value;\n\n var ref = parseValue(value);\n var path = ref.path;\n var locale = ref.locale;\n var args = ref.args;\n var choice = ref.choice;\n if (!path && !locale && !args) {\n warn('value type not supported');\n return\n }\n\n if (!path) {\n warn('`path` is required in v-t directive');\n return\n }\n\n var vm = vnode.context;\n if (choice) {\n el._vt = el.textContent = (ref$1 = vm.$i18n).tc.apply(ref$1, [ path, choice ].concat( makeParams(locale, args) ));\n } else {\n el._vt = el.textContent = (ref$2 = vm.$i18n).t.apply(ref$2, [ path ].concat( makeParams(locale, args) ));\n }\n el._locale = vm.$i18n.locale;\n el._localeMessage = vm.$i18n.getLocaleMessage(vm.$i18n.locale);\n}\n\nfunction parseValue (value) {\n var path;\n var locale;\n var args;\n var choice;\n\n if (typeof value === 'string') {\n path = value;\n } else if (isPlainObject(value)) {\n path = value.path;\n locale = value.locale;\n args = value.args;\n choice = value.choice;\n }\n\n return { path: path, locale: locale, args: args, choice: choice }\n}\n\nfunction makeParams (locale, args) {\n var params = [];\n\n locale && params.push(locale);\n if (args && (Array.isArray(args) || isPlainObject(args))) {\n params.push(args);\n }\n\n return params\n}\n\nvar Vue;\n\nfunction install (_Vue) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && install.installed && _Vue === Vue) {\n warn('already installed.');\n return\n }\n install.installed = true;\n\n Vue = _Vue;\n\n var version = (Vue.version && Number(Vue.version.split('.')[0])) || -1;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && version < 2) {\n warn((\"vue-i18n (\" + (install.version) + \") need to use Vue 2.0 or later (Vue: \" + (Vue.version) + \").\"));\n return\n }\n\n extend(Vue);\n Vue.mixin(mixin);\n Vue.directive('t', { bind: bind, update: update, unbind: unbind });\n Vue.component(interpolationComponent.name, interpolationComponent);\n Vue.component(numberComponent.name, numberComponent);\n\n // use simple mergeStrategies to prevent i18n instance lose '__proto__'\n var strats = Vue.config.optionMergeStrategies;\n strats.i18n = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n };\n}\n\n/* */\n\nvar BaseFormatter = function BaseFormatter () {\n this._caches = Object.create(null);\n};\n\nBaseFormatter.prototype.interpolate = function interpolate (message, values) {\n if (!values) {\n return [message]\n }\n var tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message);\n this._caches[message] = tokens;\n }\n return compile(tokens, values)\n};\n\n\n\nvar RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nvar RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\n\nfunction parse (format) {\n var tokens = [];\n var position = 0;\n\n var text = '';\n while (position < format.length) {\n var char = format[position++];\n if (char === '{') {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n\n text = '';\n var sub = '';\n char = format[position++];\n while (char !== undefined && char !== '}') {\n sub += char;\n char = format[position++];\n }\n var isClosed = char === '}';\n\n var type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type: type });\n } else if (char === '%') {\n // when found rails i18n syntax, skip text capture\n if (format[(position)] !== '{') {\n text += char;\n }\n } else {\n text += char;\n }\n }\n\n text && tokens.push({ type: 'text', value: text });\n\n return tokens\n}\n\nfunction compile (tokens, values) {\n var compiled = [];\n var index = 0;\n\n var mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') { return compiled }\n\n while (index < tokens.length) {\n var token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break\n case 'named':\n if (mode === 'named') {\n compiled.push((values)[token.value]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Type of token '\" + (token.type) + \"' and format of value '\" + mode + \"' don't match!\"));\n }\n }\n break\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Detect 'unknown' type of token!\");\n }\n break\n }\n index++;\n }\n\n return compiled\n}\n\n/* */\n\n/**\n * Path parser\n * - Inspired:\n * Vue.js Path parser\n */\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n 'ws': [BEFORE_PATH],\n 'ident': [IN_IDENT, APPEND],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n 'ws': [IN_PATH],\n '.': [BEFORE_IDENT],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n 'ws': [BEFORE_IDENT],\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND],\n 'ws': [IN_PATH, PUSH],\n '.': [BEFORE_IDENT, PUSH],\n '[': [IN_SUB_PATH, PUSH],\n 'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n \"'\": [IN_SINGLE_QUOTE, APPEND],\n '\"': [IN_DOUBLE_QUOTE, APPEND],\n '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n ']': [IN_PATH, PUSH_SUB_PATH],\n 'eof': ERROR,\n 'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n \"'\": [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n '\"': [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Check if an expression is a literal value.\n */\n\nvar literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral (exp) {\n return literalValueRE.test(exp)\n}\n\n/**\n * Strip quotes from a string\n */\n\nfunction stripQuotes (str) {\n var a = str.charCodeAt(0);\n var b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27)\n ? str.slice(1, -1)\n : str\n}\n\n/**\n * Determine the type of a character in a keypath.\n */\n\nfunction getPathCharType (ch) {\n if (ch === undefined || ch === null) { return 'eof' }\n\n var code = ch.charCodeAt(0);\n\n switch (code) {\n case 0x5B: // [\n case 0x5D: // ]\n case 0x2E: // .\n case 0x22: // \"\n case 0x27: // '\n return ch\n\n case 0x5F: // _\n case 0x24: // $\n case 0x2D: // -\n return 'ident'\n\n case 0x09: // Tab\n case 0x0A: // Newline\n case 0x0D: // Return\n case 0xA0: // No-break space\n case 0xFEFF: // Byte Order Mark\n case 0x2028: // Line Separator\n case 0x2029: // Paragraph Separator\n return 'ws'\n }\n\n return 'ident'\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\n\nfunction formatSubPath (path) {\n var trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(path)) { return false }\n\n return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed\n}\n\n/**\n * Parse a string path into an array of segments\n */\n\nfunction parse$1 (path) {\n var keys = [];\n var index = -1;\n var mode = BEFORE_PATH;\n var subPathDepth = 0;\n var c;\n var key;\n var newChar;\n var type;\n var transition;\n var action;\n var typeMap;\n var actions = [];\n\n actions[PUSH] = function () {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n\n actions[APPEND] = function () {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n\n actions[INC_SUB_PATH_DEPTH] = function () {\n actions[APPEND]();\n subPathDepth++;\n };\n\n actions[PUSH_SUB_PATH] = function () {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = IN_SUB_PATH;\n actions[APPEND]();\n } else {\n subPathDepth = 0;\n if (key === undefined) { return false }\n key = formatSubPath(key);\n if (key === false) {\n return false\n } else {\n actions[PUSH]();\n }\n }\n };\n\n function maybeUnescapeQuote () {\n var nextChar = path[index + 1];\n if ((mode === IN_SINGLE_QUOTE && nextChar === \"'\") ||\n (mode === IN_DOUBLE_QUOTE && nextChar === '\"')) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[APPEND]();\n return true\n }\n }\n\n while (mode !== null) {\n index++;\n c = path[index];\n\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue\n }\n\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap['else'] || ERROR;\n\n if (transition === ERROR) {\n return // parse error\n }\n\n mode = transition[0];\n action = actions[transition[1]];\n if (action) {\n newChar = transition[2];\n newChar = newChar === undefined\n ? c\n : newChar;\n if (action() === false) {\n return\n }\n }\n\n if (mode === AFTER_PATH) {\n return keys\n }\n }\n}\n\n\n\n\n\nvar I18nPath = function I18nPath () {\n this._cache = Object.create(null);\n};\n\n/**\n * External parse that check for a cache hit first\n */\nI18nPath.prototype.parsePath = function parsePath (path) {\n var hit = this._cache[path];\n if (!hit) {\n hit = parse$1(path);\n if (hit) {\n this._cache[path] = hit;\n }\n }\n return hit || []\n};\n\n/**\n * Get path value from path string\n */\nI18nPath.prototype.getPathValue = function getPathValue (obj, path) {\n if (!isObject(obj)) { return null }\n\n var paths = this.parsePath(path);\n if (paths.length === 0) {\n return null\n } else {\n var length = paths.length;\n var last = obj;\n var i = 0;\n while (i < length) {\n var value = last[paths[i]];\n if (value === undefined) {\n return null\n }\n last = value;\n i++;\n }\n\n return last\n }\n};\n\n/* */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-z]+)?:(?:[\\w\\-_|.]+|\\([\\w\\-_|.]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar formatters = {\n 'upper': function (str) { return str.toLocaleUpperCase(); },\n 'lower': function (str) { return str.toLocaleLowerCase(); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #290\n /* istanbul ignore if */\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n var locale = options.locale || 'en-US';\n var fallbackLocale = options.fallbackLocale || 'en-US';\n var messages = options.messages || {};\n var dateTimeFormats = options.dateTimeFormats || {};\n var numberFormats = options.numberFormats || {};\n\n this._vm = null;\n this._formatter = options.formatter || defaultFormatter;\n this._missing = options.missing || null;\n this._root = options.root || null;\n this._sync = options.sync === undefined ? true : !!options.sync;\n this._fallbackRoot = options.fallbackRoot === undefined\n ? true\n : !!options.fallbackRoot;\n this._formatFallbackMessages = options.formatFallbackMessages === undefined\n ? false\n : !!options.formatFallbackMessages;\n this._silentTranslationWarn = options.silentTranslationWarn === undefined\n ? false\n : options.silentTranslationWarn;\n this._silentFallbackWarn = options.silentFallbackWarn === undefined\n ? false\n : !!options.silentFallbackWarn;\n this._dateTimeFormatters = {};\n this._numberFormatters = {};\n this._path = new I18nPath();\n this._dataListeners = [];\n this._preserveDirectiveContent = options.preserveDirectiveContent === undefined\n ? false\n : !!options.preserveDirectiveContent;\n this.pluralizationRules = options.pluralizationRules || {};\n this._warnHtmlInMessage = options.warnHtmlInMessage || 'off';\n\n this._exist = function (message, key) {\n if (!message || !key) { return false }\n if (!isNull(this$1._path.getPathValue(message, key))) { return true }\n // fallback for flat key\n if (message[key]) { return true }\n return false\n };\n\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n\n this._initVM({\n locale: locale,\n fallbackLocale: fallbackLocale,\n messages: messages,\n dateTimeFormats: dateTimeFormats,\n numberFormats: numberFormats\n });\n};\n\nvar prototypeAccessors = { vm: { configurable: true },messages: { configurable: true },dateTimeFormats: { configurable: true },numberFormats: { configurable: true },availableLocales: { configurable: true },locale: { configurable: true },fallbackLocale: { configurable: true },formatFallbackMessages: { configurable: true },missing: { configurable: true },formatter: { configurable: true },silentTranslationWarn: { configurable: true },silentFallbackWarn: { configurable: true },preserveDirectiveContent: { configurable: true },warnHtmlInMessage: { configurable: true } };\n\nVueI18n.prototype._checkLocaleMessage = function _checkLocaleMessage (locale, level, message) {\n var paths = [];\n\n var fn = function (level, locale, message, paths) {\n if (isPlainObject(message)) {\n Object.keys(message).forEach(function (key) {\n var val = message[key];\n if (isPlainObject(val)) {\n paths.push(key);\n paths.push('.');\n fn(level, locale, val, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push(key);\n fn(level, locale, val, paths);\n paths.pop();\n }\n });\n } else if (Array.isArray(message)) {\n message.forEach(function (item, index) {\n if (isPlainObject(item)) {\n paths.push((\"[\" + index + \"]\"));\n paths.push('.');\n fn(level, locale, item, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push((\"[\" + index + \"]\"));\n fn(level, locale, item, paths);\n paths.pop();\n }\n });\n } else if (typeof message === 'string') {\n var ret = htmlTagMatcher.test(message);\n if (ret) {\n var msg = \"Detected HTML in message '\" + message + \"' of keypath '\" + (paths.join('')) + \"' at '\" + locale + \"'. Consider component interpolation with '<i18n>' to avoid XSS. See https://bit.ly/2ZqJzkp\";\n if (level === 'warn') {\n warn(msg);\n } else if (level === 'error') {\n error(msg);\n }\n }\n }\n };\n\n fn(level, locale, message, paths);\n};\n\nVueI18n.prototype._initVM = function _initVM (data) {\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n this._vm = new Vue({ data: data });\n Vue.config.silent = silent;\n};\n\nVueI18n.prototype.destroyVM = function destroyVM () {\n this._vm.$destroy();\n};\n\nVueI18n.prototype.subscribeDataChanging = function subscribeDataChanging (vm) {\n this._dataListeners.push(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n var self = this;\n return this._vm.$watch('$data', function () {\n var i = self._dataListeners.length;\n while (i--) {\n Vue.nextTick(function () {\n self._dataListeners[i] && self._dataListeners[i].$forceUpdate();\n });\n }\n }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale () {\n /* istanbul ignore if */\n if (!this._sync || !this._root) { return null }\n var target = this._vm;\n return this._root.$i18n.vm.$watch('locale', function (val) {\n target.$set(target, 'locale', val);\n target.$forceUpdate();\n }, { immediate: true })\n};\n\nprototypeAccessors.vm.get = function () { return this._vm };\n\nprototypeAccessors.messages.get = function () { return looseClone(this._getMessages()) };\nprototypeAccessors.dateTimeFormats.get = function () { return looseClone(this._getDateTimeFormats()) };\nprototypeAccessors.numberFormats.get = function () { return looseClone(this._getNumberFormats()) };\nprototypeAccessors.availableLocales.get = function () { return Object.keys(this.messages).sort() };\n\nprototypeAccessors.locale.get = function () { return this._vm.locale };\nprototypeAccessors.locale.set = function (locale) {\n this._vm.$set(this._vm, 'locale', locale);\n};\n\nprototypeAccessors.fallbackLocale.get = function () { return this._vm.fallbackLocale };\nprototypeAccessors.fallbackLocale.set = function (locale) {\n this._vm.$set(this._vm, 'fallbackLocale', locale);\n};\n\nprototypeAccessors.formatFallbackMessages.get = function () { return this._formatFallbackMessages };\nprototypeAccessors.formatFallbackMessages.set = function (fallback) { this._formatFallbackMessages = fallback; };\n\nprototypeAccessors.missing.get = function () { return this._missing };\nprototypeAccessors.missing.set = function (handler) { this._missing = handler; };\n\nprototypeAccessors.formatter.get = function () { return this._formatter };\nprototypeAccessors.formatter.set = function (formatter) { this._formatter = formatter; };\n\nprototypeAccessors.silentTranslationWarn.get = function () { return this._silentTranslationWarn };\nprototypeAccessors.silentTranslationWarn.set = function (silent) { this._silentTranslationWarn = silent; };\n\nprototypeAccessors.silentFallbackWarn.get = function () { return this._silentFallbackWarn };\nprototypeAccessors.silentFallbackWarn.set = function (silent) { this._silentFallbackWarn = silent; };\n\nprototypeAccessors.preserveDirectiveContent.get = function () { return this._preserveDirectiveContent };\nprototypeAccessors.preserveDirectiveContent.set = function (preserve) { this._preserveDirectiveContent = preserve; };\n\nprototypeAccessors.warnHtmlInMessage.get = function () { return this._warnHtmlInMessage };\nprototypeAccessors.warnHtmlInMessage.set = function (level) {\n var this$1 = this;\n\n var orgLevel = this._warnHtmlInMessage;\n this._warnHtmlInMessage = level;\n if (orgLevel !== level && (level === 'warn' || level === 'error')) {\n var messages = this._getMessages();\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n};\n\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values) {\n if (!isNull(result)) { return result }\n if (this._missing) {\n var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n if (typeof missingRet === 'string') {\n return missingRet\n }\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn(\n \"Cannot translate the value of keypath '\" + key + \"'. \" +\n 'Use the value of keypath as default.'\n );\n }\n }\n\n if (this._formatFallbackMessages) {\n var parsedArgs = parseArgs.apply(void 0, values);\n return this._render(key, 'string', parsedArgs.params, key)\n } else {\n return key\n }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n return !val && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n return this._silentFallbackWarn instanceof RegExp\n ? this._silentFallbackWarn.test(key)\n : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n return this._silentTranslationWarn instanceof RegExp\n ? this._silentTranslationWarn.test(key)\n : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n locale,\n message,\n key,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n if (!message) { return null }\n\n var pathRet = this._path.getPathValue(message, key);\n if (Array.isArray(pathRet) || isPlainObject(pathRet)) { return pathRet }\n\n var ret;\n if (isNull(pathRet)) {\n /* istanbul ignore else */\n if (isPlainObject(message)) {\n ret = message[key];\n if (typeof ret !== 'string') {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string!\"));\n }\n return null\n }\n } else {\n return null\n }\n } else {\n /* istanbul ignore else */\n if (typeof pathRet === 'string') {\n ret = pathRet;\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string!\"));\n }\n return null\n }\n }\n\n // Check for the existence of links within the translated string\n if (ret.indexOf('@:') >= 0 || ret.indexOf('@.') >= 0) {\n ret = this._link(locale, message, ret, host, 'raw', values, visitedLinkStack);\n }\n\n return this._render(ret, interpolateMode, values, key)\n};\n\nVueI18n.prototype._link = function _link (\n locale,\n message,\n str,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n var ret = str;\n\n // Match all the links within the local\n // We are going to replace each of\n // them with its translation\n var matches = ret.match(linkKeyMatcher);\n for (var idx in matches) {\n // ie compatible: filter custom array\n // prototype method\n if (!matches.hasOwnProperty(idx)) {\n continue\n }\n var link = matches[idx];\n var linkKeyPrefixMatches = link.match(linkKeyPrefixMatcher);\n var linkPrefix = linkKeyPrefixMatches[0];\n var formatterName = linkKeyPrefixMatches[1];\n\n // Remove the leading @:, @.case: and the brackets\n var linkPlaceholder = link.replace(linkPrefix, '').replace(bracketsMatcher, '');\n\n if (visitedLinkStack.includes(linkPlaceholder)) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Circular reference found. \\\"\" + link + \"\\\" is already visited in the chain of \" + (visitedLinkStack.reverse().join(' <- '))));\n }\n return ret\n }\n visitedLinkStack.push(linkPlaceholder);\n\n // Translate the link\n var translated = this._interpolate(\n locale, message, linkPlaceholder, host,\n interpolateMode === 'raw' ? 'string' : interpolateMode,\n interpolateMode === 'raw' ? undefined : values,\n visitedLinkStack\n );\n\n if (this._isFallbackRoot(translated)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(linkPlaceholder)) {\n warn((\"Fall back to translate the link placeholder '\" + linkPlaceholder + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n var root = this._root.$i18n;\n translated = root._translate(\n root._getMessages(), root.locale, root.fallbackLocale,\n linkPlaceholder, host, interpolateMode, values\n );\n }\n translated = this._warnDefault(\n locale, linkPlaceholder, translated, host,\n Array.isArray(values) ? values : [values]\n );\n if (formatters.hasOwnProperty(formatterName)) {\n translated = formatters[formatterName](translated);\n }\n\n visitedLinkStack.pop();\n\n // Replace the link with the translated\n ret = !translated ? ret : ret.replace(link, translated);\n }\n\n return ret\n};\n\nVueI18n.prototype._render = function _render (message, interpolateMode, values, path) {\n var ret = this._formatter.interpolate(message, values, path);\n\n // If the custom formatter refuses to work - apply the default one\n if (!ret) {\n ret = defaultFormatter.interpolate(message, values, path);\n }\n\n // if interpolateMode is **not** 'string' ('row'),\n // return the compiled data (e.g. ['foo', VNode, 'bar']) with formatter\n return interpolateMode === 'string' ? ret.join('') : ret\n};\n\nVueI18n.prototype._translate = function _translate (\n messages,\n locale,\n fallback,\n key,\n host,\n interpolateMode,\n args\n) {\n var res =\n this._interpolate(locale, messages[locale], key, host, interpolateMode, args, [key]);\n if (!isNull(res)) { return res }\n\n res = this._interpolate(fallback, messages[fallback], key, host, interpolateMode, args, [key]);\n if (!isNull(res)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with '\" + fallback + \"' locale.\"));\n }\n return res\n } else {\n return null\n }\n};\n\nVueI18n.prototype._t = function _t (key, _locale, messages, host) {\n var ref;\n\n var values = [], len = arguments.length - 4;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ];\n if (!key) { return '' }\n\n var parsedArgs = parseArgs.apply(void 0, values);\n var locale = parsedArgs.locale || _locale;\n\n var ret = this._translate(\n messages, locale, this.fallbackLocale, key,\n host, 'string', parsedArgs.params\n );\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return (ref = this._root).$t.apply(ref, [ key ].concat( values ))\n } else {\n return this._warnDefault(locale, key, ret, host, values)\n }\n};\n\nVueI18n.prototype.t = function t (key) {\n var ref;\n\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n return (ref = this)._t.apply(ref, [ key, this.locale, this._getMessages(), null ].concat( values ))\n};\n\nVueI18n.prototype._i = function _i (key, locale, messages, host, values) {\n var ret =\n this._translate(messages, locale, this.fallbackLocale, key, host, 'raw', values);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to interpolate the keypath '\" + key + \"' with root locale.\"));\n }\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.i(key, locale, values)\n } else {\n return this._warnDefault(locale, key, ret, host, [values])\n }\n};\n\nVueI18n.prototype.i = function i (key, locale, values) {\n /* istanbul ignore if */\n if (!key) { return '' }\n\n if (typeof locale !== 'string') {\n locale = this.locale;\n }\n\n return this._i(key, locale, this._getMessages(), null, values)\n};\n\nVueI18n.prototype._tc = function _tc (\n key,\n _locale,\n messages,\n host,\n choice\n) {\n var ref;\n\n var values = [], len = arguments.length - 5;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ];\n if (!key) { return '' }\n if (choice === undefined) {\n choice = 1;\n }\n\n var predefined = { 'count': choice, 'n': choice };\n var parsedArgs = parseArgs.apply(void 0, values);\n parsedArgs.params = Object.assign(predefined, parsedArgs.params);\n values = parsedArgs.locale === null ? [parsedArgs.params] : [parsedArgs.locale, parsedArgs.params];\n return this.fetchChoice((ref = this)._t.apply(ref, [ key, _locale, messages, host ].concat( values )), choice)\n};\n\nVueI18n.prototype.fetchChoice = function fetchChoice (message, choice) {\n /* istanbul ignore if */\n if (!message && typeof message !== 'string') { return null }\n var choices = message.split('|');\n\n choice = this.getChoiceIndex(choice, choices.length);\n if (!choices[choice]) { return message }\n return choices[choice].trim()\n};\n\n/**\n * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\n * @param choicesLength {number} an overall amount of available choices\n * @returns a final choice index\n*/\nVueI18n.prototype.getChoiceIndex = function getChoiceIndex (choice, choicesLength) {\n // Default (old) getChoiceIndex implementation - english-compatible\n var defaultImpl = function (_choice, _choicesLength) {\n _choice = Math.abs(_choice);\n\n if (_choicesLength === 2) {\n return _choice\n ? _choice > 1\n ? 1\n : 0\n : 1\n }\n\n return _choice ? Math.min(_choice, 2) : 0\n };\n\n if (this.locale in this.pluralizationRules) {\n return this.pluralizationRules[this.locale].apply(this, [choice, choicesLength])\n } else {\n return defaultImpl(choice, choicesLength)\n }\n};\n\nVueI18n.prototype.tc = function tc (key, choice) {\n var ref;\n\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values ))\n};\n\nVueI18n.prototype._te = function _te (key, locale, messages) {\n var args = [], len = arguments.length - 3;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ];\n\n var _locale = parseArgs.apply(void 0, args).locale || locale;\n return this._exist(messages[_locale], key)\n};\n\nVueI18n.prototype.te = function te (key, locale) {\n return this._te(key, this.locale, this._getMessages(), locale)\n};\n\nVueI18n.prototype.getLocaleMessage = function getLocaleMessage (locale) {\n return looseClone(this._vm.messages[locale] || {})\n};\n\nVueI18n.prototype.setLocaleMessage = function setLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n if (this._warnHtmlInMessage === 'error') { return }\n }\n this._vm.$set(this._vm.messages, locale, message);\n};\n\nVueI18n.prototype.mergeLocaleMessage = function mergeLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n if (this._warnHtmlInMessage === 'error') { return }\n }\n this._vm.$set(this._vm.messages, locale, merge(this._vm.messages[locale] || {}, message));\n};\n\nVueI18n.prototype.getDateTimeFormat = function getDateTimeFormat (locale) {\n return looseClone(this._vm.dateTimeFormats[locale] || {})\n};\n\nVueI18n.prototype.setDateTimeFormat = function setDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, format);\n};\n\nVueI18n.prototype.mergeDateTimeFormat = function mergeDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, merge(this._vm.dateTimeFormats[locale] || {}, format));\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n value,\n locale,\n fallback,\n dateTimeFormats,\n key\n) {\n var _locale = locale;\n var formats = dateTimeFormats[_locale];\n\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + fallback + \"' datetime formats from '\" + locale + \"' datetime formats.\"));\n }\n _locale = fallback;\n formats = dateTimeFormats[_locale];\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n var id = _locale + \"__\" + key;\n var formatter = this._dateTimeFormatters[id];\n if (!formatter) {\n formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n }\n return formatter.format(value)\n }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {\n warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');\n return ''\n }\n\n if (!key) {\n return new Intl.DateTimeFormat(locale).format(value)\n }\n\n var ret =\n this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to datetime localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.d(value, key, locale)\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.d = function d (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n\n if (args.length === 1) {\n if (typeof args[0] === 'string') {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n key = args[0];\n }\n if (typeof args[1] === 'string') {\n locale = args[1];\n }\n }\n\n return this._d(value, locale, key)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n};\n\nVueI18n.prototype._getNumberFormatter = function _getNumberFormatter (\n value,\n locale,\n fallback,\n numberFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = numberFormats[_locale];\n\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + fallback + \"' number formats from '\" + locale + \"' number formats.\"));\n }\n _locale = fallback;\n formats = numberFormats[_locale];\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n // If options specified - create one time number formatter\n formatter = new Intl.NumberFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._numberFormatters[id];\n if (!formatter) {\n formatter = this._numberFormatters[id] = new Intl.NumberFormat(_locale, format);\n }\n }\n return formatter\n }\n};\n\nVueI18n.prototype._n = function _n (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format a Number value due to not supported Intl.NumberFormat.');\n }\n return ''\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.format(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.format(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to number localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.n(value, Object.assign({}, { key: key, locale: locale }, options))\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.n = function n (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (typeof args[0] === 'string') {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n\n // Filter out number format options only\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (numberFormatKeys.includes(key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n key = args[0];\n }\n if (typeof args[1] === 'string') {\n locale = args[1];\n }\n }\n\n return this._n(value, locale, key, options)\n};\n\nVueI18n.prototype._ntp = function _ntp (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format to parts a Number value due to not supported Intl.NumberFormat.');\n }\n return []\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.formatToParts(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.formatToParts(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to format number to parts of root: key '\" + key + \"' .\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n._ntp(value, locale, key, options)\n } else {\n return ret || []\n }\n};\n\nObject.defineProperties( VueI18n.prototype, prototypeAccessors );\n\nvar availabilities;\n// $FlowFixMe\nObject.defineProperty(VueI18n, 'availabilities', {\n get: function get () {\n if (!availabilities) {\n var intlDefined = typeof Intl !== 'undefined';\n availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n };\n }\n\n return availabilities\n }\n});\n\nVueI18n.install = install;\nVueI18n.version = '8.14.1';\n\nexport default VueI18n;\n","var bn = require('bn.js');\nvar randomBytes = require('randombytes');\nmodule.exports = crt;\nfunction blind(priv) {\n var r = getr(priv);\n var blinder = r.toRed(bn.mont(priv.modulus))\n .redPow(new bn(priv.publicExponent)).fromRed();\n return {\n blinder: blinder,\n unblinder:r.invm(priv.modulus)\n };\n}\nfunction crt(msg, priv) {\n var blinds = blind(priv);\n var len = priv.modulus.byteLength();\n var mod = bn.mont(priv.modulus);\n var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus);\n var c1 = blinded.toRed(bn.mont(priv.prime1));\n var c2 = blinded.toRed(bn.mont(priv.prime2));\n var qinv = priv.coefficient;\n var p = priv.prime1;\n var q = priv.prime2;\n var m1 = c1.redPow(priv.exponent1);\n var m2 = c2.redPow(priv.exponent2);\n m1 = m1.fromRed();\n m2 = m2.fromRed();\n var h = m1.isub(m2).imul(qinv).umod(p);\n h.imul(q);\n m2.iadd(h);\n return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len));\n}\ncrt.getr = getr;\nfunction getr(priv) {\n var len = priv.modulus.byteLength();\n var r = new bn(randomBytes(len));\n while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) {\n r = new bn(randomBytes(len));\n }\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar isArray = require('isarray');\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/*</replacement>*/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'Ñекунда_Ñекунди_Ñекунд' : 'Ñекунду_Ñекунди_Ñекунд',\n 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n 'dd': 'день_дні_днів',\n 'MM': 'міÑÑць_міÑÑці_міÑÑців',\n 'yy': 'рік_роки_років'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n 'nominative': 'неділÑ_понеділок_вівторок_Ñереда_четвер_п’ÑтницÑ_Ñубота'.split('_'),\n 'accusative': 'неділю_понеділок_вівторок_Ñереду_четвер_п’Ñтницю_Ñуботу'.split('_'),\n 'genitive': 'неділі_понеділка_вівторка_Ñереди_четверга_п’Ñтниці_Ñуботи'.split('_')\n };\n\n if (m === true) {\n return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n var nounCase = (/(\\[[ВвУу]\\]) ?dddd/).test(format) ?\n 'accusative' :\n ((/\\[?(?:минулої|наÑтупної)? ?\\] ?dddd/).test(format) ?\n 'genitive' :\n 'nominative');\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months : {\n 'format': 'ÑічнÑ_лютого_березнÑ_квітнÑ_травнÑ_червнÑ_липнÑ_ÑерпнÑ_вереÑнÑ_жовтнÑ_лиÑтопада_груднÑ'.split('_'),\n 'standalone': 'Ñічень_лютий_березень_квітень_травень_червень_липень_Ñерпень_вереÑень_жовтень_лиÑтопад_грудень'.split('_')\n },\n monthsShort : 'Ñіч_лют_бер_квіт_трав_черв_лип_Ñерп_вер_жовт_лиÑÑ‚_груд'.split('_'),\n weekdays : weekdaysCaseReplace,\n weekdaysShort : 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY Ñ€.',\n LLL : 'D MMMM YYYY Ñ€., HH:mm',\n LLLL : 'dddd, D MMMM YYYY Ñ€., HH:mm'\n },\n calendar : {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : '%s тому',\n s : 'декілька Ñекунд',\n ss : relativeTimeWithPlural,\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : 'годину',\n hh : relativeTimeWithPlural,\n d : 'день',\n dd : relativeTimeWithPlural,\n M : 'міÑÑць',\n MM : relativeTimeWithPlural,\n y : 'рік',\n yy : relativeTimeWithPlural\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|днÑ|вечора/,\n isPM: function (input) {\n return /^(днÑ|вечора)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return uk;\n\n})));\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var lo = moment.defineLocale('lo', {\n months : 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split('_'),\n monthsShort : 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split('_'),\n weekdays : 'àºàº²àº—ິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysShort : 'ທິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysMin : 'ທ_ຈ_àºàº„_ພ_ພຫ_ສàº_ສ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'ວັນdddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ຕàºàº™à»€àºŠàº»à»‰àº²|ຕàºàº™à»àº¥àº‡/,\n isPM: function (input) {\n return input === 'ຕàºàº™à»àº¥àº‡';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕàºàº™à»€àºŠàº»à»‰àº²';\n } else {\n return 'ຕàºàº™à»àº¥àº‡';\n }\n },\n calendar : {\n sameDay : '[ມື້ນີ້ເວລາ] LT',\n nextDay : '[ມື້àºàº·à»ˆàº™à»€àº§àº¥àº²] LT',\n nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay : '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek : '[ວັນ]dddd[à»àº¥à»‰àº§àº™àºµà»‰à»€àº§àº¥àº²] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'àºàºµàº %s',\n past : '%sຜ່ານມາ',\n s : 'ບà»à»ˆà»€àº—ົ່າໃດວິນາທີ',\n ss : '%d ວິນາທີ' ,\n m : '1 ນາທີ',\n mm : '%d ນາທີ',\n h : '1 ຊົ່ວໂມງ',\n hh : '%d ຊົ່ວໂມງ',\n d : '1 ມື້',\n dd : '%d ມື້',\n M : '1 ເດືàºàº™',\n MM : '%d ເດືàºàº™',\n y : '1 ປີ',\n yy : '%d ປີ'\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal : function (number) {\n return 'ທີ່' + number;\n }\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return de;\n\n})));\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'dadkh s yan %s',\n past : 'yan %s',\n s : 'imik',\n ss : '%d imik',\n m : 'minuá¸',\n mm : '%d minuá¸',\n h : 'saÉ›a',\n hh : '%d tassaÉ›in',\n d : 'ass',\n dd : '%d ossan',\n M : 'ayowr',\n MM : '%d iyyirn',\n y : 'asgas',\n yy : '%d isgasn'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var jv = moment.defineLocale('jv', {\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar : {\n sameDay : '[Dinten puniko pukul] LT',\n nextDay : '[Mbenjang pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kala wingi pukul] LT',\n lastWeek : 'dddd [kepengker pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'wonten ing %s',\n past : '%s ingkang kepengker',\n s : 'sawetawis detik',\n ss : '%d detik',\n m : 'setunggal menit',\n mm : '%d menit',\n h : 'setunggal jam',\n hh : '%d jam',\n d : 'sedinten',\n dd : '%d dinten',\n M : 'sewulan',\n MM : '%d wulan',\n y : 'setaun',\n yy : '%d taun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return jv;\n\n})));\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","/*jshint node:true */\n'use strict';\nvar Buffer = require('buffer').Buffer; // browserify\nvar SlowBuffer = require('buffer').SlowBuffer;\n\nmodule.exports = bufferEq;\n\nfunction bufferEq(a, b) {\n\n // shortcutting on type is necessary for correctness\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n return false;\n }\n\n // buffer sizes should be well-known information, so despite this\n // shortcutting, it doesn't leak any information about the *contents* of the\n // buffers.\n if (a.length !== b.length) {\n return false;\n }\n\n var c = 0;\n for (var i = 0; i < a.length; i++) {\n /*jshint bitwise:false */\n c |= a[i] ^ b[i]; // XOR\n }\n return c === 0;\n}\n\nbufferEq.install = function() {\n Buffer.prototype.equal = SlowBuffer.prototype.equal = function equal(that) {\n return bufferEq(this, that);\n };\n};\n\nvar origBufEqual = Buffer.prototype.equal;\nvar origSlowBufEqual = SlowBuffer.prototype.equal;\nbufferEq.restore = function() {\n Buffer.prototype.equal = origBufEqual;\n SlowBuffer.prototype.equal = origSlowBufEqual;\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var createHash = require('create-hash')\nvar stream = require('stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = new Buffer(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = new Buffer(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = new Buffer(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = new Buffer(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n }\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0 && (r[1] & 0x80)) {\n r = r.slice(1);\n }\n if (s[0] === 0 && (s[1] & 0x80)) {\n s = s.slice(1);\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var nn = moment.defineLocale('nn', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sundag_mÃ¥ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort : 'sun_mÃ¥n_tys_ons_tor_fre_lau'.split('_'),\n weekdaysMin : 'su_mÃ¥_ty_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I gÃ¥r klokka] LT',\n lastWeek: '[FøregÃ¥ande] dddd [klokka] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s sidan',\n s : 'nokre sekund',\n ss : '%d sekund',\n m : 'eit minutt',\n mm : '%d minutt',\n h : 'ein time',\n hh : '%d timar',\n d : 'ein dag',\n dd : '%d dagar',\n M : 'ein mÃ¥nad',\n MM : '%d mÃ¥nader',\n y : 'eit Ã¥r',\n yy : '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var units = {\n 'ss': 'sekundes_sekundÄ“m_sekunde_sekundes'.split('_'),\n 'm': 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n 'mm': 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n 'h': 'stundas_stundÄm_stunda_stundas'.split('_'),\n 'hh': 'stundas_stundÄm_stunda_stundas'.split('_'),\n 'd': 'dienas_dienÄm_diena_dienas'.split('_'),\n 'dd': 'dienas_dienÄm_diena_dienas'.split('_'),\n 'M': 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n 'MM': 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n 'y': 'gada_gadiem_gads_gadi'.split('_'),\n 'yy': 'gada_gadiem_gads_gadi'.split('_')\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minÅ«te\", \"3 minÅ«tes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minÅ«tes\" as in \"pÄ“c 21 minÅ«tes\".\n // E.g. \"3 minÅ«tÄ“m\" as in \"pÄ“c 3 minÅ«tÄ“m\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažÄm sekundÄ“m';\n }\n\n var lv = moment.defineLocale('lv', {\n months : 'janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'svÄ“tdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY.',\n LL : 'YYYY. [gada] D. MMMM',\n LLL : 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n },\n calendar : {\n sameDay : '[Å odien pulksten] LT',\n nextDay : '[RÄ«t pulksten] LT',\n nextWeek : 'dddd [pulksten] LT',\n lastDay : '[Vakar pulksten] LT',\n lastWeek : '[PagÄjuÅ¡Ä] dddd [pulksten] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'pÄ“c %s',\n past : 'pirms %s',\n s : relativeSeconds,\n ss : relativeTimeWithPlural,\n m : relativeTimeWithSingular,\n mm : relativeTimeWithPlural,\n h : relativeTimeWithSingular,\n hh : relativeTimeWithPlural,\n d : relativeTimeWithSingular,\n dd : relativeTimeWithPlural,\n M : relativeTimeWithSingular,\n MM : relativeTimeWithPlural,\n y : relativeTimeWithSingular,\n yy : relativeTimeWithPlural\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lv;\n\n})));\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(curves.hasOwnProperty(options), 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray()\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n do {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n } while (true);\n};\n\nEC.prototype._truncateToN = function truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8'\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; true; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n\n if (!this.curve._maxwellTrick) {\n var p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n var p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '<Key priv: ' + (this.priv && this.priv.toString(16, 2)) +\n ' pub: ' + (this.pub && this.pub.inspect()) + ' >';\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deCh;\n\n})));\n","(function(t,e){\"object\"===typeof exports&&\"object\"===typeof module?module.exports=e(require(\"vue\"),require(\"moment\")):\"function\"===typeof define&&define.amd?define([,\"moment\"],e):\"object\"===typeof exports?exports[\"vue2-daterange-picker\"]=e(require(\"vue\"),require(\"moment\")):t[\"vue2-daterange-picker\"]=e(t[\"Vue\"],t[\"moment\"])})(\"undefined\"!==typeof self?self:this,function(t,e){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var a=e[r]={i:r,l:!1,exports:{}};return t[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"===typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var a in t)n.d(r,a,function(e){return t[e]}.bind(null,a));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t[\"default\"]}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=\"fb15\")}({\"0a49\":function(t,e,n){var r=n(\"9b43\"),a=n(\"626a\"),o=n(\"4bf8\"),i=n(\"9def\"),s=n(\"cd1c\");t.exports=function(t,e){var n=1==t,c=2==t,u=3==t,l=4==t,f=6==t,h=5==t||f,d=e||s;return function(e,s,p){for(var m,v,g=o(e),y=a(g),b=r(s,p,3),D=i(y.length),_=0,w=n?d(e,D):c?d(e,0):void 0;D>_;_++)if((h||_ in y)&&(m=y[_],v=b(m,_,g),t))if(n)w[_]=v;else if(v)switch(t){case 3:return!0;case 5:return m;case 6:return _;case 2:w.push(m)}else if(l)return!1;return f?-1:u||l?l:w}}},\"0bfb\":function(t,e,n){\"use strict\";var r=n(\"cb7c\");t.exports=function(){var t=r(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},\"0d58\":function(t,e,n){var r=n(\"ce10\"),a=n(\"e11e\");t.exports=Object.keys||function(t){return r(t,a)}},\"0e58\":function(t,e,n){\"use strict\";var r=n(\"9a59\"),a=n.n(r);a.a},1169:function(t,e,n){var r=n(\"2d95\");t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},\"11e9\":function(t,e,n){var r=n(\"52a7\"),a=n(\"4630\"),o=n(\"6821\"),i=n(\"6a99\"),s=n(\"69a8\"),c=n(\"c69a\"),u=Object.getOwnPropertyDescriptor;e.f=n(\"9e1e\")?u:function(t,e){if(t=o(t),e=i(e,!0),c)try{return u(t,e)}catch(n){}if(s(t,e))return a(!r.f.call(t,e),t[e])}},1495:function(t,e,n){var r=n(\"86cc\"),a=n(\"cb7c\"),o=n(\"0d58\");t.exports=n(\"9e1e\")?Object.defineProperties:function(t,e){a(t);var n,i=o(e),s=i.length,c=0;while(s>c)r.f(t,n=i[c++],e[n]);return t}},1991:function(t,e,n){var r,a,o,i=n(\"9b43\"),s=n(\"31f4\"),c=n(\"fab2\"),u=n(\"230e\"),l=n(\"7726\"),f=l.process,h=l.setImmediate,d=l.clearImmediate,p=l.MessageChannel,m=l.Dispatch,v=0,g={},y=\"onreadystatechange\",b=function(){var t=+this;if(g.hasOwnProperty(t)){var e=g[t];delete g[t],e()}},D=function(t){b.call(t.data)};h&&d||(h=function(t){var e=[],n=1;while(arguments.length>n)e.push(arguments[n++]);return g[++v]=function(){s(\"function\"==typeof t?t:Function(t),e)},r(v),v},d=function(t){delete g[t]},\"process\"==n(\"2d95\")(f)?r=function(t){f.nextTick(i(b,t,1))}:m&&m.now?r=function(t){m.now(i(b,t,1))}:p?(a=new p,o=a.port2,a.port1.onmessage=D,r=i(o.postMessage,o,1)):l.addEventListener&&\"function\"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+\"\",\"*\")},l.addEventListener(\"message\",D,!1)):r=y in u(\"script\")?function(t){c.appendChild(u(\"script\"))[y]=function(){c.removeChild(this),b.call(t)}}:function(t){setTimeout(i(b,t,1),0)}),t.exports={set:h,clear:d}},\"1fa8\":function(t,e,n){var r=n(\"cb7c\");t.exports=function(t,e,n,a){try{return a?e(r(n)[0],n[1]):e(n)}catch(i){var o=t[\"return\"];throw void 0!==o&&r(o.call(t)),i}}},\"230e\":function(t,e,n){var r=n(\"d3f4\"),a=n(\"7726\").document,o=r(a)&&r(a.createElement);t.exports=function(t){return o?a.createElement(t):{}}},\"23c6\":function(t,e,n){var r=n(\"2d95\"),a=n(\"2b4c\")(\"toStringTag\"),o=\"Arguments\"==r(function(){return arguments}()),i=function(t,e){try{return t[e]}catch(n){}};t.exports=function(t){var e,n,s;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=i(e=Object(t),a))?n:o?r(e):\"Object\"==(s=r(e))&&\"function\"==typeof e.callee?\"Arguments\":s}},\"27ee\":function(t,e,n){var r=n(\"23c6\"),a=n(\"2b4c\")(\"iterator\"),o=n(\"84f2\");t.exports=n(\"8378\").getIteratorMethod=function(t){if(void 0!=t)return t[a]||t[\"@@iterator\"]||o[r(t)]}},\"2aba\":function(t,e,n){var r=n(\"7726\"),a=n(\"32e9\"),o=n(\"69a8\"),i=n(\"ca5a\")(\"src\"),s=\"toString\",c=Function[s],u=(\"\"+c).split(s);n(\"8378\").inspectSource=function(t){return c.call(t)},(t.exports=function(t,e,n,s){var c=\"function\"==typeof n;c&&(o(n,\"name\")||a(n,\"name\",e)),t[e]!==n&&(c&&(o(n,i)||a(n,i,t[e]?\"\"+t[e]:u.join(String(e)))),t===r?t[e]=n:s?t[e]?t[e]=n:a(t,e,n):(delete t[e],a(t,e,n)))})(Function.prototype,s,function(){return\"function\"==typeof this&&this[i]||c.call(this)})},\"2aeb\":function(t,e,n){var r=n(\"cb7c\"),a=n(\"1495\"),o=n(\"e11e\"),i=n(\"613b\")(\"IE_PROTO\"),s=function(){},c=\"prototype\",u=function(){var t,e=n(\"230e\")(\"iframe\"),r=o.length,a=\"<\",i=\">\";e.style.display=\"none\",n(\"fab2\").appendChild(e),e.src=\"javascript:\",t=e.contentWindow.document,t.open(),t.write(a+\"script\"+i+\"document.F=Object\"+a+\"/script\"+i),t.close(),u=t.F;while(r--)delete u[c][o[r]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(s[c]=r(t),n=new s,s[c]=null,n[i]=t):n=u(),void 0===e?n:a(n,e)}},\"2b4c\":function(t,e,n){var r=n(\"5537\")(\"wks\"),a=n(\"ca5a\"),o=n(\"7726\").Symbol,i=\"function\"==typeof o,s=t.exports=function(t){return r[t]||(r[t]=i&&o[t]||(i?o:a)(\"Symbol.\"+t))};s.store=r},\"2d00\":function(t,e){t.exports=!1},\"2d95\":function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},\"31f4\":function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},\"32e9\":function(t,e,n){var r=n(\"86cc\"),a=n(\"4630\");t.exports=n(\"9e1e\")?function(t,e,n){return r.f(t,e,a(1,n))}:function(t,e,n){return t[e]=n,t}},\"33a4\":function(t,e,n){var r=n(\"84f2\"),a=n(\"2b4c\")(\"iterator\"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||o[a]===t)}},3846:function(t,e,n){n(\"9e1e\")&&\"g\"!=/./g.flags&&n(\"86cc\").f(RegExp.prototype,\"flags\",{configurable:!0,get:n(\"0bfb\")})},4588:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},4630:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},\"4a59\":function(t,e,n){var r=n(\"9b43\"),a=n(\"1fa8\"),o=n(\"33a4\"),i=n(\"cb7c\"),s=n(\"9def\"),c=n(\"27ee\"),u={},l={};e=t.exports=function(t,e,n,f,h){var d,p,m,v,g=h?function(){return t}:c(t),y=r(n,f,e?2:1),b=0;if(\"function\"!=typeof g)throw TypeError(t+\" is not iterable!\");if(o(g)){for(d=s(t.length);d>b;b++)if(v=e?y(i(p=t[b])[0],p[1]):y(t[b]),v===u||v===l)return v}else for(m=g.call(t);!(p=m.next()).done;)if(v=a(m,y,p.value,e),v===u||v===l)return v};e.BREAK=u,e.RETURN=l},\"4bf8\":function(t,e,n){var r=n(\"be13\");t.exports=function(t){return Object(r(t))}},\"52a7\":function(t,e){e.f={}.propertyIsEnumerable},\"551c\":function(t,e,n){\"use strict\";var r,a,o,i,s=n(\"2d00\"),c=n(\"7726\"),u=n(\"9b43\"),l=n(\"23c6\"),f=n(\"5ca1\"),h=n(\"d3f4\"),d=n(\"d8e8\"),p=n(\"f605\"),m=n(\"4a59\"),v=n(\"ebd6\"),g=n(\"1991\").set,y=n(\"8079\")(),b=n(\"a5b8\"),D=n(\"9c80\"),_=n(\"bcaa\"),w=\"Promise\",x=c.TypeError,k=c.process,M=c[w],C=\"process\"==l(k),O=function(){},P=a=b.f,S=!!function(){try{var t=M.resolve(1),e=(t.constructor={})[n(\"2b4c\")(\"species\")]=function(t){t(O,O)};return(C||\"function\"==typeof PromiseRejectionEvent)&&t.then(O)instanceof e}catch(r){}}(),j=function(t){var e;return!(!h(t)||\"function\"!=typeof(e=t.then))&&e},N=function(t,e){if(!t._n){t._n=!0;var n=t._c;y(function(){var r=t._v,a=1==t._s,o=0,i=function(e){var n,o,i=a?e.ok:e.fail,s=e.resolve,c=e.reject,u=e.domain;try{i?(a||(2==t._h&&A(t),t._h=1),!0===i?n=r:(u&&u.enter(),n=i(r),u&&u.exit()),n===e.promise?c(x(\"Promise-chain cycle\")):(o=j(n))?o.call(n,s,c):s(n)):c(r)}catch(l){c(l)}};while(n.length>o)i(n[o++]);t._c=[],t._n=!1,e&&!t._h&&E(t)})}},E=function(t){g.call(c,function(){var e,n,r,a=t._v,o=T(t);if(o&&(e=D(function(){C?k.emit(\"unhandledRejection\",a,t):(n=c.onunhandledrejection)?n({promise:t,reason:a}):(r=c.console)&&r.error&&r.error(\"Unhandled promise rejection\",a)}),t._h=C||T(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},T=function(t){if(1==t._h)return!1;var e,n=t._a||t._c,r=0;while(n.length>r)if(e=n[r++],e.fail||!T(e.promise))return!1;return!0},A=function(t){g.call(c,function(){var e;C?k.emit(\"rejectionHandled\",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})})},F=function(t){var e=this;e._d||(e._d=!0,e=e._w||e,e._v=t,e._s=2,e._a||(e._a=e._c.slice()),N(e,!0))},R=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw x(\"Promise can't be resolved itself\");(e=j(t))?y(function(){var r={_w:n,_d:!1};try{e.call(t,u(R,r,1),u(F,r,1))}catch(a){F.call(r,a)}}):(n._v=t,n._s=1,N(n,!1))}catch(r){F.call({_w:n,_d:!1},r)}}};S||(M=function(t){p(this,M,w,\"_h\"),d(t),r.call(this);try{t(u(R,this,1),u(F,this,1))}catch(e){F.call(this,e)}},r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=n(\"dcbc\")(M.prototype,{then:function(t,e){var n=P(v(this,M));return n.ok=\"function\"!=typeof t||t,n.fail=\"function\"==typeof e&&e,n.domain=C?k.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&N(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r;this.promise=t,this.resolve=u(R,t,1),this.reject=u(F,t,1)},b.f=P=function(t){return t===M||t===i?new o(t):a(t)}),f(f.G+f.W+f.F*!S,{Promise:M}),n(\"7f20\")(M,w),n(\"7a56\")(w),i=n(\"8378\")[w],f(f.S+f.F*!S,w,{reject:function(t){var e=P(this),n=e.reject;return n(t),e.promise}}),f(f.S+f.F*(s||!S),w,{resolve:function(t){return _(s&&this===i?M:this,t)}}),f(f.S+f.F*!(S&&n(\"5cc5\")(function(t){M.all(t)[\"catch\"](O)})),w,{all:function(t){var e=this,n=P(e),r=n.resolve,a=n.reject,o=D(function(){var n=[],o=0,i=1;m(t,!1,function(t){var s=o++,c=!1;n.push(void 0),i++,e.resolve(t).then(function(t){c||(c=!0,n[s]=t,--i||r(n))},a)}),--i||r(n)});return o.e&&a(o.v),n.promise},race:function(t){var e=this,n=P(e),r=n.reject,a=D(function(){m(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return a.e&&r(a.v),n.promise}})},5537:function(t,e,n){var r=n(\"7726\"),a=\"__core-js_shared__\",o=r[a]||(r[a]={});t.exports=function(t){return o[t]||(o[t]={})}},\"5ca1\":function(t,e,n){var r=n(\"7726\"),a=n(\"8378\"),o=n(\"32e9\"),i=n(\"2aba\"),s=n(\"9b43\"),c=\"prototype\",u=function(t,e,n){var l,f,h,d,p=t&u.F,m=t&u.G,v=t&u.S,g=t&u.P,y=t&u.B,b=m?r:v?r[e]||(r[e]={}):(r[e]||{})[c],D=m?a:a[e]||(a[e]={}),_=D[c]||(D[c]={});for(l in m&&(n=e),n)f=!p&&b&&void 0!==b[l],h=(f?b:n)[l],d=y&&f?s(h,r):g&&\"function\"==typeof h?s(Function.call,h):h,b&&i(b,l,h,t&u.U),D[l]!=h&&o(D,l,d),g&&_[l]!=h&&(_[l]=h)};r.core=a,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},\"5cc5\":function(t,e,n){var r=n(\"2b4c\")(\"iterator\"),a=!1;try{var o=[7][r]();o[\"return\"]=function(){a=!0},Array.from(o,function(){throw 2})}catch(i){}t.exports=function(t,e){if(!e&&!a)return!1;var n=!1;try{var o=[7],s=o[r]();s.next=function(){return{done:n=!0}},o[r]=function(){return s},t(o)}catch(i){}return n}},\"5dbc\":function(t,e,n){var r=n(\"d3f4\"),a=n(\"8b97\").set;t.exports=function(t,e,n){var o,i=e.constructor;return i!==n&&\"function\"==typeof i&&(o=i.prototype)!==n.prototype&&r(o)&&a&&a(t,o),t}},\"613b\":function(t,e,n){var r=n(\"5537\")(\"keys\"),a=n(\"ca5a\");t.exports=function(t){return r[t]||(r[t]=a(t))}},\"626a\":function(t,e,n){var r=n(\"2d95\");t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==r(t)?t.split(\"\"):Object(t)}},6821:function(t,e,n){var r=n(\"626a\"),a=n(\"be13\");t.exports=function(t){return r(a(t))}},\"69a8\":function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},\"6a99\":function(t,e,n){var r=n(\"d3f4\");t.exports=function(t,e){if(!r(t))return t;var n,a;if(e&&\"function\"==typeof(n=t.toString)&&!r(a=n.call(t)))return a;if(\"function\"==typeof(n=t.valueOf)&&!r(a=n.call(t)))return a;if(!e&&\"function\"==typeof(n=t.toString)&&!r(a=n.call(t)))return a;throw TypeError(\"Can't convert object to primitive value\")}},\"6b54\":function(t,e,n){\"use strict\";n(\"3846\");var r=n(\"cb7c\"),a=n(\"0bfb\"),o=n(\"9e1e\"),i=\"toString\",s=/./[i],c=function(t){n(\"2aba\")(RegExp.prototype,i,t,!0)};n(\"79e5\")(function(){return\"/a/b\"!=s.call({source:\"a\",flags:\"b\"})})?c(function(){var t=r(this);return\"/\".concat(t.source,\"/\",\"flags\"in t?t.flags:!o&&t instanceof RegExp?a.call(t):void 0)}):s.name!=i&&c(function(){return s.call(this)})},\"6e50\":function(t,e,n){},7514:function(t,e,n){\"use strict\";var r=n(\"5ca1\"),a=n(\"0a49\")(5),o=\"find\",i=!0;o in[]&&Array(1)[o](function(){i=!1}),r(r.P+r.F*i,\"Array\",{find:function(t){return a(this,t,arguments.length>1?arguments[1]:void 0)}}),n(\"9c6c\")(o)},7552:function(t,e,n){\"use strict\";var r=n(\"8fee\"),a=n.n(r);a.a},7726:function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},\"77f1\":function(t,e,n){var r=n(\"4588\"),a=Math.max,o=Math.min;t.exports=function(t,e){return t=r(t),t<0?a(t+e,0):o(t,e)}},\"79e5\":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},\"7a56\":function(t,e,n){\"use strict\";var r=n(\"7726\"),a=n(\"86cc\"),o=n(\"9e1e\"),i=n(\"2b4c\")(\"species\");t.exports=function(t){var e=r[t];o&&e&&!e[i]&&a.f(e,i,{configurable:!0,get:function(){return this}})}},\"7f20\":function(t,e,n){var r=n(\"86cc\").f,a=n(\"69a8\"),o=n(\"2b4c\")(\"toStringTag\");t.exports=function(t,e,n){t&&!a(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},8079:function(t,e,n){var r=n(\"7726\"),a=n(\"1991\").set,o=r.MutationObserver||r.WebKitMutationObserver,i=r.process,s=r.Promise,c=\"process\"==n(\"2d95\")(i);t.exports=function(){var t,e,n,u=function(){var r,a;c&&(r=i.domain)&&r.exit();while(t){a=t.fn,t=t.next;try{a()}catch(o){throw t?n():e=void 0,o}}e=void 0,r&&r.enter()};if(c)n=function(){i.nextTick(u)};else if(o){var l=!0,f=document.createTextNode(\"\");new o(u).observe(f,{characterData:!0}),n=function(){f.data=l=!l}}else if(s&&s.resolve){var h=s.resolve();n=function(){h.then(u)}}else n=function(){a.call(r,u)};return function(r){var a={fn:r,next:void 0};e&&(e.next=a),t||(t=a,n()),e=a}}},8378:function(t,e){var n=t.exports={version:\"2.5.1\"};\"number\"==typeof __e&&(__e=n)},\"84f2\":function(t,e){t.exports={}},\"86cc\":function(t,e,n){var r=n(\"cb7c\"),a=n(\"c69a\"),o=n(\"6a99\"),i=Object.defineProperty;e.f=n(\"9e1e\")?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),a)try{return i(t,e,n)}catch(s){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},\"8b97\":function(t,e,n){var r=n(\"d3f4\"),a=n(\"cb7c\"),o=function(t,e){if(a(t),!r(e)&&null!==e)throw TypeError(e+\": can't set as prototype!\")};t.exports={set:Object.setPrototypeOf||(\"__proto__\"in{}?function(t,e,r){try{r=n(\"9b43\")(Function.call,n(\"11e9\").f(Object.prototype,\"__proto__\").set,2),r(t,[]),e=!(t instanceof Array)}catch(a){e=!0}return function(t,n){return o(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:o}},\"8bbf\":function(e,n){e.exports=t},\"8fee\":function(t,e,n){},9093:function(t,e,n){var r=n(\"ce10\"),a=n(\"e11e\").concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,a)}},\"9a59\":function(t,e,n){},\"9b43\":function(t,e,n){var r=n(\"d8e8\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,a){return t.call(e,n,r,a)}}return function(){return t.apply(e,arguments)}}},\"9c6c\":function(t,e,n){var r=n(\"2b4c\")(\"unscopables\"),a=Array.prototype;void 0==a[r]&&n(\"32e9\")(a,r,{}),t.exports=function(t){a[r][t]=!0}},\"9c80\":function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(e){return{e:!0,v:e}}}},\"9def\":function(t,e,n){var r=n(\"4588\"),a=Math.min;t.exports=function(t){return t>0?a(r(t),9007199254740991):0}},\"9e1e\":function(t,e,n){t.exports=!n(\"79e5\")(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},a5b8:function(t,e,n){\"use strict\";var r=n(\"d8e8\");function a(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}t.exports.f=function(t){return new a(t)}},aa77:function(t,e,n){var r=n(\"5ca1\"),a=n(\"be13\"),o=n(\"79e5\"),i=n(\"fdef\"),s=\"[\"+i+\"]\",c=\"​…\",u=RegExp(\"^\"+s+s+\"*\"),l=RegExp(s+s+\"*$\"),f=function(t,e,n){var a={},s=o(function(){return!!i[t]()||c[t]()!=c}),u=a[t]=s?e(h):i[t];n&&(a[n]=u),r(r.P+r.F*s,\"String\",a)},h=f.trim=function(t,e){return t=String(a(t)),1&e&&(t=t.replace(u,\"\")),2&e&&(t=t.replace(l,\"\")),t};t.exports=f},bcaa:function(t,e,n){var r=n(\"cb7c\"),a=n(\"d3f4\"),o=n(\"a5b8\");t.exports=function(t,e){if(r(t),a(e)&&e.constructor===t)return e;var n=o.f(t),i=n.resolve;return i(e),n.promise}},be13:function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},c32d:function(t,n){t.exports=e},c366:function(t,e,n){var r=n(\"6821\"),a=n(\"9def\"),o=n(\"77f1\");t.exports=function(t){return function(e,n,i){var s,c=r(e),u=a(c.length),l=o(i,u);if(t&&n!=n){while(u>l)if(s=c[l++],s!=s)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},c5f6:function(t,e,n){\"use strict\";var r=n(\"7726\"),a=n(\"69a8\"),o=n(\"2d95\"),i=n(\"5dbc\"),s=n(\"6a99\"),c=n(\"79e5\"),u=n(\"9093\").f,l=n(\"11e9\").f,f=n(\"86cc\").f,h=n(\"aa77\").trim,d=\"Number\",p=r[d],m=p,v=p.prototype,g=o(n(\"2aeb\")(v))==d,y=\"trim\"in String.prototype,b=function(t){var e=s(t,!1);if(\"string\"==typeof e&&e.length>2){e=y?e.trim():h(e,3);var n,r,a,o=e.charCodeAt(0);if(43===o||45===o){if(n=e.charCodeAt(2),88===n||120===n)return NaN}else if(48===o){switch(e.charCodeAt(1)){case 66:case 98:r=2,a=49;break;case 79:case 111:r=8,a=55;break;default:return+e}for(var i,c=e.slice(2),u=0,l=c.length;u<l;u++)if(i=c.charCodeAt(u),i<48||i>a)return NaN;return parseInt(c,r)}}return+e};if(!p(\" 0o1\")||!p(\"0b1\")||p(\"+0x1\")){p=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof p&&(g?c(function(){v.valueOf.call(n)}):o(n)!=d)?i(new m(b(e)),n,p):b(e)};for(var D,_=n(\"9e1e\")?u(m):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),w=0;_.length>w;w++)a(m,D=_[w])&&!a(p,D)&&f(p,D,l(m,D));p.prototype=v,v.constructor=p,n(\"2aba\")(r,d,p)}},c69a:function(t,e,n){t.exports=!n(\"9e1e\")&&!n(\"79e5\")(function(){return 7!=Object.defineProperty(n(\"230e\")(\"div\"),\"a\",{get:function(){return 7}}).a})},c7db:function(t,e,n){\"use strict\";var r=n(\"8bbf\");r=\"default\"in r?r[\"default\"]:r;var a=\"2.2.2\",o=/^2\\./.test(r.version);o||r.util.warn(\"VueClickaway \"+a+\" only supports Vue 2.x, and does not support Vue \"+r.version);var i=\"_vue_clickaway_handler\";function s(t,e,n){c(t);var r=n.context,a=e.value;if(\"function\"===typeof a){var o=!1;setTimeout(function(){o=!0},0),t[i]=function(e){var n=e.path||(e.composedPath?e.composedPath():void 0);if(o&&(n?n.indexOf(t)<0:!t.contains(e.target)))return a.call(r,e)},document.documentElement.addEventListener(\"click\",t[i],!1)}}function c(t){document.documentElement.removeEventListener(\"click\",t[i],!1),delete t[i]}var u={bind:s,update:function(t,e){e.value!==e.oldValue&&s(t,e)},unbind:c},l={directives:{onClickaway:u}};e.version=a,e.directive=u,e.mixin=l},ca5a:function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+r).toString(36))}},cb7c:function(t,e,n){var r=n(\"d3f4\");t.exports=function(t){if(!r(t))throw TypeError(t+\" is not an object!\");return t}},cd1c:function(t,e,n){var r=n(\"e853\");t.exports=function(t,e){return new(r(t))(e)}},ce10:function(t,e,n){var r=n(\"69a8\"),a=n(\"6821\"),o=n(\"c366\")(!1),i=n(\"613b\")(\"IE_PROTO\");t.exports=function(t,e){var n,s=a(t),c=0,u=[];for(n in s)n!=i&&r(s,n)&&u.push(n);while(e.length>c)r(s,n=e[c++])&&(~o(u,n)||u.push(n));return u}},d3f4:function(t,e){t.exports=function(t){return\"object\"===typeof t?null!==t:\"function\"===typeof t}},d58f:function(t,e,n){\"use strict\";var r=n(\"6e50\"),a=n.n(r);a.a},d8e8:function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},dcbc:function(t,e,n){var r=n(\"2aba\");t.exports=function(t,e,n){for(var a in e)r(t,a,e[a],n);return t}},e11e:function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},e853:function(t,e,n){var r=n(\"d3f4\"),a=n(\"1169\"),o=n(\"2b4c\")(\"species\");t.exports=function(t){var e;return a(t)&&(e=t.constructor,\"function\"!=typeof e||e!==Array&&!a(e.prototype)||(e=void 0),r(e)&&(e=e[o],null===e&&(e=void 0))),void 0===e?Array:e}},ebd6:function(t,e,n){var r=n(\"cb7c\"),a=n(\"d8e8\"),o=n(\"2b4c\")(\"species\");t.exports=function(t,e){var n,i=r(t).constructor;return void 0===i||void 0==(n=r(i)[o])?e:a(n)}},f605:function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+\": incorrect invocation!\");return t}},f6fd:function(t,e){(function(t){var e=\"currentScript\",n=t.getElementsByTagName(\"script\");e in t||Object.defineProperty(t,e,{get:function(){try{throw new Error}catch(r){var t,e=(/.*at [^\\(]*\\((.*):.+:.+\\)$/gi.exec(r.stack)||[!1])[1];for(t in n)if(n[t].src==e||\"interactive\"==n[t].readyState)return n[t];return null}}})})(document)},fab2:function(t,e,n){var r=n(\"7726\").document;t.exports=r&&r.documentElement},fb15:function(t,e,n){\"use strict\";var r;(n.r(e),\"undefined\"!==typeof window)&&(n(\"f6fd\"),(r=window.document.currentScript)&&(r=r.src.match(/(.+\\/)[^\\/]+\\.js(\\?.*)?$/))&&(n.p=r[1]));n(\"551c\");var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"vue-daterange-picker\"},[n(\"div\",{staticClass:\"form-control reportrange-text\",on:{click:function(e){return t.togglePicker(null,!0)}}},[t._t(\"input\",[n(\"i\",{staticClass:\"glyphicon glyphicon-calendar fa fa-calendar\"}),t._v(\" \\n \"),n(\"span\",[t._v(t._s(t.rangeText))]),n(\"b\",{staticClass:\"caret\"})],{startDate:t.start,endDate:t.end,ranges:t.ranges})],2),n(\"transition\",{attrs:{name:\"slide-fade\",mode:\"out-in\"}},[t.open?n(\"div\",{directives:[{name:\"on-clickaway\",rawName:\"v-on-clickaway\",value:t.clickAway,expression:\"clickAway\"}],staticClass:\"daterangepicker dropdown-menu ltr\",class:t.pickerStyles},[n(\"div\",{staticClass:\"calendars row no-gutters\"},[!1!==t.ranges?t._t(\"ranges\",[n(\"calendar-ranges\",{staticClass:\"col-12 col-md-auto\",attrs:{ranges:t.ranges,selected:{startDate:t.start,endDate:t.end}},on:{clickRange:t.clickRange}})],{startDate:t.start,endDate:t.end,ranges:t.ranges}):t._e(),n(\"div\",{staticClass:\"drp-calendar col left\",class:{single:t.singleDatePicker}},[t._e(),n(\"div\",{staticClass:\"calendar-table\"},[n(\"calendar\",{attrs:{monthDate:t.monthDate,\"locale-data\":t.locale,start:t.start,end:t.end,minDate:t.min,maxDate:t.max,\"show-dropdowns\":t.showDropdowns,\"date-format\":t.dateFormatFn,showWeekNumbers:t.showWeekNumbers},on:{\"change-month\":t.changeLeftMonth,dateClick:t.dateClick,hoverDate:t.hoverDate}})],1),t.timePicker?n(\"calendar-time\",{attrs:{\"miniute-increment\":t.timePickerIncrement,hour24:t.timePicker24Hour,\"second-picker\":t.timePickerSeconds,\"current-time\":t.start},on:{update:t.onUpdateStartTime}}):t._e()],1),t.singleDatePicker?t._e():n(\"div\",{staticClass:\"drp-calendar col right\"},[t._e(),n(\"div\",{staticClass:\"calendar-table\"},[n(\"calendar\",{attrs:{monthDate:t.nextMonthDate,\"locale-data\":t.locale,start:t.start,end:t.end,minDate:t.min,maxDate:t.max,\"show-dropdowns\":t.showDropdowns,\"date-format\":t.dateFormatFn,showWeekNumbers:t.showWeekNumbers},on:{\"change-month\":t.changeRightMonth,dateClick:t.dateClick,hoverDate:t.hoverDate}})],1),t.timePicker?n(\"calendar-time\",{attrs:{\"miniute-increment\":t.timePickerIncrement,hour24:t.timePicker24Hour,\"second-picker\":t.timePickerSeconds,\"current-time\":t.end},on:{update:t.onUpdateEndTime}}):t._e()],1)],2),t.autoApply?t._e():n(\"div\",{staticClass:\"drp-buttons\"},[n(\"span\",{staticClass:\"drp-selected\"},[t._v(t._s(t.rangeText))]),n(\"button\",{staticClass:\"cancelBtn btn btn-sm btn-default\",attrs:{type:\"button\"},on:{click:t.clickAway}},[t._v(t._s(t.locale.cancelLabel)+\"\\n \")]),n(\"button\",{staticClass:\"applyBtn btn btn-sm btn-success\",attrs:{disabled:t.in_selection,type:\"button\"},on:{click:t.clickedApply}},[t._v(t._s(t.locale.applyLabel)+\"\\n \")])])]):t._e()])],1)},o=[],i=(n(\"c5f6\"),n(\"c32d\")),s=n.n(i),c=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"table\",{staticClass:\"table-condensed\"},[n(\"thead\",[n(\"tr\",[n(\"th\",{staticClass:\"prev available\",on:{click:t.prevMonth}},[n(\"span\")]),t.showDropdowns?n(\"th\",{staticClass:\"month\",attrs:{colspan:t.showWeekNumbers?6:5}},[n(\"div\",{staticClass:\"row mx-1\"},[n(\"select\",{directives:[{name:\"model\",rawName:\"v-model\",value:t.month,expression:\"month\"}],staticClass:\"monthselect col\",on:{change:function(e){var n=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e=\"_value\"in t?t._value:t.value;return e});t.month=e.target.multiple?n:n[0]}}},t._l(t.months,function(e){return n(\"option\",{key:e.value,domProps:{value:e.value}},[t._v(t._s(e.label))])}),0),n(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:t.year,expression:\"year\"}],staticClass:\"yearselect col\",attrs:{type:\"number\"},domProps:{value:t.year},on:{input:function(e){e.target.composing||(t.year=e.target.value)}}})])]):n(\"th\",{staticClass:\"month\",attrs:{colspan:\"5\"}},[t._v(t._s(t.monthName)+\" \"+t._s(t.year))]),n(\"th\",{staticClass:\"next available\",on:{click:t.nextMonth}},[n(\"span\")])])]),n(\"tbody\",[n(\"tr\",[t.showWeekNumbers?n(\"th\",{staticClass:\"week\"},[t._v(t._s(t.locale.weekLabel))]):t._e(),t._l(t.locale.daysOfWeek,function(e){return n(\"th\",{key:e},[t._v(t._s(e))])})],2),t._l(t.calendar,function(e,r){return n(\"tr\",{key:r},[t.showWeekNumbers&&(r%7||0===r)?n(\"td\",{staticClass:\"week\"},[t._v(\"\\n \"+t._s(t._f(\"weeknumber\")(e[0]))+\"\\n \")]):t._e(),t._l(e,function(e,r){return t._t(\"date-slot\",[n(\"td\",{key:r,class:t.dayClass(e),on:{click:function(n){return t.$emit(\"dateClick\",e)},mouseover:function(n){return t.$emit(\"hoverDate\",e)}}},[t._v(\"\\n \"+t._s(t._f(\"dateNum\")(e))+\"\\n \")])])})],2)})],2)])},u=[];n(\"7514\");function l(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function f(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},r=Object.keys(n);\"function\"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),r.forEach(function(e){l(t,e,n[e])})}return t}var h=function(t){var e=11===t.getMonth(),n=e?0:t.getMonth()+1,r=e?t.getFullYear()+1:t.getFullYear();return new Date(r,n,1)},d=function(t){var e=0===t.getMonth(),n=e?11:t.getMonth()-1,r=e?t.getFullYear()-1:t.getFullYear();return new Date(r,n,1)},p=function(t,e,n){var r=new Date(n),a=new Date(e);return n&&s()(t).isAfter(r)?r:e&&s()(t).isBefore(a)?a:t},m=function(t){var e={direction:\"ltr\",format:s.a.localeData().longDateFormat(\"L\"),separator:\" - \",applyLabel:\"Apply\",cancelLabel:\"Cancel\",weekLabel:\"W\",customRangeLabel:\"Custom Range\",daysOfWeek:s.a.weekdaysMin(),monthNames:s.a.monthsShort(),firstDay:s.a.localeData().firstDayOfWeek()};return f({},e,t)},v=function(t){var e=t.getMonth()+1;return t.getFullYear()+(e<10?\"0\":\"\")+e},g={name:\"calendar\",props:{monthDate:Date,localeData:Object,start:Date,end:Date,minDate:Date,maxDate:Date,showDropdowns:{type:Boolean,default:!1},showWeekNumbers:{type:Boolean,default:!1},dateFormat:{type:Function,default:null}},data:function(){return{currentMonthDate:this.monthDate||this.start||new Date}},methods:{prevMonth:function(){this.changeMonthDate(d(this.currentMonthDate))},nextMonth:function(){this.changeMonthDate(h(this.currentMonthDate))},changeMonthDate:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=v(this.currentMonthDate);this.currentMonthDate=p(t,this.minDate,this.maxDate),e&&n!==v(this.currentMonthDate)&&this.$emit(\"change-month\",{month:this.currentMonthDate.getMonth(),year:this.currentMonthDate.getFullYear()})},dayClass:function(t){var e=new Date(t);e.setHours(0,0,0,0);var n=new Date(this.start);n.setHours(0,0,0,0);var r=new Date(this.end);r.setHours(0,0,0,0);var a={off:t.month()!==this.month,weekend:t.isoWeekday()>5,today:e.setHours(0,0,0,0)==(new Date).setHours(0,0,0,0),active:e.setHours(0,0,0,0)==new Date(this.start).setHours(0,0,0,0)||e.setHours(0,0,0,0)==new Date(this.end).setHours(0,0,0,0),\"start-date\":e.getTime()===n.getTime(),\"end-date\":e.getTime()===r.getTime(),disabled:this.minDate&&s()(e).startOf(\"day\").isBefore(s()(this.minDate).startOf(\"day\"))||this.maxDate&&s()(e).startOf(\"day\").isAfter(s()(this.maxDate).startOf(\"day\"))};return this.dateFormat?this.dateFormat(a,t):a}},computed:{monthName:function(){return this.locale.monthNames[this.currentMonthDate.getMonth()]},year:{get:function(){return this.currentMonthDate.getFullYear()},set:function(t){var e=p(new Date(t,this.month,1),this.minDate,this.maxDate);this.$emit(\"change-month\",{month:e.getMonth(),year:e.getFullYear()})}},month:{get:function(){return this.currentMonthDate.getMonth()},set:function(t){var e=p(new Date(this.year,t,1),this.minDate,this.maxDate);this.$emit(\"change-month\",{month:e.getMonth(),year:e.getFullYear()})}},calendar:function(){for(var t=this.month,e=this.currentMonthDate.getFullYear(),n=new Date(e,t,0).getDate(),r=new Date(e,t,1),a=(new Date(e,t,n),s()(r).subtract(1,\"month\").month()),o=s()(r).subtract(1,\"month\").year(),i=s()([o,a]).daysInMonth(),c=r.getDay(),u=[],l=0;l<6;l++)u[l]=[];var f=i-c+this.locale.firstDay+1;f>i&&(f-=7),c===this.locale.firstDay&&(f=i-6);for(var h=s()([o,a,f,12,0,0]),d=0,p=0,m=0;d<42;d++,p++,h=s()(h).add(1,\"day\"))d>0&&p%7===0&&(p=0,m++),u[m][p]=h.clone(),h.hour(12);return u},months:function(){var t=this.locale.monthNames.map(function(t,e){return{label:t,value:e}});if(this.maxDate&&this.minDate){var e=this.maxDate.getFullYear()-this.minDate.getFullYear();if(e<2){var n=[];if(e<1)for(var r=this.minDate.getMonth();r<=this.maxDate.getMonth();r++)n.push(r);else{for(var a=0;a<=this.maxDate.getMonth();a++)n.push(a);for(var o=this.minDate.getMonth();o<12;o++)n.push(o)}if(n.length>0)return t.filter(function(t){return n.find(function(e){return t.value===e})>-1})}}return t},locale:function(){return m(this.localeData)}},watch:{monthDate:function(t){this.changeMonthDate(t,!1)}},filters:{dateNum:function(t){return t.date()},weeknumber:function(t){return t.week()}}},y=g;n(\"7552\");function b(t,e,n,r,a,o,i,s){var c,u=\"function\"===typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=n,u._compiled=!0),r&&(u.functional=!0),o&&(u._scopeId=\"data-v-\"+o),i?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(i)},u._ssrRegister=c):a&&(c=s?function(){a.call(this,this.$root.$options.shadowRoot)}:a),c)if(u.functional){u._injectStyles=c;var l=u.render;u.render=function(t,e){return c.call(e),l(t,e)}}else{var f=u.beforeCreate;u.beforeCreate=f?[].concat(f,c):[c]}return{exports:t,options:u}}var D=b(y,c,u,!1,null,\"64721b4e\",null),_=D.exports,w=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"calendar-time\"},[n(\"select\",{directives:[{name:\"model\",rawName:\"v-model\",value:t.hour,expression:\"hour\"}],staticClass:\"hourselect\",on:{change:function(e){var n=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e=\"_value\"in t?t._value:t.value;return e});t.hour=e.target.multiple?n:n[0]}}},t._l(t.hours,function(e){return n(\"option\",{key:e,domProps:{value:e}},[t._v(t._s(t._f(\"formatNumber\")(e)))])}),0),t._v(\"\\n :\"),n(\"select\",{directives:[{name:\"model\",rawName:\"v-model\",value:t.minute,expression:\"minute\"}],staticClass:\"minuteselect\",on:{change:function(e){var n=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e=\"_value\"in t?t._value:t.value;return e});t.minute=e.target.multiple?n:n[0]}}},t._l(t.minutes,function(e){return n(\"option\",{key:e,domProps:{value:e}},[t._v(t._s(t._f(\"formatNumber\")(e)))])}),0),t.secondPicker?[t._v(\"\\n :\"),n(\"select\",{directives:[{name:\"model\",rawName:\"v-model\",value:t.second,expression:\"second\"}],staticClass:\"secondselect\",on:{change:function(e){var n=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e=\"_value\"in t?t._value:t.value;return e});t.second=e.target.multiple?n:n[0]}}},t._l(60,function(e){return n(\"option\",{key:e-1,domProps:{value:e-1}},[t._v(t._s(t._f(\"formatNumber\")(e-1)))])}),0)]:t._e(),t.hour24?t._e():n(\"select\",{directives:[{name:\"model\",rawName:\"v-model\",value:t.ampm,expression:\"ampm\"}],staticClass:\"ampmselect\",on:{change:function(e){var n=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e=\"_value\"in t?t._value:t.value;return e});t.ampm=e.target.multiple?n:n[0]}}},[n(\"option\",{attrs:{value:\"AM\"}},[t._v(\"AM\")]),n(\"option\",{attrs:{value:\"PM\"}},[t._v(\"PM\")])])],2)},x=[],k=(n(\"6b54\"),{filters:{formatNumber:function(t){return t<10?\"0\"+t.toString():t.toString()}},props:{miniuteIncrement:{type:Number,default:5},hour24:{type:Boolean,default:!0},secondPicker:{type:Boolean,default:!1},currentTime:{default:function(){return new Date}}},data:function(){var t=this.currentTime?this.currentTime:new Date,e=t.getHours();return{hour:this.hour24?e:e%12||12,minute:t.getMinutes()-t.getMinutes()%this.miniuteIncrement,second:t.getSeconds(),ampm:e<12?\"AM\":\"PM\"}},computed:{hours:function(){for(var t=[],e=this.hour24?24:12,n=0;n<e;n++)t.push(this.hour24?n:n+1);return t},minutes:function(){for(var t=[],e=60,n=0;n<e;n+=this.miniuteIncrement)t.push(n);return t}},watch:{hour:function(){this.onChange()},minute:function(){this.onChange()},second:function(){this.onChange()},ampm:function(){this.onChange()}},methods:{getHour:function(){return this.hour24?this.hour:12===this.hour?\"AM\"===this.ampm?0:12:this.hour+(\"PM\"===this.ampm?12:0)},onChange:function(){this.$emit(\"update\",{hours:this.getHour(),minutes:this.minute,seconds:this.second})}}}),M=k,C=b(M,w,x,!1,null,\"f86c15aa\",null),O=C.exports,P=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"ranges\"},[t.ranges?n(\"ul\",t._l(t.ranges,function(e,r){return n(\"li\",{key:r,class:t.range_class(e),attrs:{\"data-range-key\":r},on:{click:function(n){return t.$emit(\"clickRange\",e)}}},[t._v(t._s(r)+\"\\n \")])}),0):t._e()])},S=[],j={props:{ranges:Object,selected:Object},methods:{range_class:function(t){return{active:s()(this.selected.startDate).isSame(t[0],\"date\")&&s()(this.selected.endDate).isSame(t[1],\"date\")}}}},N=j,E=b(N,P,S,!1,null,null,null),T=E.exports,A=n(\"c7db\"),F={inheritAttrs:!1,components:{Calendar:_,CalendarTime:O,CalendarRanges:T},mixins:[A[\"mixin\"]],model:{prop:\"dateRange\",event:\"update\"},props:{minDate:{type:[String,Date],default:function(){return null}},maxDate:{type:[String,Date],default:function(){return null}},showWeekNumbers:{type:Boolean,default:!1},linkedCalendars:{type:Boolean,default:!0},singleDatePicker:{type:Boolean,default:!1},showDropdowns:{type:Boolean,default:!1},timePicker:{type:Boolean,default:!1},timePickerIncrement:{type:Number,default:5},timePicker24Hour:{type:Boolean,default:!0},timePickerSeconds:{type:Boolean,default:!1},autoApply:{type:Boolean,default:!1},localeData:{type:Object,default:function(){return{}}},dateRange:{default:null,required:!0},ranges:{type:[Object,Boolean],default:function(){return{Today:[s()(),s()()],Yesterday:[s()().subtract(1,\"days\"),s()().subtract(1,\"days\")],\"This month\":[s()().startOf(\"month\"),s()().endOf(\"month\")],\"This year\":[s()().startOf(\"year\"),s()().endOf(\"year\")],\"Last week\":[s()().subtract(1,\"week\").startOf(\"week\"),s()().subtract(1,\"week\").endOf(\"week\")],\"Last month\":[s()().subtract(1,\"month\").startOf(\"month\"),s()().subtract(1,\"month\").endOf(\"month\")]}}},opens:{type:String,default:\"center\"},dateFormat:Function,alwaysShowCalendars:{type:Boolean,default:!0}},data:function(){var t={locale:m(this.localeData)},e=this.dateRange.startDate||null,n=this.dateRange.endDate||null;if(t.monthDate=e?new Date(e):new Date,t.nextMonthDate=h(t.monthDate),t.start=e?new Date(e):null,this.singleDatePicker?t.end=t.start:t.end=n?new Date(n):null,t.in_selection=!1,t.open=!1,0!==t.locale.firstDay){var r=t.locale.firstDay;while(r>0)t.locale.daysOfWeek.push(t.locale.daysOfWeek.shift()),r--}return t},methods:{dateFormatFn:function(t,e){var n=new Date(e);n.setHours(0,0,0,0);var r=new Date(this.start);r.setHours(0,0,0,0);var a=new Date(this.end);return a.setHours(0,0,0,0),t[\"in-range\"]=n>=r&&n<=a,this.dateFormat?this.dateFormat(t,e):t},changeLeftMonth:function(t){var e=new Date(t.year,t.month,1);this.monthDate=e,(this.linkedCalendars||v(this.monthDate)>=v(this.nextMonthDate))&&(this.nextMonthDate=p(h(e),this.minDate,this.maxDate),v(this.monthDate)===v(this.nextMonthDate)&&(this.monthDate=p(d(this.monthDate),this.minDate,this.maxDate)))},changeRightMonth:function(t){var e=new Date(t.year,t.month,1);this.nextMonthDate=e,(this.linkedCalendars||v(this.nextMonthDate)<=v(this.monthDate))&&(this.monthDate=p(d(e),this.minDate,this.maxDate),v(this.monthDate)===v(this.nextMonthDate)&&(this.nextMonthDate=p(h(this.nextMonthDate),this.minDate,this.maxDate)))},normalizeDatetime:function(t,e){var n=new Date(t);return this.timePicker&&e&&(n.setHours(e.getHours()),n.setMinutes(e.getMinutes()),n.setSeconds(e.getSeconds()),n.setMilliseconds(e.getMilliseconds())),n},dateClick:function(t){this.in_selection?(this.in_selection=!1,this.end=this.normalizeDatetime(t,this.end),this.end<this.start&&(this.in_selection=!0,this.start=this.normalizeDatetime(t,this.start)),!this.in_selection&&this.autoApply&&this.clickedApply()):(this.start=this.normalizeDatetime(t,this.start),this.end=this.normalizeDatetime(t,this.end),this.singleDatePicker?this.autoApply&&this.clickedApply():this.in_selection=!0)},hoverDate:function(t){var e=this.normalizeDatetime(t,this.end);this.in_selection&&e>=this.start&&(this.end=e)},togglePicker:function(t,e){this.open=\"boolean\"===typeof t?t:!this.open,!0===e&&this.$emit(\"toggle\",this.open,this.togglePicker)},clickedApply:function(){this.togglePicker(!1,!0),this.$emit(\"update\",{startDate:this.start,endDate:this.end})},clickAway:function(){if(this.open){var t=this.dateRange.startDate,e=this.dateRange.endDate;this.start=t?new Date(t):null,this.end=e?new Date(e):null,this.togglePicker(!1,!0)}},clickRange:function(t){this.start=new Date(t[0]),this.end=new Date(t[1]),this.monthDate=new Date(t[0]),this.autoApply&&this.clickedApply()},onUpdateStartTime:function(t){var e=new Date(this.start);e.setHours(t.hours),e.setMinutes(t.minutes),e.setSeconds(t.seconds),this.start=e},onUpdateEndTime:function(t){var e=new Date(this.end);e.setHours(t.hours),e.setMinutes(t.minutes),e.setSeconds(t.seconds),this.end=e}},computed:{startText:function(){return null===this.start?\"\":s()(this.start).format(this.locale.format)},endText:function(){return null===this.end?\"\":s()(new Date(this.end)).format(this.locale.format)},rangeText:function(){var t=this.startText;return this.singleDatePicker||(t+=this.locale.separator+this.endText),t},min:function(){return this.minDate?new Date(this.minDate):null},max:function(){return this.maxDate?new Date(this.maxDate):null},pickerStyles:function(){return{\"show-calendar\":this.open,\"show-ranges\":!!this.ranges,\"show-weeknumbers\":this.showWeekNumbers,single:this.singleDatePicker,opensright:\"right\"===this.opens,opensleft:\"left\"===this.opens,openscenter:\"center\"===this.opens,linked:this.linkedCalendars}},isClear:function(){return!this.dateRange.startDate||!this.dateRange.endDate}},watch:{minDate:function(){var t=p(this.monthDate,this.minDate||new Date,this.maxDate);this.changeLeftMonth({year:t.getFullYear(),month:t.getMonth()})},maxDate:function(){var t=p(this.nextMonthDate,this.minDate,this.maxDate||new Date);this.changeRightMonth({year:t.getFullYear(),month:t.getMonth()})},\"dateRange.startDate\":function(t){this.start=t&&!this.isClear?new Date(t):null,this.isClear?(this.start=null,this.end=null):(this.start=new Date(this.dateRange.startDate),this.end=new Date(this.dateRange.endDate))},\"dateRange.endDate\":function(t){this.end=t&&!this.isClear?new Date(t):null,this.isClear?(this.start=null,this.end=null):(this.start=new Date(this.dateRange.startDate),this.end=new Date(this.dateRange.endDate))}}},R=F,I=(n(\"0e58\"),n(\"d58f\"),b(R,a,o,!1,null,\"8cc9549e\",null)),B=I.exports,H=B;e[\"default\"]=H},fdef:function(t,e){t.exports=\"\\t\\n\\v\\f\\r Â áš€á Žâ€€â€â€‚         âŸã€€\\u2028\\u2029\\ufeff\"}})});\n//# sourceMappingURL=vue2-daterange-picker.umd.min.js.map","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","import lodashMerge from 'lodash.merge';\n\n/**\r\n * Created by championswimmer on 22/07/17.\r\n */\r\nlet MockStorage;\r\n// @ts-ignore\r\n{\r\n MockStorage = class {\r\n get length() {\r\n return Object.keys(this).length;\r\n }\r\n key(index) {\r\n return Object.keys(this)[index];\r\n }\r\n setItem(key, data) {\r\n this[key] = data.toString();\r\n }\r\n getItem(key) {\r\n return this[key];\r\n }\r\n removeItem(key) {\r\n delete this[key];\r\n }\r\n clear() {\r\n for (const key of Object.keys(this)) {\r\n delete this[key];\r\n }\r\n }\r\n };\r\n}\n\n// tslint:disable: variable-name\r\nclass SimplePromiseQueue {\r\n constructor() {\r\n this._queue = [];\r\n this._flushing = false;\r\n }\r\n enqueue(promise) {\r\n this._queue.push(promise);\r\n if (!this._flushing) {\r\n return this.flushQueue();\r\n }\r\n return Promise.resolve();\r\n }\r\n flushQueue() {\r\n this._flushing = true;\r\n const chain = () => {\r\n const nextTask = this._queue.shift();\r\n if (nextTask) {\r\n return nextTask.then(chain);\r\n }\r\n else {\r\n this._flushing = false;\r\n }\r\n };\r\n return Promise.resolve(chain());\r\n }\r\n}\n\nfunction merge(into, from) {\r\n return lodashMerge({}, into, from);\r\n}\n\nlet FlattedJSON = JSON;\r\n/**\r\n * A class that implements the vuex persistence.\r\n * @type S type of the 'state' inside the store (default: any)\r\n */\r\nclass VuexPersistence {\r\n /**\r\n * Create a {@link VuexPersistence} object.\r\n * Use the <code>plugin</code> function of this class as a\r\n * Vuex plugin.\r\n * @param {PersistOptions} options\r\n */\r\n constructor(options) {\r\n // tslint:disable-next-line:variable-name\r\n this._mutex = new SimplePromiseQueue();\r\n /**\r\n * Creates a subscriber on the store. automatically is used\r\n * when this is used a vuex plugin. Not for manual usage.\r\n * @param store\r\n */\r\n this.subscriber = (store) => (handler) => store.subscribe(handler);\r\n if (typeof options === 'undefined')\r\n options = {};\r\n this.key = ((options.key != null) ? options.key : 'vuex');\r\n this.subscribed = false;\r\n this.supportCircular = options.supportCircular || false;\r\n if (this.supportCircular) {\r\n FlattedJSON = require('flatted');\r\n }\r\n // @ts-ignore\r\n if (process.env.NODE_ENV === 'production') {\r\n this.storage = options.storage || window.localStorage;\r\n }\r\n else {\r\n // @ts-ignore\r\n {\r\n this.storage = options.storage || (typeof window !== 'undefined' ? window.localStorage : new MockStorage());\r\n }\r\n }\r\n /**\r\n * How this works is -\r\n * 1. If there is options.reducer function, we use that, if not;\r\n * 2. We check options.modules;\r\n * 1. If there is no options.modules array, we use entire state in reducer\r\n * 2. Otherwise, we create a reducer that merges all those state modules that are\r\n * defined in the options.modules[] array\r\n * @type {((state: S) => {}) | ((state: S) => S) | ((state: any) => {})}\r\n */\r\n this.reducer = ((options.reducer != null)\r\n ? options.reducer\r\n : ((options.modules == null)\r\n ? ((state) => state)\r\n : ((state) => options.modules.reduce((a, i) => merge(a, { [i]: state[i] }), { /* start empty accumulator*/}))));\r\n this.filter = options.filter || ((mutation) => true);\r\n this.strictMode = options.strictMode || false;\r\n this.RESTORE_MUTATION = function RESTORE_MUTATION(state, savedState) {\r\n const mergedState = merge(state, savedState || {});\r\n for (const propertyName of Object.keys(mergedState)) {\r\n this._vm.$set(state, propertyName, mergedState[propertyName]);\r\n }\r\n };\r\n this.asyncStorage = options.asyncStorage || false;\r\n const storageConstructor = this.storage && this.storage.constructor && this.storage.constructor.name.toLowerCase();\r\n this.asyncStorage = this.asyncStorage || storageConstructor === 'localforage';\r\n if (this.asyncStorage) {\r\n /**\r\n * Async {@link #VuexPersistence.restoreState} implementation\r\n * @type {((key: string, storage?: Storage) =>\r\n * (Promise<S> | S)) | ((key: string, storage: AsyncStorage) => Promise<any>)}\r\n */\r\n this.restoreState = ((options.restoreState != null)\r\n ? options.restoreState\r\n : ((key, storage) => (storage).getItem(key)\r\n .then((value) => typeof value === 'string' // If string, parse, or else, just return\r\n ? (this.supportCircular\r\n ? FlattedJSON.parse(value || '{}')\r\n : JSON.parse(value || '{}'))\r\n : (value || {}))));\r\n /**\r\n * Async {@link #VuexPersistence.saveState} implementation\r\n * @type {((key: string, state: {}, storage?: Storage) =>\r\n * (Promise<void> | void)) | ((key: string, state: {}, storage?: Storage) => Promise<void>)}\r\n */\r\n this.saveState = ((options.saveState != null)\r\n ? options.saveState\r\n : ((key, state, storage) => (storage).setItem(key, // Second argument is state _object_ if localforage, stringified otherwise\r\n (((storage && storage.constructor && storage.constructor.name.toLowerCase()) === 'localforage')\r\n ? merge({}, state || {})\r\n : (this.supportCircular\r\n ? FlattedJSON.stringify(state)\r\n : JSON.stringify(state))))));\r\n /**\r\n * Async version of plugin\r\n * @param {Store<S>} store\r\n */\r\n this.plugin = (store) => {\r\n /**\r\n * For async stores, we're capturing the Promise returned\r\n * by the `restoreState()` function in a `restored` property\r\n * on the store itself. This would allow app developers to\r\n * determine when and if the store's state has indeed been\r\n * refreshed. This approach was suggested by GitHub user @hotdogee.\r\n * See https://github.com/championswimmer/vuex-persist/pull/118#issuecomment-500914963\r\n * @since 2.1.0\r\n */\r\n store.restored = (this.restoreState(this.key, this.storage)).then((savedState) => {\r\n /**\r\n * If in strict mode, do only via mutation\r\n */\r\n if (this.strictMode) {\r\n store.commit('RESTORE_MUTATION', savedState);\r\n }\r\n else {\r\n store.replaceState(merge(store.state, savedState || {}));\r\n }\r\n this.subscriber(store)((mutation, state) => {\r\n if (this.filter(mutation)) {\r\n this._mutex.enqueue(this.saveState(this.key, this.reducer(state), this.storage));\r\n }\r\n });\r\n this.subscribed = true;\r\n });\r\n };\r\n }\r\n else {\r\n /**\r\n * Sync {@link #VuexPersistence.restoreState} implementation\r\n * @type {((key: string, storage?: Storage) =>\r\n * (Promise<S> | S)) | ((key: string, storage: Storage) => (any | string | {}))}\r\n */\r\n this.restoreState = ((options.restoreState != null)\r\n ? options.restoreState\r\n : ((key, storage) => {\r\n const value = (storage).getItem(key);\r\n if (typeof value === 'string') { // If string, parse, or else, just return\r\n return (this.supportCircular\r\n ? FlattedJSON.parse(value || '{}')\r\n : JSON.parse(value || '{}'));\r\n }\r\n else {\r\n return (value || {});\r\n }\r\n }));\r\n /**\r\n * Sync {@link #VuexPersistence.saveState} implementation\r\n * @type {((key: string, state: {}, storage?: Storage) =>\r\n * (Promise<void> | void)) | ((key: string, state: {}, storage?: Storage) => Promise<void>)}\r\n */\r\n this.saveState = ((options.saveState != null)\r\n ? options.saveState\r\n : ((key, state, storage) => (storage).setItem(key, // Second argument is state _object_ if localforage, stringified otherwise\r\n (this.supportCircular\r\n ? FlattedJSON.stringify(state)\r\n : JSON.stringify(state)))));\r\n /**\r\n * Sync version of plugin\r\n * @param {Store<S>} store\r\n */\r\n this.plugin = (store) => {\r\n const savedState = this.restoreState(this.key, this.storage);\r\n if (this.strictMode) {\r\n store.commit('RESTORE_MUTATION', savedState);\r\n }\r\n else {\r\n store.replaceState(merge(store.state, savedState || {}));\r\n }\r\n this.subscriber(store)((mutation, state) => {\r\n if (this.filter(mutation)) {\r\n this.saveState(this.key, this.reducer(state), this.storage);\r\n }\r\n });\r\n this.subscribed = true;\r\n };\r\n }\r\n }\r\n}\n\nexport default VuexPersistence;\nexport { VuexPersistence, MockStorage };\n//# sourceMappingURL=index.js.map\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tzm = moment.defineLocale('tzm', {\n months : 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split('_'),\n monthsShort : 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split('_'),\n weekdays : 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[ⴰⵙⴷⵅ â´´] LT',\n nextDay: '[ⴰⵙⴽⴰ â´´] LT',\n nextWeek: 'dddd [â´´] LT',\n lastDay: '[ⴰⵚⴰâµâµœ â´´] LT',\n lastWeek: 'dddd [â´´] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'â´·â´°â´·âµ… âµ™ ⵢⴰⵠ%s',\n past : 'ⵢⴰⵠ%s',\n s : 'ⵉⵎⵉⴽ',\n ss : '%d ⵉⵎⵉⴽ',\n m : 'ⵎⵉâµâµ“â´º',\n mm : '%d ⵎⵉâµâµ“â´º',\n h : 'ⵙⴰⵄⴰ',\n hh : '%d ⵜⴰⵙⵙⴰⵄⵉâµ',\n d : 'ⴰⵙⵙ',\n dd : '%d oⵙⵙⴰâµ',\n M : 'â´°âµ¢oⵓⵔ',\n MM : '%d ⵉⵢⵢⵉⵔâµ',\n y : 'ⴰⵙⴳⴰⵙ',\n yy : '%d ⵉⵙⴳⴰⵙâµ'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return tzm;\n\n})));\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","//! moment.js\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n } else {\n var k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null,\n rfc2822 : false,\n weekdayMismatch : false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n var matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate (y) {\n var date;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n var args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays (ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays :\n this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];\n return (m === true) ? shiftWeekdays(weekdays, this._week.dow)\n : (m) ? weekdays[m.day()] : weekdays;\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n else {\n if ((typeof console !== 'undefined') && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, expectedWeekday, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n var obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10);\n var m = hm % 100, h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000;\n var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2 () {\n return isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix (input) {\n return createLocal(input * 1000);\n }\n\n function createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n var mathAbs = Math.abs;\n\n function abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month': return months;\n case 'quarter': return months / 3;\n case 'year': return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asQuarters = makeAs('Q');\n var asYears = makeAs('y');\n\n function clone$1 () {\n return createDuration(this);\n }\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return ((x > 0) - (x < 0)) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.24.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM' // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","module.exports = require('./readable').PassThrough\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var he = moment.defineLocale('he', {\n months : '×™× ×•×ר_פברו×ר_מרץ_×פריל_מ××™_×™×•× ×™_יולי_×וגוסט_ספטמבר_×וקטובר_× ×•×‘×ž×‘×¨_דצמבר'.split('_'),\n monthsShort : '×™× ×•×³_פבר׳_מרץ_×פר׳_מ××™_×™×•× ×™_יולי_×וג׳_ספט׳_×וק׳_× ×•×‘×³_דצמ׳'.split('_'),\n weekdays : 'ר×שון_×©× ×™_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort : '×׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin : '×_ב_×’_ד_×”_ו_ש'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [ב]MMMM YYYY',\n LLL : 'D [ב]MMMM YYYY HH:mm',\n LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',\n l : 'D/M/YYYY',\n ll : 'D MMM YYYY',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd, D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[×”×™×•× ×‘Ö¾]LT',\n nextDay : '[מחר ב־]LT',\n nextWeek : 'dddd [בשעה] LT',\n lastDay : '[×תמול ב־]LT',\n lastWeek : '[ביו×] dddd [×”×חרון בשעה] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'בעוד %s',\n past : '×œ×¤× ×™ %s',\n s : 'מספר ×©× ×™×•×ª',\n ss : '%d ×©× ×™×•×ª',\n m : 'דקה',\n mm : '%d דקות',\n h : 'שעה',\n hh : function (number) {\n if (number === 2) {\n return 'שעתיי×';\n }\n return number + ' שעות';\n },\n d : 'יו×',\n dd : function (number) {\n if (number === 2) {\n return 'יומיי×';\n }\n return number + ' ימי×';\n },\n M : 'חודש',\n MM : function (number) {\n if (number === 2) {\n return 'חודשיי×';\n }\n return number + ' חודשי×';\n },\n y : '×©× ×”',\n yy : function (number) {\n if (number === 2) {\n return '×©× ×ª×™×™×';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' ×©× ×”';\n }\n return number + ' ×©× ×™×';\n }\n },\n meridiemParse: /××—×”\"צ|×œ×¤× ×”\"צ|×חרי הצהריי×|×œ×¤× ×™ הצהריי×|×œ×¤× ×•×ª בוקר|בבוקר|בערב/i,\n isPM : function (input) {\n return /^(××—×”\"צ|×חרי הצהריי×|בערב)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 5) {\n return '×œ×¤× ×•×ª בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? '×œ×¤× ×”\"צ' : '×œ×¤× ×™ הצהריי×';\n } else if (hour < 18) {\n return isLower ? '××—×”\"צ' : '×חרי הצהריי×';\n } else {\n return 'בערב';\n }\n }\n });\n\n return he;\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","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sq = moment.defineLocale('sq', {\n months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem : function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Sot në] LT',\n nextDay : '[Nesër në] LT',\n nextWeek : 'dddd [në] LT',\n lastDay : '[Dje në] LT',\n lastWeek : 'dddd [e kaluar në] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'në %s',\n past : '%s më parë',\n s : 'disa sekonda',\n ss : '%d sekonda',\n m : 'një minutë',\n mm : '%d minuta',\n h : 'një orë',\n hh : '%d orë',\n d : 'një ditë',\n dd : '%d ditë',\n M : 'një muaj',\n MM : '%d muaj',\n y : 'një vit',\n yy : '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sq;\n\n})));\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\nmodule.exports = isPlainObject;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enSG = moment.defineLocale('en-SG', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enSG;\n\n})));\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sre._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juÄe u] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[proÅ¡le] [nedelje] [u] LT',\n '[proÅ¡log] [ponedeljka] [u] LT',\n '[proÅ¡log] [utorka] [u] LT',\n '[proÅ¡le] [srede] [u] LT',\n '[proÅ¡log] [Äetvrtka] [u] LT',\n '[proÅ¡log] [petka] [u] LT',\n '[proÅ¡le] [subote] [u] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pre %s',\n s : 'nekoliko sekundi',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'dan',\n dd : translator.translate,\n M : 'mesec',\n MM : translator.translate,\n y : 'godinu',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM [dallas] YYYY',\n LLL : 'D. MMMM [dallas] YYYY HH.mm',\n LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM : function (input) {\n return 'd\\'o' === input.toLowerCase();\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'd\\'o' : 'D\\'O';\n } else {\n return isLower ? 'd\\'a' : 'D\\'A';\n }\n },\n calendar : {\n sameDay : '[oxhi à ] LT',\n nextDay : '[demà à ] LT',\n nextWeek : 'dddd [à ] LT',\n lastDay : '[ieiri à ] LT',\n lastWeek : '[sür el] dddd [lasteu à ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'osprei %s',\n past : 'ja%s',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['viensas secunds', '\\'iensas secunds'],\n 'ss': [number + ' secunds', '' + number + ' secunds'],\n 'm': ['\\'n mÃut', '\\'iens mÃut'],\n 'mm': [number + ' mÃuts', '' + number + ' mÃuts'],\n 'h': ['\\'n þora', '\\'iensa þora'],\n 'hh': [number + ' þoras', '' + number + ' þoras'],\n 'd': ['\\'n ziua', '\\'iensa ziua'],\n 'dd': [number + ' ziuas', '' + number + ' ziuas'],\n 'M': ['\\'n mes', '\\'iens mes'],\n 'MM': [number + ' mesen', '' + number + ' mesen'],\n 'y': ['\\'n ar', '\\'iens ar'],\n 'yy': [number + ' ars', '' + number + ' ars']\n };\n return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time = (output.indexOf('jaj') !== -1) ?\n time.slice(0, -3) + 'leS' :\n (output.indexOf('jar') !== -1) ?\n time.slice(0, -3) + 'waQ' :\n (output.indexOf('DIS') !== -1) ?\n time.slice(0, -3) + 'nem' :\n time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time = (output.indexOf('jaj') !== -1) ?\n time.slice(0, -3) + 'Hu’' :\n (output.indexOf('jar') !== -1) ?\n time.slice(0, -3) + 'wen' :\n (output.indexOf('DIS') !== -1) ?\n time.slice(0, -3) + 'ben' :\n time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += ((word !== '') ? ' ' : '') + numbersNouns[one];\n }\n return (word === '') ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n monthsParseExact : true,\n weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L'\n },\n relativeTime : {\n future : translateFuture,\n past : translatePast,\n s : 'puS lup',\n ss : translate,\n m : 'wa’ tup',\n mm : translate,\n h : 'wa’ rep',\n hh : translate,\n d : 'wa’ jaj',\n dd : translate,\n M : 'wa’ jar',\n MM : translate,\n y : 'wa’ DIS',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tlh;\n\n})));\n","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","module.exports = require('./readable').Transform\n","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '༡',\n '2': '༢',\n '3': '༣',\n '4': '༤',\n '5': '༥',\n '6': '༦',\n '7': '༧',\n '8': '༨',\n '9': '༩',\n '0': '༠'\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0'\n };\n\n var bo = moment.defineLocale('bo', {\n months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),\n weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[དི་རིང] LT',\n nextDay : '[སང་ཉིན] LT',\n nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay : '[à½à¼‹à½¦à½„] LT',\n lastWeek : '[བདུན་ཕྲག་མà½à½ ་མ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ལ་',\n past : '%s སྔན་ལ',\n s : 'ལམ་སང',\n ss : '%d སà¾à½¢à¼‹à½†à¼',\n m : 'སà¾à½¢à¼‹à½˜à¼‹à½‚ཅིག',\n mm : '%d སà¾à½¢à¼‹à½˜',\n h : 'ཆུ་ཚོད་གཅིག',\n hh : '%d ཆུ་ཚོད',\n d : 'ཉིན་གཅིག',\n dd : '%d ཉིན་',\n M : 'ཟླ་བ་གཅིག',\n MM : '%d ཟླ་བ',\n y : 'ལོ་གཅིག',\n yy : '%d ལོ'\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return bo;\n\n})));\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ptBr = moment.defineLocale('pt-br', {\n months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY [à s] HH:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY [à s] HH:mm'\n },\n calendar : {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function () {\n return (this.day() === 0 || this.day() === 6) ?\n '[Último] dddd [à s] LT' : // Saturday + Sunday\n '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'em %s',\n past : 'há %s',\n s : 'poucos segundos',\n ss : '%d segundos',\n m : 'um minuto',\n mm : '%d minutos',\n h : 'uma hora',\n hh : '%d horas',\n d : 'um dia',\n dd : '%d dias',\n M : 'um mês',\n MM : '%d meses',\n y : 'um ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal : '%dº'\n });\n\n return ptBr;\n\n})));\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var hyAm = moment.defineLocale('hy-am', {\n months : {\n format: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€Õ«_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€Õ«_Õ´Õ¡Ö€Õ¿Õ«_Õ¡ÕºÖ€Õ«Õ¬Õ«_Õ´Õ¡ÕµÕ«Õ½Õ«_Õ°Õ¸Ö‚Õ¶Õ«Õ½Õ«_Õ°Õ¸Ö‚Õ¬Õ«Õ½Õ«_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½Õ«_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«'.split('_'),\n standalone: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€_Õ´Õ¡Ö€Õ¿_Õ¡ÕºÖ€Õ«Õ¬_Õ´Õ¡ÕµÕ«Õ½_Õ°Õ¸Ö‚Õ¶Õ«Õ½_Õ°Õ¸Ö‚Õ¬Õ«Õ½_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€'.split('_')\n },\n monthsShort : 'Õ°Õ¶Õ¾_ÖƒÕ¿Ö€_Õ´Ö€Õ¿_Õ¡ÕºÖ€_Õ´ÕµÕ½_Õ°Õ¶Õ½_Õ°Õ¬Õ½_Ö…Õ£Õ½_Õ½ÕºÕ¿_Õ°Õ¯Õ¿_Õ¶Õ´Õ¢_Õ¤Õ¯Õ¿'.split('_'),\n weekdays : 'Õ¯Õ«Ö€Õ¡Õ¯Õ«_Õ¥Ö€Õ¯Õ¸Ö‚Õ·Õ¡Õ¢Õ©Õ«_Õ¥Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ¹Õ¸Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ°Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«_Õ¸Ö‚Ö€Õ¢Õ¡Õ©_Õ·Õ¡Õ¢Õ¡Õ©'.split('_'),\n weekdaysShort : 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n weekdaysMin : 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY Õ©.',\n LLL : 'D MMMM YYYY Õ©., HH:mm',\n LLLL : 'dddd, D MMMM YYYY Õ©., HH:mm'\n },\n calendar : {\n sameDay: '[Õ¡ÕµÕ½Ö…Ö€] LT',\n nextDay: '[Õ¾Õ¡Õ²Õ¨] LT',\n lastDay: '[Õ¥Ö€Õ¥Õ¯] LT',\n nextWeek: function () {\n return 'dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n lastWeek: function () {\n return '[Õ¡Õ¶ÖÕ¡Õ®] dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s Õ°Õ¥Õ¿Õ¸',\n past : '%s Õ¡Õ¼Õ¡Õ»',\n s : 'Õ´Õ« Ö„Õ¡Õ¶Õ« Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n ss : '%d Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n m : 'Ö€Õ¸ÕºÕ¥',\n mm : '%d Ö€Õ¸ÕºÕ¥',\n h : 'ÕªÕ¡Õ´',\n hh : '%d ÕªÕ¡Õ´',\n d : 'Ö…Ö€',\n dd : '%d Ö…Ö€',\n M : 'Õ¡Õ´Õ«Õ½',\n MM : '%d Õ¡Õ´Õ«Õ½',\n y : 'Õ¿Õ¡Ö€Õ«',\n yy : '%d Õ¿Õ¡Ö€Õ«'\n },\n meridiemParse: /Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡|Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡|ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶/,\n isPM: function (input) {\n return /^(ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶)$/.test(input);\n },\n meridiem : function (hour) {\n if (hour < 4) {\n return 'Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡';\n } else if (hour < 12) {\n return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡';\n } else if (hour < 17) {\n return 'ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡';\n } else {\n return 'Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(Õ«Õ¶|Ö€Õ¤)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-Õ«Õ¶';\n }\n return number + '-Ö€Õ¤';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ca = moment.defineLocale('ca', {\n months : {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n format: 'de gener_de febrer_de març_d\\'abril_de maig_de juny_de juliol_d\\'agost_de setembre_d\\'octubre_de novembre_de desembre'.split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),\n monthsParseExact : true,\n weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin : 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM [de] YYYY',\n ll : 'D MMM YYYY',\n LLL : 'D MMMM [de] YYYY [a les] H:mm',\n lll : 'D MMM YYYY, H:mm',\n LLLL : 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll : 'ddd D MMM YYYY, H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n nextDay : function () {\n return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n lastDay : function () {\n return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'd\\'aquà %s',\n past : 'fa %s',\n s : 'uns segons',\n ss : '%d segons',\n m : 'un minut',\n mm : '%d minuts',\n h : 'una hora',\n hh : '%d hores',\n d : 'un dia',\n dd : '%d dies',\n M : 'un mes',\n MM : '%d mesos',\n y : 'un any',\n yy : '%d anys'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal : function (number, period) {\n var output = (number === 1) ? 'r' :\n (number === 2) ? 'n' :\n (number === 3) ? 'r' :\n (number === 4) ? 't' : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ca;\n\n})));\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var frCa = moment.defineLocale('fr-ca', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à ] LT',\n nextDay : '[Demain à ] LT',\n nextWeek : 'dddd [à ] LT',\n lastDay : '[Hier à ] LT',\n lastWeek : 'dddd [dernier à ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal : function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n }\n });\n\n return frCa;\n\n})));\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nlBe;\n\n})));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /*<replacement>*/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /*</replacement>*/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': 'à¥',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n var hi = moment.defineLocale('hi', {\n months : 'जनवरी_फ़रवरी_मारà¥à¤š_अपà¥à¤°à¥ˆà¤²_मई_जून_जà¥à¤²à¤¾à¤ˆ_अगसà¥à¤¤_सितमà¥à¤¬à¤°_अकà¥à¤Ÿà¥‚बर_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split('_'),\n monthsShort : 'जन._फ़र._मारà¥à¤š_अपà¥à¤°à¥ˆ._मई_जून_जà¥à¤²._अग._सित._अकà¥à¤Ÿà¥‚._नव._दिस.'.split('_'),\n monthsParseExact: true,\n weekdays : 'रविवार_सोमवार_मंगलवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort : 'रवि_सोम_मंगल_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin : 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat : {\n LT : 'A h:mm बजे',\n LTS : 'A h:mm:ss बजे',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm बजे',\n LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[कल] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[कल] LT',\n lastWeek : '[पिछले] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s में',\n past : '%s पहले',\n s : 'कà¥à¤› ही कà¥à¤·à¤£',\n ss : '%d सेकंड',\n m : 'à¤à¤• मिनट',\n mm : '%d मिनट',\n h : 'à¤à¤• घंटा',\n hh : '%d घंटे',\n d : 'à¤à¤• दिन',\n dd : '%d दिन',\n M : 'à¤à¤• महीने',\n MM : '%d महीने',\n y : 'à¤à¤• वरà¥à¤·',\n yy : '%d वरà¥à¤·'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सà¥à¤¬à¤¹|दोपहर|शाम/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सà¥à¤¬à¤¹') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सà¥à¤¬à¤¹';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return hi;\n\n})));\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","module.exports =\n/******/ (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/******/\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// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 3);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nvar charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(7)(\n /* script */\n __webpack_require__(2),\n /* template */\n __webpack_require__(8),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_md5__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_md5___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_md5__);\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'gravatar-img',\n\n inheritAttrs: false,\n\n props: {\n email: {\n type: String,\n default: ''\n },\n\n hash: {\n type: String,\n default: ''\n },\n\n size: {\n type: Number,\n default: 80\n },\n\n defaultImg: {\n type: String,\n default: 'retro'\n },\n\n rating: {\n type: String,\n default: 'g'\n },\n\n alt: {\n type: String,\n default: 'Avatar'\n }\n },\n\n computed: {\n url: function url() {\n var img = ['//www.gravatar.com/avatar/', this.hash || __WEBPACK_IMPORTED_MODULE_0_md5___default()(this.email.trim().toLowerCase()), '?s=' + this.size, '&d=' + this.defaultImg, '&r=' + this.rating];\n\n return img.join('');\n },\n listeners: function listeners() {\n var _$listeners = this.$listeners,\n load = _$listeners.load,\n error = _$listeners.error,\n listeners = _objectWithoutProperties(_$listeners, ['load', 'error']);\n\n return listeners;\n },\n attrs: function attrs() {\n var _$attrs = this.$attrs,\n src = _$attrs.src,\n alt = _$attrs.alt,\n attrs = _objectWithoutProperties(_$attrs, ['src', 'alt']);\n\n return attrs;\n }\n },\n\n methods: {\n onLoad: function onLoad() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.$emit.apply(this, ['load'].concat(_toConsumableArray(args)));\n },\n onError: function onError() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n this.$emit.apply(this, ['error'].concat(_toConsumableArray(args)));\n }\n }\n});\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_GravatarImg_vue__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_GravatarImg_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__components_GravatarImg_vue__);\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__WEBPACK_IMPORTED_MODULE_0__components_GravatarImg_vue___default.a);\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n(function(){\r\n var crypt = __webpack_require__(4),\r\n utf8 = __webpack_require__(0).utf8,\r\n isBuffer = __webpack_require__(5),\r\n bin = __webpack_require__(0).bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message))\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n// this module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n scopeId,\n cssModules\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n // inject cssModules\n if (cssModules) {\n var computed = Object.create(options.computed || null)\n Object.keys(cssModules).forEach(function (key) {\n var module = cssModules[key]\n computed[key] = function () { return module }\n })\n options.computed = computed\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('img', _vm._g(_vm._b({\n attrs: {\n \"src\": _vm.url,\n \"alt\": _vm.alt\n },\n on: {\n \"load\": _vm.onLoad,\n \"error\": _vm.onError\n }\n }, 'img', _vm.attrs, false), _vm.listeners))\n},staticRenderFns: []}\n\n/***/ })\n/******/ ]);","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar Buffer = require('safe-buffer').Buffer\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(password, salt, iterations, keylen)\n\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding)\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding)\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '૧',\n '2': '૨',\n '3': 'à«©',\n '4': '૪',\n '5': 'à««',\n '6': '૬',\n '7': 'à«',\n '8': 'à«®',\n '9': '૯',\n '0': '૦'\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n 'à«©': '3',\n '૪': '4',\n 'à««': '5',\n '૬': '6',\n 'à«': '7',\n 'à«®': '8',\n '૯': '9',\n '૦': '0'\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાનà«àª¯à«àª†àª°à«€_ફેબà«àª°à«àª†àª°à«€_મારà«àªš_àªàªªà«àª°àª¿àª²_મે_જૂન_જà«àª²àª¾àªˆ_ઑગસà«àªŸ_સપà«àªŸà«‡àª®à«àª¬àª°_ઑકà«àªŸà«àª¬àª°_નવેમà«àª¬àª°_ડિસેમà«àª¬àª°'.split('_'),\n monthsShort: 'જાનà«àª¯à«._ફેબà«àª°à«._મારà«àªš_àªàªªà«àª°àª¿._મે_જૂન_જà«àª²àª¾._ઑગ._સપà«àªŸà«‡._ઑકà«àªŸà«._નવે._ડિસે.'.split('_'),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બà«àª§à«àªµàª¾àª°_ગà«àª°à«àªµàª¾àª°_શà«àª•à«àª°àªµàª¾àª°_શનિવાર'.split('_'),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બà«àª§à«_ગà«àª°à«_શà«àª•à«àª°_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બà«_ગà«_શà«_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગà«àª¯à«‡',\n LTS: 'A h:mm:ss વાગà«àª¯à«‡',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગà«àª¯à«‡',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગà«àª¯à«‡'\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પેહલા',\n s: 'અમà«àª• પળો',\n ss: '%d સેકંડ',\n m: 'àªàª• મિનિટ',\n mm: '%d મિનિટ',\n h: 'àªàª• કલાક',\n hh: '%d કલાક',\n d: 'àªàª• દિવસ',\n dd: '%d દિવસ',\n M: 'àªàª• મહિનો',\n MM: '%d મહિનો',\n y: 'àªàª• વરà«àª·',\n yy: '%d વરà«àª·'\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬à«à«®à«¯à«¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return gu;\n\n})));\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enIe = moment.defineLocale('en-ie', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enIe;\n\n})));\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '១',\n '2': '២',\n '3': '៣',\n '4': '៤',\n '5': '៥',\n '6': '៦',\n '7': '៧',\n '8': '៨',\n '9': '៩',\n '0': '០'\n }, numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0'\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិážáŸ’áž™_áž…áŸáž“្ទ_អង្គារ_ពុធ_ព្រហស្បážáž·áŸ_សុក្រ_សៅរáŸ'.split('_'),\n weekdaysShort: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ážáŸ’ងៃនáŸáŸ‡ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្ážáž¶áž áŸáž˜áž»áž“] [ម៉ោង] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sទៀáž',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយážáŸ’ងៃ',\n dd: '%d ážáŸ’ងៃ',\n M: 'មួយážáŸ‚',\n MM: '%d ážáŸ‚',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ'\n },\n dayOfMonthOrdinalParse : /ទី\\d{1,2}/,\n ordinal : 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return km;\n\n})));\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n for (var j = 0; j < naf.length; j += doubles.step) {\n var nafW = 0;\n for (var k = j + doubles.step - 1; k >= j; k--)\n nafW = (nafW << 1) + naf[k];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (var j = 0; j < repr.length; j++) {\n var nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var k = 0; i >= 0 && naf[i] === 0; i--)\n k++;\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n for (var i = 0; i < len; i++) {\n var p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (var i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a]);\n naf[b] = getNAF(coeffs[b], wndWidth[b]);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b] /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3 /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (var j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (var i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (var j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (var j = 0; j < len; j++) {\n var z = tmp[j];\n var p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (var i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ;\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\nfunction before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n}\n\n/**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\nfunction once(func) {\n return before(2, func);\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = once;\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ms = moment.defineLocale('ms', {\n months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Esok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kelmarin pukul] LT',\n lastWeek : 'dddd [lepas pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lepas',\n s : 'beberapa saat',\n ss : '%d saat',\n m : 'seminit',\n mm : '%d minit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n 'ss': [number + 'sekundi', number + 'sekundit'],\n 'm' : ['ühe minuti', 'üks minut'],\n 'mm': [number + ' minuti', number + ' minutit'],\n 'h' : ['ühe tunni', 'tund aega', 'üks tund'],\n 'hh': [number + ' tunni', number + ' tundi'],\n 'd' : ['ühe päeva', 'üks päev'],\n 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],\n 'MM': [number + ' kuu', number + ' kuud'],\n 'y' : ['ühe aasta', 'aasta', 'üks aasta'],\n 'yy': [number + ' aasta', number + ' aastat']\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Täna,] LT',\n nextDay : '[Homme,] LT',\n nextWeek : '[Järgmine] dddd LT',\n lastDay : '[Eile,] LT',\n lastWeek : '[Eelmine] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s pärast',\n past : '%s tagasi',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : '%d päeva',\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months : 'ජනවà·à¶»à·’_පෙබරවà·à¶»à·’_මà·à¶»à·Šà¶à·”_අප්â€à¶»à·šà¶½à·Š_මà·à¶ºà·’_ජූනි_ජූලි_අගà·à·ƒà·Šà¶à·”_à·ƒà·à¶´à·Šà¶à·à¶¸à·Šà¶¶à¶»à·Š_ඔක්à¶à·à¶¶à¶»à·Š_නොවà·à¶¸à·Šà¶¶à¶»à·Š_දෙසà·à¶¸à·Šà¶¶à¶»à·Š'.split('_'),\n monthsShort : 'ජන_පෙබ_මà·à¶»à·Š_අප්_මà·à¶ºà·’_ජූනි_ජූලි_අගà·_à·ƒà·à¶´à·Š_ඔක්_නොවà·_දෙසà·'.split('_'),\n weekdays : 'ඉරිදà·_සඳුදà·_අඟහරුවà·à¶¯à·_බදà·à¶¯à·_බ්â€à¶»à·„ස්පà¶à·’න්දà·_සිකුරà·à¶¯à·_සෙනසුරà·à¶¯à·'.split('_'),\n weekdaysShort : 'ඉරි_සඳු_අඟ_බදà·_බ්â€à¶»à·„_සිකු_සෙන'.split('_'),\n weekdaysMin : 'ඉ_à·ƒ_අ_බ_බ්â€à¶»_සි_සෙ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'a h:mm',\n LTS : 'a h:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY MMMM D',\n LLL : 'YYYY MMMM D, a h:mm',\n LLLL : 'YYYY MMMM D [à·€à·à¶±à·’] dddd, a h:mm:ss'\n },\n calendar : {\n sameDay : '[අද] LT[ට]',\n nextDay : '[හෙට] LT[ට]',\n nextWeek : 'dddd LT[ට]',\n lastDay : '[ඊයේ] LT[ට]',\n lastWeek : '[පසුගිය] dddd LT[ට]',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%sකින්',\n past : '%sකට පෙර',\n s : 'à¶à¶à·Šà¶´à¶» කිහිපය',\n ss : 'à¶à¶à·Šà¶´à¶» %d',\n m : 'මිනිà¶à·Šà¶à·”à·€',\n mm : 'මිනිà¶à·Šà¶à·” %d',\n h : 'පà·à¶º',\n hh : 'පà·à¶º %d',\n d : 'දිනය',\n dd : 'දින %d',\n M : 'මà·à·ƒà¶º',\n MM : 'මà·à·ƒ %d',\n y : 'වසර',\n yy : 'වසර %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2} à·€à·à¶±à·’/,\n ordinal : function (number) {\n return number + ' à·€à·à¶±à·’';\n },\n meridiemParse : /පෙර වරු|පස් වරු|පෙ.à·€|ප.à·€./,\n isPM : function (input) {\n return input === 'ප.à·€.' || input === 'පස් වරු';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.à·€.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.à·€.' : 'පෙර වරු';\n }\n }\n });\n\n return si;\n\n})));\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-notification\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"vue-notification\"] = factory(root[\"vue\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_20__) {\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// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 2);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n// this module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n scopeId,\n cssModules\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n // inject cssModules\n if (cssModules) {\n var computed = Object.create(options.computed || null)\n Object.keys(cssModules).forEach(function (key) {\n var module = cssModules[key]\n computed[key] = function () { return module }\n })\n options.computed = computed\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return events; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue__);\n\nvar events = new __WEBPACK_IMPORTED_MODULE_0_vue___default.a();\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Notifications_vue__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Notifications_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__Notifications_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__events__ = __webpack_require__(1);\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\n\n\n\nvar Notify = {\n install: function install(Vue) {\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.installed) {\n return;\n }\n\n this.installed = true;\n this.params = args;\n\n Vue.component(args.componentName || 'notifications', __WEBPACK_IMPORTED_MODULE_0__Notifications_vue___default.a);\n\n var notify = function notify(params) {\n if (typeof params === 'string') {\n params = { title: '', text: params };\n }\n\n if ((typeof params === 'undefined' ? 'undefined' : _typeof(params)) === 'object') {\n __WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* events */].$emit('add', params);\n }\n };\n\n var name = args.name || 'notify';\n\n Vue.prototype['$' + name] = notify;\n Vue[name] = notify;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Notify);\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(17)\n\nvar Component = __webpack_require__(0)(\n /* script */\n __webpack_require__(5),\n /* template */\n __webpack_require__(15),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'CssGroup',\n props: ['name']\n});\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__events__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__defaults__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__CssGroup_vue__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__CssGroup_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__CssGroup_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__parser__ = __webpack_require__(8);\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\n\nvar STATE = {\n IDLE: 0,\n DESTROYED: 2\n};\n\nvar Component = {\n name: 'Notifications',\n components: {\n VelocityGroup: __WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue___default.a,\n CssGroup: __WEBPACK_IMPORTED_MODULE_5__CssGroup_vue___default.a\n },\n props: {\n group: {\n type: String,\n default: ''\n },\n\n width: {\n type: [Number, String],\n default: 300\n },\n\n reverse: {\n type: Boolean,\n default: false\n },\n\n position: {\n type: [String, Array],\n default: function _default() {\n return __WEBPACK_IMPORTED_MODULE_3__defaults__[\"a\" /* default */].position;\n }\n },\n\n classes: {\n type: String,\n default: 'vue-notification'\n },\n\n animationType: {\n type: String,\n default: 'css',\n validator: function validator(value) {\n return value === 'css' || value === 'velocity';\n }\n },\n\n animation: {\n type: Object,\n default: function _default() {\n return __WEBPACK_IMPORTED_MODULE_3__defaults__[\"a\" /* default */].velocityAnimation;\n }\n },\n\n animationName: {\n type: String,\n default: __WEBPACK_IMPORTED_MODULE_3__defaults__[\"a\" /* default */].cssAnimation\n },\n\n speed: {\n type: Number,\n default: 300\n },\n\n cooldown: {\n type: Number,\n default: 0\n },\n\n duration: {\n type: Number,\n default: 3000\n },\n\n delay: {\n type: Number,\n default: 0\n },\n\n max: {\n type: Number,\n default: Infinity\n },\n\n closeOnClick: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n list: [],\n velocity: __WEBPACK_IMPORTED_MODULE_0__index__[\"default\"].params.velocity\n };\n },\n mounted: function mounted() {\n __WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* events */].$on('add', this.addItem);\n },\n\n computed: {\n actualWidth: function actualWidth() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__parser__[\"a\" /* default */])(this.width);\n },\n isVA: function isVA() {\n return this.animationType === 'velocity';\n },\n componentName: function componentName() {\n return this.isVA ? 'VelocityGroup' : 'CssGroup';\n },\n styles: function styles() {\n var _listToDirection = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"a\" /* listToDirection */])(this.position),\n x = _listToDirection.x,\n y = _listToDirection.y;\n\n var width = this.actualWidth.value;\n var suffix = this.actualWidth.type;\n\n var styles = _defineProperty({\n width: width + suffix\n }, y, '0px');\n\n if (x === 'center') {\n styles['left'] = 'calc(50% - ' + width / 2 + suffix + ')';\n } else {\n styles[x] = '0px';\n }\n\n return styles;\n },\n active: function active() {\n return this.list.filter(function (v) {\n return v.state !== STATE.DESTROYED;\n });\n },\n botToTop: function botToTop() {\n return this.styles.hasOwnProperty('bottom');\n }\n },\n methods: {\n addItem: function addItem(event) {\n var _this = this;\n\n event.group = event.group || '';\n\n if (this.group !== event.group) {\n return;\n }\n\n if (event.clean || event.clear) {\n this.destroyAll();\n return;\n }\n\n var duration = typeof event.duration === 'number' ? event.duration : this.duration;\n\n var speed = typeof event.speed === 'number' ? event.speed : this.speed;\n\n var title = event.title,\n text = event.text,\n type = event.type,\n data = event.data;\n\n\n var item = {\n id: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"b\" /* Id */])(),\n title: title,\n text: text,\n type: type,\n state: STATE.IDLE,\n speed: speed,\n length: duration + 2 * speed,\n data: data\n };\n\n if (duration >= 0) {\n item.timer = setTimeout(function () {\n _this.destroy(item);\n }, item.length);\n }\n\n var direction = this.reverse ? !this.botToTop : this.botToTop;\n\n var indexToDestroy = -1;\n\n if (direction) {\n this.list.push(item);\n\n if (this.active.length > this.max) {\n indexToDestroy = 0;\n }\n } else {\n this.list.unshift(item);\n\n if (this.active.length > this.max) {\n indexToDestroy = this.active.length - 1;\n }\n }\n\n if (indexToDestroy !== -1) {\n this.destroy(this.active[indexToDestroy]);\n }\n },\n notifyClass: function notifyClass(item) {\n return ['vue-notification-template', this.classes, item.type];\n },\n notifyWrapperStyle: function notifyWrapperStyle(item) {\n return this.isVA ? null : {\n transition: 'all ' + item.speed + 'ms'\n };\n },\n destroy: function destroy(item) {\n clearTimeout(item.timer);\n item.state = STATE.DESTROYED;\n\n if (!this.isVA) {\n this.clean();\n }\n },\n destroyAll: function destroyAll() {\n this.active.forEach(this.destroy);\n },\n getAnimation: function getAnimation(index, el) {\n var animation = this.animation[index];\n\n return typeof animation === 'function' ? animation.call(this, el) : animation;\n },\n enter: function enter(_ref) {\n var el = _ref.el,\n complete = _ref.complete;\n\n var animation = this.getAnimation('enter', el);\n\n this.velocity(el, animation, {\n duration: this.speed,\n complete: complete\n });\n },\n leave: function leave(_ref2) {\n var el = _ref2.el,\n complete = _ref2.complete;\n\n var animation = this.getAnimation('leave', el);\n\n this.velocity(el, animation, {\n duration: this.speed,\n complete: complete\n });\n },\n clean: function clean() {\n this.list = this.list.filter(function (v) {\n return v.state !== STATE.DESTROYED;\n });\n }\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component);\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'VelocityGroup',\n methods: {\n enter: function enter(el, complete) {\n this.$emit('enter', { el: el, complete: complete });\n },\n leave: function leave(el, complete) {\n this.$emit('leave', { el: el, complete: complete });\n },\n afterLeave: function afterLeave() {\n this.$emit('afterLeave');\n }\n }\n});\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n position: ['top', 'right'],\n cssAnimation: 'vn-fade',\n velocityAnimation: {\n enter: function enter(el) {\n var height = el.clientHeight;\n\n return {\n height: [height, 0],\n opacity: [1, 0]\n };\n },\n leave: {\n height: 0,\n opacity: [0, 1]\n }\n }\n});\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export parse */\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 floatRegexp = '[-+]?[0-9]*.?[0-9]+';\n\nvar types = [{\n name: 'px',\n regexp: new RegExp('^' + floatRegexp + 'px$')\n}, {\n name: '%',\n regexp: new RegExp('^' + floatRegexp + '%$')\n}, {\n name: 'px',\n regexp: new RegExp('^' + floatRegexp + '$')\n}];\n\nvar getType = function getType(value) {\n if (value === 'auto') {\n return {\n type: value,\n value: 0\n };\n }\n\n for (var i = 0; i < types.length; i++) {\n var type = types[i];\n if (type.regexp.test(value)) {\n return {\n type: type.name,\n value: parseFloat(value)\n };\n }\n }\n\n return {\n type: '',\n value: value\n };\n};\n\nvar parse = function parse(value) {\n switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {\n case 'number':\n return { type: 'px', value: value };\n case 'string':\n return getType(value);\n default:\n return { type: '', value: value };\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (parse);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Id; });\n/* unused harmony export split */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return listToDirection; });\nvar directions = {\n x: ['left', 'center', 'right'],\n y: ['top', 'bottom']\n};\n\nvar Id = function (i) {\n return function () {\n return i++;\n };\n}(0);\n\nvar split = function split(value) {\n if (typeof value !== 'string') {\n return [];\n }\n\n return value.split(/\\s+/gi).filter(function (v) {\n return v;\n });\n};\n\nvar listToDirection = function listToDirection(value) {\n if (typeof value === 'string') {\n value = split(value);\n }\n\n var x = null;\n var y = null;\n\n value.forEach(function (v) {\n if (directions.y.indexOf(v) !== -1) {\n y = v;\n }\n if (directions.x.indexOf(v) !== -1) {\n x = v;\n }\n });\n\n return { x: x, y: y };\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(11)();\n// imports\n\n\n// module\nexports.push([module.i, \".notifications{display:block;position:fixed;z-index:5000}.notification-wrapper{display:block;overflow:hidden;width:100%;margin:0;padding:0}.notification-title{font-weight:600}.vue-notification-template{background:#fff}.vue-notification,.vue-notification-template{display:block;box-sizing:border-box;text-align:left}.vue-notification{font-size:12px;padding:10px;margin:0 5px 5px;color:#fff;background:#44a4fc;border-left:5px solid #187fe7}.vue-notification.warn{background:#ffb648;border-left-color:#f48a06}.vue-notification.error{background:#e54d42;border-left-color:#b82e24}.vue-notification.success{background:#68cd86;border-left-color:#42a85f}.vn-fade-enter-active,.vn-fade-leave-active,.vn-fade-move{transition:all .5s}.vn-fade-enter,.vn-fade-leave-to{opacity:0}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(0)(\n /* script */\n __webpack_require__(4),\n /* template */\n __webpack_require__(16),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(0)(\n /* script */\n __webpack_require__(6),\n /* template */\n __webpack_require__(14),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('transition-group', {\n attrs: {\n \"css\": false\n },\n on: {\n \"enter\": _vm.enter,\n \"leave\": _vm.leave,\n \"after-leave\": _vm.afterLeave\n }\n }, [_vm._t(\"default\")], 2)\n},staticRenderFns: []}\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"notifications\",\n style: (_vm.styles)\n }, [_c(_vm.componentName, {\n tag: \"component\",\n attrs: {\n \"name\": _vm.animationName\n },\n on: {\n \"enter\": _vm.enter,\n \"leave\": _vm.leave,\n \"after-leave\": _vm.clean\n }\n }, _vm._l((_vm.active), function(item) {\n return _c('div', {\n key: item.id,\n staticClass: \"notification-wrapper\",\n style: (_vm.notifyWrapperStyle(item)),\n attrs: {\n \"data-id\": item.id\n }\n }, [_vm._t(\"body\", [_c('div', {\n class: _vm.notifyClass(item),\n on: {\n \"click\": function($event) {\n if (_vm.closeOnClick) { _vm.destroy(item) }\n }\n }\n }, [(item.title) ? _c('div', {\n staticClass: \"notification-title\",\n domProps: {\n \"innerHTML\": _vm._s(item.title)\n }\n }) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"notification-content\",\n domProps: {\n \"innerHTML\": _vm._s(item.text)\n }\n })])], {\n item: item,\n close: function () { return _vm.destroy(item); }\n })], 2)\n }))], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('transition-group', {\n attrs: {\n \"name\": _vm.name\n }\n }, [_vm._t(\"default\")], 2)\n},staticRenderFns: []}\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(10);\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar update = __webpack_require__(18)(\"2901aeae\", content, true);\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\nvar listToStyles = __webpack_require__(19)\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nmodule.exports = function (parentId, list, _isProduction) {\n isProduction = _isProduction\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[data-vue-ssr-id~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\n/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nmodule.exports = function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_20__;\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=index.js.map","var semver = require('semver');\n\nmodule.exports = semver.satisfies(process.version, '^6.12.0 || >=8.0.0');\n","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.15.0\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\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 deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * 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 all\n * 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 NONINFRINGEMENT. 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 FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var pt = moment.defineLocale('pt', {\n months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY HH:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function () {\n return (this.day() === 0 || this.day() === 6) ?\n '[Último] dddd [à s] LT' : // Saturday + Sunday\n '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'em %s',\n past : 'há %s',\n s : 'segundos',\n ss : '%d segundos',\n m : 'um minuto',\n mm : '%d minutos',\n h : 'uma hora',\n hh : '%d horas',\n d : 'um dia',\n dd : '%d dias',\n M : 'um mês',\n MM : '%d meses',\n y : 'um ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return pt;\n\n})));\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","var JsonWebTokenError = require('./JsonWebTokenError');\n\nvar NotBeforeError = function (message, date) {\n JsonWebTokenError.call(this, message);\n this.name = 'NotBeforeError';\n this.date = date;\n};\n\nNotBeforeError.prototype = Object.create(JsonWebTokenError.prototype);\n\nNotBeforeError.prototype.constructor = NotBeforeError;\n\nmodule.exports = NotBeforeError;","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w) {\n var naf = [];\n var ws = 1 << (w + 1);\n var k = num.clone();\n while (k.cmpn(1) >= 0) {\n var z;\n if (k.isOdd()) {\n var mod = k.andln(ws - 1);\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n naf.push(z);\n\n // Optimization, shift by word if possible\n var shift = (k.cmpn(0) !== 0 && k.andln(ws - 1) === 0) ? (w + 1) : 1;\n for (var i = 1; i < shift; i++)\n naf.push(0);\n k.iushrn(shift);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n []\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n var m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n var m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '੧',\n '2': '੨',\n '3': 'à©©',\n '4': '੪',\n '5': 'à©«',\n '6': '੬',\n '7': 'à©',\n '8': 'à©®',\n '9': '੯',\n '0': '੦'\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n 'à©©': '3',\n '੪': '4',\n 'à©«': '5',\n '੬': '6',\n 'à©': '7',\n 'à©®': '8',\n '੯': '9',\n '੦': '0'\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n weekdays : 'à¨à¨¤à¨µà¨¾à¨°_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬà©à¨§à¨µà¨¾à¨°_ਵੀਰਵਾਰ_ਸ਼à©à©±à¨•à¨°à¨µà¨¾à¨°_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),\n weekdaysShort : 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n weekdaysMin : 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm ਵਜੇ',\n LTS : 'A h:mm:ss ਵਜੇ',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'\n },\n calendar : {\n sameDay : '[ਅਜ] LT',\n nextDay : '[ਕਲ] LT',\n nextWeek : '[ਅਗਲਾ] dddd, LT',\n lastDay : '[ਕਲ] LT',\n lastWeek : '[ਪਿਛਲੇ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ਵਿੱਚ',\n past : '%s ਪਿਛਲੇ',\n s : 'ਕà©à¨ ਸਕਿੰਟ',\n ss : '%d ਸਕਿੰਟ',\n m : 'ਇਕ ਮਿੰਟ',\n mm : '%d ਮਿੰਟ',\n h : 'ਇੱਕ ਘੰਟਾ',\n hh : '%d ਘੰਟੇ',\n d : 'ਇੱਕ ਦਿਨ',\n dd : '%d ਦਿਨ',\n M : 'ਇੱਕ ਮਹੀਨਾ',\n MM : '%d ਮਹੀਨੇ',\n y : 'ਇੱਕ ਸਾਲ',\n yy : '%d ਸਾਲ'\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬à©à©®à©¯à©¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦà©à¨ªà¨¹à¨¿à¨°|ਸ਼ਾਮ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦà©à¨ªà¨¹à¨¿à¨°') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦà©à¨ªà¨¹à¨¿à¨°';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return paIn;\n\n})));\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","var ms = require('ms');\n\nmodule.exports = function (time, iat) {\n var timestamp = iat || Math.floor(Date.now() / 1000);\n\n if (typeof time === 'string') {\n var milliseconds = ms(time);\n if (typeof milliseconds === 'undefined') {\n return;\n }\n return Math.floor(timestamp + milliseconds / 1000);\n } else if (typeof time === 'number') {\n return timestamp + time;\n } else {\n return;\n }\n\n};","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","/**\n * vue-good-table v2.18.0\n * (c) 2018-present xaksis <shay@crayonbits.com>\n * https://github.com/xaksis/vue-good-table\n * Released under the MIT License.\n */\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _([1, 2]).forEach(function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, typeof iteratee == 'function' ? iteratee : identity);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nvar lodash_foreach = forEach;\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER$1 = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag$1 = '[object Arguments]',\n funcTag$1 = '[object Function]',\n genTag$1 = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint$1 = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes$1(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg$1(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto$1 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$1 = objectProto$1.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString$1 = objectProto$1.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable$1 = objectProto$1.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys$1 = overArg$1(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable$1.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys$1(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray$1(value) || isArguments$1(value))\n ? baseTimes$1(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty$1.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex$1(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty$1.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys$1(object) {\n if (!isPrototype$1(object)) {\n return nativeKeys$1(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty$1.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex$1(value, length) {\n length = length == null ? MAX_SAFE_INTEGER$1 : length;\n return !!length &&\n (typeof value == 'number' || reIsUint$1.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject$1(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike$1(object) && isIndex$1(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype$1(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$1;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments$1(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject$1(value) && hasOwnProperty$1.call(value, 'callee') &&\n (!propertyIsEnumerable$1.call(value, 'callee') || objectToString$1.call(value) == argsTag$1);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray$1 = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike$1(value) {\n return value != null && isLength$1(value.length) && !isFunction$1(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject$1(value) {\n return isObjectLike$1(value) && isArrayLike$1(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction$1(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject$1(value) ? objectToString$1.call(value) : '';\n return tag == funcTag$1 || tag == genTag$1;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength$1(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER$1;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject$1(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike$1(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype$1(source) || isArrayLike$1(source)) {\n copyObject(source, keys$1(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty$1.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys$1(object) {\n return isArrayLike$1(object) ? arrayLikeKeys$1(object) : baseKeys$1(object);\n}\n\nvar lodash_assign = assign;\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar lodash_clonedeep = createCommonjsModule(function (module, exports) {\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n});\n\nvar lodash_filter = createCommonjsModule(function (module, exports) {\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array ? array.length : 0,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var result,\n index = -1,\n length = path.length;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result) {\n return result;\n }\n var length = object ? object.length : 0;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity]\n * The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate));\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = filter;\n});\n\nvar lodash_isequal = createCommonjsModule(function (module, exports) {\n/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors <https://js.foundation/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n});\n\n// all diacritics\r\nvar diacritics = \r\n\t{\r\n\t\t'a' : ['a','à ','á','â','ã','ä','Ã¥','æ','Ä','ă','Ä…','ÇŽ','ÇŸ','Ç¡','Ç»','È','ȃ','ȧ','É','É‘','É’','Í£','а','Ó‘','Ó“','ᵃ','ᵄ','á¶','á¸','ẚ','ạ','ả','ấ','ầ','ẩ','ẫ','áº','ắ','ằ','ẳ','ẵ','ặ','â‚','â±¥','ï½'],\r\n\t\t'A' : ['A','À','Ã','Â','Ã','Ä','Ã…','Ä€','Ä‚','Ä„','Ç','Çž','Ç ','Ǻ','È€','È‚','Ȧ','Ⱥ','Ð','Ó','Ó’','á´€','á´¬','Ḁ','Ạ','Ả','Ấ','Ầ','Ẩ','Ẫ','Ậ','Ắ','Ằ','Ẳ','Ẵ','Ặ','A'],\r\n\t\t \r\n\t\t'b' : ['b','Æ€','ƃ','É“','á–¯','ᵇ','ᵬ','ᶀ','ḃ','ḅ','ḇ','b'],\r\n\t\t'B' : ['B','Æ','Æ‚','Ƀ','Ê™','á›’','á´ƒ','á´®','á´¯','Ḃ','Ḅ','Ḇ','ï¼¢'],\r\n\t\t \r\n\t\t'c' : ['c','ç','ć','ĉ','Ä‹','Ä','ƈ','ȼ','É•','ͨ','á´„','ᶜ','ḉ','ↄ','c'],\r\n\t\t'C' : ['C','Ç','Ć','Ĉ','ÄŠ','ÄŒ','Ƈ','È»','Ê—','Ḉ','ï¼£'],\r\n\t\t\r\n\t\t'd' : ['d','Ä','Ä‘','Æ‹','ÆŒ','È¡','É–','É—','Í©','ᵈ','áµ','á¶','ᶑ','ḋ','á¸','á¸','ḑ','ḓ','d'],\r\n\t\t'D' : ['D','ÄŽ','Ä','Ɖ','ÆŠ','á´°','Ḋ','Ḍ','Ḏ','á¸','Ḓ','D'],\r\n\t\t\r\n\t\t'e' : ['e','è','é','ê','ë','Ä“','Ä•','Ä—','Ä™','Ä›','Ç','È…','ȇ','È©','ɇ','ɘ','ͤ','ᵉ','ᶒ','ḕ','ḗ','ḙ','ḛ','á¸','ẹ','ẻ','ẽ','ế','á»','ể','á»…','ệ','â‚‘','ï½…'],\r\n\t\t'E' : ['E','È','É','Ê','Ë','Ä’','Ä”','Ä–','Ę','Äš','Å’','ÆŽ','Æ','È„','Ȇ','Ȩ','Ɇ','É›','Éœ','ɶ','Є','Ð','Ñ','Ñ”','Ó¬','Ó','á´‡','á´ˆ','á´±','á´²','ᵋ','ᵌ','ᶓ','ᶔ','ᶟ','Ḕ','Ḗ','Ḙ','Ḛ','Ḝ','Ẹ','Ẻ','Ẽ','Ế','Ề','Ể','Ễ','Ệ','ï¼¥','ð','ð©'],\r\n\t\t\r\n\t\t'f' : ['f','Æ’','áµ®','ᶂ','ᶠ','ḟ','f'],\r\n\t\t'F' : ['F','Æ‘','Ḟ','â…Ž','F'],\r\n\t\t\r\n\t\t'g' : ['g','Ä','ÄŸ','Ä¡','Ä£','Ç¥','ǧ','ǵ','É ','É¡','áµ','áµ·','áµ¹','ᶃ','ᶢ','ḡ','g'],\r\n\t\t'G' : ['G','Äœ','Äž','Ä ','Ä¢','Æ“','Ǥ','Ǧ','Ç´','É¢','Ê›','á´³','Ḡ','G'],\r\n\t\t\r\n\t\t'h' : ['h','Ä¥','ħ','Æ•','ÈŸ','É¥','ɦ','Ê®','ʯ','Ê°','ʱ','ͪ','Òº','Ò»','á‘‹','ᶣ','ḣ','ḥ','ḧ','ḩ','ḫ','ⱨ','h'],\r\n\t\t'H' : ['H','Ĥ','Ħ','Èž','Êœ','ᕼ','ᚺ','áš»','á´´','Ḣ','Ḥ','Ḧ','Ḩ','Ḫ','Ⱨ','H'],\r\n\t\t\r\n\t\t'i' : ['i','ì','Ã','î','ï','Ä©','Ä«','Ä','į','Ç','ȉ','È‹','ɨ','Í¥','á´‰','ᵎ','áµ¢','ᶖ','ᶤ','á¸','ḯ','ỉ','ị','i'],\r\n\t\t'I' : ['I','ÃŒ','Ã','ÃŽ','Ã','Ĩ','Ī','Ĭ','Ä®','Ä°','Ç','Ȉ','ÈŠ','ɪ','І','á´µ','áµ»','ᶦ','ᶧ','Ḭ','Ḯ','Ỉ','Ị','I'],\r\n\t\t\r\n\t\t'j' : ['j','ĵ','Ç°','ɉ','Ê','ʲ','ᶡ','ᶨ','j'],\r\n\t\t'J' : ['J','Ä´','á´Š','á´¶','J'],\r\n\t\t\r\n\t\t'k' : ['k','Ä·','Æ™','Ç©','Êž','áµ','ᶄ','ḱ','ḳ','ḵ','ⱪ','k'],\r\n\t\t'K' : ['K','Ķ','Ƙ','Ǩ','á´·','Ḱ','Ḳ','Ḵ','Ⱪ','K'],\r\n\t\t\r\n\t\t'l' : ['l','ĺ','ļ','ľ','Å€','Å‚','Æš','È´','É«','ɬ','É','Ë¡','ᶅ','ᶩ','ᶪ','ḷ','ḹ','ḻ','ḽ','â„“','ⱡ'],\r\n\t\t'L' : ['L','Ĺ','Ä»','Ľ','Ä¿','Å','Ƚ','ÊŸ','á´Œ','á´¸','ᶫ','Ḷ','Ḹ','Ḻ','Ḽ','â± ','â±¢'],\r\n\t\t\r\n\t\t'm' : ['m','ɯ','É°','ɱ','Í«','á´Ÿ','áµ','ᵚ','ᵯ','ᶆ','ᶬ','á¶','ḿ','á¹','ṃ','㎡','㎥','ï½'],\r\n\t\t'M' : ['M','Æœ','á´','á´¹','Ḿ','á¹€','Ṃ','ï¼'],\r\n\t\t\r\n\t\t'n' : ['n','ñ','Å„','ņ','ň','ʼn','Æž','ǹ','ȵ','ɲ','ɳ','áµ°','ᶇ','ᶮ','ᶯ','á¹…','ṇ','ṉ','ṋ','â¿','n'],\r\n\t\t'N' : ['N','Ñ','Ń','Å…','Ň','Æ','Ǹ','È ','É´','á´Ž','á´º','á´»','ᶰ','Ṅ','Ṇ','Ṉ','Ṋ','ï¼®'],\r\n\t\t\r\n\t\t'o' : ['o','ò','ó','ô','õ','ö','ø','Å','Å','Å‘','Æ¡','Ç’','Ç«','Ç','Ç¿','È','È','È«','È','ȯ','ȱ','ɵ','ͦ','о','Ó§','Ó©','á´','á´‘','á´“','á´¼','áµ’','ᶱ','á¹','á¹','ṑ','ṓ','á»','á»','ố','ồ','ổ','á»—','á»™','á»›','á»','ở','ỡ','ợ','â‚’','ï½','ð¬'],\r\n\t\t'O' : ['O','Ã’','Ó','Ô','Õ','Ö','Ø','ÅŒ','ÅŽ','Å','ÆŸ','Æ ','Ç‘','Ǫ','Ǭ','Ǿ','ÈŒ','ÈŽ','Ȫ','Ȭ','È®','È°','О','Ó¦','Ó¨','Ṍ','Ṏ','á¹','á¹’','Ọ','Ỏ','á»','á»’','á»”','á»–','Ộ','Ớ','Ờ','Ở','á» ','Ợ','O','ð„'],\r\n\t\t\r\n\t\t'p' : ['p','áµ–','áµ±','áµ½','ᶈ','ṕ','á¹—','ï½'],\r\n\t\t'P' : ['P','Ƥ','á´˜','á´¾','á¹”','á¹–','â±£','ï¼°'],\r\n\t\t\r\n\t\t'q' : ['q','É‹','Ê ','ᛩ','q'],\r\n\t\t'Q' : ['Q','ÉŠ','ï¼±'],\r\n\t\t\r\n\t\t'r' : ['r','Å•','Å—','Å™','È‘','È“','É','ɹ','É»','ʳ','Ê´','ʵ','ͬ','áµ£','áµ²','ᶉ','á¹™','á¹›','á¹','ṟ'],\r\n\t\t'R' : ['R','Å”','Å–','Ř','Ʀ','È','È’','ÉŒ','Ê€','Ê','ʶ','áš±','á´™','á´š','á´¿','Ṙ','Ṛ','Ṝ','Ṟ','Ɽ'],\r\n\t\t\r\n\t\t's' : ['s','Å›','Å','ÅŸ','Å¡','È™','Ê‚','ᔆ','ᶊ','ṡ','á¹£','á¹¥','ṧ','ṩ','s'],\r\n\t\t'S' : ['S','Åš','Åœ','Åž','Å ','Ș','È¿','Ë¢','áµ´','á¹ ','á¹¢','Ṥ','Ṧ','Ṩ','ï¼³'],\r\n\t\t\r\n\t\t't' : ['t','Å£','Å¥','ŧ','Æ«','Æ','È›','ʇ','Í','áµ€','áµ—','áµµ','ᶵ','ṫ','á¹','ṯ','á¹±','ẗ','ï½”'],\r\n\t\t'T' : ['T','Å¢','Ť','Ƭ','Æ®','Èš','Ⱦ','á´›','áµ€','Ṫ','Ṭ','á¹®','á¹°','ï¼´'],\r\n\t \t\r\n\t\t'u' : ['u','ù','ú','û','ü','Å©','Å«','Å','ů','ű','ų','Æ°','Ç”','Ç–','ǘ','Çš','Çœ','È•','È—','ͧ','ߎ','ᵘ','ᵤ','á¹³','á¹µ','á¹·','á¹¹','á¹»','ụ','ủ','ứ','ừ','á»','ữ','á»±','u'],\r\n\t\t'U' : ['U','Ù','Ú','Û','Ãœ','Ũ','Ū','Ŭ','Å®','Å°','Ų','Ư','Ç“','Ç•','Ç—','Ç™','Ç›','È”','È–','É„','á´œ','áµ','áµ¾','á¹²','á¹´','Ṷ','Ṹ','Ṻ','Ụ','Ủ','Ứ','Ừ','Ử','á»®','á»°','ï¼µ'],\r\n\t\t\r\n\t\t'v' : ['v','Ê‹','Í®','áµ›','áµ¥','ᶹ','á¹½','ṿ','â±±','ï½–','â±´'],\r\n\t\t'V' : ['V','Ʋ','É…','ÊŒ','á´ ','ᶌ','á¹¼','á¹¾','V'],\r\n\t\t\r\n\t\t'w' : ['w','ŵ','Ê·','ᵂ','áº','ẃ','ẅ','ẇ','ẉ','ẘ','â±³','ï½—'],\r\n\t\t'W' : ['W','Å´','Ê','á´¡','Ẁ','Ẃ','Ẅ','Ẇ','Ẉ','â±²','ï¼·'],\r\n\t\t\r\n\t\t'x' : ['x','̽','Í“','á¶','ͯ','ẋ','áº','â‚“','x'],\r\n\t\t'X' : ['X','Ë£','ͯ','Ẋ','Ẍ','☒','✕','✖','✗','✘','X'],\r\n\t\t\r\n\t\t'y' : ['y','ý','ÿ','Å·','ȳ','É','ʸ','áº','ỳ','ỵ','á»·','ỹ','ï½™'],\r\n\t\t'Y' : ['Y','Ã','Ŷ','Ÿ','Ƴ','Æ´','Ȳ','ÉŽ','ÊŽ','Ê','Ẏ','Ỳ','á»´','Ỷ','Ỹ','ï¼¹'],\r\n\t\t\r\n\t\t'z' : ['z','ź','ż','ž','ƶ','È¥','É€','Ê','Ê‘','ᙆ','ᙇ','ᶻ','ᶼ','ᶽ','ẑ','ẓ','ẕ','ⱬ','z'],\r\n\t\t'Z' : ['Z','Ź','Å»','Ž','Ƶ','Ȥ','á´¢','ᵶ','áº','Ẓ','Ẕ','Ⱬ','Z']\r\n\t};\r\n\r\n/*\r\n * Main function of the module which removes all diacritics from the received text\r\n */\r\nvar diacriticless = function (text) {\r\n var result = [];\r\n\r\n\t// iterate over all the characters of the received text\r\n for(var i=0; i<text.length; i++) {\r\n var searchChar = text.charAt(i);\r\n var foundChar = false;\r\n\r\n\t\t// iterate over all the diacritics\r\n for(var key in diacritics) {\r\n var indexChar = diacritics[key].indexOf(searchChar);\r\n\t\t\t\r\n\t\t\t// check if the current character is a diacritic\r\n if (indexChar !== -1) {\r\n\t\t\t\t// as the character is a diacritic, adds into the result array, the key of the found diacritic\r\n result.push(key);\r\n foundChar = true;\r\n break;\r\n }\r\n }\r\n\r\n // check if the character was not found\r\n if (!foundChar) {\r\n\t\t\t// as the character was not found, returns it\r\n result.push(searchChar);\r\n }\r\n }\r\n\r\n return result.join(\"\");\r\n};\n\nvar escapeRegExp = function escapeRegExp(str) {\n return str.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n};\n\nvar defaultType = {\n format: function format(x) {\n return x;\n },\n filterPredicate: function filterPredicate(rowval, filter) {\n var skipDiacritics = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n // take care of nulls\n if (typeof rowval === 'undefined' || rowval === null) {\n return false;\n } // row value\n\n\n var rowValue = skipDiacritics ? String(rowval).toLowerCase() : diacriticless(escapeRegExp(String(rowval)).toLowerCase()); // search term\n\n var searchTerm = skipDiacritics ? filter.toLowerCase() : diacriticless(escapeRegExp(filter).toLowerCase()); // comparison\n\n return rowValue.indexOf(searchTerm) > -1;\n },\n compare: function compare(x, y) {\n function cook(d) {\n if (typeof d === 'undefined' || d === null) return '';\n return diacriticless(d.toLowerCase());\n }\n\n x = cook(x);\n y = cook(y);\n if (x < y) return -1;\n if (x > y) return 1;\n return 0;\n }\n};\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar script = {\n name: 'VgtPaginationPageInfo',\n props: {\n currentPage: {\n \"default\": 1\n },\n lastPage: {\n \"default\": 1\n },\n totalRecords: {\n \"default\": 0\n },\n ofText: {\n \"default\": 'of',\n type: String\n },\n pageText: {\n \"default\": 'page',\n type: String\n }\n },\n data: function data() {\n return {};\n },\n computed: {\n pageInfo: function pageInfo() {\n return \"\".concat(this.ofText, \" \").concat(this.lastPage);\n }\n },\n methods: {\n changePage: function changePage(event) {\n var value = parseInt(event.target.value, 10); //! invalid number\n\n if (Number.isNaN(value) || value > this.lastPage || value < 1) {\n event.target.value = this.currentPage;\n return false;\n } //* valid number\n\n\n event.target.value = value;\n this.$emit('page-changed', value);\n }\n },\n mounted: function mounted() {},\n components: {}\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nvar normalizeComponent_1 = normalizeComponent;\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n staticClass: \"footer__navigation__page-info\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.pageText) + \" \"), _c('input', {\n staticClass: \"footer__navigation__page-info__current-entry\",\n attrs: {\n \"type\": \"text\"\n },\n domProps: {\n \"value\": _vm.currentPage\n },\n on: {\n \"keyup\": function keyup($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) {\n return null;\n }\n\n $event.stopPropagation();\n return _vm.changePage($event);\n }\n }\n }), _vm._v(\" \" + _vm._s(_vm.pageInfo) + \"\\n\")]);\n};\n\nvar __vue_staticRenderFns__ = [];\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = \"data-v-9a8cd1f4\";\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\nvar VgtPaginationPageInfo = normalizeComponent_1({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, undefined, undefined);\n\n//\nvar DEFAULT_ROWS_PER_PAGE_DROPDOWN = [10, 20, 30, 40, 50];\nvar script$1 = {\n name: 'VgtPagination',\n props: {\n styleClass: {\n \"default\": 'table table-bordered'\n },\n total: {\n \"default\": null\n },\n perPage: {},\n rtl: {\n \"default\": false\n },\n customRowsPerPageDropdown: {\n \"default\": function _default() {\n return [];\n }\n },\n paginateDropdownAllowAll: {\n \"default\": true\n },\n mode: {\n \"default\": 'records'\n },\n // text options\n nextText: {\n \"default\": 'Next'\n },\n prevText: {\n \"default\": 'Prev'\n },\n rowsPerPageText: {\n \"default\": 'Rows per page:'\n },\n ofText: {\n \"default\": 'of'\n },\n pageText: {\n \"default\": 'page'\n },\n allText: {\n \"default\": 'All'\n }\n },\n data: function data() {\n return {\n currentPage: 1,\n prevPage: 0,\n currentPerPage: 10,\n rowsPerPageOptions: []\n };\n },\n watch: {\n perPage: {\n handler: function handler(newValue, oldValue) {\n this.handlePerPage();\n this.perPageChanged(oldValue);\n },\n immediate: true\n },\n customRowsPerPageDropdown: function customRowsPerPageDropdown() {\n this.handlePerPage();\n }\n },\n computed: {\n // Number of pages\n pagesCount: function pagesCount() {\n var quotient = Math.floor(this.total / this.currentPerPage);\n var remainder = this.total % this.currentPerPage;\n return remainder === 0 ? quotient : quotient + 1;\n },\n // Current displayed items\n paginatedInfo: function paginatedInfo() {\n var first = (this.currentPage - 1) * this.currentPerPage + 1;\n var last = Math.min(this.total, this.currentPage * this.currentPerPage);\n\n if (last === 0) {\n first = 0;\n }\n\n return \"\".concat(first, \" - \").concat(last, \" \").concat(this.ofText, \" \").concat(this.total);\n },\n // Can go to next page\n nextIsPossible: function nextIsPossible() {\n return this.currentPage < this.pagesCount;\n },\n // Can go to previous page\n prevIsPossible: function prevIsPossible() {\n return this.currentPage > 1;\n }\n },\n methods: {\n // Change current page\n changePage: function changePage(pageNumber) {\n var emit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (pageNumber > 0 && this.total > this.currentPerPage * (pageNumber - 1)) {\n this.prevPage = this.currentPage;\n this.currentPage = pageNumber;\n if (emit) this.pageChanged();\n }\n },\n // Go to next page\n nextPage: function nextPage() {\n if (this.nextIsPossible) {\n this.prevPage = this.currentPage;\n ++this.currentPage;\n this.pageChanged();\n }\n },\n // Go to previous page\n previousPage: function previousPage() {\n if (this.prevIsPossible) {\n this.prevPage = this.currentPage;\n --this.currentPage;\n this.pageChanged();\n }\n },\n // Indicate page changing\n pageChanged: function pageChanged() {\n this.$emit('page-changed', {\n currentPage: this.currentPage,\n prevPage: this.prevPage\n });\n },\n // Indicate per page changing\n perPageChanged: function perPageChanged(oldValue) {\n // go back to first page\n if (oldValue) {\n //* only emit if this isn't first initialization\n this.$emit('per-page-changed', {\n currentPerPage: this.currentPerPage\n });\n }\n\n this.changePage(1, false);\n },\n // Handle per page changing\n handlePerPage: function handlePerPage() {\n //* if there's a custom dropdown then we use that\n if (this.customRowsPerPageDropdown !== null && Array.isArray(this.customRowsPerPageDropdown) && this.customRowsPerPageDropdown.length !== 0) {\n this.rowsPerPageOptions = this.customRowsPerPageDropdown;\n } else {\n //* otherwise we use the default rows per page dropdown\n this.rowsPerPageOptions = lodash_clonedeep(DEFAULT_ROWS_PER_PAGE_DROPDOWN);\n }\n\n if (this.perPage) {\n this.currentPerPage = this.perPage; // if perPage doesn't already exist, we add it\n\n var found = false;\n\n for (var i = 0; i < this.rowsPerPageOptions.length; i++) {\n if (this.rowsPerPageOptions[i] === this.perPage) {\n found = true;\n }\n }\n\n if (!found && this.perPage !== -1) {\n this.rowsPerPageOptions.unshift(this.perPage);\n }\n } else {\n // reset to default\n this.currentPerPage = 10;\n }\n }\n },\n mounted: function mounted() {},\n components: {\n 'pagination-page-info': VgtPaginationPageInfo\n }\n};\n\n/* script */\nvar __vue_script__$1 = script$1;\n/* template */\n\nvar __vue_render__$1 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n staticClass: \"vgt-wrap__footer vgt-clearfix\"\n }, [_c('div', {\n staticClass: \"footer__row-count vgt-pull-left\"\n }, [_c('span', {\n staticClass: \"footer__row-count__label\"\n }, [_vm._v(_vm._s(_vm.rowsPerPageText))]), _vm._v(\" \"), _c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.currentPerPage,\n expression: \"currentPerPage\"\n }],\n staticClass: \"footer__row-count__select\",\n attrs: {\n \"autocomplete\": \"off\",\n \"name\": \"perPageSelect\"\n },\n on: {\n \"change\": [function ($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function (o) {\n return o.selected;\n }).map(function (o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val;\n });\n _vm.currentPerPage = $event.target.multiple ? $$selectedVal : $$selectedVal[0];\n }, _vm.perPageChanged]\n }\n }, [_vm._l(_vm.rowsPerPageOptions, function (option, idx) {\n return _c('option', {\n key: 'rows-dropdown-option-' + idx,\n domProps: {\n \"value\": option\n }\n }, [_vm._v(\"\\n \" + _vm._s(option) + \"\\n \")]);\n }), _vm._v(\" \"), _vm.paginateDropdownAllowAll ? _c('option', {\n domProps: {\n \"value\": _vm.total\n }\n }, [_vm._v(_vm._s(_vm.allText))]) : _vm._e()], 2)]), _vm._v(\" \"), _c('div', {\n staticClass: \"footer__navigation vgt-pull-right\"\n }, [_c('a', {\n staticClass: \"footer__navigation__page-btn\",\n \"class\": {\n disabled: !_vm.prevIsPossible\n },\n attrs: {\n \"href\": \"javascript:undefined\",\n \"tabindex\": \"0\"\n },\n on: {\n \"click\": function click($event) {\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.previousPage($event);\n }\n }\n }, [_c('span', {\n staticClass: \"chevron\",\n \"class\": {\n 'left': !_vm.rtl,\n 'right': _vm.rtl\n }\n }), _vm._v(\" \"), _c('span', [_vm._v(_vm._s(_vm.prevText))])]), _vm._v(\" \"), _vm.mode === 'pages' ? _c('pagination-page-info', {\n attrs: {\n \"totalRecords\": _vm.total,\n \"lastPage\": _vm.pagesCount,\n \"currentPage\": _vm.currentPage,\n \"ofText\": _vm.ofText,\n \"pageText\": _vm.pageText\n },\n on: {\n \"page-changed\": _vm.changePage\n }\n }) : _c('div', {\n staticClass: \"footer__navigation__info\"\n }, [_vm._v(_vm._s(_vm.paginatedInfo))]), _vm._v(\" \"), _c('a', {\n staticClass: \"footer__navigation__page-btn\",\n \"class\": {\n disabled: !_vm.nextIsPossible\n },\n attrs: {\n \"href\": \"javascript:undefined\",\n \"tabindex\": \"0\"\n },\n on: {\n \"click\": function click($event) {\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.nextPage($event);\n }\n }\n }, [_c('span', [_vm._v(_vm._s(_vm.nextText))]), _vm._v(\" \"), _c('span', {\n staticClass: \"chevron\",\n \"class\": {\n 'right': !_vm.rtl,\n 'left': _vm.rtl\n }\n })])], 1)]);\n};\n\nvar __vue_staticRenderFns__$1 = [];\n/* style */\n\nvar __vue_inject_styles__$1 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$1 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$1 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$1 = false;\n/* style inject */\n\n/* style inject SSR */\n\nvar VgtPagination = normalizeComponent_1({\n render: __vue_render__$1,\n staticRenderFns: __vue_staticRenderFns__$1\n}, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, undefined, undefined);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar script$2 = {\n name: 'VgtGlobalSearch',\n props: ['value', 'searchEnabled', 'globalSearchPlaceholder'],\n data: function data() {\n return {\n globalSearchTerm: null\n };\n },\n computed: {\n showControlBar: function showControlBar() {\n if (this.searchEnabled) return true;\n if (this.$slots && this.$slots['internal-table-actions']) return true;\n return false;\n }\n },\n methods: {\n updateValue: function updateValue(value) {\n this.$emit('input', value);\n this.$emit('on-keyup', value);\n },\n entered: function entered(value) {\n this.$emit('on-enter', value);\n }\n }\n};\n\n/* script */\nvar __vue_script__$2 = script$2;\n/* template */\n\nvar __vue_render__$2 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _vm.showControlBar ? _c('div', {\n staticClass: \"vgt-global-search vgt-clearfix\"\n }, [_c('div', {\n staticClass: \"vgt-global-search__input vgt-pull-left\"\n }, [_vm.searchEnabled ? _c('span', {\n staticClass: \"input__icon\"\n }, [_c('div', {\n staticClass: \"magnifying-glass\"\n })]) : _vm._e(), _vm._v(\" \"), _vm.searchEnabled ? _c('input', {\n staticClass: \"vgt-input vgt-pull-left\",\n attrs: {\n \"type\": \"text\",\n \"placeholder\": _vm.globalSearchPlaceholder\n },\n domProps: {\n \"value\": _vm.value\n },\n on: {\n \"input\": function input($event) {\n return _vm.updateValue($event.target.value);\n },\n \"keyup\": function keyup($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) {\n return null;\n }\n\n return _vm.entered($event.target.value);\n }\n }\n }) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"vgt-global-search__actions vgt-pull-right\"\n }, [_vm._t(\"internal-table-actions\")], 2)]) : _vm._e();\n};\n\nvar __vue_staticRenderFns__$2 = [];\n/* style */\n\nvar __vue_inject_styles__$2 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$2 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$2 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$2 = false;\n/* style inject */\n\n/* style inject SSR */\n\nvar VgtGlobalSearch = normalizeComponent_1({\n render: __vue_render__$2,\n staticRenderFns: __vue_staticRenderFns__$2\n}, __vue_inject_styles__$2, __vue_script__$2, __vue_scope_id__$2, __vue_is_functional_template__$2, __vue_module_identifier__$2, undefined, undefined);\n\nvar script$3 = {\n name: 'VgtFilterRow',\n props: ['lineNumbers', 'columns', 'typedColumns', 'globalSearchEnabled', 'selectable', 'mode'],\n watch: {\n columns: {\n handler: function handler(newValue, oldValue) {\n this.populateInitialFilters();\n },\n deep: true,\n immediate: true\n }\n },\n data: function data() {\n return {\n columnFilters: {},\n timer: null\n };\n },\n computed: {\n // to create a filter row, we need to\n // make sure that there is atleast 1 column\n // that requires filtering\n hasFilterRow: function hasFilterRow() {\n // if (this.mode === 'remote' || !this.globalSearchEnabled) {\n for (var i = 0; i < this.columns.length; i++) {\n var col = this.columns[i];\n\n if (col.filterOptions && col.filterOptions.enabled) {\n return true;\n }\n } // }\n\n\n return false;\n }\n },\n methods: {\n reset: function reset() {\n var emitEvent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.columnFilters = {};\n\n if (emitEvent) {\n this.$emit('filter-changed', this.columnFilters);\n }\n },\n isFilterable: function isFilterable(column) {\n return column.filterOptions && column.filterOptions.enabled;\n },\n isDropdown: function isDropdown(column) {\n return this.isFilterable(column) && column.filterOptions.filterDropdownItems && column.filterOptions.filterDropdownItems.length;\n },\n isDropdownObjects: function isDropdownObjects(column) {\n return this.isDropdown(column) && _typeof(column.filterOptions.filterDropdownItems[0]) === 'object';\n },\n isDropdownArray: function isDropdownArray(column) {\n return this.isDropdown(column) && _typeof(column.filterOptions.filterDropdownItems[0]) !== 'object';\n },\n // get column's defined placeholder or default one\n getPlaceholder: function getPlaceholder(column) {\n var placeholder = this.isFilterable(column) && column.filterOptions.placeholder || \"Filter \".concat(column.label);\n return placeholder;\n },\n updateFiltersOnEnter: function updateFiltersOnEnter(column, value) {\n if (this.timer) clearTimeout(this.timer);\n this.updateFiltersImmediately(column, value);\n },\n updateFiltersOnKeyup: function updateFiltersOnKeyup(column, value) {\n // if the trigger is enter, we don't filter on keyup\n if (column.filterOptions.trigger === 'enter') return;\n this.updateFilters(column, value);\n },\n // since vue doesn't detect property addition and deletion, we\n // need to create helper function to set property etc\n updateFilters: function updateFilters(column, value) {\n var _this = this;\n\n if (this.timer) clearTimeout(this.timer);\n this.timer = setTimeout(function () {\n _this.updateFiltersImmediately(column, value);\n }, 400);\n },\n updateFiltersImmediately: function updateFiltersImmediately(column, value) {\n this.$set(this.columnFilters, column.field, value);\n this.$emit('filter-changed', this.columnFilters);\n },\n populateInitialFilters: function populateInitialFilters() {\n for (var i = 0; i < this.columns.length; i++) {\n var col = this.columns[i]; // lets see if there are initial\n // filters supplied by user\n\n if (this.isFilterable(col) && typeof col.filterOptions.filterValue !== 'undefined' && col.filterOptions.filterValue !== null) {\n this.$set(this.columnFilters, col.field, col.filterOptions.filterValue); // this.updateFilters(col, col.filterOptions.filterValue);\n // this.$set(col.filterOptions, 'filterValue', undefined);\n }\n } //* lets emit event once all filters are set\n\n\n this.$emit('filter-changed', this.columnFilters);\n }\n }\n};\n\n/* script */\nvar __vue_script__$3 = script$3;\n/* template */\n\nvar __vue_render__$3 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _vm.hasFilterRow ? _c('tr', [_vm.lineNumbers ? _c('th') : _vm._e(), _vm._v(\" \"), _vm.selectable ? _c('th') : _vm._e(), _vm._v(\" \"), _vm._l(_vm.columns, function (column, index) {\n return !column.hidden ? _c('th', {\n key: index,\n staticClass: \"filter-th\"\n }, [_vm.isFilterable(column) ? _c('div', [!_vm.isDropdown(column) ? _c('input', {\n staticClass: \"vgt-input\",\n attrs: {\n \"type\": \"text\",\n \"placeholder\": _vm.getPlaceholder(column)\n },\n domProps: {\n \"value\": _vm.columnFilters[column.field]\n },\n on: {\n \"keyup\": function keyup($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) {\n return null;\n }\n\n return _vm.updateFiltersOnEnter(column, $event.target.value);\n },\n \"input\": function input($event) {\n return _vm.updateFiltersOnKeyup(column, $event.target.value);\n }\n }\n }) : _vm._e(), _vm._v(\" \"), _vm.isDropdownArray(column) ? _c('select', {\n staticClass: \"vgt-select\",\n domProps: {\n \"value\": _vm.columnFilters[column.field]\n },\n on: {\n \"change\": function change($event) {\n return _vm.updateFilters(column, $event.target.value);\n }\n }\n }, [_c('option', {\n key: \"-1\",\n attrs: {\n \"value\": \"\"\n }\n }, [_vm._v(_vm._s(_vm.getPlaceholder(column)))]), _vm._v(\" \"), _vm._l(column.filterOptions.filterDropdownItems, function (option, i) {\n return _c('option', {\n key: i,\n domProps: {\n \"value\": option\n }\n }, [_vm._v(\"\\n \" + _vm._s(option) + \"\\n \")]);\n })], 2) : _vm._e(), _vm._v(\" \"), _vm.isDropdownObjects(column) ? _c('select', {\n staticClass: \"vgt-select\",\n domProps: {\n \"value\": _vm.columnFilters[column.field]\n },\n on: {\n \"change\": function change($event) {\n return _vm.updateFilters(column, $event.target.value, true);\n }\n }\n }, [_c('option', {\n key: \"-1\",\n attrs: {\n \"value\": \"\"\n }\n }, [_vm._v(_vm._s(_vm.getPlaceholder(column)))]), _vm._v(\" \"), _vm._l(column.filterOptions.filterDropdownItems, function (option, i) {\n return _c('option', {\n key: i,\n domProps: {\n \"value\": option.value\n }\n }, [_vm._v(_vm._s(option.text))]);\n })], 2) : _vm._e()]) : _vm._e()]) : _vm._e();\n })], 2) : _vm._e();\n};\n\nvar __vue_staticRenderFns__$3 = [];\n/* style */\n\nvar __vue_inject_styles__$3 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$3 = \"data-v-836b007c\";\n/* module identifier */\n\nvar __vue_module_identifier__$3 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$3 = false;\n/* style inject */\n\n/* style inject SSR */\n\nvar VgtFilterRow = normalizeComponent_1({\n render: __vue_render__$3,\n staticRenderFns: __vue_staticRenderFns__$3\n}, __vue_inject_styles__$3, __vue_script__$3, __vue_scope_id__$3, __vue_is_functional_template__$3, __vue_module_identifier__$3, undefined, undefined);\n\nfunction getNextSort(currentSort) {\n if (currentSort === 'asc') return 'desc'; // if (currentSort === 'desc') return null;\n\n return 'asc';\n}\n\nfunction getIndex(sortArray, column) {\n for (var i = 0; i < sortArray.length; i++) {\n if (column.field === sortArray[i].field) return i;\n }\n\n return -1;\n}\n\nvar primarySort = function (sortArray, column) {\n if (sortArray.length && sortArray.length === 1 && sortArray[0].field === column.field) {\n var type = getNextSort(sortArray[0].type);\n\n if (type) {\n sortArray[0].type = getNextSort(sortArray[0].type);\n } else {\n sortArray = [];\n }\n } else {\n sortArray = [{\n field: column.field,\n type: 'asc'\n }];\n }\n\n return sortArray;\n};\n\nvar secondarySort = function (sortArray, column) {\n //* this means that primary sort exists, we're\n //* just adding a secondary sort\n var index = getIndex(sortArray, column);\n\n if (index === -1) {\n sortArray.push({\n field: column.field,\n type: 'asc'\n });\n } else {\n var type = getNextSort(sortArray[index].type);\n\n if (type) {\n sortArray[index].type = type;\n } else {\n sortArray.splice(index, 1);\n }\n }\n\n return sortArray;\n};\n\n//\nvar script$4 = {\n name: 'VgtTableHeader',\n props: {\n lineNumbers: {\n \"default\": false,\n type: Boolean\n },\n selectable: {\n \"default\": false,\n type: Boolean\n },\n allSelected: {\n \"default\": false,\n type: Boolean\n },\n allSelectedIndeterminate: {\n \"default\": false,\n type: Boolean\n },\n columns: {\n type: Array\n },\n mode: {\n type: String\n },\n typedColumns: {},\n //* Sort related\n sortable: {\n type: Boolean\n },\n // sortColumn: {\n // type: Number,\n // },\n // sortType: {\n // type: String,\n // },\n // utility functions\n // isSortableColumn: {\n // type: Function,\n // },\n getClasses: {\n type: Function\n },\n //* search related\n searchEnabled: {\n type: Boolean\n },\n tableRef: {},\n paginated: {}\n },\n watch: {\n tableRef: {\n handler: function handler() {\n this.setColumnStyles();\n },\n immediate: true\n },\n paginated: {\n handler: function handler() {\n if (this.tableRef) {\n this.setColumnStyles();\n }\n },\n deep: true\n }\n },\n data: function data() {\n return {\n timer: null,\n checkBoxThStyle: {},\n lineNumberThStyle: {},\n columnStyles: [],\n sorts: []\n };\n },\n computed: {},\n methods: {\n reset: function reset() {\n this.$refs['filter-row'].reset(true);\n },\n toggleSelectAll: function toggleSelectAll() {\n this.$emit('on-toggle-select-all');\n },\n isSortableColumn: function isSortableColumn(column) {\n var sortable = column.sortable;\n var isSortable = typeof sortable === 'boolean' ? sortable : this.sortable;\n return isSortable;\n },\n sort: function sort(e, column) {\n //* if column is not sortable, return right here\n if (!this.isSortableColumn(column)) return;\n\n if (e.shiftKey) {\n this.sorts = secondarySort(this.sorts, column);\n } else {\n this.sorts = primarySort(this.sorts, column);\n }\n\n this.$emit('on-sort-change', this.sorts);\n },\n setInitialSort: function setInitialSort(sorts) {\n this.sorts = sorts;\n this.$emit('on-sort-change', this.sorts);\n },\n getColumnSort: function getColumnSort(column) {\n for (var i = 0; i < this.sorts.length; i += 1) {\n if (this.sorts[i].field === column.field) {\n return this.sorts[i].type || 'asc';\n }\n }\n\n return null;\n },\n getHeaderClasses: function getHeaderClasses(column, index) {\n var classes = lodash_assign({}, this.getClasses(index, 'th'), {\n 'sorting sorting-desc': this.getColumnSort(column) === 'desc',\n 'sorting sorting-asc': this.getColumnSort(column) === 'asc'\n });\n return classes;\n },\n filterRows: function filterRows(columnFilters) {\n this.$emit('filter-changed', columnFilters);\n },\n getWidthStyle: function getWidthStyle(dom) {\n if (window && window.getComputedStyle) {\n var cellStyle = window.getComputedStyle(dom, null);\n return {\n width: cellStyle.width\n };\n }\n\n return {\n width: 'auto'\n };\n },\n setColumnStyles: function setColumnStyles() {\n var _this = this;\n\n var colStyles = [];\n if (this.timer) clearTimeout(this.timer);\n this.timer = setTimeout(function () {\n for (var i = 0; i < _this.columns.length; i++) {\n if (_this.tableRef) {\n var skip = 0;\n if (_this.selectable) skip++;\n if (_this.lineNumbers) skip++;\n var cell = _this.tableRef.rows[0].cells[i + skip];\n colStyles.push(_this.getWidthStyle(cell));\n } else {\n colStyles.push({\n minWidth: _this.columns[i].width ? _this.columns[i].width : 'auto',\n maxWidth: _this.columns[i].width ? _this.columns[i].width : 'auto',\n width: _this.columns[i].width ? _this.columns[i].width : 'auto'\n });\n }\n }\n\n _this.columnStyles = colStyles;\n }, 200);\n },\n getColumnStyle: function getColumnStyle(column, index) {\n var styleObject = {\n minWidth: column.width ? column.width : 'auto',\n maxWidth: column.width ? column.width : 'auto',\n width: column.width ? column.width : 'auto'\n }; //* if fixed header we need to get width from original table\n\n if (this.tableRef) {\n if (this.selectable) index++;\n if (this.lineNumbers) index++;\n var cell = this.tableRef.rows[0].cells[index];\n var cellStyle = window.getComputedStyle(cell, null);\n styleObject.width = cellStyle.width;\n }\n\n return styleObject;\n }\n },\n mounted: function mounted() {\n window.addEventListener('resize', this.setColumnStyles);\n },\n beforeDestroy: function beforeDestroy() {\n if (this.timer) clearTimeout(this.timer);\n window.removeEventListener('resize', this.setColumnStyles);\n },\n components: {\n 'vgt-filter-row': VgtFilterRow\n }\n};\n\n/* script */\nvar __vue_script__$4 = script$4;\n/* template */\n\nvar __vue_render__$4 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('thead', [_c('tr', [_vm.lineNumbers ? _c('th', {\n staticClass: \"line-numbers\"\n }) : _vm._e(), _vm._v(\" \"), _vm.selectable ? _c('th', {\n staticClass: \"vgt-checkbox-col\"\n }, [_c('input', {\n attrs: {\n \"type\": \"checkbox\"\n },\n domProps: {\n \"checked\": _vm.allSelected,\n \"indeterminate\": _vm.allSelectedIndeterminate\n },\n on: {\n \"change\": _vm.toggleSelectAll\n }\n })]) : _vm._e(), _vm._v(\" \"), _vm._l(_vm.columns, function (column, index) {\n return !column.hidden ? _c('th', {\n key: index,\n \"class\": _vm.getHeaderClasses(column, index),\n style: _vm.columnStyles[index],\n on: {\n \"click\": function click($event) {\n return _vm.sort($event, column);\n }\n }\n }, [_vm._t(\"table-column\", [_c('span', [_vm._v(_vm._s(column.label))])], {\n \"column\": column\n })], 2) : _vm._e();\n })], 2), _vm._v(\" \"), _c(\"vgt-filter-row\", {\n ref: \"filter-row\",\n tag: \"tr\",\n attrs: {\n \"global-search-enabled\": _vm.searchEnabled,\n \"line-numbers\": _vm.lineNumbers,\n \"selectable\": _vm.selectable,\n \"columns\": _vm.columns,\n \"mode\": _vm.mode,\n \"typed-columns\": _vm.typedColumns\n },\n on: {\n \"filter-changed\": _vm.filterRows\n }\n })], 1);\n};\n\nvar __vue_staticRenderFns__$4 = [];\n/* style */\n\nvar __vue_inject_styles__$4 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$4 = \"data-v-7068df50\";\n/* module identifier */\n\nvar __vue_module_identifier__$4 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$4 = false;\n/* style inject */\n\n/* style inject SSR */\n\nvar VgtTableHeader = normalizeComponent_1({\n render: __vue_render__$4,\n staticRenderFns: __vue_staticRenderFns__$4\n}, __vue_inject_styles__$4, __vue_script__$4, __vue_scope_id__$4, __vue_is_functional_template__$4, __vue_module_identifier__$4, undefined, undefined);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar script$5 = {\n name: 'VgtHeaderRow',\n props: {\n headerRow: {\n type: Object\n },\n columns: {\n type: Array\n },\n lineNumbers: {\n type: Boolean\n },\n selectable: {\n type: Boolean\n },\n collectFormatted: {\n type: Function\n },\n formattedRow: {\n type: Function\n },\n getClasses: {\n type: Function\n },\n fullColspan: {\n type: Number\n }\n },\n data: function data() {\n return {};\n },\n computed: {},\n methods: {},\n mounted: function mounted() {},\n components: {}\n};\n\n/* script */\nvar __vue_script__$5 = script$5;\n/* template */\n\nvar __vue_render__$5 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('tr', [_vm.headerRow.mode === 'span' ? _c('th', {\n staticClass: \"vgt-left-align vgt-row-header\",\n attrs: {\n \"colspan\": _vm.fullColspan\n }\n }, [_vm._t(\"table-header-row\", [_vm.headerRow.html ? _c('span', {\n domProps: {\n \"innerHTML\": _vm._s(_vm.headerRow.label)\n }\n }) : _c('span', [_vm._v(\"\\n \" + _vm._s(_vm.headerRow.label) + \"\\n \")])], {\n \"row\": _vm.headerRow\n })], 2) : _vm._e(), _vm._v(\" \"), _vm.headerRow.mode !== 'span' && _vm.lineNumbers ? _c('th', {\n staticClass: \"vgt-row-header\"\n }) : _vm._e(), _vm._v(\" \"), _vm.headerRow.mode !== 'span' && _vm.selectable ? _c('th', {\n staticClass: \"vgt-row-header\"\n }) : _vm._e(), _vm._v(\" \"), _vm._l(_vm.columns, function (column, i) {\n return _vm.headerRow.mode !== 'span' && !column.hidden ? _c('th', {\n key: i,\n staticClass: \"vgt-row-header\",\n \"class\": _vm.getClasses(i, 'td')\n }, [_vm._t(\"table-header-row\", [!column.html ? _c('span', [_vm._v(\"\\n \" + _vm._s(_vm.collectFormatted(_vm.headerRow, column, true)) + \"\\n \")]) : _vm._e(), _vm._v(\" \"), column.html ? _c('span', {\n domProps: {\n \"innerHTML\": _vm._s(_vm.collectFormatted(_vm.headerRow, column, true))\n }\n }) : _vm._e()], {\n \"row\": _vm.headerRow,\n \"column\": column,\n \"formattedRow\": _vm.formattedRow(_vm.headerRow, true)\n })], 2) : _vm._e();\n })], 2);\n};\n\nvar __vue_staticRenderFns__$5 = [];\n/* style */\n\nvar __vue_inject_styles__$5 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$5 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$5 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$5 = false;\n/* style inject */\n\n/* style inject SSR */\n\nvar VgtHeaderRow = normalizeComponent_1({\n render: __vue_render__$5,\n staticRenderFns: __vue_staticRenderFns__$5\n}, __vue_inject_styles__$5, __vue_script__$5, __vue_scope_id__$5, __vue_is_functional_template__$5, __vue_module_identifier__$5, undefined, undefined);\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nfunction toDate(argument) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}\n\nfunction toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}\n\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nfunction addMilliseconds(dirtyDate, dirtyAmount) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}\n\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\n\nfunction getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = date.getTimezoneOffset();\n date.setSeconds(0, 0);\n var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE;\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}\n\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * var result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nfunction compareAsc(dirtyDateLeft, dirtyDateRight) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `true` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nfunction isValid(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}\n\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}\n\nfunction buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\n\nvar formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nfunction buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}\n\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\n\nfunction buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = parsePatterns.findIndex(function (pattern) {\n return pattern.test(string);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(string);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}\n\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\n\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nfunction subMilliseconds(dirtyDate, dirtyAmount) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}\n\nfunction addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\n\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction getUTCDayOfYear(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}\n\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction startOfUTCISOWeek(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}\n\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction getUTCISOWeekYear(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction startOfUTCISOWeekYear(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}\n\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction getUTCISOWeek(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}\n\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction startOfUTCWeek(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}\n\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction getUTCWeekYear(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}\n\nvar MILLISECONDS_IN_WEEK$1 = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction getUTCWeek(dirtyDate, options) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK$1) + 1;\n}\n\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n /*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\n};\nvar formatters$1 = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return formatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return formatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return formatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return formatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return formatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return formatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return formatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return formatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nfunction dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\n\nvar protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nfunction isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nfunction isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nfunction throwProtectedError(token) {\n if (token === 'YYYY') {\n throw new RangeError('Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'YY') {\n throw new RangeError('Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'D') {\n throw new RangeError('Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr');\n } else if (token === 'DD') {\n throw new RangeError('Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr');\n }\n}\n\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'(.*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Su | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Su | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nfunction format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale$1 = options.locale || locale;\n var localeFirstWeekContainsDate = locale$1.options && locale$1.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale$1.options && locale$1.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale$1.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale$1.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale$1,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale$1.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters$1[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n return formatter(utcDate, substring, locale$1.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\nfunction assign$1(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (dirtyObject.hasOwnProperty(property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}\n\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction setUTCISODay(dirtyDate, dirtyDay) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}\n\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction setUTCWeek(dirtyDate, dirtyWeek, options) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}\n\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE$1 = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE$1 + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\n\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp$1 = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp$1 = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp$1 = /^'(.*?)'?$/;\nvar doubleQuoteRegExp$1 = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp$1 = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `backupDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `backupDate` which works as a context of parsing.\n *\n * `backupDate` must be passed for correct work of the function.\n * If you're not sure which `backupDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `backupDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `backupDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * toDate('2016-01-01')\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} backupDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nfunction parse(dirtyDateString, dirtyFormatString, dirtyBackupDate, dirtyOptions) {\n if (arguments.length < 3) {\n throw new TypeError('3 arguments required, but only ' + arguments.length + ' present');\n }\n\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale$1 = options.locale || locale;\n\n if (!locale$1.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale$1.options && locale$1.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale$1.options && locale$1.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyBackupDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale$1 // If timezone isn't specified, it will be set to the system timezone\n\n };\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp$1).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale$1.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp$1);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale$1.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp$1)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString$1(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).reverse();\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyBackupDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign$1(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString$1(input) {\n return input.match(escapedStringRegExp$1)[1].replace(doubleQuoteRegExp$1, \"'\");\n}\n\nvar date = lodash_clonedeep(defaultType);\ndate.isRight = true;\n\ndate.compare = function (x, y, column) {\n function cook(d) {\n if (column && column.dateInputFormat) {\n return parse(\"\".concat(d), \"\".concat(column.dateInputFormat), new Date());\n }\n\n return d;\n }\n\n x = cook(x);\n y = cook(y);\n\n if (!isValid(x)) {\n return -1;\n }\n\n if (!isValid(y)) {\n return 1;\n }\n\n return compareAsc(x, y);\n};\n\ndate.format = function (v, column) {\n if (v === undefined || v === null) return ''; // convert to date\n\n var date = parse(v, column.dateInputFormat, new Date());\n\n if (isValid(date)) {\n return format(date, column.dateOutputFormat);\n }\n\n console.error(\"Not a valid date: \\\"\".concat(v, \"\\\"\"));\n return null;\n};\n\nvar date$1 = /*#__PURE__*/Object.freeze({\n 'default': date\n});\n\nvar number = lodash_clonedeep(defaultType);\nnumber.isRight = true;\n\nnumber.filterPredicate = function (rowval, filter) {\n return number.compare(rowval, filter) === 0;\n};\n\nnumber.compare = function (x, y) {\n function cook(d) {\n // if d is null or undefined we give it the smallest\n // possible value\n if (d === undefined || d === null) return -Infinity;\n return d.indexOf('.') >= 0 ? parseFloat(d) : parseInt(d, 10);\n }\n\n x = typeof x === 'number' ? x : cook(x);\n y = typeof y === 'number' ? y : cook(y);\n if (x < y) return -1;\n if (x > y) return 1;\n return 0;\n};\n\nvar number$1 = /*#__PURE__*/Object.freeze({\n 'default': number\n});\n\nvar decimal = lodash_clonedeep(number);\n\ndecimal.format = function (v) {\n if (v === undefined || v === null) return '';\n return parseFloat(Math.round(v * 100) / 100).toFixed(2);\n};\n\nvar decimal$1 = /*#__PURE__*/Object.freeze({\n 'default': decimal\n});\n\nvar percentage = lodash_clonedeep(number);\n\npercentage.format = function (v) {\n if (v === undefined || v === null) return '';\n return \"\".concat(parseFloat(v * 100).toFixed(2), \"%\");\n};\n\nvar percentage$1 = /*#__PURE__*/Object.freeze({\n 'default': percentage\n});\n\nvar _boolean = lodash_clonedeep(defaultType);\n\n_boolean.isRight = true;\n\n_boolean.filterPredicate = function (rowval, filter) {\n return _boolean.compare(rowval, filter) === 0;\n};\n\n_boolean.compare = function (x, y) {\n function cook(d) {\n if (typeof d === 'boolean') return d ? 1 : 0;\n if (typeof d === 'string') return d === 'true' ? 1 : 0;\n return -Infinity;\n }\n\n x = cook(x);\n y = cook(y);\n if (x < y) return -1;\n if (x > y) return 1;\n return 0;\n};\n\nvar _boolean$1 = /*#__PURE__*/Object.freeze({\n 'default': _boolean\n});\n\nvar index = {\n date: date$1,\n decimal: decimal$1,\n number: number$1,\n percentage: percentage$1,\n \"boolean\": _boolean$1\n};\n\nvar dataTypes = {};\nvar coreDataTypes = index;\nlodash_foreach(Object.keys(coreDataTypes), function (key) {\n var compName = key.replace(/^\\.\\//, '').replace(/\\.js/, '');\n dataTypes[compName] = coreDataTypes[key][\"default\"];\n});\nvar script$6 = {\n name: 'vue-good-table',\n props: {\n isLoading: {\n \"default\": null,\n type: Boolean\n },\n maxHeight: {\n \"default\": null,\n type: String\n },\n fixedHeader: {\n \"default\": false,\n type: Boolean\n },\n theme: {\n \"default\": ''\n },\n mode: {\n \"default\": 'local'\n },\n // could be remote\n totalRows: {},\n // required if mode = 'remote'\n styleClass: {\n \"default\": 'vgt-table bordered'\n },\n columns: {},\n rows: {},\n lineNumbers: {\n \"default\": false\n },\n responsive: {\n \"default\": true\n },\n rtl: {\n \"default\": false\n },\n rowStyleClass: {\n \"default\": null,\n type: [Function, String]\n },\n groupOptions: {\n \"default\": function _default() {\n return {\n enabled: false\n };\n }\n },\n selectOptions: {\n \"default\": function _default() {\n return {\n enabled: false,\n selectionInfoClass: '',\n selectionText: 'rows selected',\n clearSelectionText: 'clear',\n disableSelectInfo: false\n };\n }\n },\n // sort\n sortOptions: {\n \"default\": function _default() {\n return {\n enabled: true,\n initialSortBy: {}\n };\n }\n },\n // pagination\n paginationOptions: {\n \"default\": function _default() {\n return {\n enabled: false,\n perPage: 10,\n perPageDropdown: null,\n position: 'bottom',\n dropdownAllowAll: true,\n mode: 'records' // or pages\n\n };\n }\n },\n searchOptions: {\n \"default\": function _default() {\n return {\n enabled: false,\n trigger: null,\n externalQuery: null,\n searchFn: null,\n placeholder: 'Search Table'\n };\n }\n }\n },\n data: function data() {\n return {\n // loading state for remote mode\n tableLoading: false,\n // text options\n nextText: 'Next',\n prevText: 'Prev',\n rowsPerPageText: 'Rows per page',\n ofText: 'of',\n allText: 'All',\n pageText: 'page',\n // internal select options\n selectable: false,\n selectOnCheckboxOnly: false,\n selectAllByPage: true,\n disableSelectInfo: false,\n selectionInfoClass: '',\n selectionText: 'rows selected',\n clearSelectionText: 'clear',\n // internal sort options\n sortable: true,\n defaultSortBy: null,\n // internal search options\n searchEnabled: false,\n searchTrigger: null,\n externalSearchQuery: null,\n searchFn: null,\n searchPlaceholder: 'Search Table',\n searchSkipDiacritics: false,\n // internal pagination options\n perPage: null,\n paginate: false,\n paginateOnTop: false,\n paginateOnBottom: true,\n customRowsPerPageDropdown: [],\n paginateDropdownAllowAll: true,\n paginationMode: 'records',\n currentPage: 1,\n currentPerPage: 10,\n sorts: [],\n globalSearchTerm: '',\n filteredRows: [],\n columnFilters: {},\n forceSearch: false,\n sortChanged: false,\n dataTypes: dataTypes || {}\n };\n },\n watch: {\n rows: {\n handler: function handler() {\n this.$emit('update:isLoading', false);\n this.filterRows(this.columnFilters, false);\n },\n deep: true,\n immediate: true\n },\n selectOptions: {\n handler: function handler() {\n this.initializeSelect();\n },\n deep: true,\n immediate: true\n },\n paginationOptions: {\n handler: function handler(newValue, oldValue) {\n this.initializePagination();\n },\n deep: true,\n immediate: true\n },\n searchOptions: {\n handler: function handler() {\n if (this.searchOptions.externalQuery !== undefined && this.searchOptions.externalQuery !== this.searchTerm) {\n //* we need to set searchTerm to externalQuery first.\n this.externalSearchQuery = this.searchOptions.externalQuery;\n this.handleSearch();\n }\n\n this.initializeSearch();\n },\n deep: true,\n immediate: true\n },\n sortOptions: {\n handler: function handler(newValue, oldValue) {\n // if (!isEqual(newValue, oldValue)) {\n this.initializeSort(); // }\n },\n deep: true\n },\n selectedRows: function selectedRows(newValue, oldValue) {\n if (!lodash_isequal(newValue, oldValue)) {\n this.$emit('on-selected-rows-change', {\n selectedRows: this.selectedRows\n });\n }\n }\n },\n computed: {\n hasFooterSlot: function hasFooterSlot() {\n return !!this.$slots['table-actions-bottom'];\n },\n wrapperStyles: function wrapperStyles() {\n return {\n overflow: 'scroll-y',\n maxHeight: this.maxHeight ? this.maxHeight : 'auto'\n };\n },\n hasHeaderRowTemplate: function hasHeaderRowTemplate() {\n return !!this.$slots['table-header-row'] || !!this.$scopedSlots['table-header-row'];\n },\n showEmptySlot: function showEmptySlot() {\n if (!this.paginated.length) return true;\n\n if (this.paginated[0].label === 'no groups' && !this.paginated[0].children.length) {\n return true;\n }\n\n return false;\n },\n allSelected: function allSelected() {\n return this.selectedRowCount > 0 && (this.selectAllByPage && this.selectedPageRowsCount === this.totalPageRowCount || !this.selectAllByPage && this.selectedRowCount === this.totalRowCount);\n },\n allSelectedIndeterminate: function allSelectedIndeterminate() {\n return !this.allSelected && (this.selectAllByPage && this.selectedPageRowsCount > 0 || !this.selectAllByPage && this.selectedRowCount > 0);\n },\n selectionInfo: function selectionInfo() {\n return \"\".concat(this.selectedRowCount, \" \").concat(this.selectionText);\n },\n selectedRowCount: function selectedRowCount() {\n return this.selectedRows.length;\n },\n selectedPageRowsCount: function selectedPageRowsCount() {\n return this.selectedPageRows.length;\n },\n selectedPageRows: function selectedPageRows() {\n var selectedRows = [];\n lodash_foreach(this.paginated, function (headerRow) {\n lodash_foreach(headerRow.children, function (row) {\n if (row.vgtSelected) {\n selectedRows.push(row);\n }\n });\n });\n return selectedRows;\n },\n selectedRows: function selectedRows() {\n var selectedRows = [];\n lodash_foreach(this.processedRows, function (headerRow) {\n lodash_foreach(headerRow.children, function (row) {\n if (row.vgtSelected) {\n selectedRows.push(row);\n }\n });\n });\n return selectedRows.sort(function (r1, r2) {\n return r1.originalIndex - r2.originalIndex;\n });\n },\n fullColspan: function fullColspan() {\n var fullColspan = 0;\n\n for (var i = 0; i < this.columns.length; i += 1) {\n if (!this.columns[i].hidden) {\n fullColspan += 1;\n }\n }\n\n if (this.lineNumbers) fullColspan++;\n if (this.selectable) fullColspan++;\n return fullColspan;\n },\n groupHeaderOnTop: function groupHeaderOnTop() {\n if (this.groupOptions && this.groupOptions.enabled && this.groupOptions.headerPosition && this.groupOptions.headerPosition === 'bottom') {\n return false;\n }\n\n if (this.groupOptions && this.groupOptions.enabled) return true; // will only get here if groupOptions is false\n\n return false;\n },\n groupHeaderOnBottom: function groupHeaderOnBottom() {\n if (this.groupOptions && this.groupOptions.enabled && this.groupOptions.headerPosition && this.groupOptions.headerPosition === 'bottom') {\n return true;\n }\n\n return false;\n },\n totalRowCount: function totalRowCount() {\n var total = 0;\n lodash_foreach(this.processedRows, function (headerRow) {\n total += headerRow.children ? headerRow.children.length : 0;\n });\n return total;\n },\n totalPageRowCount: function totalPageRowCount() {\n var total = 0;\n lodash_foreach(this.paginated, function (headerRow) {\n total += headerRow.children ? headerRow.children.length : 0;\n });\n return total;\n },\n wrapStyleClasses: function wrapStyleClasses() {\n var classes = 'vgt-wrap';\n if (this.rtl) classes += ' rtl';\n classes += \" \".concat(this.theme);\n return classes;\n },\n tableStyleClasses: function tableStyleClasses() {\n var classes = this.styleClass;\n classes += \" \".concat(this.theme);\n return classes;\n },\n searchTerm: function searchTerm() {\n return this.externalSearchQuery != null ? this.externalSearchQuery : this.globalSearchTerm;\n },\n //\n globalSearchAllowed: function globalSearchAllowed() {\n if (this.searchEnabled && !!this.globalSearchTerm && this.searchTrigger !== 'enter') {\n return true;\n }\n\n if (this.externalSearchQuery != null && this.searchTrigger !== 'enter') {\n return true;\n }\n\n if (this.forceSearch) {\n this.forceSearch = false;\n return true;\n }\n\n return false;\n },\n // this is done everytime sortColumn\n // or sort type changes\n //----------------------------------------\n processedRows: function processedRows() {\n var _this = this;\n\n // we only process rows when mode is local\n var computedRows = this.filteredRows;\n\n if (this.mode === 'remote') {\n return computedRows;\n } // take care of the global filter here also\n\n\n if (this.globalSearchAllowed) {\n // here also we need to de-construct and then\n // re-construct the rows.\n var allRows = [];\n lodash_foreach(this.filteredRows, function (headerRow) {\n allRows.push.apply(allRows, _toConsumableArray(headerRow.children));\n });\n var filteredRows = [];\n lodash_foreach(allRows, function (row) {\n lodash_foreach(_this.columns, function (col) {\n // if col does not have search disabled,\n if (!col.globalSearchDisabled) {\n // if a search function is provided,\n // use that for searching, otherwise,\n // use the default search behavior\n if (_this.searchFn) {\n var foundMatch = _this.searchFn(row, col, _this.collectFormatted(row, col), _this.searchTerm);\n\n if (foundMatch) {\n filteredRows.push(row);\n return false; // break the loop\n }\n } else {\n // comparison\n var matched = defaultType.filterPredicate(_this.collectFormatted(row, col), _this.searchTerm, _this.searchSkipDiacritics);\n\n if (matched) {\n filteredRows.push(row);\n return false; // break loop\n }\n }\n }\n });\n }); // this is where we emit on search\n\n this.$emit('on-search', {\n searchTerm: this.searchTerm,\n rowCount: filteredRows.length\n }); // here we need to reconstruct the nested structure\n // of rows\n\n computedRows = [];\n lodash_foreach(this.filteredRows, function (headerRow) {\n var i = headerRow.vgt_header_id;\n var children = lodash_filter(filteredRows, ['vgt_id', i]);\n\n if (children.length) {\n var newHeaderRow = lodash_clonedeep(headerRow);\n newHeaderRow.children = children;\n computedRows.push(newHeaderRow);\n }\n });\n }\n\n if (this.sorts.length) {\n //* we need to sort\n computedRows.forEach(function (cRows) {\n cRows.children.sort(function (xRow, yRow) {\n //* we need to get column for each sort\n var sortValue;\n\n for (var i = 0; i < _this.sorts.length; i += 1) {\n var column = _this.getColumnForField(_this.sorts[i].field);\n\n var xvalue = _this.collect(xRow, _this.sorts[i].field);\n\n var yvalue = _this.collect(yRow, _this.sorts[i].field); //* if a custom sort function has been provided we use that\n\n\n var sortFn = column.sortFn;\n\n if (sortFn && typeof sortFn === 'function') {\n sortValue = sortValue || sortFn(xvalue, yvalue, column, xRow, yRow) * (_this.sorts[i].type === 'desc' ? -1 : 1);\n } else {\n //* else we use our own sort\n sortValue = sortValue || column.typeDef.compare(xvalue, yvalue, column) * (_this.sorts[i].type === 'desc' ? -1 : 1);\n }\n }\n\n return sortValue;\n });\n });\n } // if the filtering is event based, we need to maintain filter\n // rows\n\n\n if (this.searchTrigger === 'enter') {\n this.filteredRows = computedRows;\n }\n\n return computedRows;\n },\n paginated: function paginated() {\n if (!this.processedRows.length) return [];\n\n if (this.mode === 'remote') {\n return this.processedRows;\n } // for every group, extract the child rows\n // to cater to paging\n\n\n var paginatedRows = [];\n lodash_foreach(this.processedRows, function (childRows) {\n var _paginatedRows;\n\n (_paginatedRows = paginatedRows).push.apply(_paginatedRows, _toConsumableArray(childRows.children));\n });\n\n if (this.paginate) {\n var pageStart = (this.currentPage - 1) * this.currentPerPage; // in case of filtering we might be on a page that is\n // not relevant anymore\n // also, if setting to all, current page will not be valid\n\n if (pageStart >= paginatedRows.length || this.currentPerPage === -1) {\n this.currentPage = 1;\n pageStart = 0;\n } // calculate page end now\n\n\n var pageEnd = paginatedRows.length + 1; // if the setting is set to 'all'\n\n if (this.currentPerPage !== -1) {\n pageEnd = this.currentPage * this.currentPerPage;\n }\n\n paginatedRows = paginatedRows.slice(pageStart, pageEnd);\n } // reconstruct paginated rows here\n\n\n var reconstructedRows = [];\n lodash_foreach(this.processedRows, function (headerRow) {\n var i = headerRow.vgt_header_id;\n var children = lodash_filter(paginatedRows, ['vgt_id', i]);\n\n if (children.length) {\n var newHeaderRow = lodash_clonedeep(headerRow);\n newHeaderRow.children = children;\n reconstructedRows.push(newHeaderRow);\n }\n });\n return reconstructedRows;\n },\n originalRows: function originalRows() {\n var rows = lodash_clonedeep(this.rows);\n var nestedRows = [];\n\n if (!this.groupOptions.enabled) {\n nestedRows = this.handleGrouped([{\n label: 'no groups',\n children: rows\n }]);\n } else {\n nestedRows = this.handleGrouped(rows);\n } // we need to preserve the original index of\n // rows so lets do that\n\n\n var index = 0;\n lodash_foreach(nestedRows, function (headerRow, i) {\n lodash_foreach(headerRow.children, function (row, j) {\n row.originalIndex = index++;\n });\n });\n return nestedRows;\n },\n typedColumns: function typedColumns() {\n var columns = lodash_assign(this.columns, []);\n\n for (var i = 0; i < this.columns.length; i++) {\n var column = columns[i];\n column.typeDef = this.dataTypes[column.type] || defaultType;\n }\n\n return columns;\n },\n hasRowClickListener: function hasRowClickListener() {\n return this.$listeners && this.$listeners['on-row-click'];\n }\n },\n methods: {\n getColumnForField: function getColumnForField(field) {\n for (var i = 0; i < this.typedColumns.length; i += 1) {\n if (this.typedColumns[i].field === field) return this.typedColumns[i];\n }\n },\n handleSearch: function handleSearch() {\n this.resetTable(); // for remote mode, we need to emit on-search\n\n if (this.mode === 'remote') {\n this.$emit('on-search', {\n searchTerm: this.searchTerm\n });\n }\n },\n reset: function reset() {\n this.initializeSort();\n this.changePage(1);\n this.$refs['table-header-primary'].reset(true);\n\n if (this.$refs['table-header-secondary']) {\n this.$refs['table-header-secondary'].reset(true);\n }\n },\n emitSelectedRows: function emitSelectedRows() {\n this.$emit('on-select-all', {\n selected: this.selectedRowCount === this.totalRowCount,\n selectedRows: this.selectedRows\n });\n },\n unselectAllInternal: function unselectAllInternal(forceAll) {\n var _this2 = this;\n\n var rows = this.selectAllByPage && !forceAll ? this.paginated : this.filteredRows;\n lodash_foreach(rows, function (headerRow, i) {\n lodash_foreach(headerRow.children, function (row, j) {\n _this2.$set(row, 'vgtSelected', false);\n });\n });\n this.emitSelectedRows();\n },\n toggleSelectAll: function toggleSelectAll() {\n var _this3 = this;\n\n if (this.allSelected) {\n this.unselectAllInternal();\n return;\n }\n\n var rows = this.selectAllByPage ? this.paginated : this.filteredRows;\n lodash_foreach(rows, function (headerRow) {\n lodash_foreach(headerRow.children, function (row) {\n _this3.$set(row, 'vgtSelected', true);\n });\n });\n this.emitSelectedRows();\n },\n changePage: function changePage(value) {\n if (this.paginationOptions.enabled) {\n var paginationWidget = this.$refs.paginationBottom;\n\n if (this.paginationOptions.position === 'top') {\n paginationWidget = this.$refs.paginationTop;\n }\n\n if (paginationWidget) {\n paginationWidget.currentPage = value; // we also need to set the currentPage\n // for table.\n\n this.currentPage = value;\n }\n }\n },\n pageChangedEvent: function pageChangedEvent() {\n return {\n currentPage: this.currentPage,\n currentPerPage: this.currentPerPage,\n total: Math.floor(this.totalRowCount / this.currentPerPage)\n };\n },\n pageChanged: function pageChanged(pagination) {\n this.currentPage = pagination.currentPage;\n var pageChangedEvent = this.pageChangedEvent();\n pageChangedEvent.prevPage = pagination.prevPage;\n this.$emit('on-page-change', pageChangedEvent);\n\n if (this.mode === 'remote') {\n this.$emit('update:isLoading', true);\n }\n },\n perPageChanged: function perPageChanged(pagination) {\n this.currentPerPage = pagination.currentPerPage; //* update perPage also\n\n var perPageChangedEvent = this.pageChangedEvent();\n this.$emit('on-per-page-change', perPageChangedEvent);\n\n if (this.mode === 'remote') {\n this.$emit('update:isLoading', true);\n }\n },\n changeSort: function changeSort(sorts) {\n this.sorts = sorts;\n this.$emit('on-sort-change', sorts); // every time we change sort we need to reset to page 1\n\n this.changePage(1); // if the mode is remote, we don't need to do anything\n // after this. just set table loading to true\n\n if (this.mode === 'remote') {\n this.$emit('update:isLoading', true);\n return;\n }\n\n this.sortChanged = true;\n },\n // checkbox click should always do the following\n onCheckboxClicked: function onCheckboxClicked(row, index, event) {\n this.$set(row, 'vgtSelected', !row.vgtSelected);\n this.$emit('on-row-click', {\n row: row,\n pageIndex: index,\n selected: !!row.vgtSelected,\n event: event\n });\n },\n onRowDoubleClicked: function onRowDoubleClicked(row, index, event) {\n this.$emit('on-row-dblclick', {\n row: row,\n pageIndex: index,\n selected: !!row.vgtSelected,\n event: event\n });\n },\n onRowClicked: function onRowClicked(row, index, event) {\n if (this.selectable && !this.selectOnCheckboxOnly) {\n this.$set(row, 'vgtSelected', !row.vgtSelected);\n }\n\n this.$emit('on-row-click', {\n row: row,\n pageIndex: index,\n selected: !!row.vgtSelected,\n event: event\n });\n },\n onRowAuxClicked: function onRowAuxClicked(row, index, event) {\n this.$emit('on-row-aux-click', {\n row: row,\n pageIndex: index,\n selected: !!row.vgtSelected,\n event: event\n });\n },\n onCellClicked: function onCellClicked(row, column, rowIndex, event) {\n this.$emit('on-cell-click', {\n row: row,\n column: column,\n rowIndex: rowIndex,\n event: event\n });\n },\n onMouseenter: function onMouseenter(row, index) {\n this.$emit('on-row-mouseenter', {\n row: row,\n pageIndex: index\n });\n },\n onMouseleave: function onMouseleave(row, index) {\n this.$emit('on-row-mouseleave', {\n row: row,\n pageIndex: index\n });\n },\n searchTableOnEnter: function searchTableOnEnter() {\n if (this.searchTrigger === 'enter') {\n this.handleSearch(); // we reset the filteredRows here because\n // we want to search across everything.\n\n this.filteredRows = lodash_clonedeep(this.originalRows);\n this.forceSearch = true;\n this.sortChanged = true;\n }\n },\n searchTableOnKeyUp: function searchTableOnKeyUp() {\n if (this.searchTrigger !== 'enter') {\n this.handleSearch();\n }\n },\n resetTable: function resetTable() {\n this.unselectAllInternal(true); // every time we searchTable\n\n this.changePage(1);\n },\n // field can be:\n // 1. function\n // 2. regular property - ex: 'prop'\n // 3. nested property path - ex: 'nested.prop'\n collect: function collect(obj, field) {\n // utility function to get nested property\n function dig(obj, selector) {\n var result = obj;\n var splitter = selector.split('.');\n\n for (var i = 0; i < splitter.length; i++) {\n if (typeof result === 'undefined' || result === null) {\n return undefined;\n }\n\n result = result[splitter[i]];\n }\n\n return result;\n }\n\n if (typeof field === 'function') return field(obj);\n if (typeof field === 'string') return dig(obj, field);\n return undefined;\n },\n collectFormatted: function collectFormatted(obj, column) {\n var headerRow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var value;\n\n if (headerRow && column.headerField) {\n value = this.collect(obj, column.headerField);\n } else {\n value = this.collect(obj, column.field);\n }\n\n if (value === undefined) return ''; // if user has supplied custom formatter,\n // use that here\n\n if (column.formatFn && typeof column.formatFn === 'function') {\n return column.formatFn(value);\n } // lets format the resultant data\n\n\n var type = column.typeDef; // this will only happen if we try to collect formatted\n // before types have been initialized. for example: on\n // load when external query is specified.\n\n if (!type) {\n type = this.dataTypes[column.type] || defaultType;\n }\n\n return type.format(value, column);\n },\n formattedRow: function formattedRow(row) {\n var isHeaderRow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var formattedRow = {};\n\n for (var i = 0; i < this.typedColumns.length; i++) {\n var col = this.typedColumns[i]; // what happens if field is\n\n if (col.field) {\n formattedRow[col.field] = this.collectFormatted(row, col, isHeaderRow);\n }\n }\n\n return formattedRow;\n },\n // Check if a column is sortable.\n isSortableColumn: function isSortableColumn(index) {\n var sortable = this.columns[index].sortable;\n var isSortable = typeof sortable === 'boolean' ? sortable : this.sortable;\n return isSortable;\n },\n // Get classes for the given column index & element.\n getClasses: function getClasses(index, element, row) {\n var _this$typedColumns$in = this.typedColumns[index],\n typeDef = _this$typedColumns$in.typeDef,\n custom = _this$typedColumns$in[\"\".concat(element, \"Class\")];\n\n var isRight = typeDef.isRight;\n if (this.rtl) isRight = true;\n var classes = {\n 'vgt-right-align': isRight,\n 'vgt-left-align': !isRight\n }; // for td we need to check if value is\n // a function.\n\n if (typeof custom === 'function') {\n classes[custom(row)] = true;\n } else if (typeof custom === 'string') {\n classes[custom] = true;\n }\n\n return classes;\n },\n // method to filter rows\n filterRows: function filterRows(columnFilters) {\n var _this4 = this;\n\n var fromFilter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n // if (!this.rows.length) return;\n // this is invoked either as a result of changing filters\n // or as a result of modifying rows.\n this.columnFilters = columnFilters;\n var computedRows = lodash_clonedeep(this.originalRows); // do we have a filter to care about?\n // if not we don't need to do anything\n\n if (this.columnFilters && Object.keys(this.columnFilters).length) {\n // every time we filter rows, we need to set current page\n // to 1\n // if the mode is remote, we only need to reset, if this is\n // being called from filter, not when rows are changing\n if (this.mode !== 'remote' || fromFilter) {\n this.changePage(1);\n } // we need to emit an event and that's that.\n // but this only needs to be invoked if filter is changing\n // not when row object is modified.\n\n\n if (fromFilter) {\n this.$emit('on-column-filter', {\n columnFilters: this.columnFilters\n });\n } // if mode is remote, we don't do any filtering here.\n\n\n if (this.mode === 'remote') {\n if (fromFilter) {\n this.$emit('update:isLoading', true);\n } else {\n // if remote filtering has already been taken care of.\n this.filteredRows = computedRows;\n }\n\n return;\n }\n\n var _loop = function _loop(i) {\n var col = _this4.typedColumns[i];\n\n if (_this4.columnFilters[col.field]) {\n computedRows = lodash_foreach(computedRows, function (headerRow) {\n var newChildren = headerRow.children.filter(function (row) {\n // If column has a custom filter, use that.\n if (col.filterOptions && typeof col.filterOptions.filterFn === 'function') {\n return col.filterOptions.filterFn(_this4.collect(row, col.field), _this4.columnFilters[col.field]);\n } // Otherwise Use default filters\n\n\n var typeDef = col.typeDef;\n return typeDef.filterPredicate(_this4.collect(row, col.field), _this4.columnFilters[col.field]);\n }); // should we remove the header?\n\n headerRow.children = newChildren;\n });\n }\n };\n\n for (var i = 0; i < this.typedColumns.length; i++) {\n _loop(i);\n }\n }\n\n this.filteredRows = computedRows;\n },\n getCurrentIndex: function getCurrentIndex(index) {\n return (this.currentPage - 1) * this.currentPerPage + index + 1;\n },\n getRowStyleClass: function getRowStyleClass(row) {\n var classes = '';\n if (this.hasRowClickListener) classes += 'clickable';\n var rowStyleClasses;\n\n if (typeof this.rowStyleClass === 'function') {\n rowStyleClasses = this.rowStyleClass(row);\n } else {\n rowStyleClasses = this.rowStyleClass;\n }\n\n if (rowStyleClasses) {\n classes += \" \".concat(rowStyleClasses);\n }\n\n return classes;\n },\n handleGrouped: function handleGrouped(originalRows) {\n lodash_foreach(originalRows, function (headerRow, i) {\n headerRow.vgt_header_id = i;\n lodash_foreach(headerRow.children, function (childRow) {\n childRow.vgt_id = i;\n });\n });\n return originalRows;\n },\n initializePagination: function initializePagination() {\n var _this5 = this;\n\n var _this$paginationOptio = this.paginationOptions,\n enabled = _this$paginationOptio.enabled,\n perPage = _this$paginationOptio.perPage,\n position = _this$paginationOptio.position,\n perPageDropdown = _this$paginationOptio.perPageDropdown,\n dropdownAllowAll = _this$paginationOptio.dropdownAllowAll,\n nextLabel = _this$paginationOptio.nextLabel,\n prevLabel = _this$paginationOptio.prevLabel,\n rowsPerPageLabel = _this$paginationOptio.rowsPerPageLabel,\n ofLabel = _this$paginationOptio.ofLabel,\n pageLabel = _this$paginationOptio.pageLabel,\n allLabel = _this$paginationOptio.allLabel,\n setCurrentPage = _this$paginationOptio.setCurrentPage,\n mode = _this$paginationOptio.mode;\n\n if (typeof enabled === 'boolean') {\n this.paginate = enabled;\n }\n\n if (typeof perPage === 'number') {\n this.perPage = perPage;\n }\n\n if (position === 'top') {\n this.paginateOnTop = true; // default is false\n\n this.paginateOnBottom = false; // default is true\n } else if (position === 'both') {\n this.paginateOnTop = true;\n this.paginateOnBottom = true;\n }\n\n if (Array.isArray(perPageDropdown) && perPageDropdown.length) {\n this.customRowsPerPageDropdown = perPageDropdown;\n\n if (!this.perPage) {\n var _perPageDropdown = _slicedToArray(perPageDropdown, 1);\n\n this.perPage = _perPageDropdown[0];\n }\n }\n\n if (typeof dropdownAllowAll === 'boolean') {\n this.paginateDropdownAllowAll = dropdownAllowAll;\n }\n\n if (typeof mode === 'string') {\n this.paginationMode = mode;\n }\n\n if (typeof nextLabel === 'string') {\n this.nextText = nextLabel;\n }\n\n if (typeof prevLabel === 'string') {\n this.prevText = prevLabel;\n }\n\n if (typeof rowsPerPageLabel === 'string') {\n this.rowsPerPageText = rowsPerPageLabel;\n }\n\n if (typeof ofLabel === 'string') {\n this.ofText = ofLabel;\n }\n\n if (typeof pageLabel === 'string') {\n this.pageText = pageLabel;\n }\n\n if (typeof allLabel === 'string') {\n this.allText = allLabel;\n }\n\n if (typeof setCurrentPage === 'number') {\n setTimeout(function () {\n _this5.changePage(setCurrentPage);\n }, 500);\n }\n },\n initializeSearch: function initializeSearch() {\n var _this$searchOptions = this.searchOptions,\n enabled = _this$searchOptions.enabled,\n trigger = _this$searchOptions.trigger,\n externalQuery = _this$searchOptions.externalQuery,\n searchFn = _this$searchOptions.searchFn,\n placeholder = _this$searchOptions.placeholder,\n skipDiacritics = _this$searchOptions.skipDiacritics;\n\n if (typeof enabled === 'boolean') {\n this.searchEnabled = enabled;\n }\n\n if (trigger === 'enter') {\n this.searchTrigger = trigger;\n }\n\n if (typeof externalQuery === 'string') {\n this.externalSearchQuery = externalQuery;\n }\n\n if (typeof searchFn === 'function') {\n this.searchFn = searchFn;\n }\n\n if (typeof placeholder === 'string') {\n this.searchPlaceholder = placeholder;\n }\n\n if (typeof skipDiacritics === 'boolean') {\n this.searchSkipDiacritics = skipDiacritics;\n }\n },\n initializeSort: function initializeSort() {\n var _this$sortOptions = this.sortOptions,\n enabled = _this$sortOptions.enabled,\n initialSortBy = _this$sortOptions.initialSortBy;\n\n if (typeof enabled === 'boolean') {\n this.sortable = enabled;\n } //* initialSortBy can be an array or an object\n\n\n if (_typeof(initialSortBy) === 'object') {\n var ref = this.fixedHeader ? this.$refs['table-header-secondary'] : this.$refs['table-header-primary'];\n\n if (Array.isArray(initialSortBy)) {\n ref.setInitialSort(initialSortBy);\n } else {\n var hasField = Object.prototype.hasOwnProperty.call(initialSortBy, 'field');\n if (hasField) ref.setInitialSort([initialSortBy]);\n }\n }\n },\n initializeSelect: function initializeSelect() {\n var _this$selectOptions = this.selectOptions,\n enabled = _this$selectOptions.enabled,\n selectionInfoClass = _this$selectOptions.selectionInfoClass,\n selectionText = _this$selectOptions.selectionText,\n clearSelectionText = _this$selectOptions.clearSelectionText,\n selectOnCheckboxOnly = _this$selectOptions.selectOnCheckboxOnly,\n selectAllByPage = _this$selectOptions.selectAllByPage,\n disableSelectInfo = _this$selectOptions.disableSelectInfo;\n\n if (typeof enabled === 'boolean') {\n this.selectable = enabled;\n }\n\n if (typeof selectOnCheckboxOnly === 'boolean') {\n this.selectOnCheckboxOnly = selectOnCheckboxOnly;\n }\n\n if (typeof selectAllByPage === 'boolean') {\n this.selectAllByPage = selectAllByPage;\n }\n\n if (typeof disableSelectInfo === 'boolean') {\n this.disableSelectInfo = disableSelectInfo;\n }\n\n if (typeof selectionInfoClass === 'string') {\n this.selectionInfoClass = selectionInfoClass;\n }\n\n if (typeof selectionText === 'string') {\n this.selectionText = selectionText;\n }\n\n if (typeof clearSelectionText === 'string') {\n this.clearSelectionText = clearSelectionText;\n }\n }\n },\n mounted: function mounted() {\n if (this.perPage) {\n this.currentPerPage = this.perPage;\n }\n\n this.initializeSort();\n },\n components: {\n 'vgt-pagination': VgtPagination,\n 'vgt-global-search': VgtGlobalSearch,\n 'vgt-header-row': VgtHeaderRow,\n 'vgt-table-header': VgtTableHeader\n }\n};\n\n/* script */\nvar __vue_script__$6 = script$6;\n/* template */\n\nvar __vue_render__$6 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n \"class\": _vm.wrapStyleClasses\n }, [_vm.isLoading ? _c('div', {\n staticClass: \"vgt-loading vgt-center-align\"\n }, [_vm._t(\"loadingContent\", [_c('span', {\n staticClass: \"vgt-loading__content\"\n }, [_vm._v(\"\\n Loading...\\n \")])])], 2) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"vgt-inner-wrap\",\n \"class\": {\n 'is-loading': _vm.isLoading\n }\n }, [_vm.paginate && _vm.paginateOnTop ? _vm._t(\"pagination-top\", [_c('vgt-pagination', {\n ref: \"paginationTop\",\n attrs: {\n \"perPage\": _vm.perPage,\n \"rtl\": _vm.rtl,\n \"total\": _vm.totalRows || _vm.totalRowCount,\n \"mode\": _vm.paginationMode,\n \"nextText\": _vm.nextText,\n \"prevText\": _vm.prevText,\n \"rowsPerPageText\": _vm.rowsPerPageText,\n \"customRowsPerPageDropdown\": _vm.customRowsPerPageDropdown,\n \"paginateDropdownAllowAll\": _vm.paginateDropdownAllowAll,\n \"ofText\": _vm.ofText,\n \"pageText\": _vm.pageText,\n \"allText\": _vm.allText\n },\n on: {\n \"page-changed\": _vm.pageChanged,\n \"per-page-changed\": _vm.perPageChanged\n }\n })], {\n \"pageChanged\": _vm.pageChanged,\n \"perPageChanged\": _vm.perPageChanged,\n \"total\": _vm.totalRows || _vm.totalRowCount\n }) : _vm._e(), _vm._v(\" \"), _c('vgt-global-search', {\n attrs: {\n \"search-enabled\": _vm.searchEnabled && _vm.externalSearchQuery == null,\n \"global-search-placeholder\": _vm.searchPlaceholder\n },\n on: {\n \"on-keyup\": _vm.searchTableOnKeyUp,\n \"on-enter\": _vm.searchTableOnEnter\n },\n model: {\n value: _vm.globalSearchTerm,\n callback: function callback($$v) {\n _vm.globalSearchTerm = $$v;\n },\n expression: \"globalSearchTerm\"\n }\n }, [_c('template', {\n slot: \"internal-table-actions\"\n }, [_vm._t(\"table-actions\")], 2)], 2), _vm._v(\" \"), _vm.selectedRowCount && !_vm.disableSelectInfo ? _c('div', {\n staticClass: \"vgt-selection-info-row clearfix\",\n \"class\": _vm.selectionInfoClass\n }, [_vm._v(\"\\n \" + _vm._s(_vm.selectionInfo) + \"\\n \"), _c('a', {\n attrs: {\n \"href\": \"\"\n },\n on: {\n \"click\": function click($event) {\n $event.preventDefault();\n return _vm.unselectAllInternal(true);\n }\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.clearSelectionText) + \"\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"vgt-selection-info-row__actions vgt-pull-right\"\n }, [_vm._t(\"selected-row-actions\")], 2)]) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"vgt-fixed-header\"\n }, [_vm.fixedHeader ? _c('table', {\n \"class\": _vm.tableStyleClasses\n }, [_c(\"vgt-table-header\", {\n ref: \"table-header-secondary\",\n tag: \"thead\",\n attrs: {\n \"columns\": _vm.columns,\n \"line-numbers\": _vm.lineNumbers,\n \"selectable\": _vm.selectable,\n \"all-selected\": _vm.allSelected,\n \"all-selected-indeterminate\": _vm.allSelectedIndeterminate,\n \"mode\": _vm.mode,\n \"sortable\": _vm.sortable,\n \"typed-columns\": _vm.typedColumns,\n \"getClasses\": _vm.getClasses,\n \"searchEnabled\": _vm.searchEnabled,\n \"paginated\": _vm.paginated,\n \"table-ref\": _vm.$refs.table\n },\n on: {\n \"on-toggle-select-all\": _vm.toggleSelectAll,\n \"on-sort-change\": _vm.changeSort,\n \"filter-changed\": _vm.filterRows\n },\n scopedSlots: _vm._u([{\n key: \"table-column\",\n fn: function fn(props) {\n return [_vm._t(\"table-column\", [_c('span', [_vm._v(_vm._s(props.column.label))])], {\n \"column\": props.column\n })];\n }\n }], null, true)\n })], 1) : _vm._e()]), _vm._v(\" \"), _c('div', {\n \"class\": {\n 'vgt-responsive': _vm.responsive\n },\n style: _vm.wrapperStyles\n }, [_c('table', {\n ref: \"table\",\n \"class\": _vm.tableStyleClasses\n }, [_c(\"vgt-table-header\", {\n ref: \"table-header-primary\",\n tag: \"thead\",\n attrs: {\n \"columns\": _vm.columns,\n \"line-numbers\": _vm.lineNumbers,\n \"selectable\": _vm.selectable,\n \"all-selected\": _vm.allSelected,\n \"all-selected-indeterminate\": _vm.allSelectedIndeterminate,\n \"mode\": _vm.mode,\n \"sortable\": _vm.sortable,\n \"typed-columns\": _vm.typedColumns,\n \"getClasses\": _vm.getClasses,\n \"searchEnabled\": _vm.searchEnabled\n },\n on: {\n \"on-toggle-select-all\": _vm.toggleSelectAll,\n \"on-sort-change\": _vm.changeSort,\n \"filter-changed\": _vm.filterRows\n },\n scopedSlots: _vm._u([{\n key: \"table-column\",\n fn: function fn(props) {\n return [_vm._t(\"table-column\", [_c('span', [_vm._v(_vm._s(props.column.label))])], {\n \"column\": props.column\n })];\n }\n }], null, true)\n }), _vm._v(\" \"), _vm._l(_vm.paginated, function (headerRow, index) {\n return _c('tbody', {\n key: index\n }, [_vm.groupHeaderOnTop ? _c('vgt-header-row', {\n attrs: {\n \"header-row\": headerRow,\n \"columns\": _vm.columns,\n \"line-numbers\": _vm.lineNumbers,\n \"selectable\": _vm.selectable,\n \"collect-formatted\": _vm.collectFormatted,\n \"formatted-row\": _vm.formattedRow,\n \"get-classes\": _vm.getClasses,\n \"full-colspan\": _vm.fullColspan\n },\n scopedSlots: _vm._u([{\n key: \"table-header-row\",\n fn: function fn(props) {\n return _vm.hasHeaderRowTemplate ? [_vm._t(\"table-header-row\", null, {\n \"column\": props.column,\n \"formattedRow\": props.formattedRow,\n \"row\": props.row\n })] : undefined;\n }\n }], null, true)\n }) : _vm._e(), _vm._v(\" \"), _vm._l(headerRow.children, function (row, index) {\n return _c('tr', {\n key: row.originalIndex,\n \"class\": _vm.getRowStyleClass(row),\n on: {\n \"mouseenter\": function mouseenter($event) {\n return _vm.onMouseenter(row, index);\n },\n \"mouseleave\": function mouseleave($event) {\n return _vm.onMouseleave(row, index);\n },\n \"dblclick\": function dblclick($event) {\n return _vm.onRowDoubleClicked(row, index, $event);\n },\n \"click\": function click($event) {\n return _vm.onRowClicked(row, index, $event);\n },\n \"auxclick\": function auxclick($event) {\n return _vm.onRowAuxClicked(row, index, $event);\n }\n }\n }, [_vm.lineNumbers ? _c('th', {\n staticClass: \"line-numbers\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.getCurrentIndex(index)) + \"\\n \")]) : _vm._e(), _vm._v(\" \"), _vm.selectable ? _c('th', {\n staticClass: \"vgt-checkbox-col\",\n on: {\n \"click\": function click($event) {\n $event.stopPropagation();\n return _vm.onCheckboxClicked(row, index, $event);\n }\n }\n }, [_c('input', {\n attrs: {\n \"type\": \"checkbox\"\n },\n domProps: {\n \"checked\": row.vgtSelected\n }\n })]) : _vm._e(), _vm._v(\" \"), _vm._l(_vm.columns, function (column, i) {\n return !column.hidden && column.field ? _c('td', {\n key: i,\n \"class\": _vm.getClasses(i, 'td', row),\n on: {\n \"click\": function click($event) {\n return _vm.onCellClicked(row, column, index, $event);\n }\n }\n }, [_vm._t(\"table-row\", [!column.html ? _c('span', [_vm._v(\"\\n \" + _vm._s(_vm.collectFormatted(row, column)) + \"\\n \")]) : _vm._e(), _vm._v(\" \"), column.html ? _c('span', {\n domProps: {\n \"innerHTML\": _vm._s(_vm.collect(row, column.field))\n }\n }) : _vm._e()], {\n \"row\": row,\n \"column\": column,\n \"formattedRow\": _vm.formattedRow(row),\n \"index\": index\n })], 2) : _vm._e();\n })], 2);\n }), _vm._v(\" \"), _vm.groupHeaderOnBottom ? _c('vgt-header-row', {\n attrs: {\n \"header-row\": headerRow,\n \"columns\": _vm.columns,\n \"line-numbers\": _vm.lineNumbers,\n \"selectable\": _vm.selectable,\n \"collect-formatted\": _vm.collectFormatted,\n \"formatted-row\": _vm.formattedRow,\n \"get-classes\": _vm.getClasses,\n \"full-colspan\": _vm.fullColspan\n },\n scopedSlots: _vm._u([{\n key: \"table-header-row\",\n fn: function fn(props) {\n return _vm.hasHeaderRowTemplate ? [_vm._t(\"table-header-row\", null, {\n \"column\": props.column,\n \"formattedRow\": props.formattedRow,\n \"row\": props.row\n })] : undefined;\n }\n }], null, true)\n }) : _vm._e()], 2);\n }), _vm._v(\" \"), _vm.showEmptySlot ? _c('tbody', [_c('tr', [_c('td', {\n attrs: {\n \"colspan\": _vm.fullColspan\n }\n }, [_vm._t(\"emptystate\", [_c('div', {\n staticClass: \"vgt-center-align vgt-text-disabled\"\n }, [_vm._v(\"\\n No data for table\\n \")])])], 2)])]) : _vm._e()], 2)]), _vm._v(\" \"), _vm.hasFooterSlot ? _c('div', {\n staticClass: \"vgt-wrap__actions-footer\"\n }, [_vm._t(\"table-actions-bottom\")], 2) : _vm._e(), _vm._v(\" \"), _vm.paginate && _vm.paginateOnBottom ? _vm._t(\"pagination-bottom\", [_c('vgt-pagination', {\n ref: \"paginationBottom\",\n attrs: {\n \"perPage\": _vm.perPage,\n \"rtl\": _vm.rtl,\n \"total\": _vm.totalRows || _vm.totalRowCount,\n \"mode\": _vm.paginationMode,\n \"nextText\": _vm.nextText,\n \"prevText\": _vm.prevText,\n \"rowsPerPageText\": _vm.rowsPerPageText,\n \"customRowsPerPageDropdown\": _vm.customRowsPerPageDropdown,\n \"paginateDropdownAllowAll\": _vm.paginateDropdownAllowAll,\n \"ofText\": _vm.ofText,\n \"pageText\": _vm.pageText,\n \"allText\": _vm.allText\n },\n on: {\n \"page-changed\": _vm.pageChanged,\n \"per-page-changed\": _vm.perPageChanged\n }\n })], {\n \"pageChanged\": _vm.pageChanged,\n \"perPageChanged\": _vm.perPageChanged,\n \"total\": _vm.totalRows || _vm.totalRowCount\n }) : _vm._e()], 2)]);\n};\n\nvar __vue_staticRenderFns__$6 = [];\n/* style */\n\nvar __vue_inject_styles__$6 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$6 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$6 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$6 = false;\n/* style inject */\n\n/* style inject SSR */\n\nvar VueGoodTable = normalizeComponent_1({\n render: __vue_render__$6,\n staticRenderFns: __vue_staticRenderFns__$6\n}, __vue_inject_styles__$6, __vue_script__$6, __vue_scope_id__$6, __vue_is_functional_template__$6, __vue_module_identifier__$6, undefined, undefined);\n\nvar VueGoodTablePlugin = {\n install: function install(Vue, options) {\n Vue.component(VueGoodTable.name, VueGoodTable);\n }\n}; // Automatic installation if Vue has been added to the global scope.\n\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(VueGoodTablePlugin);\n}\n\nexport default VueGoodTablePlugin;\nexport { VueGoodTable };\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'Am Faoilleach', 'An Gearran', 'Am Mà rt', 'An Giblean', 'An Cèitean', 'An t-Ã’gmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dà mhair', 'An t-Samhain', 'An Dùbhlachd'\n ];\n\n var monthsShort = ['Faoi', 'Gear', 'Mà rt', 'Gibl', 'Cèit', 'Ã’gmh', 'Iuch', 'Lùn', 'Sult', 'Dà mh', 'Samh', 'Dùbh'];\n\n var weekdays = ['Didòmhnaich', 'Diluain', 'Dimà irt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];\n\n var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];\n\n var weekdaysMin = ['Dò', 'Lu', 'Mà ', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months : months,\n monthsShort : monthsShort,\n monthsParseExact : true,\n weekdays : weekdays,\n weekdaysShort : weekdaysShort,\n weekdaysMin : weekdaysMin,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[An-diugh aig] LT',\n nextDay : '[A-mà ireach aig] LT',\n nextWeek : 'dddd [aig] LT',\n lastDay : '[An-dè aig] LT',\n lastWeek : 'dddd [seo chaidh] [aig] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ann an %s',\n past : 'bho chionn %s',\n s : 'beagan diogan',\n ss : '%d diogan',\n m : 'mionaid',\n mm : '%d mionaidean',\n h : 'uair',\n hh : '%d uairean',\n d : 'latha',\n dd : '%d latha',\n M : 'mìos',\n MM : '%d mìosan',\n y : 'bliadhna',\n yy : '%d bliadhna'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(d|na|mh)/,\n ordinal : function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return gd;\n\n})));\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nvar Language =\n/*#__PURE__*/\nfunction () {\n function Language(language, months, monthsAbbr, days) {\n _classCallCheck(this, Language);\n\n this.language = language;\n this.months = months;\n this.monthsAbbr = monthsAbbr;\n this.days = days;\n this.rtl = false;\n this.ymd = false;\n this.yearSuffix = '';\n }\n\n _createClass(Language, [{\n key: \"language\",\n get: function get() {\n return this._language;\n },\n set: function set(language) {\n if (typeof language !== 'string') {\n throw new TypeError('Language must be a string');\n }\n\n this._language = language;\n }\n }, {\n key: \"months\",\n get: function get() {\n return this._months;\n },\n set: function set(months) {\n if (months.length !== 12) {\n throw new RangeError(\"There must be 12 months for \".concat(this.language, \" language\"));\n }\n\n this._months = months;\n }\n }, {\n key: \"monthsAbbr\",\n get: function get() {\n return this._monthsAbbr;\n },\n set: function set(monthsAbbr) {\n if (monthsAbbr.length !== 12) {\n throw new RangeError(\"There must be 12 abbreviated months for \".concat(this.language, \" language\"));\n }\n\n this._monthsAbbr = monthsAbbr;\n }\n }, {\n key: \"days\",\n get: function get() {\n return this._days;\n },\n set: function set(days) {\n if (days.length !== 7) {\n throw new RangeError(\"There must be 7 days for \".concat(this.language, \" language\"));\n }\n\n this._days = days;\n }\n }]);\n\n return Language;\n}(); // eslint-disable-next-line\n\nvar en = new Language('English', ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']) // eslint-disable-next-line\n;\n\nvar utils = {\n /**\n * @type {Boolean}\n */\n useUtc: false,\n\n /**\n * Returns the full year, using UTC or not\n * @param {Date} date\n */\n getFullYear: function getFullYear(date) {\n return this.useUtc ? date.getUTCFullYear() : date.getFullYear();\n },\n\n /**\n * Returns the month, using UTC or not\n * @param {Date} date\n */\n getMonth: function getMonth(date) {\n return this.useUtc ? date.getUTCMonth() : date.getMonth();\n },\n\n /**\n * Returns the date, using UTC or not\n * @param {Date} date\n */\n getDate: function getDate(date) {\n return this.useUtc ? date.getUTCDate() : date.getDate();\n },\n\n /**\n * Returns the day, using UTC or not\n * @param {Date} date\n */\n getDay: function getDay(date) {\n return this.useUtc ? date.getUTCDay() : date.getDay();\n },\n\n /**\n * Returns the hours, using UTC or not\n * @param {Date} date\n */\n getHours: function getHours(date) {\n return this.useUtc ? date.getUTCHours() : date.getHours();\n },\n\n /**\n * Returns the minutes, using UTC or not\n * @param {Date} date\n */\n getMinutes: function getMinutes(date) {\n return this.useUtc ? date.getUTCMinutes() : date.getMinutes();\n },\n\n /**\n * Sets the full year, using UTC or not\n * @param {Date} date\n */\n setFullYear: function setFullYear(date, value, useUtc) {\n return this.useUtc ? date.setUTCFullYear(value) : date.setFullYear(value);\n },\n\n /**\n * Sets the month, using UTC or not\n * @param {Date} date\n */\n setMonth: function setMonth(date, value, useUtc) {\n return this.useUtc ? date.setUTCMonth(value) : date.setMonth(value);\n },\n\n /**\n * Sets the date, using UTC or not\n * @param {Date} date\n * @param {Number} value\n */\n setDate: function setDate(date, value, useUtc) {\n return this.useUtc ? date.setUTCDate(value) : date.setDate(value);\n },\n\n /**\n * Check if date1 is equivalent to date2, without comparing the time\n * @see https://stackoverflow.com/a/6202196/4455925\n * @param {Date} date1\n * @param {Date} date2\n */\n compareDates: function compareDates(date1, date2) {\n var d1 = new Date(date1.getTime());\n var d2 = new Date(date2.getTime());\n\n if (this.useUtc) {\n d1.setUTCHours(0, 0, 0, 0);\n d2.setUTCHours(0, 0, 0, 0);\n } else {\n d1.setHours(0, 0, 0, 0);\n d2.setHours(0, 0, 0, 0);\n }\n\n return d1.getTime() === d2.getTime();\n },\n\n /**\n * Validates a date object\n * @param {Date} date - an object instantiated with the new Date constructor\n * @return {Boolean}\n */\n isValidDate: function isValidDate(date) {\n if (Object.prototype.toString.call(date) !== '[object Date]') {\n return false;\n }\n\n return !isNaN(date.getTime());\n },\n\n /**\n * Return abbreviated week day name\n * @param {Date}\n * @param {Array}\n * @return {String}\n */\n getDayNameAbbr: function getDayNameAbbr(date, days) {\n if (_typeof(date) !== 'object') {\n throw TypeError('Invalid Type');\n }\n\n return days[this.getDay(date)];\n },\n\n /**\n * Return name of the month\n * @param {Number|Date}\n * @param {Array}\n * @return {String}\n */\n getMonthName: function getMonthName(month, months) {\n if (!months) {\n throw Error('missing 2nd parameter Months array');\n }\n\n if (_typeof(month) === 'object') {\n return months[this.getMonth(month)];\n }\n\n if (typeof month === 'number') {\n return months[month];\n }\n\n throw TypeError('Invalid type');\n },\n\n /**\n * Return an abbreviated version of the month\n * @param {Number|Date}\n * @return {String}\n */\n getMonthNameAbbr: function getMonthNameAbbr(month, monthsAbbr) {\n if (!monthsAbbr) {\n throw Error('missing 2nd paramter Months array');\n }\n\n if (_typeof(month) === 'object') {\n return monthsAbbr[this.getMonth(month)];\n }\n\n if (typeof month === 'number') {\n return monthsAbbr[month];\n }\n\n throw TypeError('Invalid type');\n },\n\n /**\n * Alternative get total number of days in month\n * @param {Number} year\n * @param {Number} m\n * @return {Number}\n */\n daysInMonth: function daysInMonth(year, month) {\n return /8|3|5|10/.test(month) ? 30 : month === 1 ? !(year % 4) && year % 100 || !(year % 400) ? 29 : 28 : 31;\n },\n\n /**\n * Get nth suffix for date\n * @param {Number} day\n * @return {String}\n */\n getNthSuffix: function getNthSuffix(day) {\n switch (day) {\n case 1:\n case 21:\n case 31:\n return 'st';\n\n case 2:\n case 22:\n return 'nd';\n\n case 3:\n case 23:\n return 'rd';\n\n default:\n return 'th';\n }\n },\n\n /**\n * Formats date object\n * @param {Date}\n * @param {String}\n * @param {Object}\n * @return {String}\n */\n formatDate: function formatDate(date, format, translation) {\n translation = !translation ? en : translation;\n var year = this.getFullYear(date);\n var month = this.getMonth(date) + 1;\n var day = this.getDate(date);\n var str = format.replace(/dd/, ('0' + day).slice(-2)).replace(/d/, day).replace(/yyyy/, year).replace(/yy/, String(year).slice(2)).replace(/MMMM/, this.getMonthName(this.getMonth(date), translation.months)).replace(/MMM/, this.getMonthNameAbbr(this.getMonth(date), translation.monthsAbbr)).replace(/MM/, ('0' + month).slice(-2)).replace(/M(?!a|ä|e)/, month).replace(/su/, this.getNthSuffix(this.getDate(date))).replace(/D(?!e|é|i)/, this.getDayNameAbbr(date, translation.days));\n return str;\n },\n\n /**\n * Creates an array of dates for each day in between two dates.\n * @param {Date} start\n * @param {Date} end\n * @return {Array}\n */\n createDateArray: function createDateArray(start, end) {\n var dates = [];\n\n while (start <= end) {\n dates.push(new Date(start));\n start = this.setDate(new Date(start), this.getDate(new Date(start)) + 1);\n }\n\n return dates;\n },\n\n /**\n * method used as a prop validator for input values\n * @param {*} val\n * @return {Boolean}\n */\n validateDateInput: function validateDateInput(val) {\n return val === null || val instanceof Date || typeof val === 'string' || typeof val === 'number';\n }\n};\nvar makeDateUtils = function makeDateUtils(useUtc) {\n return _objectSpread({}, utils, {\n useUtc: useUtc\n });\n};\nvar utils$1 = _objectSpread({}, utils) // eslint-disable-next-line\n;\n\nvar script = {\n props: {\n selectedDate: Date,\n resetTypedDate: [Date],\n format: [String, Function],\n translation: Object,\n inline: Boolean,\n id: String,\n name: String,\n refName: String,\n openDate: Date,\n placeholder: String,\n inputClass: [String, Object, Array],\n clearButton: Boolean,\n clearButtonIcon: String,\n calendarButton: Boolean,\n calendarButtonIcon: String,\n calendarButtonIconContent: String,\n disabled: Boolean,\n required: Boolean,\n typeable: Boolean,\n bootstrapStyling: Boolean,\n useUtc: Boolean\n },\n data: function data() {\n var constructedDateUtils = makeDateUtils(this.useUtc);\n return {\n input: null,\n typedDate: false,\n utils: constructedDateUtils\n };\n },\n computed: {\n formattedValue: function formattedValue() {\n if (!this.selectedDate) {\n return null;\n }\n\n if (this.typedDate) {\n return this.typedDate;\n }\n\n return typeof this.format === 'function' ? this.format(this.selectedDate) : this.utils.formatDate(new Date(this.selectedDate), this.format, this.translation);\n },\n computedInputClass: function computedInputClass() {\n if (this.bootstrapStyling) {\n if (typeof this.inputClass === 'string') {\n return [this.inputClass, 'form-control'].join(' ');\n }\n\n return _objectSpread({\n 'form-control': true\n }, this.inputClass);\n }\n\n return this.inputClass;\n }\n },\n watch: {\n resetTypedDate: function resetTypedDate() {\n this.typedDate = false;\n }\n },\n methods: {\n showCalendar: function showCalendar() {\n this.$emit('showCalendar');\n },\n\n /**\n * Attempt to parse a typed date\n * @param {Event} event\n */\n parseTypedDate: function parseTypedDate(event) {\n // close calendar if escape or enter are pressed\n if ([27, // escape\n 13 // enter\n ].includes(event.keyCode)) {\n this.input.blur();\n }\n\n if (this.typeable) {\n var typedDate = Date.parse(this.input.value);\n\n if (!isNaN(typedDate)) {\n this.typedDate = this.input.value;\n this.$emit('typedDate', new Date(this.typedDate));\n }\n }\n },\n\n /**\n * nullify the typed date to defer to regular formatting\n * called once the input is blurred\n */\n inputBlurred: function inputBlurred() {\n if (this.typeable && isNaN(Date.parse(this.input.value))) {\n this.clearDate();\n this.input.value = null;\n this.typedDate = null;\n }\n\n this.$emit('closeCalendar');\n },\n\n /**\n * emit a clearDate event\n */\n clearDate: function clearDate() {\n this.$emit('clearDate');\n }\n },\n mounted: function mounted() {\n this.input = this.$el.querySelector('input');\n }\n} // eslint-disable-next-line\n;\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nvar normalizeComponent_1 = normalizeComponent;\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\n \"div\",\n { class: { \"input-group\": _vm.bootstrapStyling } },\n [\n _vm.calendarButton\n ? _c(\n \"span\",\n {\n staticClass: \"vdp-datepicker__calendar-button\",\n class: { \"input-group-prepend\": _vm.bootstrapStyling },\n style: { \"cursor:not-allowed;\": _vm.disabled },\n on: { click: _vm.showCalendar }\n },\n [\n _c(\n \"span\",\n { class: { \"input-group-text\": _vm.bootstrapStyling } },\n [\n _c(\"i\", { class: _vm.calendarButtonIcon }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.calendarButtonIconContent) +\n \"\\n \"\n ),\n !_vm.calendarButtonIcon\n ? _c(\"span\", [_vm._v(\"…\")])\n : _vm._e()\n ])\n ]\n )\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"input\", {\n ref: _vm.refName,\n class: _vm.computedInputClass,\n attrs: {\n type: _vm.inline ? \"hidden\" : \"text\",\n name: _vm.name,\n id: _vm.id,\n \"open-date\": _vm.openDate,\n placeholder: _vm.placeholder,\n \"clear-button\": _vm.clearButton,\n disabled: _vm.disabled,\n required: _vm.required,\n readonly: !_vm.typeable,\n autocomplete: \"off\"\n },\n domProps: { value: _vm.formattedValue },\n on: {\n click: _vm.showCalendar,\n keyup: _vm.parseTypedDate,\n blur: _vm.inputBlurred\n }\n }),\n _vm._v(\" \"),\n _vm.clearButton && _vm.selectedDate\n ? _c(\n \"span\",\n {\n staticClass: \"vdp-datepicker__clear-button\",\n class: { \"input-group-append\": _vm.bootstrapStyling },\n on: {\n click: function($event) {\n return _vm.clearDate()\n }\n }\n },\n [\n _c(\n \"span\",\n { class: { \"input-group-text\": _vm.bootstrapStyling } },\n [\n _c(\"i\", { class: _vm.clearButtonIcon }, [\n !_vm.clearButtonIcon ? _c(\"span\", [_vm._v(\"×\")]) : _vm._e()\n ])\n ]\n )\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm._t(\"afterDateInput\")\n ],\n 2\n )\n};\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n\n \n var DateInput = normalizeComponent_1(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n undefined,\n undefined\n );\n\n//\nvar script$1 = {\n props: {\n showDayView: Boolean,\n selectedDate: Date,\n pageDate: Date,\n pageTimestamp: Number,\n fullMonthName: Boolean,\n allowedToShowView: Function,\n dayCellContent: {\n type: Function,\n \"default\": function _default(day) {\n return day.date;\n }\n },\n disabledDates: Object,\n highlighted: Object,\n calendarClass: [String, Object, Array],\n calendarStyle: Object,\n translation: Object,\n isRtl: Boolean,\n mondayFirst: Boolean,\n useUtc: Boolean\n },\n data: function data() {\n var constructedDateUtils = makeDateUtils(this.useUtc);\n return {\n utils: constructedDateUtils\n };\n },\n computed: {\n /**\n * Returns an array of day names\n * @return {String[]}\n */\n daysOfWeek: function daysOfWeek() {\n if (this.mondayFirst) {\n var tempDays = this.translation.days.slice();\n tempDays.push(tempDays.shift());\n return tempDays;\n }\n\n return this.translation.days;\n },\n\n /**\n * Returns the day number of the week less one for the first of the current month\n * Used to show amount of empty cells before the first in the day calendar layout\n * @return {Number}\n */\n blankDays: function blankDays() {\n var d = this.pageDate;\n var dObj = this.useUtc ? new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), 1)) : new Date(d.getFullYear(), d.getMonth(), 1, d.getHours(), d.getMinutes());\n\n if (this.mondayFirst) {\n return this.utils.getDay(dObj) > 0 ? this.utils.getDay(dObj) - 1 : 6;\n }\n\n return this.utils.getDay(dObj);\n },\n\n /**\n * @return {Object[]}\n */\n days: function days() {\n var d = this.pageDate;\n var days = []; // set up a new date object to the beginning of the current 'page'\n\n var dObj = this.useUtc ? new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), 1)) : new Date(d.getFullYear(), d.getMonth(), 1, d.getHours(), d.getMinutes());\n var daysInMonth = this.utils.daysInMonth(this.utils.getFullYear(dObj), this.utils.getMonth(dObj));\n\n for (var i = 0; i < daysInMonth; i++) {\n days.push({\n date: this.utils.getDate(dObj),\n timestamp: dObj.getTime(),\n isSelected: this.isSelectedDate(dObj),\n isDisabled: this.isDisabledDate(dObj),\n isHighlighted: this.isHighlightedDate(dObj),\n isHighlightStart: this.isHighlightStart(dObj),\n isHighlightEnd: this.isHighlightEnd(dObj),\n isToday: this.utils.compareDates(dObj, new Date()),\n isWeekend: this.utils.getDay(dObj) === 0 || this.utils.getDay(dObj) === 6,\n isSaturday: this.utils.getDay(dObj) === 6,\n isSunday: this.utils.getDay(dObj) === 0\n });\n this.utils.setDate(dObj, this.utils.getDate(dObj) + 1);\n }\n\n return days;\n },\n\n /**\n * Gets the name of the month the current page is on\n * @return {String}\n */\n currMonthName: function currMonthName() {\n var monthName = this.fullMonthName ? this.translation.months : this.translation.monthsAbbr;\n return this.utils.getMonthNameAbbr(this.utils.getMonth(this.pageDate), monthName);\n },\n\n /**\n * Gets the name of the year that current page is on\n * @return {Number}\n */\n currYearName: function currYearName() {\n var yearSuffix = this.translation.yearSuffix;\n return \"\".concat(this.utils.getFullYear(this.pageDate)).concat(yearSuffix);\n },\n\n /**\n * Is this translation using year/month/day format?\n * @return {Boolean}\n */\n isYmd: function isYmd() {\n return this.translation.ymd && this.translation.ymd === true;\n },\n\n /**\n * Is the left hand navigation button disabled?\n * @return {Boolean}\n */\n isLeftNavDisabled: function isLeftNavDisabled() {\n return this.isRtl ? this.isNextMonthDisabled(this.pageTimestamp) : this.isPreviousMonthDisabled(this.pageTimestamp);\n },\n\n /**\n * Is the right hand navigation button disabled?\n * @return {Boolean}\n */\n isRightNavDisabled: function isRightNavDisabled() {\n return this.isRtl ? this.isPreviousMonthDisabled(this.pageTimestamp) : this.isNextMonthDisabled(this.pageTimestamp);\n }\n },\n methods: {\n selectDate: function selectDate(date) {\n if (date.isDisabled) {\n this.$emit('selectedDisabled', date);\n return false;\n }\n\n this.$emit('selectDate', date);\n },\n\n /**\n * @return {Number}\n */\n getPageMonth: function getPageMonth() {\n return this.utils.getMonth(this.pageDate);\n },\n\n /**\n * Emit an event to show the month picker\n */\n showMonthCalendar: function showMonthCalendar() {\n this.$emit('showMonthCalendar');\n },\n\n /**\n * Change the page month\n * @param {Number} incrementBy\n */\n changeMonth: function changeMonth(incrementBy) {\n var date = this.pageDate;\n this.utils.setMonth(date, this.utils.getMonth(date) + incrementBy);\n this.$emit('changedMonth', date);\n },\n\n /**\n * Decrement the page month\n */\n previousMonth: function previousMonth() {\n if (!this.isPreviousMonthDisabled()) {\n this.changeMonth(-1);\n }\n },\n\n /**\n * Is the previous month disabled?\n * @return {Boolean}\n */\n isPreviousMonthDisabled: function isPreviousMonthDisabled() {\n if (!this.disabledDates || !this.disabledDates.to) {\n return false;\n }\n\n var d = this.pageDate;\n return this.utils.getMonth(this.disabledDates.to) >= this.utils.getMonth(d) && this.utils.getFullYear(this.disabledDates.to) >= this.utils.getFullYear(d);\n },\n\n /**\n * Increment the current page month\n */\n nextMonth: function nextMonth() {\n if (!this.isNextMonthDisabled()) {\n this.changeMonth(+1);\n }\n },\n\n /**\n * Is the next month disabled?\n * @return {Boolean}\n */\n isNextMonthDisabled: function isNextMonthDisabled() {\n if (!this.disabledDates || !this.disabledDates.from) {\n return false;\n }\n\n var d = this.pageDate;\n return this.utils.getMonth(this.disabledDates.from) <= this.utils.getMonth(d) && this.utils.getFullYear(this.disabledDates.from) <= this.utils.getFullYear(d);\n },\n\n /**\n * Whether a day is selected\n * @param {Date}\n * @return {Boolean}\n */\n isSelectedDate: function isSelectedDate(dObj) {\n return this.selectedDate && this.utils.compareDates(this.selectedDate, dObj);\n },\n\n /**\n * Whether a day is disabled\n * @param {Date}\n * @return {Boolean}\n */\n isDisabledDate: function isDisabledDate(date) {\n var _this = this;\n\n var disabledDates = false;\n\n if (typeof this.disabledDates === 'undefined') {\n return false;\n }\n\n if (typeof this.disabledDates.dates !== 'undefined') {\n this.disabledDates.dates.forEach(function (d) {\n if (_this.utils.compareDates(date, d)) {\n disabledDates = true;\n return true;\n }\n });\n }\n\n if (typeof this.disabledDates.to !== 'undefined' && this.disabledDates.to && date < this.disabledDates.to) {\n disabledDates = true;\n }\n\n if (typeof this.disabledDates.from !== 'undefined' && this.disabledDates.from && date > this.disabledDates.from) {\n disabledDates = true;\n }\n\n if (typeof this.disabledDates.ranges !== 'undefined') {\n this.disabledDates.ranges.forEach(function (range) {\n if (typeof range.from !== 'undefined' && range.from && typeof range.to !== 'undefined' && range.to) {\n if (date < range.to && date > range.from) {\n disabledDates = true;\n return true;\n }\n }\n });\n }\n\n if (typeof this.disabledDates.days !== 'undefined' && this.disabledDates.days.indexOf(this.utils.getDay(date)) !== -1) {\n disabledDates = true;\n }\n\n if (typeof this.disabledDates.daysOfMonth !== 'undefined' && this.disabledDates.daysOfMonth.indexOf(this.utils.getDate(date)) !== -1) {\n disabledDates = true;\n }\n\n if (typeof this.disabledDates.customPredictor === 'function' && this.disabledDates.customPredictor(date)) {\n disabledDates = true;\n }\n\n return disabledDates;\n },\n\n /**\n * Whether a day is highlighted (only if it is not disabled already except when highlighted.includeDisabled is true)\n * @param {Date}\n * @return {Boolean}\n */\n isHighlightedDate: function isHighlightedDate(date) {\n var _this2 = this;\n\n if (!(this.highlighted && this.highlighted.includeDisabled) && this.isDisabledDate(date)) {\n return false;\n }\n\n var highlighted = false;\n\n if (typeof this.highlighted === 'undefined') {\n return false;\n }\n\n if (typeof this.highlighted.dates !== 'undefined') {\n this.highlighted.dates.forEach(function (d) {\n if (_this2.utils.compareDates(date, d)) {\n highlighted = true;\n return true;\n }\n });\n }\n\n if (this.isDefined(this.highlighted.from) && this.isDefined(this.highlighted.to)) {\n highlighted = date >= this.highlighted.from && date <= this.highlighted.to;\n }\n\n if (typeof this.highlighted.days !== 'undefined' && this.highlighted.days.indexOf(this.utils.getDay(date)) !== -1) {\n highlighted = true;\n }\n\n if (typeof this.highlighted.daysOfMonth !== 'undefined' && this.highlighted.daysOfMonth.indexOf(this.utils.getDate(date)) !== -1) {\n highlighted = true;\n }\n\n if (typeof this.highlighted.customPredictor === 'function' && this.highlighted.customPredictor(date)) {\n highlighted = true;\n }\n\n return highlighted;\n },\n dayClasses: function dayClasses(day) {\n return {\n 'selected': day.isSelected,\n 'disabled': day.isDisabled,\n 'highlighted': day.isHighlighted,\n 'today': day.isToday,\n 'weekend': day.isWeekend,\n 'sat': day.isSaturday,\n 'sun': day.isSunday,\n 'highlight-start': day.isHighlightStart,\n 'highlight-end': day.isHighlightEnd\n };\n },\n\n /**\n * Whether a day is highlighted and it is the first date\n * in the highlighted range of dates\n * @param {Date}\n * @return {Boolean}\n */\n isHighlightStart: function isHighlightStart(date) {\n return this.isHighlightedDate(date) && this.highlighted.from instanceof Date && this.utils.getFullYear(this.highlighted.from) === this.utils.getFullYear(date) && this.utils.getMonth(this.highlighted.from) === this.utils.getMonth(date) && this.utils.getDate(this.highlighted.from) === this.utils.getDate(date);\n },\n\n /**\n * Whether a day is highlighted and it is the first date\n * in the highlighted range of dates\n * @param {Date}\n * @return {Boolean}\n */\n isHighlightEnd: function isHighlightEnd(date) {\n return this.isHighlightedDate(date) && this.highlighted.to instanceof Date && this.utils.getFullYear(this.highlighted.to) === this.utils.getFullYear(date) && this.utils.getMonth(this.highlighted.to) === this.utils.getMonth(date) && this.utils.getDate(this.highlighted.to) === this.utils.getDate(date);\n },\n\n /**\n * Helper\n * @param {mixed} prop\n * @return {Boolean}\n */\n isDefined: function isDefined(prop) {\n return typeof prop !== 'undefined' && prop;\n }\n } // eslint-disable-next-line\n\n};\n\n/* script */\nconst __vue_script__$1 = script$1;\n\n/* template */\nvar __vue_render__$1 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showDayView,\n expression: \"showDayView\"\n }\n ],\n class: [_vm.calendarClass, \"vdp-datepicker__calendar\"],\n style: _vm.calendarStyle,\n on: {\n mousedown: function($event) {\n $event.preventDefault();\n }\n }\n },\n [\n _vm._t(\"beforeCalendarHeader\"),\n _vm._v(\" \"),\n _c(\"header\", [\n _c(\n \"span\",\n {\n staticClass: \"prev\",\n class: { disabled: _vm.isLeftNavDisabled },\n on: {\n click: function($event) {\n _vm.isRtl ? _vm.nextMonth() : _vm.previousMonth();\n }\n }\n },\n [_vm._v(\"<\")]\n ),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n staticClass: \"day__month_btn\",\n class: _vm.allowedToShowView(\"month\") ? \"up\" : \"\",\n on: { click: _vm.showMonthCalendar }\n },\n [\n _vm._v(\n _vm._s(_vm.isYmd ? _vm.currYearName : _vm.currMonthName) +\n \" \" +\n _vm._s(_vm.isYmd ? _vm.currMonthName : _vm.currYearName)\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n staticClass: \"next\",\n class: { disabled: _vm.isRightNavDisabled },\n on: {\n click: function($event) {\n _vm.isRtl ? _vm.previousMonth() : _vm.nextMonth();\n }\n }\n },\n [_vm._v(\">\")]\n )\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { class: _vm.isRtl ? \"flex-rtl\" : \"\" },\n [\n _vm._l(_vm.daysOfWeek, function(d) {\n return _c(\n \"span\",\n { key: d.timestamp, staticClass: \"cell day-header\" },\n [_vm._v(_vm._s(d))]\n )\n }),\n _vm._v(\" \"),\n _vm.blankDays > 0\n ? _vm._l(_vm.blankDays, function(d) {\n return _c(\"span\", {\n key: d.timestamp,\n staticClass: \"cell day blank\"\n })\n })\n : _vm._e(),\n _vm._l(_vm.days, function(day) {\n return _c(\"span\", {\n key: day.timestamp,\n staticClass: \"cell day\",\n class: _vm.dayClasses(day),\n domProps: { innerHTML: _vm._s(_vm.dayCellContent(day)) },\n on: {\n click: function($event) {\n return _vm.selectDate(day)\n }\n }\n })\n })\n ],\n 2\n )\n ],\n 2\n )\n};\nvar __vue_staticRenderFns__$1 = [];\n__vue_render__$1._withStripped = true;\n\n /* style */\n const __vue_inject_styles__$1 = undefined;\n /* scoped */\n const __vue_scope_id__$1 = undefined;\n /* module identifier */\n const __vue_module_identifier__$1 = undefined;\n /* functional template */\n const __vue_is_functional_template__$1 = false;\n /* style inject */\n \n /* style inject SSR */\n \n\n \n var PickerDay = normalizeComponent_1(\n { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },\n __vue_inject_styles__$1,\n __vue_script__$1,\n __vue_scope_id__$1,\n __vue_is_functional_template__$1,\n __vue_module_identifier__$1,\n undefined,\n undefined\n );\n\n//\nvar script$2 = {\n props: {\n showMonthView: Boolean,\n selectedDate: Date,\n pageDate: Date,\n pageTimestamp: Number,\n disabledDates: Object,\n calendarClass: [String, Object, Array],\n calendarStyle: Object,\n translation: Object,\n isRtl: Boolean,\n allowedToShowView: Function,\n useUtc: Boolean\n },\n data: function data() {\n var constructedDateUtils = makeDateUtils(this.useUtc);\n return {\n utils: constructedDateUtils\n };\n },\n computed: {\n months: function months() {\n var d = this.pageDate;\n var months = []; // set up a new date object to the beginning of the current 'page'\n\n var dObj = this.useUtc ? new Date(Date.UTC(d.getUTCFullYear(), 0, d.getUTCDate())) : new Date(d.getFullYear(), 0, d.getDate(), d.getHours(), d.getMinutes());\n\n for (var i = 0; i < 12; i++) {\n months.push({\n month: this.utils.getMonthName(i, this.translation.months),\n timestamp: dObj.getTime(),\n isSelected: this.isSelectedMonth(dObj),\n isDisabled: this.isDisabledMonth(dObj)\n });\n this.utils.setMonth(dObj, this.utils.getMonth(dObj) + 1);\n }\n\n return months;\n },\n\n /**\n * Get year name on current page.\n * @return {String}\n */\n pageYearName: function pageYearName() {\n var yearSuffix = this.translation.yearSuffix;\n return \"\".concat(this.utils.getFullYear(this.pageDate)).concat(yearSuffix);\n },\n\n /**\n * Is the left hand navigation disabled\n * @return {Boolean}\n */\n isLeftNavDisabled: function isLeftNavDisabled() {\n return this.isRtl ? this.isNextYearDisabled(this.pageTimestamp) : this.isPreviousYearDisabled(this.pageTimestamp);\n },\n\n /**\n * Is the right hand navigation disabled\n * @return {Boolean}\n */\n isRightNavDisabled: function isRightNavDisabled() {\n return this.isRtl ? this.isPreviousYearDisabled(this.pageTimestamp) : this.isNextYearDisabled(this.pageTimestamp);\n }\n },\n methods: {\n /**\n * Emits a selectMonth event\n * @param {Object} month\n */\n selectMonth: function selectMonth(month) {\n if (month.isDisabled) {\n return false;\n }\n\n this.$emit('selectMonth', month);\n },\n\n /**\n * Changes the year up or down\n * @param {Number} incrementBy\n */\n changeYear: function changeYear(incrementBy) {\n var date = this.pageDate;\n this.utils.setFullYear(date, this.utils.getFullYear(date) + incrementBy);\n this.$emit('changedYear', date);\n },\n\n /**\n * Decrements the year\n */\n previousYear: function previousYear() {\n if (!this.isPreviousYearDisabled()) {\n this.changeYear(-1);\n }\n },\n\n /**\n * Checks if the previous year is disabled or not\n * @return {Boolean}\n */\n isPreviousYearDisabled: function isPreviousYearDisabled() {\n if (!this.disabledDates || !this.disabledDates.to) {\n return false;\n }\n\n return this.utils.getFullYear(this.disabledDates.to) >= this.utils.getFullYear(this.pageDate);\n },\n\n /**\n * Increments the year\n */\n nextYear: function nextYear() {\n if (!this.isNextYearDisabled()) {\n this.changeYear(1);\n }\n },\n\n /**\n * Checks if the next year is disabled or not\n * @return {Boolean}\n */\n isNextYearDisabled: function isNextYearDisabled() {\n if (!this.disabledDates || !this.disabledDates.from) {\n return false;\n }\n\n return this.utils.getFullYear(this.disabledDates.from) <= this.utils.getFullYear(this.pageDate);\n },\n\n /**\n * Emits an event that shows the year calendar\n */\n showYearCalendar: function showYearCalendar() {\n this.$emit('showYearCalendar');\n },\n\n /**\n * Whether the selected date is in this month\n * @param {Date}\n * @return {Boolean}\n */\n isSelectedMonth: function isSelectedMonth(date) {\n return this.selectedDate && this.utils.getFullYear(this.selectedDate) === this.utils.getFullYear(date) && this.utils.getMonth(this.selectedDate) === this.utils.getMonth(date);\n },\n\n /**\n * Whether a month is disabled\n * @param {Date}\n * @return {Boolean}\n */\n isDisabledMonth: function isDisabledMonth(date) {\n var disabledDates = false;\n\n if (typeof this.disabledDates === 'undefined') {\n return false;\n }\n\n if (typeof this.disabledDates.to !== 'undefined' && this.disabledDates.to) {\n if (this.utils.getMonth(date) < this.utils.getMonth(this.disabledDates.to) && this.utils.getFullYear(date) <= this.utils.getFullYear(this.disabledDates.to) || this.utils.getFullYear(date) < this.utils.getFullYear(this.disabledDates.to)) {\n disabledDates = true;\n }\n }\n\n if (typeof this.disabledDates.from !== 'undefined' && this.disabledDates.from) {\n if (this.utils.getMonth(date) > this.utils.getMonth(this.disabledDates.from) && this.utils.getFullYear(date) >= this.utils.getFullYear(this.disabledDates.from) || this.utils.getFullYear(date) > this.utils.getFullYear(this.disabledDates.from)) {\n disabledDates = true;\n }\n }\n\n if (typeof this.disabledDates.customPredictor === 'function' && this.disabledDates.customPredictor(date)) {\n disabledDates = true;\n }\n\n return disabledDates;\n }\n } // eslint-disable-next-line\n\n};\n\n/* script */\nconst __vue_script__$2 = script$2;\n\n/* template */\nvar __vue_render__$2 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showMonthView,\n expression: \"showMonthView\"\n }\n ],\n class: [_vm.calendarClass, \"vdp-datepicker__calendar\"],\n style: _vm.calendarStyle,\n on: {\n mousedown: function($event) {\n $event.preventDefault();\n }\n }\n },\n [\n _vm._t(\"beforeCalendarHeader\"),\n _vm._v(\" \"),\n _c(\"header\", [\n _c(\n \"span\",\n {\n staticClass: \"prev\",\n class: { disabled: _vm.isLeftNavDisabled },\n on: {\n click: function($event) {\n _vm.isRtl ? _vm.nextYear() : _vm.previousYear();\n }\n }\n },\n [_vm._v(\"<\")]\n ),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n staticClass: \"month__year_btn\",\n class: _vm.allowedToShowView(\"year\") ? \"up\" : \"\",\n on: { click: _vm.showYearCalendar }\n },\n [_vm._v(_vm._s(_vm.pageYearName))]\n ),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n staticClass: \"next\",\n class: { disabled: _vm.isRightNavDisabled },\n on: {\n click: function($event) {\n _vm.isRtl ? _vm.previousYear() : _vm.nextYear();\n }\n }\n },\n [_vm._v(\">\")]\n )\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.months, function(month) {\n return _c(\n \"span\",\n {\n key: month.timestamp,\n staticClass: \"cell month\",\n class: { selected: month.isSelected, disabled: month.isDisabled },\n on: {\n click: function($event) {\n $event.stopPropagation();\n return _vm.selectMonth(month)\n }\n }\n },\n [_vm._v(_vm._s(month.month))]\n )\n })\n ],\n 2\n )\n};\nvar __vue_staticRenderFns__$2 = [];\n__vue_render__$2._withStripped = true;\n\n /* style */\n const __vue_inject_styles__$2 = undefined;\n /* scoped */\n const __vue_scope_id__$2 = undefined;\n /* module identifier */\n const __vue_module_identifier__$2 = undefined;\n /* functional template */\n const __vue_is_functional_template__$2 = false;\n /* style inject */\n \n /* style inject SSR */\n \n\n \n var PickerMonth = normalizeComponent_1(\n { render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },\n __vue_inject_styles__$2,\n __vue_script__$2,\n __vue_scope_id__$2,\n __vue_is_functional_template__$2,\n __vue_module_identifier__$2,\n undefined,\n undefined\n );\n\n//\nvar script$3 = {\n props: {\n showYearView: Boolean,\n selectedDate: Date,\n pageDate: Date,\n pageTimestamp: Number,\n disabledDates: Object,\n highlighted: Object,\n calendarClass: [String, Object, Array],\n calendarStyle: Object,\n translation: Object,\n isRtl: Boolean,\n allowedToShowView: Function,\n useUtc: Boolean\n },\n computed: {\n years: function years() {\n var d = this.pageDate;\n var years = []; // set up a new date object to the beginning of the current 'page'7\n\n var dObj = this.useUtc ? new Date(Date.UTC(Math.floor(d.getUTCFullYear() / 10) * 10, d.getUTCMonth(), d.getUTCDate())) : new Date(Math.floor(d.getFullYear() / 10) * 10, d.getMonth(), d.getDate(), d.getHours(), d.getMinutes());\n\n for (var i = 0; i < 10; i++) {\n years.push({\n year: this.utils.getFullYear(dObj),\n timestamp: dObj.getTime(),\n isSelected: this.isSelectedYear(dObj),\n isDisabled: this.isDisabledYear(dObj)\n });\n this.utils.setFullYear(dObj, this.utils.getFullYear(dObj) + 1);\n }\n\n return years;\n },\n\n /**\n * @return {String}\n */\n getPageDecade: function getPageDecade() {\n var decadeStart = Math.floor(this.utils.getFullYear(this.pageDate) / 10) * 10;\n var decadeEnd = decadeStart + 9;\n var yearSuffix = this.translation.yearSuffix;\n return \"\".concat(decadeStart, \" - \").concat(decadeEnd).concat(yearSuffix);\n },\n\n /**\n * Is the left hand navigation button disabled?\n * @return {Boolean}\n */\n isLeftNavDisabled: function isLeftNavDisabled() {\n return this.isRtl ? this.isNextDecadeDisabled(this.pageTimestamp) : this.isPreviousDecadeDisabled(this.pageTimestamp);\n },\n\n /**\n * Is the right hand navigation button disabled?\n * @return {Boolean}\n */\n isRightNavDisabled: function isRightNavDisabled() {\n return this.isRtl ? this.isPreviousDecadeDisabled(this.pageTimestamp) : this.isNextDecadeDisabled(this.pageTimestamp);\n }\n },\n data: function data() {\n var constructedDateUtils = makeDateUtils(this.useUtc);\n return {\n utils: constructedDateUtils\n };\n },\n methods: {\n selectYear: function selectYear(year) {\n if (year.isDisabled) {\n return false;\n }\n\n this.$emit('selectYear', year);\n },\n changeYear: function changeYear(incrementBy) {\n var date = this.pageDate;\n this.utils.setFullYear(date, this.utils.getFullYear(date) + incrementBy);\n this.$emit('changedDecade', date);\n },\n previousDecade: function previousDecade() {\n if (this.isPreviousDecadeDisabled()) {\n return false;\n }\n\n this.changeYear(-10);\n },\n isPreviousDecadeDisabled: function isPreviousDecadeDisabled() {\n if (!this.disabledDates || !this.disabledDates.to) {\n return false;\n }\n\n var disabledYear = this.utils.getFullYear(this.disabledDates.to);\n var lastYearInPreviousPage = Math.floor(this.utils.getFullYear(this.pageDate) / 10) * 10 - 1;\n return disabledYear > lastYearInPreviousPage;\n },\n nextDecade: function nextDecade() {\n if (this.isNextDecadeDisabled()) {\n return false;\n }\n\n this.changeYear(10);\n },\n isNextDecadeDisabled: function isNextDecadeDisabled() {\n if (!this.disabledDates || !this.disabledDates.from) {\n return false;\n }\n\n var disabledYear = this.utils.getFullYear(this.disabledDates.from);\n var firstYearInNextPage = Math.ceil(this.utils.getFullYear(this.pageDate) / 10) * 10;\n return disabledYear < firstYearInNextPage;\n },\n\n /**\n * Whether the selected date is in this year\n * @param {Date}\n * @return {Boolean}\n */\n isSelectedYear: function isSelectedYear(date) {\n return this.selectedDate && this.utils.getFullYear(this.selectedDate) === this.utils.getFullYear(date);\n },\n\n /**\n * Whether a year is disabled\n * @param {Date}\n * @return {Boolean}\n */\n isDisabledYear: function isDisabledYear(date) {\n var disabledDates = false;\n\n if (typeof this.disabledDates === 'undefined' || !this.disabledDates) {\n return false;\n }\n\n if (typeof this.disabledDates.to !== 'undefined' && this.disabledDates.to) {\n if (this.utils.getFullYear(date) < this.utils.getFullYear(this.disabledDates.to)) {\n disabledDates = true;\n }\n }\n\n if (typeof this.disabledDates.from !== 'undefined' && this.disabledDates.from) {\n if (this.utils.getFullYear(date) > this.utils.getFullYear(this.disabledDates.from)) {\n disabledDates = true;\n }\n }\n\n if (typeof this.disabledDates.customPredictor === 'function' && this.disabledDates.customPredictor(date)) {\n disabledDates = true;\n }\n\n return disabledDates;\n }\n } // eslint-disable-next-line\n\n};\n\n/* script */\nconst __vue_script__$3 = script$3;\n\n/* template */\nvar __vue_render__$3 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showYearView,\n expression: \"showYearView\"\n }\n ],\n class: [_vm.calendarClass, \"vdp-datepicker__calendar\"],\n style: _vm.calendarStyle,\n on: {\n mousedown: function($event) {\n $event.preventDefault();\n }\n }\n },\n [\n _vm._t(\"beforeCalendarHeader\"),\n _vm._v(\" \"),\n _c(\"header\", [\n _c(\n \"span\",\n {\n staticClass: \"prev\",\n class: { disabled: _vm.isLeftNavDisabled },\n on: {\n click: function($event) {\n _vm.isRtl ? _vm.nextDecade() : _vm.previousDecade();\n }\n }\n },\n [_vm._v(\"<\")]\n ),\n _vm._v(\" \"),\n _c(\"span\", [_vm._v(_vm._s(_vm.getPageDecade))]),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n staticClass: \"next\",\n class: { disabled: _vm.isRightNavDisabled },\n on: {\n click: function($event) {\n _vm.isRtl ? _vm.previousDecade() : _vm.nextDecade();\n }\n }\n },\n [_vm._v(\">\")]\n )\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.years, function(year) {\n return _c(\n \"span\",\n {\n key: year.timestamp,\n staticClass: \"cell year\",\n class: { selected: year.isSelected, disabled: year.isDisabled },\n on: {\n click: function($event) {\n $event.stopPropagation();\n return _vm.selectYear(year)\n }\n }\n },\n [_vm._v(_vm._s(year.year))]\n )\n })\n ],\n 2\n )\n};\nvar __vue_staticRenderFns__$3 = [];\n__vue_render__$3._withStripped = true;\n\n /* style */\n const __vue_inject_styles__$3 = undefined;\n /* scoped */\n const __vue_scope_id__$3 = undefined;\n /* module identifier */\n const __vue_module_identifier__$3 = undefined;\n /* functional template */\n const __vue_is_functional_template__$3 = false;\n /* style inject */\n \n /* style inject SSR */\n \n\n \n var PickerYear = normalizeComponent_1(\n { render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },\n __vue_inject_styles__$3,\n __vue_script__$3,\n __vue_scope_id__$3,\n __vue_is_functional_template__$3,\n __vue_module_identifier__$3,\n undefined,\n undefined\n );\n\n//\nvar script$4 = {\n components: {\n DateInput: DateInput,\n PickerDay: PickerDay,\n PickerMonth: PickerMonth,\n PickerYear: PickerYear\n },\n props: {\n value: {\n validator: function validator(val) {\n return utils$1.validateDateInput(val);\n }\n },\n name: String,\n refName: String,\n id: String,\n format: {\n type: [String, Function],\n \"default\": 'dd MMM yyyy'\n },\n language: {\n type: Object,\n \"default\": function _default() {\n return en;\n }\n },\n openDate: {\n validator: function validator(val) {\n return utils$1.validateDateInput(val);\n }\n },\n dayCellContent: Function,\n fullMonthName: Boolean,\n disabledDates: Object,\n highlighted: Object,\n placeholder: String,\n inline: Boolean,\n calendarClass: [String, Object, Array],\n inputClass: [String, Object, Array],\n wrapperClass: [String, Object, Array],\n mondayFirst: Boolean,\n clearButton: Boolean,\n clearButtonIcon: String,\n calendarButton: Boolean,\n calendarButtonIcon: String,\n calendarButtonIconContent: String,\n bootstrapStyling: Boolean,\n initialView: String,\n disabled: Boolean,\n required: Boolean,\n typeable: Boolean,\n useUtc: Boolean,\n minimumView: {\n type: String,\n \"default\": 'day'\n },\n maximumView: {\n type: String,\n \"default\": 'year'\n }\n },\n data: function data() {\n var startDate = this.openDate ? new Date(this.openDate) : new Date();\n var constructedDateUtils = makeDateUtils(this.useUtc);\n var pageTimestamp = constructedDateUtils.setDate(startDate, 1);\n return {\n /*\n * Vue cannot observe changes to a Date Object so date must be stored as a timestamp\n * This represents the first day of the current viewing month\n * {Number}\n */\n pageTimestamp: pageTimestamp,\n\n /*\n * Selected Date\n * {Date}\n */\n selectedDate: null,\n\n /*\n * Flags to show calendar views\n * {Boolean}\n */\n showDayView: false,\n showMonthView: false,\n showYearView: false,\n\n /*\n * Positioning\n */\n calendarHeight: 0,\n resetTypedDate: new Date(),\n utils: constructedDateUtils\n };\n },\n watch: {\n value: function value(_value) {\n this.setValue(_value);\n },\n openDate: function openDate() {\n this.setPageDate();\n },\n initialView: function initialView() {\n this.setInitialView();\n }\n },\n computed: {\n computedInitialView: function computedInitialView() {\n if (!this.initialView) {\n return this.minimumView;\n }\n\n return this.initialView;\n },\n pageDate: function pageDate() {\n return new Date(this.pageTimestamp);\n },\n translation: function translation() {\n return this.language;\n },\n calendarStyle: function calendarStyle() {\n return {\n position: this.isInline ? 'static' : undefined\n };\n },\n isOpen: function isOpen() {\n return this.showDayView || this.showMonthView || this.showYearView;\n },\n isInline: function isInline() {\n return !!this.inline;\n },\n isRtl: function isRtl() {\n return this.translation.rtl === true;\n }\n },\n methods: {\n /**\n * Called in the event that the user navigates to date pages and\n * closes the picker without selecting a date.\n */\n resetDefaultPageDate: function resetDefaultPageDate() {\n if (this.selectedDate === null) {\n this.setPageDate();\n return;\n }\n\n this.setPageDate(this.selectedDate);\n },\n\n /**\n * Effectively a toggle to show/hide the calendar\n * @return {mixed}\n */\n showCalendar: function showCalendar() {\n if (this.disabled || this.isInline) {\n return false;\n }\n\n if (this.isOpen) {\n return this.close(true);\n }\n\n this.setInitialView();\n },\n\n /**\n * Sets the initial picker page view: day, month or year\n */\n setInitialView: function setInitialView() {\n var initialView = this.computedInitialView;\n\n if (!this.allowedToShowView(initialView)) {\n throw new Error(\"initialView '\".concat(this.initialView, \"' cannot be rendered based on minimum '\").concat(this.minimumView, \"' and maximum '\").concat(this.maximumView, \"'\"));\n }\n\n switch (initialView) {\n case 'year':\n this.showYearCalendar();\n break;\n\n case 'month':\n this.showMonthCalendar();\n break;\n\n default:\n this.showDayCalendar();\n break;\n }\n },\n\n /**\n * Are we allowed to show a specific picker view?\n * @param {String} view\n * @return {Boolean}\n */\n allowedToShowView: function allowedToShowView(view) {\n var views = ['day', 'month', 'year'];\n var minimumViewIndex = views.indexOf(this.minimumView);\n var maximumViewIndex = views.indexOf(this.maximumView);\n var viewIndex = views.indexOf(view);\n return viewIndex >= minimumViewIndex && viewIndex <= maximumViewIndex;\n },\n\n /**\n * Show the day picker\n * @return {Boolean}\n */\n showDayCalendar: function showDayCalendar() {\n if (!this.allowedToShowView('day')) {\n return false;\n }\n\n this.close();\n this.showDayView = true;\n return true;\n },\n\n /**\n * Show the month picker\n * @return {Boolean}\n */\n showMonthCalendar: function showMonthCalendar() {\n if (!this.allowedToShowView('month')) {\n return false;\n }\n\n this.close();\n this.showMonthView = true;\n return true;\n },\n\n /**\n * Show the year picker\n * @return {Boolean}\n */\n showYearCalendar: function showYearCalendar() {\n if (!this.allowedToShowView('year')) {\n return false;\n }\n\n this.close();\n this.showYearView = true;\n return true;\n },\n\n /**\n * Set the selected date\n * @param {Number} timestamp\n */\n setDate: function setDate(timestamp) {\n var date = new Date(timestamp);\n this.selectedDate = date;\n this.setPageDate(date);\n this.$emit('selected', date);\n this.$emit('input', date);\n },\n\n /**\n * Clear the selected date\n */\n clearDate: function clearDate() {\n this.selectedDate = null;\n this.setPageDate();\n this.$emit('selected', null);\n this.$emit('input', null);\n this.$emit('cleared');\n },\n\n /**\n * @param {Object} date\n */\n selectDate: function selectDate(date) {\n this.setDate(date.timestamp);\n\n if (!this.isInline) {\n this.close(true);\n }\n\n this.resetTypedDate = new Date();\n },\n\n /**\n * @param {Object} date\n */\n selectDisabledDate: function selectDisabledDate(date) {\n this.$emit('selectedDisabled', date);\n },\n\n /**\n * @param {Object} month\n */\n selectMonth: function selectMonth(month) {\n var date = new Date(month.timestamp);\n\n if (this.allowedToShowView('day')) {\n this.setPageDate(date);\n this.$emit('changedMonth', month);\n this.showDayCalendar();\n } else {\n this.selectDate(month);\n }\n },\n\n /**\n * @param {Object} year\n */\n selectYear: function selectYear(year) {\n var date = new Date(year.timestamp);\n\n if (this.allowedToShowView('month')) {\n this.setPageDate(date);\n this.$emit('changedYear', year);\n this.showMonthCalendar();\n } else {\n this.selectDate(year);\n }\n },\n\n /**\n * Set the datepicker value\n * @param {Date|String|Number|null} date\n */\n setValue: function setValue(date) {\n if (typeof date === 'string' || typeof date === 'number') {\n var parsed = new Date(date);\n date = isNaN(parsed.valueOf()) ? null : parsed;\n }\n\n if (!date) {\n this.setPageDate();\n this.selectedDate = null;\n return;\n }\n\n this.selectedDate = date;\n this.setPageDate(date);\n },\n\n /**\n * Sets the date that the calendar should open on\n */\n setPageDate: function setPageDate(date) {\n if (!date) {\n if (this.openDate) {\n date = new Date(this.openDate);\n } else {\n date = new Date();\n }\n }\n\n this.pageTimestamp = this.utils.setDate(new Date(date), 1);\n },\n\n /**\n * Handles a month change from the day picker\n */\n handleChangedMonthFromDayPicker: function handleChangedMonthFromDayPicker(date) {\n this.setPageDate(date);\n this.$emit('changedMonth', date);\n },\n\n /**\n * Set the date from a typedDate event\n */\n setTypedDate: function setTypedDate(date) {\n this.setDate(date.getTime());\n },\n\n /**\n * Close all calendar layers\n * @param {Boolean} emitEvent - emit close event\n */\n close: function close(emitEvent) {\n this.showDayView = this.showMonthView = this.showYearView = false;\n\n if (!this.isInline) {\n if (emitEvent) {\n this.$emit('closed');\n }\n\n document.removeEventListener('click', this.clickOutside, false);\n }\n },\n\n /**\n * Initiate the component\n */\n init: function init() {\n if (this.value) {\n this.setValue(this.value);\n }\n\n if (this.isInline) {\n this.setInitialView();\n }\n }\n },\n mounted: function mounted() {\n this.init();\n }\n} // eslint-disable-next-line\n;\n\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\nfunction createInjector(context) {\n return function (id, style) {\n return addStyle(id, style);\n };\n}\nvar HEAD = document.head || document.getElementsByTagName('head')[0];\nvar styles = {};\n\nfunction addStyle(id, css) {\n var group = isOldIE ? css.media || 'default' : id;\n var style = styles[group] || (styles[group] = {\n ids: new Set(),\n styles: []\n });\n\n if (!style.ids.has(id)) {\n style.ids.add(id);\n var code = css.source;\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875\n\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (!style.element) {\n style.element = document.createElement('style');\n style.element.type = 'text/css';\n if (css.media) style.element.setAttribute('media', css.media);\n HEAD.appendChild(style.element);\n }\n\n if ('styleSheet' in style.element) {\n style.styles.push(code);\n style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\\n');\n } else {\n var index = style.ids.size - 1;\n var textNode = document.createTextNode(code);\n var nodes = style.element.childNodes;\n if (nodes[index]) style.element.removeChild(nodes[index]);\n if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n }\n }\n}\n\nvar browser = createInjector;\n\n/* script */\nconst __vue_script__$4 = script$4;\n\n/* template */\nvar __vue_render__$4 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\n \"div\",\n {\n staticClass: \"vdp-datepicker\",\n class: [_vm.wrapperClass, _vm.isRtl ? \"rtl\" : \"\"]\n },\n [\n _c(\n \"date-input\",\n {\n attrs: {\n selectedDate: _vm.selectedDate,\n resetTypedDate: _vm.resetTypedDate,\n format: _vm.format,\n translation: _vm.translation,\n inline: _vm.inline,\n id: _vm.id,\n name: _vm.name,\n refName: _vm.refName,\n openDate: _vm.openDate,\n placeholder: _vm.placeholder,\n inputClass: _vm.inputClass,\n typeable: _vm.typeable,\n clearButton: _vm.clearButton,\n clearButtonIcon: _vm.clearButtonIcon,\n calendarButton: _vm.calendarButton,\n calendarButtonIcon: _vm.calendarButtonIcon,\n calendarButtonIconContent: _vm.calendarButtonIconContent,\n disabled: _vm.disabled,\n required: _vm.required,\n bootstrapStyling: _vm.bootstrapStyling,\n \"use-utc\": _vm.useUtc\n },\n on: {\n showCalendar: _vm.showCalendar,\n closeCalendar: _vm.close,\n typedDate: _vm.setTypedDate,\n clearDate: _vm.clearDate\n }\n },\n [_vm._t(\"afterDateInput\", null, { slot: \"afterDateInput\" })],\n 2\n ),\n _vm._v(\" \"),\n _vm.allowedToShowView(\"day\")\n ? _c(\n \"picker-day\",\n {\n attrs: {\n pageDate: _vm.pageDate,\n selectedDate: _vm.selectedDate,\n showDayView: _vm.showDayView,\n fullMonthName: _vm.fullMonthName,\n allowedToShowView: _vm.allowedToShowView,\n disabledDates: _vm.disabledDates,\n highlighted: _vm.highlighted,\n calendarClass: _vm.calendarClass,\n calendarStyle: _vm.calendarStyle,\n translation: _vm.translation,\n pageTimestamp: _vm.pageTimestamp,\n isRtl: _vm.isRtl,\n mondayFirst: _vm.mondayFirst,\n dayCellContent: _vm.dayCellContent,\n \"use-utc\": _vm.useUtc\n },\n on: {\n changedMonth: _vm.handleChangedMonthFromDayPicker,\n selectDate: _vm.selectDate,\n showMonthCalendar: _vm.showMonthCalendar,\n selectedDisabled: _vm.selectDisabledDate\n }\n },\n [\n _vm._t(\"beforeCalendarHeader\", null, {\n slot: \"beforeCalendarHeader\"\n })\n ],\n 2\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.allowedToShowView(\"month\")\n ? _c(\n \"picker-month\",\n {\n attrs: {\n pageDate: _vm.pageDate,\n selectedDate: _vm.selectedDate,\n showMonthView: _vm.showMonthView,\n allowedToShowView: _vm.allowedToShowView,\n disabledDates: _vm.disabledDates,\n calendarClass: _vm.calendarClass,\n calendarStyle: _vm.calendarStyle,\n translation: _vm.translation,\n isRtl: _vm.isRtl,\n \"use-utc\": _vm.useUtc\n },\n on: {\n selectMonth: _vm.selectMonth,\n showYearCalendar: _vm.showYearCalendar,\n changedYear: _vm.setPageDate\n }\n },\n [\n _vm._t(\"beforeCalendarHeader\", null, {\n slot: \"beforeCalendarHeader\"\n })\n ],\n 2\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.allowedToShowView(\"year\")\n ? _c(\n \"picker-year\",\n {\n attrs: {\n pageDate: _vm.pageDate,\n selectedDate: _vm.selectedDate,\n showYearView: _vm.showYearView,\n allowedToShowView: _vm.allowedToShowView,\n disabledDates: _vm.disabledDates,\n calendarClass: _vm.calendarClass,\n calendarStyle: _vm.calendarStyle,\n translation: _vm.translation,\n isRtl: _vm.isRtl,\n \"use-utc\": _vm.useUtc\n },\n on: { selectYear: _vm.selectYear, changedDecade: _vm.setPageDate }\n },\n [\n _vm._t(\"beforeCalendarHeader\", null, {\n slot: \"beforeCalendarHeader\"\n })\n ],\n 2\n )\n : _vm._e()\n ],\n 1\n )\n};\nvar __vue_staticRenderFns__$4 = [];\n__vue_render__$4._withStripped = true;\n\n /* style */\n const __vue_inject_styles__$4 = function (inject) {\n if (!inject) return\n inject(\"data-v-64ca2bb5_0\", { source: \".rtl {\\n direction: rtl;\\n}\\n.vdp-datepicker {\\n position: relative;\\n text-align: left;\\n}\\n.vdp-datepicker * {\\n box-sizing: border-box;\\n}\\n.vdp-datepicker__calendar {\\n position: absolute;\\n z-index: 100;\\n background: #fff;\\n width: 300px;\\n border: 1px solid #ccc;\\n}\\n.vdp-datepicker__calendar header {\\n display: block;\\n line-height: 40px;\\n}\\n.vdp-datepicker__calendar header span {\\n display: inline-block;\\n text-align: center;\\n width: 71.42857142857143%;\\n float: left;\\n}\\n.vdp-datepicker__calendar header .prev,\\n.vdp-datepicker__calendar header .next {\\n width: 14.285714285714286%;\\n float: left;\\n text-indent: -10000px;\\n position: relative;\\n}\\n.vdp-datepicker__calendar header .prev:after,\\n.vdp-datepicker__calendar header .next:after {\\n content: '';\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translateX(-50%) translateY(-50%);\\n border: 6px solid transparent;\\n}\\n.vdp-datepicker__calendar header .prev:after {\\n border-right: 10px solid #000;\\n margin-left: -5px;\\n}\\n.vdp-datepicker__calendar header .prev.disabled:after {\\n border-right: 10px solid #ddd;\\n}\\n.vdp-datepicker__calendar header .next:after {\\n border-left: 10px solid #000;\\n margin-left: 5px;\\n}\\n.vdp-datepicker__calendar header .next.disabled:after {\\n border-left: 10px solid #ddd;\\n}\\n.vdp-datepicker__calendar header .prev:not(.disabled),\\n.vdp-datepicker__calendar header .next:not(.disabled),\\n.vdp-datepicker__calendar header .up:not(.disabled) {\\n cursor: pointer;\\n}\\n.vdp-datepicker__calendar header .prev:not(.disabled):hover,\\n.vdp-datepicker__calendar header .next:not(.disabled):hover,\\n.vdp-datepicker__calendar header .up:not(.disabled):hover {\\n background: #eee;\\n}\\n.vdp-datepicker__calendar .disabled {\\n color: #ddd;\\n cursor: default;\\n}\\n.vdp-datepicker__calendar .flex-rtl {\\n display: flex;\\n width: inherit;\\n flex-wrap: wrap;\\n}\\n.vdp-datepicker__calendar .cell {\\n display: inline-block;\\n padding: 0 5px;\\n width: 14.285714285714286%;\\n height: 40px;\\n line-height: 40px;\\n text-align: center;\\n vertical-align: middle;\\n border: 1px solid transparent;\\n}\\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day,\\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month,\\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year {\\n cursor: pointer;\\n}\\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day:hover,\\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month:hover,\\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year:hover {\\n border: 1px solid #4bd;\\n}\\n.vdp-datepicker__calendar .cell.selected {\\n background: #4bd;\\n}\\n.vdp-datepicker__calendar .cell.selected:hover {\\n background: #4bd;\\n}\\n.vdp-datepicker__calendar .cell.selected.highlighted {\\n background: #4bd;\\n}\\n.vdp-datepicker__calendar .cell.highlighted {\\n background: #cae5ed;\\n}\\n.vdp-datepicker__calendar .cell.highlighted.disabled {\\n color: #a3a3a3;\\n}\\n.vdp-datepicker__calendar .cell.grey {\\n color: #888;\\n}\\n.vdp-datepicker__calendar .cell.grey:hover {\\n background: inherit;\\n}\\n.vdp-datepicker__calendar .cell.day-header {\\n font-size: 75%;\\n white-space: nowrap;\\n cursor: inherit;\\n}\\n.vdp-datepicker__calendar .cell.day-header:hover {\\n background: inherit;\\n}\\n.vdp-datepicker__calendar .month,\\n.vdp-datepicker__calendar .year {\\n width: 33.333%;\\n}\\n.vdp-datepicker__clear-button,\\n.vdp-datepicker__calendar-button {\\n cursor: pointer;\\n font-style: normal;\\n}\\n.vdp-datepicker__clear-button.disabled,\\n.vdp-datepicker__calendar-button.disabled {\\n color: #999;\\n cursor: default;\\n}\\n\", map: {\"version\":3,\"sources\":[\"Datepicker.vue\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,gBAAgB;EAChB,YAAY;EACZ,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,iBAAiB;AACnB;AACA;EACE,qBAAqB;EACrB,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;AACb;AACA;;EAEE,0BAA0B;EAC1B,WAAW;EACX,qBAAqB;EACrB,kBAAkB;AACpB;AACA;;EAEE,WAAW;EACX,kBAAkB;EAClB,SAAS;EACT,QAAQ;EACR,4CAA4C;EAC5C,6BAA6B;AAC/B;AACA;EACE,6BAA6B;EAC7B,iBAAiB;AACnB;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,4BAA4B;EAC5B,gBAAgB;AAClB;AACA;EACE,4BAA4B;AAC9B;AACA;;;EAGE,eAAe;AACjB;AACA;;;EAGE,gBAAgB;AAClB;AACA;EACE,WAAW;EACX,eAAe;AACjB;AACA;EACE,aAAa;EACb,cAAc;EACd,eAAe;AACjB;AACA;EACE,qBAAqB;EACrB,cAAc;EACd,0BAA0B;EAC1B,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EAClB,sBAAsB;EACtB,6BAA6B;AAC/B;AACA;;;EAGE,eAAe;AACjB;AACA;;;EAGE,sBAAsB;AACxB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,cAAc;AAChB;AACA;EACE,WAAW;AACb;AACA;EACE,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,mBAAmB;EACnB,eAAe;AACjB;AACA;EACE,mBAAmB;AACrB;AACA;;EAEE,cAAc;AAChB;AACA;;EAEE,eAAe;EACf,kBAAkB;AACpB;AACA;;EAEE,WAAW;EACX,eAAe;AACjB\",\"file\":\"Datepicker.vue\",\"sourcesContent\":[\".rtl {\\n direction: rtl;\\n}\\n.vdp-datepicker {\\n position: relative;\\n text-align: left;\\n}\\n.vdp-datepicker * {\\n box-sizing: border-box;\\n}\\n.vdp-datepicker__calendar {\\n position: absolute;\\n z-index: 100;\\n background: #fff;\\n width: 300px;\\n border: 1px solid #ccc;\\n}\\n.vdp-datepicker__calendar header {\\n display: block;\\n line-height: 40px;\\n}\\n.vdp-datepicker__calendar header span {\\n display: inline-block;\\n text-align: center;\\n width: 71.42857142857143%;\\n float: left;\\n}\\n.vdp-datepicker__calendar header .prev,\\n.vdp-datepicker__calendar header .next {\\n width: 14.285714285714286%;\\n float: left;\\n text-indent: -10000px;\\n position: relative;\\n}\\n.vdp-datepicker__calendar header .prev:after,\\n.vdp-datepicker__calendar header .next:after {\\n content: '';\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translateX(-50%) translateY(-50%);\\n border: 6px solid transparent;\\n}\\n.vdp-datepicker__calendar header .prev:after {\\n border-right: 10px solid #000;\\n margin-left: -5px;\\n}\\n.vdp-datepicker__calendar header .prev.disabled:after {\\n border-right: 10px solid #ddd;\\n}\\n.vdp-datepicker__calendar header .next:after {\\n border-left: 10px solid #000;\\n margin-left: 5px;\\n}\\n.vdp-datepicker__calendar header .next.disabled:after {\\n border-left: 10px solid #ddd;\\n}\\n.vdp-datepicker__calendar header .prev:not(.disabled),\\n.vdp-datepicker__calendar header .next:not(.disabled),\\n.vdp-datepicker__calendar header .up:not(.disabled) {\\n cursor: pointer;\\n}\\n.vdp-datepicker__calendar header .prev:not(.disabled):hover,\\n.vdp-datepicker__calendar header .next:not(.disabled):hover,\\n.vdp-datepicker__calendar header .up:not(.disabled):hover {\\n background: #eee;\\n}\\n.vdp-datepicker__calendar .disabled {\\n color: #ddd;\\n cursor: default;\\n}\\n.vdp-datepicker__calendar .flex-rtl {\\n display: flex;\\n width: inherit;\\n flex-wrap: wrap;\\n}\\n.vdp-datepicker__calendar .cell {\\n display: inline-block;\\n padding: 0 5px;\\n width: 14.285714285714286%;\\n height: 40px;\\n line-height: 40px;\\n text-align: center;\\n vertical-align: middle;\\n border: 1px solid transparent;\\n}\\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day,\\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month,\\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year {\\n cursor: pointer;\\n}\\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day:hover,\\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month:hover,\\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year:hover {\\n border: 1px solid #4bd;\\n}\\n.vdp-datepicker__calendar .cell.selected {\\n background: #4bd;\\n}\\n.vdp-datepicker__calendar .cell.selected:hover {\\n background: #4bd;\\n}\\n.vdp-datepicker__calendar .cell.selected.highlighted {\\n background: #4bd;\\n}\\n.vdp-datepicker__calendar .cell.highlighted {\\n background: #cae5ed;\\n}\\n.vdp-datepicker__calendar .cell.highlighted.disabled {\\n color: #a3a3a3;\\n}\\n.vdp-datepicker__calendar .cell.grey {\\n color: #888;\\n}\\n.vdp-datepicker__calendar .cell.grey:hover {\\n background: inherit;\\n}\\n.vdp-datepicker__calendar .cell.day-header {\\n font-size: 75%;\\n white-space: nowrap;\\n cursor: inherit;\\n}\\n.vdp-datepicker__calendar .cell.day-header:hover {\\n background: inherit;\\n}\\n.vdp-datepicker__calendar .month,\\n.vdp-datepicker__calendar .year {\\n width: 33.333%;\\n}\\n.vdp-datepicker__clear-button,\\n.vdp-datepicker__calendar-button {\\n cursor: pointer;\\n font-style: normal;\\n}\\n.vdp-datepicker__clear-button.disabled,\\n.vdp-datepicker__calendar-button.disabled {\\n color: #999;\\n cursor: default;\\n}\\n\"]}, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$4 = undefined;\n /* module identifier */\n const __vue_module_identifier__$4 = undefined;\n /* functional template */\n const __vue_is_functional_template__$4 = false;\n /* style inject SSR */\n \n\n \n var Datepicker = normalizeComponent_1(\n { render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },\n __vue_inject_styles__$4,\n __vue_script__$4,\n __vue_scope_id__$4,\n __vue_is_functional_template__$4,\n __vue_module_identifier__$4,\n browser,\n undefined\n );\n\nexport default Datepicker;\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = $getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) args.push(arguments[i]);\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n ReflectApply(this.listener, this.target, args);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nl;\n\n})));\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.patchChildren = patchChildren;\nexports.h = h;\n\nfunction isUndef(v) {\n return v === null || v === undefined;\n}\n\nfunction isDef(v) {\n return v !== null && v !== undefined;\n}\n\nfunction sameVval(oldVval, vval) {\n return vval.tag === oldVval.tag && vval.key === oldVval.key;\n}\n\nfunction createVm(vval) {\n var Vm = vval.tag;\n vval.vm = new Vm({\n data: vval.args\n });\n}\n\nfunction updateVval(vval) {\n var keys = Object.keys(vval.args);\n\n for (var i = 0; i < keys.length; i++) {\n keys.forEach(function (k) {\n vval.vm[k] = vval.args[k];\n });\n }\n}\n\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) map[key] = i;\n }\n\n return map;\n}\n\nfunction updateChildren(oldCh, newCh) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVval = oldCh[0];\n var oldEndVval = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVval = newCh[0];\n var newEndVval = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, elmToMove;\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVval)) {\n oldStartVval = oldCh[++oldStartIdx];\n } else if (isUndef(oldEndVval)) {\n oldEndVval = oldCh[--oldEndIdx];\n } else if (sameVval(oldStartVval, newStartVval)) {\n patchVval(oldStartVval, newStartVval);\n oldStartVval = oldCh[++oldStartIdx];\n newStartVval = newCh[++newStartIdx];\n } else if (sameVval(oldEndVval, newEndVval)) {\n patchVval(oldEndVval, newEndVval);\n oldEndVval = oldCh[--oldEndIdx];\n newEndVval = newCh[--newEndIdx];\n } else if (sameVval(oldStartVval, newEndVval)) {\n patchVval(oldStartVval, newEndVval);\n oldStartVval = oldCh[++oldStartIdx];\n newEndVval = newCh[--newEndIdx];\n } else if (sameVval(oldEndVval, newStartVval)) {\n patchVval(oldEndVval, newStartVval);\n oldEndVval = oldCh[--oldEndIdx];\n newStartVval = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n idxInOld = isDef(newStartVval.key) ? oldKeyToIdx[newStartVval.key] : null;\n\n if (isUndef(idxInOld)) {\n createVm(newStartVval);\n newStartVval = newCh[++newStartIdx];\n } else {\n elmToMove = oldCh[idxInOld];\n\n if (sameVval(elmToMove, newStartVval)) {\n patchVval(elmToMove, newStartVval);\n oldCh[idxInOld] = undefined;\n newStartVval = newCh[++newStartIdx];\n } else {\n createVm(newStartVval);\n newStartVval = newCh[++newStartIdx];\n }\n }\n }\n }\n\n if (oldStartIdx > oldEndIdx) {\n addVvals(newCh, newStartIdx, newEndIdx);\n } else if (newStartIdx > newEndIdx) {\n removeVvals(oldCh, oldStartIdx, oldEndIdx);\n }\n}\n\nfunction addVvals(vvals, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n createVm(vvals[startIdx]);\n }\n}\n\nfunction removeVvals(vvals, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vvals[startIdx];\n\n if (isDef(ch)) {\n ch.vm.$destroy();\n ch.vm = null;\n }\n }\n}\n\nfunction patchVval(oldVval, vval) {\n if (oldVval === vval) {\n return;\n }\n\n vval.vm = oldVval.vm;\n updateVval(vval);\n}\n\nfunction patchChildren(oldCh, ch) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) updateChildren(oldCh, ch);\n } else if (isDef(ch)) {\n addVvals(ch, 0, ch.length - 1);\n } else if (isDef(oldCh)) {\n removeVvals(oldCh, 0, oldCh.length - 1);\n }\n}\n\nfunction h(tag, key, args) {\n return {\n tag: tag,\n key: key,\n args: args\n };\n}","!function(t,n){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define([],n):\"object\"==typeof exports?exports.vueInsProgressBar=n():t.vueInsProgressBar=n()}(window,function(){return function(t){var n={};function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}return e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:i})},e.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&\"object\"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(e.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:t}),2&n&&\"string\"!=typeof t)for(var r in t)e.d(i,r,function(n){return t[n]}.bind(null,r));return i},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p=\"\",e(e.s=5)}([function(t,n,e){\"use strict\";e.r(n);var i=e(1),r=e.n(i);for(var o in i)\"default\"!==o&&function(t){e.d(n,t,function(){return i[t]})}(o);n.default=r.a},function(t,n,e){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var i=\"undefined\"!=typeof window;n.default={name:\"VueInsProgressBar\",computed:{style:function(){var t=this.progress.options,n={opacity:!!t.show?1:0,display:!!t.__isDisplay?\"block\":\"none\",position:t.position,height:t.height};return n},progress:function(){return i?window.INSPBEventBus.INSPB:(console.warn(\"The vue-ins-progress-bar can work in browser only!\"),{options:{}})}}}},function(t,n,e){var i=e(8);\"string\"==typeof i&&(i=[[t.i,i,\"\"]]);var r={hmr:!0,transform:void 0,insertInto:void 0};e(10)(i,r);i.locals&&(t.exports=i.locals)},function(t,n,e){\"use strict\";var i=function(){var t=this.$createElement;return(this._self._c||t)(\"div\",{staticClass:\"ins-progress\",style:this.style})},r=[];e.d(n,\"a\",function(){return i}),e.d(n,\"b\",function(){return r})},function(t,n,e){\"use strict\";function i(t,n,e,i,r,o,s,a){var f,u=\"function\"==typeof t?t.options:t;if(n&&(u.render=n,u.staticRenderFns=e,u._compiled=!0),i&&(u.functional=!0),o&&(u._scopeId=\"data-v-\"+o),s?(f=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},u._ssrRegister=f):r&&(f=a?function(){r.call(this,this.$root.$options.shadowRoot)}:r),f)if(u.functional){u._injectStyles=f;var c=u.render;u.render=function(t,n){return f.call(n),c(t,n)}}else{var l=u.beforeCreate;u.beforeCreate=l?[].concat(l,f):[f]}return{exports:t,options:u}}e.d(n,\"a\",function(){return i})},function(t,n,e){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var i,r=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var e=arguments[n];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])}return t},o=e(6),s=(i=o)&&i.__esModule?i:{default:i};n.default={install:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=\"undefined\"!=typeof window,i={$vm:null,state:{timer:{fadeAway:null,fill:null},isFull:!1,isWFA:!1},init:function(t){this.$vm=t},__fillBeginning:function(){this.state.isFull=!1,this.$vm.INSPB.options.show=!0,this.$vm.INSPB.options.__isDisplay=!0},__fillFinally:function(){this.state.isFull=!0,this.state.timer.fill=null},__fadeBeginning:function(){this.state.isWFA=!1,this.$vm.INSPB.options.show=!1},__fadeFinally:function(){this.$vm.INSPB.options.__isDisplay=!1,this.state.timer.fadeAway=null,this.state.isFull=null},__isFilling:function(){return this.state.timer.fill},__isFading:function(){return this.state.timer.fadeAway},__killFading:function(){clearTimeout(this.state.timer.fadeAway),this.state.isWFA=!1,this.state.timer.fadeAway=null},__waiting:function(){this.state.isWFA=!0},__isWaiting:function(){return this.state.isWFA},start:function(t){var n=this;this.$vm&&(this.__killFading(),this.__isFilling()||(this.__fillBeginning(),this.state.timer.fill=setTimeout(function(){n.__fillFinally(),n.__isWaiting()&&n.finish()},500)))},height:function(t){this.$vm.INSPB.options.height=t+\"px\"},__hide:function(){var t=this;this.__isFading()||(this.__isFilling()?this.__waiting():(this.__fadeBeginning(),this.state.timer.fadeAway=setTimeout(function(){t.__fadeFinally()},500)))},finish:function(){this.$vm&&this.__hide()}},o=new t({data:{INSPB:{options:r({show:!1,__isDisplay:!1,position:\"fixed\",height:\"3px\"},n)}}});e&&(window.INSPBEventBus=o,i.init(o)),t.component(\"vue-ins-progress-bar\",s.default),t.prototype.$insProgress=i}}},function(t,n,e){\"use strict\";e.r(n);var i=e(3),r=e(0);for(var o in r)\"default\"!==o&&function(t){e.d(n,t,function(){return r[t]})}(o);e(7);var s=e(4),a=Object(s.a)(r.default,i.a,i.b,!1,null,\"631daf08\",null);n.default=a.exports},function(t,n,e){\"use strict\";var i=e(2);e.n(i).a},function(t,n,e){(t.exports=e(9)(!1)).push([t.i,\"\\n.ins-progress[data-v-631daf08] {\\n background: #a307ba;\\n background: #27c4f5 -webkit-gradient(linear,left top,right top,from(#27c4f5),color-stop(#a307ba),color-stop(#fd8d32),color-stop(#70c050),to(#27c4f5));\\n background: #27c4f5 -webkit-linear-gradient(left,#27c4f5,#a307ba,#fd8d32,#70c050,#27c4f5);\\n background: #27c4f5 linear-gradient(to right,#27c4f5,#a307ba,#fd8d32,#70c050,#27c4f5);\\n\\n -webkit-animation: 2s linear infinite ins-data-v-631daf08,.5s ease-out insEnter-data-v-631daf08;\\n animation: 2s linear infinite ins-data-v-631daf08,.5s ease-out insEnter-data-v-631daf08;\\n\\n -webkit-transition: opacity 0.2s ease-in-out;\\n transition: opacity 0.2s ease-in-out;\\n\\n -webkit-transform-origin: left;\\n transform-origin: left;\\n\\n background-size: 500%;\\n\\n z-index: 999999;\\n position: fixed;\\n display: block;\\n width: 100%;\\n opacity: 1;\\n left: 0;\\n top: 0;\\n}\\n@-webkit-keyframes ins-data-v-631daf08 {\\n0% { background-position: 0% 0\\n}\\nto { background-position: 125% 0\\n}\\n}\\n@keyframes ins-data-v-631daf08 {\\n0% { background-position:0% 0\\n}\\nto { background-position: 125% 0\\n}\\n}\\n@-webkit-keyframes insEnter-data-v-631daf08 {\\n0% { -webkit-transform:scaleX(0); transform:scaleX(0)\\n}\\nto { -webkit-transform: scaleX(1); transform: scaleX(1)\\n}\\n}\\n@keyframes insEnter-data-v-631daf08 {\\n0% { -webkit-transform:scaleX(0); transform:scaleX(0)\\n}\\nto { -webkit-transform:scaleX(1); transform:scaleX(1)\\n}\\n}\\n\\n\",\"\"])},function(t,n){t.exports=function(t){var n=[];return n.toString=function(){return this.map(function(n){var e=function(t,n){var e=t[1]||\"\",i=t[3];if(!i)return e;if(n&&\"function\"==typeof btoa){var r=(s=i,\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+\" */\"),o=i.sources.map(function(t){return\"/*# sourceURL=\"+i.sourceRoot+t+\" */\"});return[e].concat(o).concat([r]).join(\"\\n\")}var s;return[e].join(\"\\n\")}(n,t);return n[2]?\"@media \"+n[2]+\"{\"+e+\"}\":e}).join(\"\")},n.i=function(t,e){\"string\"==typeof t&&(t=[[null,t,\"\"]]);for(var i={},r=0;r<this.length;r++){var o=this[r][0];\"number\"==typeof o&&(i[o]=!0)}for(r=0;r<t.length;r++){var s=t[r];\"number\"==typeof s[0]&&i[s[0]]||(e&&!s[2]?s[2]=e:e&&(s[2]=\"(\"+s[2]+\") and (\"+e+\")\"),n.push(s))}},n}},function(t,n,e){var i,r,o={},s=(i=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===r&&(r=i.apply(this,arguments)),r}),a=function(t){var n={};return function(t){if(\"function\"==typeof t)return t();if(void 0===n[t]){var e=function(t){return document.querySelector(t)}.call(this,t);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(t){e=null}n[t]=e}return n[t]}}(),f=null,u=0,c=[],l=e(11);function d(t,n){for(var e=0;e<t.length;e++){var i=t[e],r=o[i.id];if(r){r.refs++;for(var s=0;s<r.parts.length;s++)r.parts[s](i.parts[s]);for(;s<i.parts.length;s++)r.parts.push(y(i.parts[s],n))}else{var a=[];for(s=0;s<i.parts.length;s++)a.push(y(i.parts[s],n));o[i.id]={id:i.id,refs:1,parts:a}}}}function p(t,n){for(var e=[],i={},r=0;r<t.length;r++){var o=t[r],s=n.base?o[0]+n.base:o[0],a={css:o[1],media:o[2],sourceMap:o[3]};i[s]?i[s].parts.push(a):e.push(i[s]={id:s,parts:[a]})}return e}function h(t,n){var e=a(t.insertInto);if(!e)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");var i=c[c.length-1];if(\"top\"===t.insertAt)i?i.nextSibling?e.insertBefore(n,i.nextSibling):e.appendChild(n):e.insertBefore(n,e.firstChild),c.push(n);else if(\"bottom\"===t.insertAt)e.appendChild(n);else{if(\"object\"!=typeof t.insertAt||!t.insertAt.before)throw new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");var r=a(t.insertInto+\" \"+t.insertAt.before);e.insertBefore(n,r)}}function v(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t);var n=c.indexOf(t);n>=0&&c.splice(n,1)}function b(t){var n=document.createElement(\"style\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),m(n,t.attrs),h(t,n),n}function m(t,n){Object.keys(n).forEach(function(e){t.setAttribute(e,n[e])})}function y(t,n){var e,i,r,o;if(n.transform&&t.css){if(!(o=n.transform(t.css)))return function(){};t.css=o}if(n.singleton){var s=u++;e=f||(f=b(n)),i=w.bind(null,e,s,!1),r=w.bind(null,e,s,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(e=function(t){var n=document.createElement(\"link\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),t.attrs.rel=\"stylesheet\",m(n,t.attrs),h(t,n),n}(n),i=function(t,n,e){var i=e.css,r=e.sourceMap,o=void 0===n.convertToAbsoluteUrls&&r;(n.convertToAbsoluteUrls||o)&&(i=l(i));r&&(i+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+\" */\");var s=new Blob([i],{type:\"text/css\"}),a=t.href;t.href=URL.createObjectURL(s),a&&URL.revokeObjectURL(a)}.bind(null,e,n),r=function(){v(e),e.href&&URL.revokeObjectURL(e.href)}):(e=b(n),i=function(t,n){var e=n.css,i=n.media;i&&t.setAttribute(\"media\",i);if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}.bind(null,e),r=function(){v(e)});return i(t),function(n){if(n){if(n.css===t.css&&n.media===t.media&&n.sourceMap===t.sourceMap)return;i(t=n)}else r()}}t.exports=function(t,n){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(n=n||{}).attrs=\"object\"==typeof n.attrs?n.attrs:{},n.singleton||\"boolean\"==typeof n.singleton||(n.singleton=s()),n.insertInto||(n.insertInto=\"head\"),n.insertAt||(n.insertAt=\"bottom\");var e=p(t,n);return d(e,n),function(t){for(var i=[],r=0;r<e.length;r++){var s=e[r];(a=o[s.id]).refs--,i.push(a)}t&&d(p(t,n),n);for(r=0;r<i.length;r++){var a;if(0===(a=i[r]).refs){for(var f=0;f<a.parts.length;f++)a.parts[f]();delete o[a.id]}}}};var g,_=(g=[],function(t,n){return g[t]=n,g.filter(Boolean).join(\"\\n\")});function w(t,n,e,i){var r=e?\"\":i.css;if(t.styleSheet)t.styleSheet.cssText=_(n,r);else{var o=document.createTextNode(r),s=t.childNodes;s[n]&&t.removeChild(s[n]),s.length?t.insertBefore(o,s[n]):t.appendChild(o)}}},function(t,n){t.exports=function(t){var n=\"undefined\"!=typeof window&&window.location;if(!n)throw new Error(\"fixUrls requires window.location\");if(!t||\"string\"!=typeof t)return t;var e=n.protocol+\"//\"+n.host,i=e+n.pathname.replace(/\\/[^\\/]*$/,\"/\");return t.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi,function(t,n){var r,o=n.trim().replace(/^\"(.*)\"$/,function(t,n){return n}).replace(/^'(.*)'$/,function(t,n){return n});return/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(o)?t:(r=0===o.indexOf(\"//\")?o:0===o.indexOf(\"/\")?e+o:i+o.replace(/^\\.\\//,\"\"),\"url(\"+JSON.stringify(r)+\")\")})}}])});","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Ãp~rÃl_~Máý_~Júñé~_Júl~ý_Ãú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),\n monthsShort : 'J~áñ_~Féb_~Már_~Ãpr_~Máý_~Júñ_~Júl_~Ãúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n monthsParseExact : true,\n weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~FrÃd~áý_S~átúr~dáý'.split('_'),\n weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~FrÃ_~Sát'.split('_'),\n weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[T~ódá~ý át] LT',\n nextDay : '[T~ómó~rró~w át] LT',\n nextWeek : 'dddd [át] LT',\n lastDay : '[Ã~ést~érdá~ý át] LT',\n lastWeek : '[L~ást] dddd [át] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Ã~ñ %s',\n past : '%s á~gó',\n s : 'á ~féw ~sécó~ñds',\n ss : '%d s~écóñ~ds',\n m : 'á ~mÃñ~úté',\n mm : '%d m~Ãñú~tés',\n h : 'á~ñ hó~úr',\n hh : '%d h~óúrs',\n d : 'á ~dáý',\n dd : '%d d~áýs',\n M : 'á ~móñ~th',\n MM : '%d m~óñt~hs',\n y : 'á ~ýéár',\n yy : '%d ý~éárs'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return xPseudo;\n\n})));\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var se = moment.defineLocale('se', {\n months : 'oÄ‘Ä‘ajagemánnu_guovvamánnu_njukÄamánnu_cuoÅ‹ománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_ÄakÄamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),\n monthsShort : 'oÄ‘Ä‘j_guov_njuk_cuo_mies_geas_suoi_borg_ÄakÄ_golg_skáb_juov'.split('_'),\n weekdays : 'sotnabeaivi_vuossárga_maÅ‹Å‹ebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\n weekdaysShort : 'sotn_vuos_maÅ‹_gask_duor_bear_láv'.split('_'),\n weekdaysMin : 's_v_m_g_d_b_L'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'MMMM D. [b.] YYYY',\n LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'\n },\n calendar : {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s geažes',\n past : 'maÅ‹it %s',\n s : 'moadde sekunddat',\n ss: '%d sekunddat',\n m : 'okta minuhta',\n mm : '%d minuhtat',\n h : 'okta diimmu',\n hh : '%d diimmut',\n d : 'okta beaivi',\n dd : '%d beaivvit',\n M : 'okta mánnu',\n MM : '%d mánut',\n y : 'okta jahki',\n yy : '%d jagit'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return se;\n\n})));\n"],"sourceRoot":""}